@clioplaylists/clio 0.1.8 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/dist/api/com/clioplaylists/alpha/feed/getRecommendedPlaylistsByUser.d.ts +3 -0
  2. package/dist/api/com/clioplaylists/alpha/feed/getRecommendedPlaylistsByUser.js +70 -0
  3. package/dist/api/health.js +10 -3
  4. package/dist/api/index.d.ts +1 -0
  5. package/dist/api/index.js +40 -2
  6. package/dist/api/oauth.d.ts +3 -0
  7. package/dist/api/oauth.js +63 -0
  8. package/dist/api/util.d.ts +1 -0
  9. package/dist/api/util.js +11 -6
  10. package/dist/api/well-known.js +8 -4
  11. package/dist/auth-verifier.d.ts +17 -4
  12. package/dist/auth-verifier.js +171 -165
  13. package/dist/client.js +15 -8
  14. package/dist/config.d.ts +21 -0
  15. package/dist/config.js +77 -7
  16. package/dist/context.d.ts +11 -0
  17. package/dist/context.js +14 -1
  18. package/dist/dataplane/client/hosts.js +5 -1
  19. package/dist/dataplane/client/index.d.ts +2 -0
  20. package/dist/dataplane/client/index.js +40 -17
  21. package/dist/dataplane/client/util.d.ts +20 -0
  22. package/dist/dataplane/client/util.js +92 -0
  23. package/dist/dataplane/index.js +18 -2
  24. package/dist/dataplane/server/background.d.ts +1 -1
  25. package/dist/dataplane/server/background.js +12 -5
  26. package/dist/dataplane/server/db/database-schema.d.ts +5 -1
  27. package/dist/dataplane/server/db/database-schema.js +2 -1
  28. package/dist/dataplane/server/db/db.js +60 -20
  29. package/dist/dataplane/server/db/index.js +17 -1
  30. package/dist/dataplane/server/db/migrations/20250515T045948368Z-init.d.ts +3 -0
  31. package/dist/dataplane/server/db/migrations/20250515T045948368Z-init.js +170 -0
  32. package/dist/dataplane/server/db/migrations/20260119T210000000Z-song-recommendation.d.ts +3 -0
  33. package/dist/dataplane/server/db/migrations/20260119T210000000Z-song-recommendation.js +36 -0
  34. package/dist/dataplane/server/db/migrations/20260119T220000000Z-oauth.d.ts +3 -0
  35. package/dist/dataplane/server/db/migrations/20260119T220000000Z-oauth.js +25 -0
  36. package/dist/dataplane/server/db/migrations/index.d.ts +3 -2
  37. package/dist/dataplane/server/db/migrations/index.js +39 -2
  38. package/dist/dataplane/server/db/migrations/provider.js +5 -1
  39. package/dist/dataplane/server/db/pagination.d.ts +1 -1
  40. package/dist/dataplane/server/db/pagination.js +38 -25
  41. package/dist/dataplane/server/db/tables/actor-sync.d.ts +2 -2
  42. package/dist/dataplane/server/db/tables/actor-sync.js +4 -1
  43. package/dist/dataplane/server/db/tables/actor.d.ts +3 -3
  44. package/dist/dataplane/server/db/tables/actor.js +4 -1
  45. package/dist/dataplane/server/db/tables/artist-list-item.d.ts +2 -2
  46. package/dist/dataplane/server/db/tables/artist-list-item.js +4 -1
  47. package/dist/dataplane/server/db/tables/artist.js +4 -1
  48. package/dist/dataplane/server/db/tables/oauth-session.d.ts +9 -0
  49. package/dist/dataplane/server/db/tables/oauth-session.js +4 -0
  50. package/dist/dataplane/server/db/tables/oauth-state.d.ts +10 -0
  51. package/dist/dataplane/server/db/tables/oauth-state.js +4 -0
  52. package/dist/dataplane/server/db/tables/playlist-idea.d.ts +3 -3
  53. package/dist/dataplane/server/db/tables/playlist-idea.js +4 -1
  54. package/dist/dataplane/server/db/tables/playlist-item.js +4 -1
  55. package/dist/dataplane/server/db/tables/playlist.d.ts +1 -0
  56. package/dist/dataplane/server/db/tables/playlist.js +4 -1
  57. package/dist/dataplane/server/db/tables/profile.d.ts +5 -5
  58. package/dist/dataplane/server/db/tables/profile.js +4 -1
  59. package/dist/dataplane/server/db/tables/record.d.ts +1 -1
  60. package/dist/dataplane/server/db/tables/record.js +4 -1
  61. package/dist/dataplane/server/db/tables/song-recommendation.d.ts +17 -0
  62. package/dist/dataplane/server/db/tables/song-recommendation.js +4 -0
  63. package/dist/dataplane/server/db/tables/song.d.ts +2 -2
  64. package/dist/dataplane/server/db/tables/song.js +4 -1
  65. package/dist/dataplane/server/db/tables/subscription-cursor.d.ts +9 -0
  66. package/dist/dataplane/server/db/tables/subscription-cursor.js +4 -0
  67. package/dist/dataplane/server/db/types.js +2 -1
  68. package/dist/dataplane/server/db/util.d.ts +7 -3
  69. package/dist/dataplane/server/db/util.js +26 -18
  70. package/dist/dataplane/server/index.js +21 -13
  71. package/dist/dataplane/server/indexing/index.d.ts +2 -0
  72. package/dist/dataplane/server/indexing/index.js +82 -66
  73. package/dist/dataplane/server/indexing/plugins/playlist-idea.d.ts +1 -2
  74. package/dist/dataplane/server/indexing/plugins/playlist-idea.js +50 -41
  75. package/dist/dataplane/server/indexing/plugins/profile.js +45 -12
  76. package/dist/dataplane/server/indexing/plugins/song-recommendation.d.ts +9 -0
  77. package/dist/dataplane/server/indexing/plugins/song-recommendation.js +101 -0
  78. package/dist/dataplane/server/indexing/processor.js +12 -11
  79. package/dist/dataplane/server/routes/identity.d.ts +19 -0
  80. package/dist/dataplane/server/routes/identity.js +32 -25
  81. package/dist/dataplane/server/routes/index.js +15 -10
  82. package/dist/dataplane/server/routes/profile.js +17 -25
  83. package/dist/dataplane/server/routes/records.d.ts +18 -0
  84. package/dist/dataplane/server/routes/records.js +48 -22
  85. package/dist/dataplane/server/routes/sync.js +5 -3
  86. package/dist/dataplane/server/storage/subscription-cursor.d.ts +3 -0
  87. package/dist/dataplane/server/storage/subscription-cursor.js +25 -0
  88. package/dist/dataplane/server/subscription.d.ts +6 -3
  89. package/dist/dataplane/server/subscription.js +73 -63
  90. package/dist/error.js +9 -5
  91. package/dist/index.d.ts +6 -3
  92. package/dist/index.js +91 -28
  93. package/dist/lexicons/index.d.ts +3 -210
  94. package/dist/lexicons/index.js +26 -403
  95. package/dist/lexicons/lexicons.d.ts +409 -8107
  96. package/dist/lexicons/lexicons.js +134 -4276
  97. package/dist/lexicons/types/com/atproto/repo/strongRef.d.ts +4 -4
  98. package/dist/lexicons/types/com/atproto/repo/strongRef.js +13 -9
  99. package/dist/lexicons/types/com/clioplaylists/alpha/actor/profile.d.ts +10 -8
  100. package/dist/lexicons/types/com/clioplaylists/alpha/actor/profile.js +13 -9
  101. package/dist/lexicons/types/com/clioplaylists/alpha/feed/defs.d.ts +20 -11
  102. package/dist/lexicons/types/com/clioplaylists/alpha/feed/defs.js +29 -14
  103. package/dist/lexicons/types/com/clioplaylists/alpha/feed/getRecommendedPlaylistsByUser.d.ts +36 -0
  104. package/dist/lexicons/types/com/clioplaylists/alpha/feed/getRecommendedPlaylistsByUser.js +6 -0
  105. package/dist/lexicons/types/com/clioplaylists/alpha/feed/playlistIdea.d.ts +11 -14
  106. package/dist/lexicons/types/com/clioplaylists/alpha/feed/playlistIdea.js +20 -23
  107. package/dist/lexicons/types/com/clioplaylists/alpha/feed/recommendedPlaylist.d.ts +18 -0
  108. package/dist/lexicons/types/com/clioplaylists/alpha/feed/recommendedPlaylist.js +15 -0
  109. package/dist/lexicons/types/com/clioplaylists/alpha/feed/songRecommendation.d.ts +18 -0
  110. package/dist/lexicons/types/com/clioplaylists/alpha/feed/songRecommendation.js +15 -0
  111. package/dist/lexicons/util.d.ts +33 -2
  112. package/dist/lexicons/util.js +32 -4
  113. package/dist/logger.js +16 -10
  114. package/dist/oauth/client.d.ts +14 -0
  115. package/dist/oauth/client.js +126 -0
  116. package/dist/oauth/pds-agent.d.ts +3 -0
  117. package/dist/oauth/pds-agent.js +15 -0
  118. package/dist/rpc/clio_connect.d.ts +101 -11
  119. package/dist/rpc/clio_connect.js +138 -45
  120. package/dist/rpc/clio_pb.d.ts +448 -30
  121. package/dist/rpc/clio_pb.js +967 -272
  122. package/dist/util/retry.js +10 -9
  123. package/dist/util/uris.js +6 -3
  124. package/dist/util.d.ts +0 -1
  125. package/dist/util.js +61 -20
  126. package/package.json +26 -5
@@ -1,8 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ids = exports.lexicons = exports.schemas = exports.schemaDict = void 0;
4
+ exports.validate = validate;
1
5
  /**
2
6
  * GENERATED CODE - DO NOT MODIFY
3
7
  */
4
- import { Lexicons } from '@atproto/lexicon';
5
- export const schemaDict = {
8
+ const lexicon_1 = require("@atproto/lexicon");
9
+ const util_js_1 = require("./util.js");
10
+ exports.schemaDict = {
6
11
  ComClioplaylistsAlphaActorProfile: {
7
12
  lexicon: 1,
8
13
  id: 'com.clioplaylists.alpha.actor.profile',
@@ -13,17 +18,18 @@ export const schemaDict = {
13
18
  key: 'literal:self',
14
19
  record: {
15
20
  type: 'object',
21
+ required: ['displayName', 'createdAt'],
16
22
  properties: {
17
23
  displayName: {
18
24
  type: 'string',
19
25
  maxGraphemes: 64,
20
26
  maxLength: 640,
21
27
  },
22
- description: {
28
+ bio: {
23
29
  type: 'string',
24
- description: 'Free-form profile description text.',
25
- maxGraphemes: 256,
26
- maxLength: 2560,
30
+ description: 'Free-form profile bio text.',
31
+ maxGraphemes: 300,
32
+ maxLength: 3000,
27
33
  },
28
34
  avatar: {
29
35
  type: 'blob',
@@ -44,6 +50,7 @@ export const schemaDict = {
44
50
  createdAt: {
45
51
  type: 'string',
46
52
  format: 'datetime',
53
+ description: 'Client-declared timestamp when this record was originally created.',
47
54
  },
48
55
  },
49
56
  },
@@ -53,7 +60,7 @@ export const schemaDict = {
53
60
  ComClioplaylistsAlphaFeedDefs: {
54
61
  lexicon: 1,
55
62
  id: 'com.clioplaylists.alpha.feed.defs',
56
- description: "A song's definitions, which can be used to build playlists.",
63
+ description: "A song's definition, which can be used to build playlists.",
57
64
  defs: {
58
65
  song: {
59
66
  type: 'object',
@@ -90,17 +97,12 @@ export const schemaDict = {
90
97
  },
91
98
  maxLength: 20,
92
99
  },
93
- albumArtwork: {
100
+ albumArtworkRef: {
94
101
  type: 'blob',
95
102
  description: "Image associated with the song's album.",
96
103
  accept: ['image/png', 'image/jpeg'],
97
104
  maxSize: 4000000,
98
105
  },
99
- createdAt: {
100
- type: 'string',
101
- format: 'datetime',
102
- description: 'Client-declared timestamp when this record was originally created.',
103
- },
104
106
  },
105
107
  },
106
108
  songView: {
@@ -139,33 +141,61 @@ export const schemaDict = {
139
141
  accept: ['image/png', 'image/jpeg'],
140
142
  maxSize: 4000000,
141
143
  },
142
- indexedAt: {
144
+ },
145
+ },
146
+ recommendedPlaylistView: {
147
+ type: 'object',
148
+ required: ['uri', 'cid', 'songs', 'playlistIdeaUri', 'ownerHandle'],
149
+ properties: {
150
+ uri: {
151
+ type: 'string',
152
+ format: 'at-uri',
153
+ },
154
+ cid: {
155
+ type: 'string',
156
+ format: 'cid',
157
+ },
158
+ songs: {
159
+ type: 'array',
160
+ items: {
161
+ type: 'ref',
162
+ ref: 'lex:com.clioplaylists.alpha.feed.defs#songView',
163
+ },
164
+ maxLength: 100,
165
+ },
166
+ playlistIdeaUri: {
167
+ type: 'string',
168
+ format: 'at-uri',
169
+ },
170
+ ownerHandle: {
143
171
  type: 'string',
144
- format: 'datetime',
172
+ format: 'at-identifier',
173
+ description: 'Handle of the recommender and owner of this playlist.',
174
+ },
175
+ playlistArtwork: {
176
+ type: 'blob',
177
+ accept: ['image/png', 'image/jpeg'],
178
+ maxSize: 4000000,
145
179
  },
146
180
  },
147
181
  },
148
182
  },
149
183
  },
150
- ComClioplaylistsAlphaFeedGetSongs: {
184
+ ComClioplaylistsAlphaFeedGetRecommendedPlaylistsByUser: {
151
185
  lexicon: 1,
152
- id: 'com.clioplaylists.alpha.feed.getSongs',
186
+ id: 'com.clioplaylists.alpha.feed.getRecommendedPlaylistsByUser',
153
187
  defs: {
154
188
  main: {
155
189
  type: 'query',
156
190
  description: '',
157
191
  parameters: {
158
192
  type: 'params',
159
- required: [],
193
+ required: ['userAtIdentifier'],
160
194
  properties: {
161
- trackMbIds: {
162
- type: 'array',
163
- description: 'List of MusicBrainz IDs for the songs to return',
164
- items: {
165
- type: 'string',
166
- maxLength: 36,
167
- },
168
- maxLength: 500,
195
+ userAtIdentifier: {
196
+ type: 'string',
197
+ format: 'at-identifier',
198
+ description: 'The handle or did of the user to return recommended playlists for.',
169
199
  },
170
200
  },
171
201
  },
@@ -173,14 +203,15 @@ export const schemaDict = {
173
203
  encoding: 'application/json',
174
204
  schema: {
175
205
  type: 'object',
176
- required: ['songs'],
206
+ required: ['recommendedPlaylists'],
177
207
  properties: {
178
- songs: {
208
+ recommendedPlaylists: {
179
209
  type: 'array',
180
210
  items: {
181
211
  type: 'ref',
182
- ref: 'lex:com.clioplaylists.alpha.feed.defs#songView',
212
+ ref: 'lex:com.clioplaylists.alpha.feed.defs#recommendedPlaylistView',
183
213
  },
214
+ maxLength: 100,
184
215
  },
185
216
  },
186
217
  },
@@ -191,7 +222,7 @@ export const schemaDict = {
191
222
  ComClioplaylistsAlphaFeedPlaylistIdea: {
192
223
  lexicon: 1,
193
224
  id: 'com.clioplaylists.alpha.feed.playlistIdea',
194
- description: 'A playlist idea.',
225
+ description: 'An idea for a playlist.',
195
226
  defs: {
196
227
  main: {
197
228
  type: 'record',
@@ -226,10 +257,6 @@ export const schemaDict = {
226
257
  type: 'ref',
227
258
  ref: 'lex:com.clioplaylists.alpha.feed.playlistIdea#masterPlaylist',
228
259
  },
229
- recommendedPlaylist: {
230
- type: 'ref',
231
- ref: 'lex:com.clioplaylists.alpha.feed.playlistIdea#recommendedPlaylist',
232
- },
233
260
  createdAt: {
234
261
  type: 'string',
235
262
  format: 'datetime',
@@ -240,6 +267,7 @@ export const schemaDict = {
240
267
  },
241
268
  masterPlaylist: {
242
269
  type: 'object',
270
+ description: 'The playlist of songs that the creator officially says are representative of the idea.',
243
271
  required: ['songs'],
244
272
  properties: {
245
273
  songs: {
@@ -250,4299 +278,129 @@ export const schemaDict = {
250
278
  },
251
279
  maxLength: 100,
252
280
  },
253
- },
254
- },
255
- recommendedPlaylist: {
256
- type: 'object',
257
- required: ['songs'],
258
- properties: {
259
- songs: {
260
- type: 'array',
261
- items: {
262
- type: 'ref',
263
- ref: 'lex:com.clioplaylists.alpha.feed.defs#song',
264
- },
265
- maxLength: 500,
281
+ playlistArtwork: {
282
+ type: 'blob',
283
+ description: 'Image associated with the playlist.',
284
+ accept: ['image/png', 'image/jpeg'],
285
+ maxSize: 4000000,
266
286
  },
267
287
  },
268
288
  },
269
289
  },
270
290
  },
271
- ComAtprotoAdminDefs: {
291
+ ComClioplaylistsAlphaFeedRecommendedPlaylist: {
272
292
  lexicon: 1,
273
- id: 'com.atproto.admin.defs',
293
+ id: 'com.clioplaylists.alpha.feed.recommendedPlaylist',
294
+ description: 'DEPRECATED: do not use as a record. Use com.clioplaylists.alpha.feed.songRecommendation records instead, and let the AppView aggregate them into a recommended playlist view.',
274
295
  defs: {
275
- statusAttr: {
276
- type: 'object',
277
- required: ['applied'],
278
- properties: {
279
- applied: {
280
- type: 'boolean',
281
- },
282
- ref: {
283
- type: 'string',
284
- },
285
- },
286
- },
287
- accountView: {
296
+ main: {
288
297
  type: 'object',
289
- required: ['did', 'handle', 'indexedAt'],
298
+ required: ['songs', 'playlistIdeaAtUri', 'ownerDid'],
290
299
  properties: {
291
- did: {
292
- type: 'string',
293
- format: 'did',
294
- },
295
- handle: {
296
- type: 'string',
297
- format: 'handle',
298
- },
299
- email: {
300
- type: 'string',
301
- },
302
- relatedRecords: {
303
- type: 'array',
304
- items: {
305
- type: 'unknown',
306
- },
307
- },
308
- indexedAt: {
309
- type: 'string',
310
- format: 'datetime',
311
- },
312
- invitedBy: {
313
- type: 'ref',
314
- ref: 'lex:com.atproto.server.defs#inviteCode',
315
- },
316
- invites: {
317
- type: 'array',
318
- items: {
319
- type: 'ref',
320
- ref: 'lex:com.atproto.server.defs#inviteCode',
321
- },
322
- },
323
- invitesDisabled: {
324
- type: 'boolean',
325
- },
326
- emailConfirmedAt: {
327
- type: 'string',
328
- format: 'datetime',
329
- },
330
- inviteNote: {
331
- type: 'string',
332
- },
333
- deactivatedAt: {
334
- type: 'string',
335
- format: 'datetime',
336
- },
337
- threatSignatures: {
300
+ songs: {
338
301
  type: 'array',
302
+ description: 'Songs that the user recommends for the playlist idea.',
339
303
  items: {
340
304
  type: 'ref',
341
- ref: 'lex:com.atproto.admin.defs#threatSignature',
305
+ ref: 'lex:com.clioplaylists.alpha.feed.defs#song',
342
306
  },
307
+ maxLength: 500,
343
308
  },
344
- },
345
- },
346
- repoRef: {
347
- type: 'object',
348
- required: ['did'],
349
- properties: {
350
- did: {
351
- type: 'string',
352
- format: 'did',
353
- },
354
- },
355
- },
356
- repoBlobRef: {
357
- type: 'object',
358
- required: ['did', 'cid'],
359
- properties: {
360
- did: {
361
- type: 'string',
362
- format: 'did',
363
- },
364
- cid: {
365
- type: 'string',
366
- format: 'cid',
367
- },
368
- recordUri: {
309
+ playlistIdeaAtUri: {
369
310
  type: 'string',
370
311
  format: 'at-uri',
312
+ description: 'The at-uri of the playlist idea that these recommendations are for.',
371
313
  },
372
- },
373
- },
374
- threatSignature: {
375
- type: 'object',
376
- required: ['property', 'value'],
377
- properties: {
378
- property: {
379
- type: 'string',
380
- },
381
- value: {
314
+ ownerDid: {
382
315
  type: 'string',
316
+ format: 'did',
317
+ description: 'DID of the recommender and owner of this playlist.',
383
318
  },
384
- },
385
- },
386
- },
387
- },
388
- ComAtprotoAdminDeleteAccount: {
389
- lexicon: 1,
390
- id: 'com.atproto.admin.deleteAccount',
391
- defs: {
392
- main: {
393
- type: 'procedure',
394
- description: 'Delete a user account as an administrator.',
395
- input: {
396
- encoding: 'application/json',
397
- schema: {
398
- type: 'object',
399
- required: ['did'],
400
- properties: {
401
- did: {
402
- type: 'string',
403
- format: 'did',
404
- },
405
- },
406
- },
407
- },
408
- },
409
- },
410
- },
411
- ComAtprotoAdminDisableAccountInvites: {
412
- lexicon: 1,
413
- id: 'com.atproto.admin.disableAccountInvites',
414
- defs: {
415
- main: {
416
- type: 'procedure',
417
- description: 'Disable an account from receiving new invite codes, but does not invalidate existing codes.',
418
- input: {
419
- encoding: 'application/json',
420
- schema: {
421
- type: 'object',
422
- required: ['account'],
423
- properties: {
424
- account: {
425
- type: 'string',
426
- format: 'did',
427
- },
428
- note: {
429
- type: 'string',
430
- description: 'Optional reason for disabled invites.',
431
- },
432
- },
319
+ playlistArtwork: {
320
+ type: 'blob',
321
+ description: 'Image associated with the playlist.',
322
+ accept: ['image/png', 'image/jpeg'],
323
+ maxSize: 4000000,
433
324
  },
434
325
  },
435
326
  },
436
327
  },
437
328
  },
438
- ComAtprotoAdminDisableInviteCodes: {
329
+ ComClioplaylistsAlphaFeedSongRecommendation: {
439
330
  lexicon: 1,
440
- id: 'com.atproto.admin.disableInviteCodes',
331
+ id: 'com.clioplaylists.alpha.feed.songRecommendation',
332
+ description: "A song recommendation for a playlist idea. This record is created in the recommender's repository and references the playlist idea via strongRef.",
441
333
  defs: {
442
334
  main: {
443
- type: 'procedure',
444
- description: 'Disable some set of codes and/or all codes associated with a set of users.',
445
- input: {
446
- encoding: 'application/json',
447
- schema: {
448
- type: 'object',
449
- properties: {
450
- codes: {
451
- type: 'array',
452
- items: {
453
- type: 'string',
454
- },
455
- },
456
- accounts: {
457
- type: 'array',
458
- items: {
459
- type: 'string',
460
- },
461
- },
335
+ type: 'record',
336
+ key: 'tid',
337
+ record: {
338
+ type: 'object',
339
+ required: ['playlistIdea', 'song', 'createdAt'],
340
+ properties: {
341
+ playlistIdea: {
342
+ type: 'ref',
343
+ ref: 'lex:com.atproto.repo.strongRef',
462
344
  },
463
- },
464
- },
465
- },
466
- },
467
- },
468
- ComAtprotoAdminEnableAccountInvites: {
469
- lexicon: 1,
470
- id: 'com.atproto.admin.enableAccountInvites',
471
- defs: {
472
- main: {
473
- type: 'procedure',
474
- description: "Re-enable an account's ability to receive invite codes.",
475
- input: {
476
- encoding: 'application/json',
477
- schema: {
478
- type: 'object',
479
- required: ['account'],
480
- properties: {
481
- account: {
482
- type: 'string',
483
- format: 'did',
484
- },
485
- note: {
486
- type: 'string',
487
- description: 'Optional reason for enabled invites.',
488
- },
345
+ song: {
346
+ type: 'ref',
347
+ ref: 'lex:com.clioplaylists.alpha.feed.defs#song',
489
348
  },
490
- },
491
- },
492
- },
493
- },
494
- },
495
- ComAtprotoAdminGetAccountInfo: {
496
- lexicon: 1,
497
- id: 'com.atproto.admin.getAccountInfo',
498
- defs: {
499
- main: {
500
- type: 'query',
501
- description: 'Get details about an account.',
502
- parameters: {
503
- type: 'params',
504
- required: ['did'],
505
- properties: {
506
- did: {
349
+ note: {
507
350
  type: 'string',
508
- format: 'did',
509
- },
510
- },
511
- },
512
- output: {
513
- encoding: 'application/json',
514
- schema: {
515
- type: 'ref',
516
- ref: 'lex:com.atproto.admin.defs#accountView',
517
- },
518
- },
519
- },
520
- },
521
- },
522
- ComAtprotoAdminGetAccountInfos: {
523
- lexicon: 1,
524
- id: 'com.atproto.admin.getAccountInfos',
525
- defs: {
526
- main: {
527
- type: 'query',
528
- description: 'Get details about some accounts.',
529
- parameters: {
530
- type: 'params',
531
- required: ['dids'],
532
- properties: {
533
- dids: {
534
- type: 'array',
535
- items: {
536
- type: 'string',
537
- format: 'did',
538
- },
351
+ description: 'Optional note from the recommender explaining why this song fits.',
352
+ minLength: 1,
353
+ maxGraphemes: 256,
354
+ maxLength: 2560,
539
355
  },
540
- },
541
- },
542
- output: {
543
- encoding: 'application/json',
544
- schema: {
545
- type: 'object',
546
- required: ['infos'],
547
- properties: {
548
- infos: {
549
- type: 'array',
550
- items: {
551
- type: 'ref',
552
- ref: 'lex:com.atproto.admin.defs#accountView',
553
- },
554
- },
356
+ createdAt: {
357
+ type: 'string',
358
+ format: 'datetime',
359
+ description: 'Client-declared timestamp when this record was originally created.',
555
360
  },
556
361
  },
557
362
  },
558
363
  },
559
364
  },
560
365
  },
561
- ComAtprotoAdminGetInviteCodes: {
366
+ ComAtprotoRepoStrongRef: {
562
367
  lexicon: 1,
563
- id: 'com.atproto.admin.getInviteCodes',
368
+ id: 'com.atproto.repo.strongRef',
369
+ description: 'A URI with a content-hash fingerprint.',
564
370
  defs: {
565
371
  main: {
566
- type: 'query',
567
- description: 'Get an admin view of invite codes.',
568
- parameters: {
569
- type: 'params',
570
- properties: {
571
- sort: {
572
- type: 'string',
573
- knownValues: ['recent', 'usage'],
574
- default: 'recent',
575
- },
576
- limit: {
577
- type: 'integer',
578
- minimum: 1,
579
- maximum: 500,
580
- default: 100,
581
- },
582
- cursor: {
583
- type: 'string',
584
- },
372
+ type: 'object',
373
+ required: ['uri', 'cid'],
374
+ properties: {
375
+ uri: {
376
+ type: 'string',
377
+ format: 'at-uri',
585
378
  },
586
- },
587
- output: {
588
- encoding: 'application/json',
589
- schema: {
590
- type: 'object',
591
- required: ['codes'],
592
- properties: {
593
- cursor: {
594
- type: 'string',
595
- },
596
- codes: {
597
- type: 'array',
598
- items: {
599
- type: 'ref',
600
- ref: 'lex:com.atproto.server.defs#inviteCode',
601
- },
602
- },
603
- },
604
- },
605
- },
606
- },
607
- },
608
- },
609
- ComAtprotoAdminGetSubjectStatus: {
610
- lexicon: 1,
611
- id: 'com.atproto.admin.getSubjectStatus',
612
- defs: {
613
- main: {
614
- type: 'query',
615
- description: 'Get the service-specific admin status of a subject (account, record, or blob).',
616
- parameters: {
617
- type: 'params',
618
- properties: {
619
- did: {
620
- type: 'string',
621
- format: 'did',
622
- },
623
- uri: {
624
- type: 'string',
625
- format: 'at-uri',
626
- },
627
- blob: {
628
- type: 'string',
629
- format: 'cid',
630
- },
631
- },
632
- },
633
- output: {
634
- encoding: 'application/json',
635
- schema: {
636
- type: 'object',
637
- required: ['subject'],
638
- properties: {
639
- subject: {
640
- type: 'union',
641
- refs: [
642
- 'lex:com.atproto.admin.defs#repoRef',
643
- 'lex:com.atproto.repo.strongRef',
644
- 'lex:com.atproto.admin.defs#repoBlobRef',
645
- ],
646
- },
647
- takedown: {
648
- type: 'ref',
649
- ref: 'lex:com.atproto.admin.defs#statusAttr',
650
- },
651
- deactivated: {
652
- type: 'ref',
653
- ref: 'lex:com.atproto.admin.defs#statusAttr',
654
- },
655
- },
656
- },
657
- },
658
- },
659
- },
660
- },
661
- ComAtprotoAdminSearchAccounts: {
662
- lexicon: 1,
663
- id: 'com.atproto.admin.searchAccounts',
664
- defs: {
665
- main: {
666
- type: 'query',
667
- description: 'Get list of accounts that matches your search query.',
668
- parameters: {
669
- type: 'params',
670
- properties: {
671
- email: {
672
- type: 'string',
673
- },
674
- cursor: {
675
- type: 'string',
676
- },
677
- limit: {
678
- type: 'integer',
679
- minimum: 1,
680
- maximum: 100,
681
- default: 50,
682
- },
683
- },
684
- },
685
- output: {
686
- encoding: 'application/json',
687
- schema: {
688
- type: 'object',
689
- required: ['accounts'],
690
- properties: {
691
- cursor: {
692
- type: 'string',
693
- },
694
- accounts: {
695
- type: 'array',
696
- items: {
697
- type: 'ref',
698
- ref: 'lex:com.atproto.admin.defs#accountView',
699
- },
700
- },
701
- },
702
- },
703
- },
704
- },
705
- },
706
- },
707
- ComAtprotoAdminSendEmail: {
708
- lexicon: 1,
709
- id: 'com.atproto.admin.sendEmail',
710
- defs: {
711
- main: {
712
- type: 'procedure',
713
- description: "Send email to a user's account email address.",
714
- input: {
715
- encoding: 'application/json',
716
- schema: {
717
- type: 'object',
718
- required: ['recipientDid', 'content', 'senderDid'],
719
- properties: {
720
- recipientDid: {
721
- type: 'string',
722
- format: 'did',
723
- },
724
- content: {
725
- type: 'string',
726
- },
727
- subject: {
728
- type: 'string',
729
- },
730
- senderDid: {
731
- type: 'string',
732
- format: 'did',
733
- },
734
- comment: {
735
- type: 'string',
736
- description: "Additional comment by the sender that won't be used in the email itself but helpful to provide more context for moderators/reviewers",
737
- },
738
- },
739
- },
740
- },
741
- output: {
742
- encoding: 'application/json',
743
- schema: {
744
- type: 'object',
745
- required: ['sent'],
746
- properties: {
747
- sent: {
748
- type: 'boolean',
749
- },
750
- },
751
- },
752
- },
753
- },
754
- },
755
- },
756
- ComAtprotoAdminUpdateAccountEmail: {
757
- lexicon: 1,
758
- id: 'com.atproto.admin.updateAccountEmail',
759
- defs: {
760
- main: {
761
- type: 'procedure',
762
- description: "Administrative action to update an account's email.",
763
- input: {
764
- encoding: 'application/json',
765
- schema: {
766
- type: 'object',
767
- required: ['account', 'email'],
768
- properties: {
769
- account: {
770
- type: 'string',
771
- format: 'at-identifier',
772
- description: 'The handle or DID of the repo.',
773
- },
774
- email: {
775
- type: 'string',
776
- },
777
- },
778
- },
779
- },
780
- },
781
- },
782
- },
783
- ComAtprotoAdminUpdateAccountHandle: {
784
- lexicon: 1,
785
- id: 'com.atproto.admin.updateAccountHandle',
786
- defs: {
787
- main: {
788
- type: 'procedure',
789
- description: "Administrative action to update an account's handle.",
790
- input: {
791
- encoding: 'application/json',
792
- schema: {
793
- type: 'object',
794
- required: ['did', 'handle'],
795
- properties: {
796
- did: {
797
- type: 'string',
798
- format: 'did',
799
- },
800
- handle: {
801
- type: 'string',
802
- format: 'handle',
803
- },
804
- },
805
- },
806
- },
807
- },
808
- },
809
- },
810
- ComAtprotoAdminUpdateAccountPassword: {
811
- lexicon: 1,
812
- id: 'com.atproto.admin.updateAccountPassword',
813
- defs: {
814
- main: {
815
- type: 'procedure',
816
- description: 'Update the password for a user account as an administrator.',
817
- input: {
818
- encoding: 'application/json',
819
- schema: {
820
- type: 'object',
821
- required: ['did', 'password'],
822
- properties: {
823
- did: {
824
- type: 'string',
825
- format: 'did',
826
- },
827
- password: {
828
- type: 'string',
829
- },
830
- },
831
- },
832
- },
833
- },
834
- },
835
- },
836
- ComAtprotoAdminUpdateSubjectStatus: {
837
- lexicon: 1,
838
- id: 'com.atproto.admin.updateSubjectStatus',
839
- defs: {
840
- main: {
841
- type: 'procedure',
842
- description: 'Update the service-specific admin status of a subject (account, record, or blob).',
843
- input: {
844
- encoding: 'application/json',
845
- schema: {
846
- type: 'object',
847
- required: ['subject'],
848
- properties: {
849
- subject: {
850
- type: 'union',
851
- refs: [
852
- 'lex:com.atproto.admin.defs#repoRef',
853
- 'lex:com.atproto.repo.strongRef',
854
- 'lex:com.atproto.admin.defs#repoBlobRef',
855
- ],
856
- },
857
- takedown: {
858
- type: 'ref',
859
- ref: 'lex:com.atproto.admin.defs#statusAttr',
860
- },
861
- deactivated: {
862
- type: 'ref',
863
- ref: 'lex:com.atproto.admin.defs#statusAttr',
864
- },
865
- },
866
- },
867
- },
868
- output: {
869
- encoding: 'application/json',
870
- schema: {
871
- type: 'object',
872
- required: ['subject'],
873
- properties: {
874
- subject: {
875
- type: 'union',
876
- refs: [
877
- 'lex:com.atproto.admin.defs#repoRef',
878
- 'lex:com.atproto.repo.strongRef',
879
- 'lex:com.atproto.admin.defs#repoBlobRef',
880
- ],
881
- },
882
- takedown: {
883
- type: 'ref',
884
- ref: 'lex:com.atproto.admin.defs#statusAttr',
885
- },
886
- },
887
- },
888
- },
889
- },
890
- },
891
- },
892
- ComAtprotoIdentityDefs: {
893
- lexicon: 1,
894
- id: 'com.atproto.identity.defs',
895
- defs: {
896
- identityInfo: {
897
- type: 'object',
898
- required: ['did', 'handle', 'didDoc'],
899
- properties: {
900
- did: {
901
- type: 'string',
902
- format: 'did',
903
- },
904
- handle: {
905
- type: 'string',
906
- format: 'handle',
907
- description: "The validated handle of the account; or 'handle.invalid' if the handle did not bi-directionally match the DID document.",
908
- },
909
- didDoc: {
910
- type: 'unknown',
911
- description: 'The complete DID document for the identity.',
912
- },
913
- },
914
- },
915
- },
916
- },
917
- ComAtprotoIdentityGetRecommendedDidCredentials: {
918
- lexicon: 1,
919
- id: 'com.atproto.identity.getRecommendedDidCredentials',
920
- defs: {
921
- main: {
922
- type: 'query',
923
- description: 'Describe the credentials that should be included in the DID doc of an account that is migrating to this service.',
924
- output: {
925
- encoding: 'application/json',
926
- schema: {
927
- type: 'object',
928
- properties: {
929
- rotationKeys: {
930
- description: 'Recommended rotation keys for PLC dids. Should be undefined (or ignored) for did:webs.',
931
- type: 'array',
932
- items: {
933
- type: 'string',
934
- },
935
- },
936
- alsoKnownAs: {
937
- type: 'array',
938
- items: {
939
- type: 'string',
940
- },
941
- },
942
- verificationMethods: {
943
- type: 'unknown',
944
- },
945
- services: {
946
- type: 'unknown',
947
- },
948
- },
949
- },
950
- },
951
- },
952
- },
953
- },
954
- ComAtprotoIdentityRefreshIdentity: {
955
- lexicon: 1,
956
- id: 'com.atproto.identity.refreshIdentity',
957
- defs: {
958
- main: {
959
- type: 'procedure',
960
- description: 'Request that the server re-resolve an identity (DID and handle). The server may ignore this request, or require authentication, depending on the role, implementation, and policy of the server.',
961
- input: {
962
- encoding: 'application/json',
963
- schema: {
964
- type: 'object',
965
- required: ['identifier'],
966
- properties: {
967
- identifier: {
968
- type: 'string',
969
- format: 'at-identifier',
970
- },
971
- },
972
- },
973
- },
974
- output: {
975
- encoding: 'application/json',
976
- schema: {
977
- type: 'ref',
978
- ref: 'lex:com.atproto.identity.defs#identityInfo',
979
- },
980
- },
981
- errors: [
982
- {
983
- name: 'HandleNotFound',
984
- description: 'The resolution process confirmed that the handle does not resolve to any DID.',
985
- },
986
- {
987
- name: 'DidNotFound',
988
- description: 'The DID resolution process confirmed that there is no current DID.',
989
- },
990
- {
991
- name: 'DidDeactivated',
992
- description: 'The DID previously existed, but has been deactivated.',
993
- },
994
- ],
995
- },
996
- },
997
- },
998
- ComAtprotoIdentityRequestPlcOperationSignature: {
999
- lexicon: 1,
1000
- id: 'com.atproto.identity.requestPlcOperationSignature',
1001
- defs: {
1002
- main: {
1003
- type: 'procedure',
1004
- description: 'Request an email with a code to in order to request a signed PLC operation. Requires Auth.',
1005
- },
1006
- },
1007
- },
1008
- ComAtprotoIdentityResolveDid: {
1009
- lexicon: 1,
1010
- id: 'com.atproto.identity.resolveDid',
1011
- defs: {
1012
- main: {
1013
- type: 'query',
1014
- description: 'Resolves DID to DID document. Does not bi-directionally verify handle.',
1015
- parameters: {
1016
- type: 'params',
1017
- required: ['did'],
1018
- properties: {
1019
- did: {
1020
- type: 'string',
1021
- format: 'did',
1022
- description: 'DID to resolve.',
1023
- },
1024
- },
1025
- },
1026
- output: {
1027
- encoding: 'application/json',
1028
- schema: {
1029
- type: 'object',
1030
- required: ['didDoc'],
1031
- properties: {
1032
- didDoc: {
1033
- type: 'unknown',
1034
- description: 'The complete DID document for the identity.',
1035
- },
1036
- },
1037
- },
1038
- },
1039
- errors: [
1040
- {
1041
- name: 'DidNotFound',
1042
- description: 'The DID resolution process confirmed that there is no current DID.',
1043
- },
1044
- {
1045
- name: 'DidDeactivated',
1046
- description: 'The DID previously existed, but has been deactivated.',
1047
- },
1048
- ],
1049
- },
1050
- },
1051
- },
1052
- ComAtprotoIdentityResolveHandle: {
1053
- lexicon: 1,
1054
- id: 'com.atproto.identity.resolveHandle',
1055
- defs: {
1056
- main: {
1057
- type: 'query',
1058
- description: 'Resolves an atproto handle (hostname) to a DID. Does not necessarily bi-directionally verify against the the DID document.',
1059
- parameters: {
1060
- type: 'params',
1061
- required: ['handle'],
1062
- properties: {
1063
- handle: {
1064
- type: 'string',
1065
- format: 'handle',
1066
- description: 'The handle to resolve.',
1067
- },
1068
- },
1069
- },
1070
- output: {
1071
- encoding: 'application/json',
1072
- schema: {
1073
- type: 'object',
1074
- required: ['did'],
1075
- properties: {
1076
- did: {
1077
- type: 'string',
1078
- format: 'did',
1079
- },
1080
- },
1081
- },
1082
- },
1083
- errors: [
1084
- {
1085
- name: 'HandleNotFound',
1086
- description: 'The resolution process confirmed that the handle does not resolve to any DID.',
1087
- },
1088
- ],
1089
- },
1090
- },
1091
- },
1092
- ComAtprotoIdentityResolveIdentity: {
1093
- lexicon: 1,
1094
- id: 'com.atproto.identity.resolveIdentity',
1095
- defs: {
1096
- main: {
1097
- type: 'query',
1098
- description: 'Resolves an identity (DID or Handle) to a full identity (DID document and verified handle).',
1099
- parameters: {
1100
- type: 'params',
1101
- required: ['identifier'],
1102
- properties: {
1103
- identifier: {
1104
- type: 'string',
1105
- format: 'at-identifier',
1106
- description: 'Handle or DID to resolve.',
1107
- },
1108
- },
1109
- },
1110
- output: {
1111
- encoding: 'application/json',
1112
- schema: {
1113
- type: 'ref',
1114
- ref: 'lex:com.atproto.identity.defs#identityInfo',
1115
- },
1116
- },
1117
- errors: [
1118
- {
1119
- name: 'HandleNotFound',
1120
- description: 'The resolution process confirmed that the handle does not resolve to any DID.',
1121
- },
1122
- {
1123
- name: 'DidNotFound',
1124
- description: 'The DID resolution process confirmed that there is no current DID.',
1125
- },
1126
- {
1127
- name: 'DidDeactivated',
1128
- description: 'The DID previously existed, but has been deactivated.',
1129
- },
1130
- ],
1131
- },
1132
- },
1133
- },
1134
- ComAtprotoIdentitySignPlcOperation: {
1135
- lexicon: 1,
1136
- id: 'com.atproto.identity.signPlcOperation',
1137
- defs: {
1138
- main: {
1139
- type: 'procedure',
1140
- description: "Signs a PLC operation to update some value(s) in the requesting DID's document.",
1141
- input: {
1142
- encoding: 'application/json',
1143
- schema: {
1144
- type: 'object',
1145
- properties: {
1146
- token: {
1147
- description: 'A token received through com.atproto.identity.requestPlcOperationSignature',
1148
- type: 'string',
1149
- },
1150
- rotationKeys: {
1151
- type: 'array',
1152
- items: {
1153
- type: 'string',
1154
- },
1155
- },
1156
- alsoKnownAs: {
1157
- type: 'array',
1158
- items: {
1159
- type: 'string',
1160
- },
1161
- },
1162
- verificationMethods: {
1163
- type: 'unknown',
1164
- },
1165
- services: {
1166
- type: 'unknown',
1167
- },
1168
- },
1169
- },
1170
- },
1171
- output: {
1172
- encoding: 'application/json',
1173
- schema: {
1174
- type: 'object',
1175
- required: ['operation'],
1176
- properties: {
1177
- operation: {
1178
- type: 'unknown',
1179
- description: 'A signed DID PLC operation.',
1180
- },
1181
- },
1182
- },
1183
- },
1184
- },
1185
- },
1186
- },
1187
- ComAtprotoIdentitySubmitPlcOperation: {
1188
- lexicon: 1,
1189
- id: 'com.atproto.identity.submitPlcOperation',
1190
- defs: {
1191
- main: {
1192
- type: 'procedure',
1193
- description: "Validates a PLC operation to ensure that it doesn't violate a service's constraints or get the identity into a bad state, then submits it to the PLC registry",
1194
- input: {
1195
- encoding: 'application/json',
1196
- schema: {
1197
- type: 'object',
1198
- required: ['operation'],
1199
- properties: {
1200
- operation: {
1201
- type: 'unknown',
1202
- },
1203
- },
1204
- },
1205
- },
1206
- },
1207
- },
1208
- },
1209
- ComAtprotoIdentityUpdateHandle: {
1210
- lexicon: 1,
1211
- id: 'com.atproto.identity.updateHandle',
1212
- defs: {
1213
- main: {
1214
- type: 'procedure',
1215
- description: "Updates the current account's handle. Verifies handle validity, and updates did:plc document if necessary. Implemented by PDS, and requires auth.",
1216
- input: {
1217
- encoding: 'application/json',
1218
- schema: {
1219
- type: 'object',
1220
- required: ['handle'],
1221
- properties: {
1222
- handle: {
1223
- type: 'string',
1224
- format: 'handle',
1225
- description: 'The new handle.',
1226
- },
1227
- },
1228
- },
1229
- },
1230
- },
1231
- },
1232
- },
1233
- ComAtprotoLabelDefs: {
1234
- lexicon: 1,
1235
- id: 'com.atproto.label.defs',
1236
- defs: {
1237
- label: {
1238
- type: 'object',
1239
- description: 'Metadata tag on an atproto resource (eg, repo or record).',
1240
- required: ['src', 'uri', 'val', 'cts'],
1241
- properties: {
1242
- ver: {
1243
- type: 'integer',
1244
- description: 'The AT Protocol version of the label object.',
1245
- },
1246
- src: {
1247
- type: 'string',
1248
- format: 'did',
1249
- description: 'DID of the actor who created this label.',
1250
- },
1251
- uri: {
1252
- type: 'string',
1253
- format: 'uri',
1254
- description: 'AT URI of the record, repository (account), or other resource that this label applies to.',
1255
- },
1256
- cid: {
1257
- type: 'string',
1258
- format: 'cid',
1259
- description: "Optionally, CID specifying the specific version of 'uri' resource this label applies to.",
1260
- },
1261
- val: {
1262
- type: 'string',
1263
- maxLength: 128,
1264
- description: 'The short string name of the value or type of this label.',
1265
- },
1266
- neg: {
1267
- type: 'boolean',
1268
- description: 'If true, this is a negation label, overwriting a previous label.',
1269
- },
1270
- cts: {
1271
- type: 'string',
1272
- format: 'datetime',
1273
- description: 'Timestamp when this label was created.',
1274
- },
1275
- exp: {
1276
- type: 'string',
1277
- format: 'datetime',
1278
- description: 'Timestamp at which this label expires (no longer applies).',
1279
- },
1280
- sig: {
1281
- type: 'bytes',
1282
- description: 'Signature of dag-cbor encoded label.',
1283
- },
1284
- },
1285
- },
1286
- selfLabels: {
1287
- type: 'object',
1288
- description: 'Metadata tags on an atproto record, published by the author within the record.',
1289
- required: ['values'],
1290
- properties: {
1291
- values: {
1292
- type: 'array',
1293
- items: {
1294
- type: 'ref',
1295
- ref: 'lex:com.atproto.label.defs#selfLabel',
1296
- },
1297
- maxLength: 10,
1298
- },
1299
- },
1300
- },
1301
- selfLabel: {
1302
- type: 'object',
1303
- description: 'Metadata tag on an atproto record, published by the author within the record. Note that schemas should use #selfLabels, not #selfLabel.',
1304
- required: ['val'],
1305
- properties: {
1306
- val: {
1307
- type: 'string',
1308
- maxLength: 128,
1309
- description: 'The short string name of the value or type of this label.',
1310
- },
1311
- },
1312
- },
1313
- labelValueDefinition: {
1314
- type: 'object',
1315
- description: 'Declares a label value and its expected interpretations and behaviors.',
1316
- required: ['identifier', 'severity', 'blurs', 'locales'],
1317
- properties: {
1318
- identifier: {
1319
- type: 'string',
1320
- description: "The value of the label being defined. Must only include lowercase ascii and the '-' character ([a-z-]+).",
1321
- maxLength: 100,
1322
- maxGraphemes: 100,
1323
- },
1324
- severity: {
1325
- type: 'string',
1326
- description: "How should a client visually convey this label? 'inform' means neutral and informational; 'alert' means negative and warning; 'none' means show nothing.",
1327
- knownValues: ['inform', 'alert', 'none'],
1328
- },
1329
- blurs: {
1330
- type: 'string',
1331
- description: "What should this label hide in the UI, if applied? 'content' hides all of the target; 'media' hides the images/video/audio; 'none' hides nothing.",
1332
- knownValues: ['content', 'media', 'none'],
1333
- },
1334
- defaultSetting: {
1335
- type: 'string',
1336
- description: 'The default setting for this label.',
1337
- knownValues: ['ignore', 'warn', 'hide'],
1338
- default: 'warn',
1339
- },
1340
- adultOnly: {
1341
- type: 'boolean',
1342
- description: 'Does the user need to have adult content enabled in order to configure this label?',
1343
- },
1344
- locales: {
1345
- type: 'array',
1346
- items: {
1347
- type: 'ref',
1348
- ref: 'lex:com.atproto.label.defs#labelValueDefinitionStrings',
1349
- },
1350
- },
1351
- },
1352
- },
1353
- labelValueDefinitionStrings: {
1354
- type: 'object',
1355
- description: 'Strings which describe the label in the UI, localized into a specific language.',
1356
- required: ['lang', 'name', 'description'],
1357
- properties: {
1358
- lang: {
1359
- type: 'string',
1360
- description: 'The code of the language these strings are written in.',
1361
- format: 'language',
1362
- },
1363
- name: {
1364
- type: 'string',
1365
- description: 'A short human-readable name for the label.',
1366
- maxGraphemes: 64,
1367
- maxLength: 640,
1368
- },
1369
- description: {
1370
- type: 'string',
1371
- description: 'A longer description of what the label means and why it might be applied.',
1372
- maxGraphemes: 10000,
1373
- maxLength: 100000,
1374
- },
1375
- },
1376
- },
1377
- labelValue: {
1378
- type: 'string',
1379
- knownValues: [
1380
- '!hide',
1381
- '!no-promote',
1382
- '!warn',
1383
- '!no-unauthenticated',
1384
- 'dmca-violation',
1385
- 'doxxing',
1386
- 'porn',
1387
- 'sexual',
1388
- 'nudity',
1389
- 'nsfl',
1390
- 'gore',
1391
- ],
1392
- },
1393
- },
1394
- },
1395
- ComAtprotoLabelQueryLabels: {
1396
- lexicon: 1,
1397
- id: 'com.atproto.label.queryLabels',
1398
- defs: {
1399
- main: {
1400
- type: 'query',
1401
- description: 'Find labels relevant to the provided AT-URI patterns. Public endpoint for moderation services, though may return different or additional results with auth.',
1402
- parameters: {
1403
- type: 'params',
1404
- required: ['uriPatterns'],
1405
- properties: {
1406
- uriPatterns: {
1407
- type: 'array',
1408
- items: {
1409
- type: 'string',
1410
- },
1411
- description: "List of AT URI patterns to match (boolean 'OR'). Each may be a prefix (ending with '*'; will match inclusive of the string leading to '*'), or a full URI.",
1412
- },
1413
- sources: {
1414
- type: 'array',
1415
- items: {
1416
- type: 'string',
1417
- format: 'did',
1418
- },
1419
- description: 'Optional list of label sources (DIDs) to filter on.',
1420
- },
1421
- limit: {
1422
- type: 'integer',
1423
- minimum: 1,
1424
- maximum: 250,
1425
- default: 50,
1426
- },
1427
- cursor: {
1428
- type: 'string',
1429
- },
1430
- },
1431
- },
1432
- output: {
1433
- encoding: 'application/json',
1434
- schema: {
1435
- type: 'object',
1436
- required: ['labels'],
1437
- properties: {
1438
- cursor: {
1439
- type: 'string',
1440
- },
1441
- labels: {
1442
- type: 'array',
1443
- items: {
1444
- type: 'ref',
1445
- ref: 'lex:com.atproto.label.defs#label',
1446
- },
1447
- },
1448
- },
1449
- },
1450
- },
1451
- },
1452
- },
1453
- },
1454
- ComAtprotoLabelSubscribeLabels: {
1455
- lexicon: 1,
1456
- id: 'com.atproto.label.subscribeLabels',
1457
- defs: {
1458
- main: {
1459
- type: 'subscription',
1460
- description: 'Subscribe to stream of labels (and negations). Public endpoint implemented by mod services. Uses same sequencing scheme as repo event stream.',
1461
- parameters: {
1462
- type: 'params',
1463
- properties: {
1464
- cursor: {
1465
- type: 'integer',
1466
- description: 'The last known event seq number to backfill from.',
1467
- },
1468
- },
1469
- },
1470
- message: {
1471
- schema: {
1472
- type: 'union',
1473
- refs: [
1474
- 'lex:com.atproto.label.subscribeLabels#labels',
1475
- 'lex:com.atproto.label.subscribeLabels#info',
1476
- ],
1477
- },
1478
- },
1479
- errors: [
1480
- {
1481
- name: 'FutureCursor',
1482
- },
1483
- ],
1484
- },
1485
- labels: {
1486
- type: 'object',
1487
- required: ['seq', 'labels'],
1488
- properties: {
1489
- seq: {
1490
- type: 'integer',
1491
- },
1492
- labels: {
1493
- type: 'array',
1494
- items: {
1495
- type: 'ref',
1496
- ref: 'lex:com.atproto.label.defs#label',
1497
- },
1498
- },
1499
- },
1500
- },
1501
- info: {
1502
- type: 'object',
1503
- required: ['name'],
1504
- properties: {
1505
- name: {
1506
- type: 'string',
1507
- knownValues: ['OutdatedCursor'],
1508
- },
1509
- message: {
1510
- type: 'string',
1511
- },
1512
- },
1513
- },
1514
- },
1515
- },
1516
- ComAtprotoLexiconSchema: {
1517
- lexicon: 1,
1518
- id: 'com.atproto.lexicon.schema',
1519
- defs: {
1520
- main: {
1521
- type: 'record',
1522
- description: "Representation of Lexicon schemas themselves, when published as atproto records. Note that the schema language is not defined in Lexicon; this meta schema currently only includes a single version field ('lexicon'). See the atproto specifications for description of the other expected top-level fields ('id', 'defs', etc).",
1523
- key: 'nsid',
1524
- record: {
1525
- type: 'object',
1526
- required: ['lexicon'],
1527
- properties: {
1528
- lexicon: {
1529
- type: 'integer',
1530
- description: "Indicates the 'version' of the Lexicon language. Must be '1' for the current atproto/Lexicon schema system.",
1531
- },
1532
- },
1533
- },
1534
- },
1535
- },
1536
- },
1537
- ComAtprotoModerationCreateReport: {
1538
- lexicon: 1,
1539
- id: 'com.atproto.moderation.createReport',
1540
- defs: {
1541
- main: {
1542
- type: 'procedure',
1543
- description: 'Submit a moderation report regarding an atproto account or record. Implemented by moderation services (with PDS proxying), and requires auth.',
1544
- input: {
1545
- encoding: 'application/json',
1546
- schema: {
1547
- type: 'object',
1548
- required: ['reasonType', 'subject'],
1549
- properties: {
1550
- reasonType: {
1551
- type: 'ref',
1552
- description: 'Indicates the broad category of violation the report is for.',
1553
- ref: 'lex:com.atproto.moderation.defs#reasonType',
1554
- },
1555
- reason: {
1556
- type: 'string',
1557
- maxGraphemes: 2000,
1558
- maxLength: 20000,
1559
- description: 'Additional context about the content and violation.',
1560
- },
1561
- subject: {
1562
- type: 'union',
1563
- refs: [
1564
- 'lex:com.atproto.admin.defs#repoRef',
1565
- 'lex:com.atproto.repo.strongRef',
1566
- ],
1567
- },
1568
- },
1569
- },
1570
- },
1571
- output: {
1572
- encoding: 'application/json',
1573
- schema: {
1574
- type: 'object',
1575
- required: [
1576
- 'id',
1577
- 'reasonType',
1578
- 'subject',
1579
- 'reportedBy',
1580
- 'createdAt',
1581
- ],
1582
- properties: {
1583
- id: {
1584
- type: 'integer',
1585
- },
1586
- reasonType: {
1587
- type: 'ref',
1588
- ref: 'lex:com.atproto.moderation.defs#reasonType',
1589
- },
1590
- reason: {
1591
- type: 'string',
1592
- maxGraphemes: 2000,
1593
- maxLength: 20000,
1594
- },
1595
- subject: {
1596
- type: 'union',
1597
- refs: [
1598
- 'lex:com.atproto.admin.defs#repoRef',
1599
- 'lex:com.atproto.repo.strongRef',
1600
- ],
1601
- },
1602
- reportedBy: {
1603
- type: 'string',
1604
- format: 'did',
1605
- },
1606
- createdAt: {
1607
- type: 'string',
1608
- format: 'datetime',
1609
- },
1610
- },
1611
- },
1612
- },
1613
- },
1614
- },
1615
- },
1616
- ComAtprotoModerationDefs: {
1617
- lexicon: 1,
1618
- id: 'com.atproto.moderation.defs',
1619
- defs: {
1620
- reasonType: {
1621
- type: 'string',
1622
- knownValues: [
1623
- 'com.atproto.moderation.defs#reasonSpam',
1624
- 'com.atproto.moderation.defs#reasonViolation',
1625
- 'com.atproto.moderation.defs#reasonMisleading',
1626
- 'com.atproto.moderation.defs#reasonSexual',
1627
- 'com.atproto.moderation.defs#reasonRude',
1628
- 'com.atproto.moderation.defs#reasonOther',
1629
- 'com.atproto.moderation.defs#reasonAppeal',
1630
- ],
1631
- },
1632
- reasonSpam: {
1633
- type: 'token',
1634
- description: 'Spam: frequent unwanted promotion, replies, mentions',
1635
- },
1636
- reasonViolation: {
1637
- type: 'token',
1638
- description: 'Direct violation of server rules, laws, terms of service',
1639
- },
1640
- reasonMisleading: {
1641
- type: 'token',
1642
- description: 'Misleading identity, affiliation, or content',
1643
- },
1644
- reasonSexual: {
1645
- type: 'token',
1646
- description: 'Unwanted or mislabeled sexual content',
1647
- },
1648
- reasonRude: {
1649
- type: 'token',
1650
- description: 'Rude, harassing, explicit, or otherwise unwelcoming behavior',
1651
- },
1652
- reasonOther: {
1653
- type: 'token',
1654
- description: 'Other: reports not falling under another report category',
1655
- },
1656
- reasonAppeal: {
1657
- type: 'token',
1658
- description: 'Appeal: appeal a previously taken moderation action',
1659
- },
1660
- subjectType: {
1661
- type: 'string',
1662
- description: 'Tag describing a type of subject that might be reported.',
1663
- knownValues: ['account', 'record', 'chat'],
1664
- },
1665
- },
1666
- },
1667
- ComAtprotoRepoApplyWrites: {
1668
- lexicon: 1,
1669
- id: 'com.atproto.repo.applyWrites',
1670
- defs: {
1671
- main: {
1672
- type: 'procedure',
1673
- description: 'Apply a batch transaction of repository creates, updates, and deletes. Requires auth, implemented by PDS.',
1674
- input: {
1675
- encoding: 'application/json',
1676
- schema: {
1677
- type: 'object',
1678
- required: ['repo', 'writes'],
1679
- properties: {
1680
- repo: {
1681
- type: 'string',
1682
- format: 'at-identifier',
1683
- description: 'The handle or DID of the repo (aka, current account).',
1684
- },
1685
- validate: {
1686
- type: 'boolean',
1687
- description: "Can be set to 'false' to skip Lexicon schema validation of record data across all operations, 'true' to require it, or leave unset to validate only for known Lexicons.",
1688
- },
1689
- writes: {
1690
- type: 'array',
1691
- items: {
1692
- type: 'union',
1693
- refs: [
1694
- 'lex:com.atproto.repo.applyWrites#create',
1695
- 'lex:com.atproto.repo.applyWrites#update',
1696
- 'lex:com.atproto.repo.applyWrites#delete',
1697
- ],
1698
- closed: true,
1699
- },
1700
- },
1701
- swapCommit: {
1702
- type: 'string',
1703
- description: 'If provided, the entire operation will fail if the current repo commit CID does not match this value. Used to prevent conflicting repo mutations.',
1704
- format: 'cid',
1705
- },
1706
- },
1707
- },
1708
- },
1709
- output: {
1710
- encoding: 'application/json',
1711
- schema: {
1712
- type: 'object',
1713
- required: [],
1714
- properties: {
1715
- commit: {
1716
- type: 'ref',
1717
- ref: 'lex:com.atproto.repo.defs#commitMeta',
1718
- },
1719
- results: {
1720
- type: 'array',
1721
- items: {
1722
- type: 'union',
1723
- refs: [
1724
- 'lex:com.atproto.repo.applyWrites#createResult',
1725
- 'lex:com.atproto.repo.applyWrites#updateResult',
1726
- 'lex:com.atproto.repo.applyWrites#deleteResult',
1727
- ],
1728
- closed: true,
1729
- },
1730
- },
1731
- },
1732
- },
1733
- },
1734
- errors: [
1735
- {
1736
- name: 'InvalidSwap',
1737
- description: "Indicates that the 'swapCommit' parameter did not match current commit.",
1738
- },
1739
- ],
1740
- },
1741
- create: {
1742
- type: 'object',
1743
- description: 'Operation which creates a new record.',
1744
- required: ['collection', 'value'],
1745
- properties: {
1746
- collection: {
1747
- type: 'string',
1748
- format: 'nsid',
1749
- },
1750
- rkey: {
1751
- type: 'string',
1752
- maxLength: 512,
1753
- format: 'record-key',
1754
- description: 'NOTE: maxLength is redundant with record-key format. Keeping it temporarily to ensure backwards compatibility.',
1755
- },
1756
- value: {
1757
- type: 'unknown',
1758
- },
1759
- },
1760
- },
1761
- update: {
1762
- type: 'object',
1763
- description: 'Operation which updates an existing record.',
1764
- required: ['collection', 'rkey', 'value'],
1765
- properties: {
1766
- collection: {
1767
- type: 'string',
1768
- format: 'nsid',
1769
- },
1770
- rkey: {
1771
- type: 'string',
1772
- format: 'record-key',
1773
- },
1774
- value: {
1775
- type: 'unknown',
1776
- },
1777
- },
1778
- },
1779
- delete: {
1780
- type: 'object',
1781
- description: 'Operation which deletes an existing record.',
1782
- required: ['collection', 'rkey'],
1783
- properties: {
1784
- collection: {
1785
- type: 'string',
1786
- format: 'nsid',
1787
- },
1788
- rkey: {
1789
- type: 'string',
1790
- format: 'record-key',
1791
- },
1792
- },
1793
- },
1794
- createResult: {
1795
- type: 'object',
1796
- required: ['uri', 'cid'],
1797
- properties: {
1798
- uri: {
1799
- type: 'string',
1800
- format: 'at-uri',
1801
- },
1802
- cid: {
1803
- type: 'string',
1804
- format: 'cid',
1805
- },
1806
- validationStatus: {
1807
- type: 'string',
1808
- knownValues: ['valid', 'unknown'],
1809
- },
1810
- },
1811
- },
1812
- updateResult: {
1813
- type: 'object',
1814
- required: ['uri', 'cid'],
1815
- properties: {
1816
- uri: {
1817
- type: 'string',
1818
- format: 'at-uri',
1819
- },
1820
- cid: {
1821
- type: 'string',
1822
- format: 'cid',
1823
- },
1824
- validationStatus: {
1825
- type: 'string',
1826
- knownValues: ['valid', 'unknown'],
1827
- },
1828
- },
1829
- },
1830
- deleteResult: {
1831
- type: 'object',
1832
- required: [],
1833
- properties: {},
1834
- },
1835
- },
1836
- },
1837
- ComAtprotoRepoCreateRecord: {
1838
- lexicon: 1,
1839
- id: 'com.atproto.repo.createRecord',
1840
- defs: {
1841
- main: {
1842
- type: 'procedure',
1843
- description: 'Create a single new repository record. Requires auth, implemented by PDS.',
1844
- input: {
1845
- encoding: 'application/json',
1846
- schema: {
1847
- type: 'object',
1848
- required: ['repo', 'collection', 'record'],
1849
- properties: {
1850
- repo: {
1851
- type: 'string',
1852
- format: 'at-identifier',
1853
- description: 'The handle or DID of the repo (aka, current account).',
1854
- },
1855
- collection: {
1856
- type: 'string',
1857
- format: 'nsid',
1858
- description: 'The NSID of the record collection.',
1859
- },
1860
- rkey: {
1861
- type: 'string',
1862
- format: 'record-key',
1863
- description: 'The Record Key.',
1864
- maxLength: 512,
1865
- },
1866
- validate: {
1867
- type: 'boolean',
1868
- description: "Can be set to 'false' to skip Lexicon schema validation of record data, 'true' to require it, or leave unset to validate only for known Lexicons.",
1869
- },
1870
- record: {
1871
- type: 'unknown',
1872
- description: 'The record itself. Must contain a $type field.',
1873
- },
1874
- swapCommit: {
1875
- type: 'string',
1876
- format: 'cid',
1877
- description: 'Compare and swap with the previous commit by CID.',
1878
- },
1879
- },
1880
- },
1881
- },
1882
- output: {
1883
- encoding: 'application/json',
1884
- schema: {
1885
- type: 'object',
1886
- required: ['uri', 'cid'],
1887
- properties: {
1888
- uri: {
1889
- type: 'string',
1890
- format: 'at-uri',
1891
- },
1892
- cid: {
1893
- type: 'string',
1894
- format: 'cid',
1895
- },
1896
- commit: {
1897
- type: 'ref',
1898
- ref: 'lex:com.atproto.repo.defs#commitMeta',
1899
- },
1900
- validationStatus: {
1901
- type: 'string',
1902
- knownValues: ['valid', 'unknown'],
1903
- },
1904
- },
1905
- },
1906
- },
1907
- errors: [
1908
- {
1909
- name: 'InvalidSwap',
1910
- description: "Indicates that 'swapCommit' didn't match current repo commit.",
1911
- },
1912
- ],
1913
- },
1914
- },
1915
- },
1916
- ComAtprotoRepoDefs: {
1917
- lexicon: 1,
1918
- id: 'com.atproto.repo.defs',
1919
- defs: {
1920
- commitMeta: {
1921
- type: 'object',
1922
- required: ['cid', 'rev'],
1923
- properties: {
1924
- cid: {
1925
- type: 'string',
1926
- format: 'cid',
1927
- },
1928
- rev: {
1929
- type: 'string',
1930
- format: 'tid',
1931
- },
1932
- },
1933
- },
1934
- },
1935
- },
1936
- ComAtprotoRepoDeleteRecord: {
1937
- lexicon: 1,
1938
- id: 'com.atproto.repo.deleteRecord',
1939
- defs: {
1940
- main: {
1941
- type: 'procedure',
1942
- description: "Delete a repository record, or ensure it doesn't exist. Requires auth, implemented by PDS.",
1943
- input: {
1944
- encoding: 'application/json',
1945
- schema: {
1946
- type: 'object',
1947
- required: ['repo', 'collection', 'rkey'],
1948
- properties: {
1949
- repo: {
1950
- type: 'string',
1951
- format: 'at-identifier',
1952
- description: 'The handle or DID of the repo (aka, current account).',
1953
- },
1954
- collection: {
1955
- type: 'string',
1956
- format: 'nsid',
1957
- description: 'The NSID of the record collection.',
1958
- },
1959
- rkey: {
1960
- type: 'string',
1961
- format: 'record-key',
1962
- description: 'The Record Key.',
1963
- },
1964
- swapRecord: {
1965
- type: 'string',
1966
- format: 'cid',
1967
- description: 'Compare and swap with the previous record by CID.',
1968
- },
1969
- swapCommit: {
1970
- type: 'string',
1971
- format: 'cid',
1972
- description: 'Compare and swap with the previous commit by CID.',
1973
- },
1974
- },
1975
- },
1976
- },
1977
- output: {
1978
- encoding: 'application/json',
1979
- schema: {
1980
- type: 'object',
1981
- properties: {
1982
- commit: {
1983
- type: 'ref',
1984
- ref: 'lex:com.atproto.repo.defs#commitMeta',
1985
- },
1986
- },
1987
- },
1988
- },
1989
- errors: [
1990
- {
1991
- name: 'InvalidSwap',
1992
- },
1993
- ],
1994
- },
1995
- },
1996
- },
1997
- ComAtprotoRepoDescribeRepo: {
1998
- lexicon: 1,
1999
- id: 'com.atproto.repo.describeRepo',
2000
- defs: {
2001
- main: {
2002
- type: 'query',
2003
- description: 'Get information about an account and repository, including the list of collections. Does not require auth.',
2004
- parameters: {
2005
- type: 'params',
2006
- required: ['repo'],
2007
- properties: {
2008
- repo: {
2009
- type: 'string',
2010
- format: 'at-identifier',
2011
- description: 'The handle or DID of the repo.',
2012
- },
2013
- },
2014
- },
2015
- output: {
2016
- encoding: 'application/json',
2017
- schema: {
2018
- type: 'object',
2019
- required: [
2020
- 'handle',
2021
- 'did',
2022
- 'didDoc',
2023
- 'collections',
2024
- 'handleIsCorrect',
2025
- ],
2026
- properties: {
2027
- handle: {
2028
- type: 'string',
2029
- format: 'handle',
2030
- },
2031
- did: {
2032
- type: 'string',
2033
- format: 'did',
2034
- },
2035
- didDoc: {
2036
- type: 'unknown',
2037
- description: 'The complete DID document for this account.',
2038
- },
2039
- collections: {
2040
- type: 'array',
2041
- description: 'List of all the collections (NSIDs) for which this repo contains at least one record.',
2042
- items: {
2043
- type: 'string',
2044
- format: 'nsid',
2045
- },
2046
- },
2047
- handleIsCorrect: {
2048
- type: 'boolean',
2049
- description: 'Indicates if handle is currently valid (resolves bi-directionally)',
2050
- },
2051
- },
2052
- },
2053
- },
2054
- },
2055
- },
2056
- },
2057
- ComAtprotoRepoGetRecord: {
2058
- lexicon: 1,
2059
- id: 'com.atproto.repo.getRecord',
2060
- defs: {
2061
- main: {
2062
- type: 'query',
2063
- description: 'Get a single record from a repository. Does not require auth.',
2064
- parameters: {
2065
- type: 'params',
2066
- required: ['repo', 'collection', 'rkey'],
2067
- properties: {
2068
- repo: {
2069
- type: 'string',
2070
- format: 'at-identifier',
2071
- description: 'The handle or DID of the repo.',
2072
- },
2073
- collection: {
2074
- type: 'string',
2075
- format: 'nsid',
2076
- description: 'The NSID of the record collection.',
2077
- },
2078
- rkey: {
2079
- type: 'string',
2080
- description: 'The Record Key.',
2081
- format: 'record-key',
2082
- },
2083
- cid: {
2084
- type: 'string',
2085
- format: 'cid',
2086
- description: 'The CID of the version of the record. If not specified, then return the most recent version.',
2087
- },
2088
- },
2089
- },
2090
- output: {
2091
- encoding: 'application/json',
2092
- schema: {
2093
- type: 'object',
2094
- required: ['uri', 'value'],
2095
- properties: {
2096
- uri: {
2097
- type: 'string',
2098
- format: 'at-uri',
2099
- },
2100
- cid: {
2101
- type: 'string',
2102
- format: 'cid',
2103
- },
2104
- value: {
2105
- type: 'unknown',
2106
- },
2107
- },
2108
- },
2109
- },
2110
- errors: [
2111
- {
2112
- name: 'RecordNotFound',
2113
- },
2114
- ],
2115
- },
2116
- },
2117
- },
2118
- ComAtprotoRepoImportRepo: {
2119
- lexicon: 1,
2120
- id: 'com.atproto.repo.importRepo',
2121
- defs: {
2122
- main: {
2123
- type: 'procedure',
2124
- description: 'Import a repo in the form of a CAR file. Requires Content-Length HTTP header to be set.',
2125
- input: {
2126
- encoding: 'application/vnd.ipld.car',
2127
- },
2128
- },
2129
- },
2130
- },
2131
- ComAtprotoRepoListMissingBlobs: {
2132
- lexicon: 1,
2133
- id: 'com.atproto.repo.listMissingBlobs',
2134
- defs: {
2135
- main: {
2136
- type: 'query',
2137
- description: 'Returns a list of missing blobs for the requesting account. Intended to be used in the account migration flow.',
2138
- parameters: {
2139
- type: 'params',
2140
- properties: {
2141
- limit: {
2142
- type: 'integer',
2143
- minimum: 1,
2144
- maximum: 1000,
2145
- default: 500,
2146
- },
2147
- cursor: {
2148
- type: 'string',
2149
- },
2150
- },
2151
- },
2152
- output: {
2153
- encoding: 'application/json',
2154
- schema: {
2155
- type: 'object',
2156
- required: ['blobs'],
2157
- properties: {
2158
- cursor: {
2159
- type: 'string',
2160
- },
2161
- blobs: {
2162
- type: 'array',
2163
- items: {
2164
- type: 'ref',
2165
- ref: 'lex:com.atproto.repo.listMissingBlobs#recordBlob',
2166
- },
2167
- },
2168
- },
2169
- },
2170
- },
2171
- },
2172
- recordBlob: {
2173
- type: 'object',
2174
- required: ['cid', 'recordUri'],
2175
- properties: {
2176
- cid: {
2177
- type: 'string',
2178
- format: 'cid',
2179
- },
2180
- recordUri: {
2181
- type: 'string',
2182
- format: 'at-uri',
2183
- },
2184
- },
2185
- },
2186
- },
2187
- },
2188
- ComAtprotoRepoListRecords: {
2189
- lexicon: 1,
2190
- id: 'com.atproto.repo.listRecords',
2191
- defs: {
2192
- main: {
2193
- type: 'query',
2194
- description: 'List a range of records in a repository, matching a specific collection. Does not require auth.',
2195
- parameters: {
2196
- type: 'params',
2197
- required: ['repo', 'collection'],
2198
- properties: {
2199
- repo: {
2200
- type: 'string',
2201
- format: 'at-identifier',
2202
- description: 'The handle or DID of the repo.',
2203
- },
2204
- collection: {
2205
- type: 'string',
2206
- format: 'nsid',
2207
- description: 'The NSID of the record type.',
2208
- },
2209
- limit: {
2210
- type: 'integer',
2211
- minimum: 1,
2212
- maximum: 100,
2213
- default: 50,
2214
- description: 'The number of records to return.',
2215
- },
2216
- cursor: {
2217
- type: 'string',
2218
- },
2219
- reverse: {
2220
- type: 'boolean',
2221
- description: 'Flag to reverse the order of the returned records.',
2222
- },
2223
- },
2224
- },
2225
- output: {
2226
- encoding: 'application/json',
2227
- schema: {
2228
- type: 'object',
2229
- required: ['records'],
2230
- properties: {
2231
- cursor: {
2232
- type: 'string',
2233
- },
2234
- records: {
2235
- type: 'array',
2236
- items: {
2237
- type: 'ref',
2238
- ref: 'lex:com.atproto.repo.listRecords#record',
2239
- },
2240
- },
2241
- },
2242
- },
2243
- },
2244
- },
2245
- record: {
2246
- type: 'object',
2247
- required: ['uri', 'cid', 'value'],
2248
- properties: {
2249
- uri: {
2250
- type: 'string',
2251
- format: 'at-uri',
2252
- },
2253
- cid: {
2254
- type: 'string',
2255
- format: 'cid',
2256
- },
2257
- value: {
2258
- type: 'unknown',
2259
- },
2260
- },
2261
- },
2262
- },
2263
- },
2264
- ComAtprotoRepoPutRecord: {
2265
- lexicon: 1,
2266
- id: 'com.atproto.repo.putRecord',
2267
- defs: {
2268
- main: {
2269
- type: 'procedure',
2270
- description: 'Write a repository record, creating or updating it as needed. Requires auth, implemented by PDS.',
2271
- input: {
2272
- encoding: 'application/json',
2273
- schema: {
2274
- type: 'object',
2275
- required: ['repo', 'collection', 'rkey', 'record'],
2276
- nullable: ['swapRecord'],
2277
- properties: {
2278
- repo: {
2279
- type: 'string',
2280
- format: 'at-identifier',
2281
- description: 'The handle or DID of the repo (aka, current account).',
2282
- },
2283
- collection: {
2284
- type: 'string',
2285
- format: 'nsid',
2286
- description: 'The NSID of the record collection.',
2287
- },
2288
- rkey: {
2289
- type: 'string',
2290
- format: 'record-key',
2291
- description: 'The Record Key.',
2292
- maxLength: 512,
2293
- },
2294
- validate: {
2295
- type: 'boolean',
2296
- description: "Can be set to 'false' to skip Lexicon schema validation of record data, 'true' to require it, or leave unset to validate only for known Lexicons.",
2297
- },
2298
- record: {
2299
- type: 'unknown',
2300
- description: 'The record to write.',
2301
- },
2302
- swapRecord: {
2303
- type: 'string',
2304
- format: 'cid',
2305
- description: 'Compare and swap with the previous record by CID. WARNING: nullable and optional field; may cause problems with golang implementation',
2306
- },
2307
- swapCommit: {
2308
- type: 'string',
2309
- format: 'cid',
2310
- description: 'Compare and swap with the previous commit by CID.',
2311
- },
2312
- },
2313
- },
2314
- },
2315
- output: {
2316
- encoding: 'application/json',
2317
- schema: {
2318
- type: 'object',
2319
- required: ['uri', 'cid'],
2320
- properties: {
2321
- uri: {
2322
- type: 'string',
2323
- format: 'at-uri',
2324
- },
2325
- cid: {
2326
- type: 'string',
2327
- format: 'cid',
2328
- },
2329
- commit: {
2330
- type: 'ref',
2331
- ref: 'lex:com.atproto.repo.defs#commitMeta',
2332
- },
2333
- validationStatus: {
2334
- type: 'string',
2335
- knownValues: ['valid', 'unknown'],
2336
- },
2337
- },
2338
- },
2339
- },
2340
- errors: [
2341
- {
2342
- name: 'InvalidSwap',
2343
- },
2344
- ],
2345
- },
2346
- },
2347
- },
2348
- ComAtprotoRepoStrongRef: {
2349
- lexicon: 1,
2350
- id: 'com.atproto.repo.strongRef',
2351
- description: 'A URI with a content-hash fingerprint.',
2352
- defs: {
2353
- main: {
2354
- type: 'object',
2355
- required: ['uri', 'cid'],
2356
- properties: {
2357
- uri: {
2358
- type: 'string',
2359
- format: 'at-uri',
2360
- },
2361
- cid: {
2362
- type: 'string',
2363
- format: 'cid',
2364
- },
2365
- },
2366
- },
2367
- },
2368
- },
2369
- ComAtprotoRepoUploadBlob: {
2370
- lexicon: 1,
2371
- id: 'com.atproto.repo.uploadBlob',
2372
- defs: {
2373
- main: {
2374
- type: 'procedure',
2375
- description: 'Upload a new blob, to be referenced from a repository record. The blob will be deleted if it is not referenced within a time window (eg, minutes). Blob restrictions (mimetype, size, etc) are enforced when the reference is created. Requires auth, implemented by PDS.',
2376
- input: {
2377
- encoding: '*/*',
2378
- },
2379
- output: {
2380
- encoding: 'application/json',
2381
- schema: {
2382
- type: 'object',
2383
- required: ['blob'],
2384
- properties: {
2385
- blob: {
2386
- type: 'blob',
2387
- },
2388
- },
2389
- },
2390
- },
2391
- },
2392
- },
2393
- },
2394
- ComAtprotoServerActivateAccount: {
2395
- lexicon: 1,
2396
- id: 'com.atproto.server.activateAccount',
2397
- defs: {
2398
- main: {
2399
- type: 'procedure',
2400
- description: "Activates a currently deactivated account. Used to finalize account migration after the account's repo is imported and identity is setup.",
2401
- },
2402
- },
2403
- },
2404
- ComAtprotoServerCheckAccountStatus: {
2405
- lexicon: 1,
2406
- id: 'com.atproto.server.checkAccountStatus',
2407
- defs: {
2408
- main: {
2409
- type: 'query',
2410
- description: 'Returns the status of an account, especially as pertaining to import or recovery. Can be called many times over the course of an account migration. Requires auth and can only be called pertaining to oneself.',
2411
- output: {
2412
- encoding: 'application/json',
2413
- schema: {
2414
- type: 'object',
2415
- required: [
2416
- 'activated',
2417
- 'validDid',
2418
- 'repoCommit',
2419
- 'repoRev',
2420
- 'repoBlocks',
2421
- 'indexedRecords',
2422
- 'privateStateValues',
2423
- 'expectedBlobs',
2424
- 'importedBlobs',
2425
- ],
2426
- properties: {
2427
- activated: {
2428
- type: 'boolean',
2429
- },
2430
- validDid: {
2431
- type: 'boolean',
2432
- },
2433
- repoCommit: {
2434
- type: 'string',
2435
- format: 'cid',
2436
- },
2437
- repoRev: {
2438
- type: 'string',
2439
- },
2440
- repoBlocks: {
2441
- type: 'integer',
2442
- },
2443
- indexedRecords: {
2444
- type: 'integer',
2445
- },
2446
- privateStateValues: {
2447
- type: 'integer',
2448
- },
2449
- expectedBlobs: {
2450
- type: 'integer',
2451
- },
2452
- importedBlobs: {
2453
- type: 'integer',
2454
- },
2455
- },
2456
- },
2457
- },
2458
- },
2459
- },
2460
- },
2461
- ComAtprotoServerConfirmEmail: {
2462
- lexicon: 1,
2463
- id: 'com.atproto.server.confirmEmail',
2464
- defs: {
2465
- main: {
2466
- type: 'procedure',
2467
- description: 'Confirm an email using a token from com.atproto.server.requestEmailConfirmation.',
2468
- input: {
2469
- encoding: 'application/json',
2470
- schema: {
2471
- type: 'object',
2472
- required: ['email', 'token'],
2473
- properties: {
2474
- email: {
2475
- type: 'string',
2476
- },
2477
- token: {
2478
- type: 'string',
2479
- },
2480
- },
2481
- },
2482
- },
2483
- errors: [
2484
- {
2485
- name: 'AccountNotFound',
2486
- },
2487
- {
2488
- name: 'ExpiredToken',
2489
- },
2490
- {
2491
- name: 'InvalidToken',
2492
- },
2493
- {
2494
- name: 'InvalidEmail',
2495
- },
2496
- ],
2497
- },
2498
- },
2499
- },
2500
- ComAtprotoServerCreateAccount: {
2501
- lexicon: 1,
2502
- id: 'com.atproto.server.createAccount',
2503
- defs: {
2504
- main: {
2505
- type: 'procedure',
2506
- description: 'Create an account. Implemented by PDS.',
2507
- input: {
2508
- encoding: 'application/json',
2509
- schema: {
2510
- type: 'object',
2511
- required: ['handle'],
2512
- properties: {
2513
- email: {
2514
- type: 'string',
2515
- },
2516
- handle: {
2517
- type: 'string',
2518
- format: 'handle',
2519
- description: 'Requested handle for the account.',
2520
- },
2521
- did: {
2522
- type: 'string',
2523
- format: 'did',
2524
- description: 'Pre-existing atproto DID, being imported to a new account.',
2525
- },
2526
- inviteCode: {
2527
- type: 'string',
2528
- },
2529
- verificationCode: {
2530
- type: 'string',
2531
- },
2532
- verificationPhone: {
2533
- type: 'string',
2534
- },
2535
- password: {
2536
- type: 'string',
2537
- description: 'Initial account password. May need to meet instance-specific password strength requirements.',
2538
- },
2539
- recoveryKey: {
2540
- type: 'string',
2541
- description: 'DID PLC rotation key (aka, recovery key) to be included in PLC creation operation.',
2542
- },
2543
- plcOp: {
2544
- type: 'unknown',
2545
- description: 'A signed DID PLC operation to be submitted as part of importing an existing account to this instance. NOTE: this optional field may be updated when full account migration is implemented.',
2546
- },
2547
- },
2548
- },
2549
- },
2550
- output: {
2551
- encoding: 'application/json',
2552
- schema: {
2553
- type: 'object',
2554
- description: 'Account login session returned on successful account creation.',
2555
- required: ['accessJwt', 'refreshJwt', 'handle', 'did'],
2556
- properties: {
2557
- accessJwt: {
2558
- type: 'string',
2559
- },
2560
- refreshJwt: {
2561
- type: 'string',
2562
- },
2563
- handle: {
2564
- type: 'string',
2565
- format: 'handle',
2566
- },
2567
- did: {
2568
- type: 'string',
2569
- format: 'did',
2570
- description: 'The DID of the new account.',
2571
- },
2572
- didDoc: {
2573
- type: 'unknown',
2574
- description: 'Complete DID document.',
2575
- },
2576
- },
2577
- },
2578
- },
2579
- errors: [
2580
- {
2581
- name: 'InvalidHandle',
2582
- },
2583
- {
2584
- name: 'InvalidPassword',
2585
- },
2586
- {
2587
- name: 'InvalidInviteCode',
2588
- },
2589
- {
2590
- name: 'HandleNotAvailable',
2591
- },
2592
- {
2593
- name: 'UnsupportedDomain',
2594
- },
2595
- {
2596
- name: 'UnresolvableDid',
2597
- },
2598
- {
2599
- name: 'IncompatibleDidDoc',
2600
- },
2601
- ],
2602
- },
2603
- },
2604
- },
2605
- ComAtprotoServerCreateAppPassword: {
2606
- lexicon: 1,
2607
- id: 'com.atproto.server.createAppPassword',
2608
- defs: {
2609
- main: {
2610
- type: 'procedure',
2611
- description: 'Create an App Password.',
2612
- input: {
2613
- encoding: 'application/json',
2614
- schema: {
2615
- type: 'object',
2616
- required: ['name'],
2617
- properties: {
2618
- name: {
2619
- type: 'string',
2620
- description: 'A short name for the App Password, to help distinguish them.',
2621
- },
2622
- privileged: {
2623
- type: 'boolean',
2624
- description: "If an app password has 'privileged' access to possibly sensitive account state. Meant for use with trusted clients.",
2625
- },
2626
- },
2627
- },
2628
- },
2629
- output: {
2630
- encoding: 'application/json',
2631
- schema: {
2632
- type: 'ref',
2633
- ref: 'lex:com.atproto.server.createAppPassword#appPassword',
2634
- },
2635
- },
2636
- errors: [
2637
- {
2638
- name: 'AccountTakedown',
2639
- },
2640
- ],
2641
- },
2642
- appPassword: {
2643
- type: 'object',
2644
- required: ['name', 'password', 'createdAt'],
2645
- properties: {
2646
- name: {
2647
- type: 'string',
2648
- },
2649
- password: {
2650
- type: 'string',
2651
- },
2652
- createdAt: {
2653
- type: 'string',
2654
- format: 'datetime',
2655
- },
2656
- privileged: {
2657
- type: 'boolean',
2658
- },
2659
- },
2660
- },
2661
- },
2662
- },
2663
- ComAtprotoServerCreateInviteCode: {
2664
- lexicon: 1,
2665
- id: 'com.atproto.server.createInviteCode',
2666
- defs: {
2667
- main: {
2668
- type: 'procedure',
2669
- description: 'Create an invite code.',
2670
- input: {
2671
- encoding: 'application/json',
2672
- schema: {
2673
- type: 'object',
2674
- required: ['useCount'],
2675
- properties: {
2676
- useCount: {
2677
- type: 'integer',
2678
- },
2679
- forAccount: {
2680
- type: 'string',
2681
- format: 'did',
2682
- },
2683
- },
2684
- },
2685
- },
2686
- output: {
2687
- encoding: 'application/json',
2688
- schema: {
2689
- type: 'object',
2690
- required: ['code'],
2691
- properties: {
2692
- code: {
2693
- type: 'string',
2694
- },
2695
- },
2696
- },
2697
- },
2698
- },
2699
- },
2700
- },
2701
- ComAtprotoServerCreateInviteCodes: {
2702
- lexicon: 1,
2703
- id: 'com.atproto.server.createInviteCodes',
2704
- defs: {
2705
- main: {
2706
- type: 'procedure',
2707
- description: 'Create invite codes.',
2708
- input: {
2709
- encoding: 'application/json',
2710
- schema: {
2711
- type: 'object',
2712
- required: ['codeCount', 'useCount'],
2713
- properties: {
2714
- codeCount: {
2715
- type: 'integer',
2716
- default: 1,
2717
- },
2718
- useCount: {
2719
- type: 'integer',
2720
- },
2721
- forAccounts: {
2722
- type: 'array',
2723
- items: {
2724
- type: 'string',
2725
- format: 'did',
2726
- },
2727
- },
2728
- },
2729
- },
2730
- },
2731
- output: {
2732
- encoding: 'application/json',
2733
- schema: {
2734
- type: 'object',
2735
- required: ['codes'],
2736
- properties: {
2737
- codes: {
2738
- type: 'array',
2739
- items: {
2740
- type: 'ref',
2741
- ref: 'lex:com.atproto.server.createInviteCodes#accountCodes',
2742
- },
2743
- },
2744
- },
2745
- },
2746
- },
2747
- },
2748
- accountCodes: {
2749
- type: 'object',
2750
- required: ['account', 'codes'],
2751
- properties: {
2752
- account: {
2753
- type: 'string',
2754
- },
2755
- codes: {
2756
- type: 'array',
2757
- items: {
2758
- type: 'string',
2759
- },
2760
- },
2761
- },
2762
- },
2763
- },
2764
- },
2765
- ComAtprotoServerCreateSession: {
2766
- lexicon: 1,
2767
- id: 'com.atproto.server.createSession',
2768
- defs: {
2769
- main: {
2770
- type: 'procedure',
2771
- description: 'Create an authentication session.',
2772
- input: {
2773
- encoding: 'application/json',
2774
- schema: {
2775
- type: 'object',
2776
- required: ['identifier', 'password'],
2777
- properties: {
2778
- identifier: {
2779
- type: 'string',
2780
- description: 'Handle or other identifier supported by the server for the authenticating user.',
2781
- },
2782
- password: {
2783
- type: 'string',
2784
- },
2785
- authFactorToken: {
2786
- type: 'string',
2787
- },
2788
- allowTakendown: {
2789
- type: 'boolean',
2790
- description: 'When true, instead of throwing error for takendown accounts, a valid response with a narrow scoped token will be returned',
2791
- },
2792
- },
2793
- },
2794
- },
2795
- output: {
2796
- encoding: 'application/json',
2797
- schema: {
2798
- type: 'object',
2799
- required: ['accessJwt', 'refreshJwt', 'handle', 'did'],
2800
- properties: {
2801
- accessJwt: {
2802
- type: 'string',
2803
- },
2804
- refreshJwt: {
2805
- type: 'string',
2806
- },
2807
- handle: {
2808
- type: 'string',
2809
- format: 'handle',
2810
- },
2811
- did: {
2812
- type: 'string',
2813
- format: 'did',
2814
- },
2815
- didDoc: {
2816
- type: 'unknown',
2817
- },
2818
- email: {
2819
- type: 'string',
2820
- },
2821
- emailConfirmed: {
2822
- type: 'boolean',
2823
- },
2824
- emailAuthFactor: {
2825
- type: 'boolean',
2826
- },
2827
- active: {
2828
- type: 'boolean',
2829
- },
2830
- status: {
2831
- type: 'string',
2832
- description: 'If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted.',
2833
- knownValues: ['takendown', 'suspended', 'deactivated'],
2834
- },
2835
- },
2836
- },
2837
- },
2838
- errors: [
2839
- {
2840
- name: 'AccountTakedown',
2841
- },
2842
- {
2843
- name: 'AuthFactorTokenRequired',
2844
- },
2845
- ],
2846
- },
2847
- },
2848
- },
2849
- ComAtprotoServerDeactivateAccount: {
2850
- lexicon: 1,
2851
- id: 'com.atproto.server.deactivateAccount',
2852
- defs: {
2853
- main: {
2854
- type: 'procedure',
2855
- description: 'Deactivates a currently active account. Stops serving of repo, and future writes to repo until reactivated. Used to finalize account migration with the old host after the account has been activated on the new host.',
2856
- input: {
2857
- encoding: 'application/json',
2858
- schema: {
2859
- type: 'object',
2860
- properties: {
2861
- deleteAfter: {
2862
- type: 'string',
2863
- format: 'datetime',
2864
- description: 'A recommendation to server as to how long they should hold onto the deactivated account before deleting.',
2865
- },
2866
- },
2867
- },
2868
- },
2869
- },
2870
- },
2871
- },
2872
- ComAtprotoServerDefs: {
2873
- lexicon: 1,
2874
- id: 'com.atproto.server.defs',
2875
- defs: {
2876
- inviteCode: {
2877
- type: 'object',
2878
- required: [
2879
- 'code',
2880
- 'available',
2881
- 'disabled',
2882
- 'forAccount',
2883
- 'createdBy',
2884
- 'createdAt',
2885
- 'uses',
2886
- ],
2887
- properties: {
2888
- code: {
2889
- type: 'string',
2890
- },
2891
- available: {
2892
- type: 'integer',
2893
- },
2894
- disabled: {
2895
- type: 'boolean',
2896
- },
2897
- forAccount: {
2898
- type: 'string',
2899
- },
2900
- createdBy: {
2901
- type: 'string',
2902
- },
2903
- createdAt: {
2904
- type: 'string',
2905
- format: 'datetime',
2906
- },
2907
- uses: {
2908
- type: 'array',
2909
- items: {
2910
- type: 'ref',
2911
- ref: 'lex:com.atproto.server.defs#inviteCodeUse',
2912
- },
2913
- },
2914
- },
2915
- },
2916
- inviteCodeUse: {
2917
- type: 'object',
2918
- required: ['usedBy', 'usedAt'],
2919
- properties: {
2920
- usedBy: {
2921
- type: 'string',
2922
- format: 'did',
2923
- },
2924
- usedAt: {
2925
- type: 'string',
2926
- format: 'datetime',
2927
- },
2928
- },
2929
- },
2930
- },
2931
- },
2932
- ComAtprotoServerDeleteAccount: {
2933
- lexicon: 1,
2934
- id: 'com.atproto.server.deleteAccount',
2935
- defs: {
2936
- main: {
2937
- type: 'procedure',
2938
- description: "Delete an actor's account with a token and password. Can only be called after requesting a deletion token. Requires auth.",
2939
- input: {
2940
- encoding: 'application/json',
2941
- schema: {
2942
- type: 'object',
2943
- required: ['did', 'password', 'token'],
2944
- properties: {
2945
- did: {
2946
- type: 'string',
2947
- format: 'did',
2948
- },
2949
- password: {
2950
- type: 'string',
2951
- },
2952
- token: {
2953
- type: 'string',
2954
- },
2955
- },
2956
- },
2957
- },
2958
- errors: [
2959
- {
2960
- name: 'ExpiredToken',
2961
- },
2962
- {
2963
- name: 'InvalidToken',
2964
- },
2965
- ],
2966
- },
2967
- },
2968
- },
2969
- ComAtprotoServerDeleteSession: {
2970
- lexicon: 1,
2971
- id: 'com.atproto.server.deleteSession',
2972
- defs: {
2973
- main: {
2974
- type: 'procedure',
2975
- description: 'Delete the current session. Requires auth.',
2976
- },
2977
- },
2978
- },
2979
- ComAtprotoServerDescribeServer: {
2980
- lexicon: 1,
2981
- id: 'com.atproto.server.describeServer',
2982
- defs: {
2983
- main: {
2984
- type: 'query',
2985
- description: "Describes the server's account creation requirements and capabilities. Implemented by PDS.",
2986
- output: {
2987
- encoding: 'application/json',
2988
- schema: {
2989
- type: 'object',
2990
- required: ['did', 'availableUserDomains'],
2991
- properties: {
2992
- inviteCodeRequired: {
2993
- type: 'boolean',
2994
- description: 'If true, an invite code must be supplied to create an account on this instance.',
2995
- },
2996
- phoneVerificationRequired: {
2997
- type: 'boolean',
2998
- description: 'If true, a phone verification token must be supplied to create an account on this instance.',
2999
- },
3000
- availableUserDomains: {
3001
- type: 'array',
3002
- description: 'List of domain suffixes that can be used in account handles.',
3003
- items: {
3004
- type: 'string',
3005
- },
3006
- },
3007
- links: {
3008
- type: 'ref',
3009
- description: 'URLs of service policy documents.',
3010
- ref: 'lex:com.atproto.server.describeServer#links',
3011
- },
3012
- contact: {
3013
- type: 'ref',
3014
- description: 'Contact information',
3015
- ref: 'lex:com.atproto.server.describeServer#contact',
3016
- },
3017
- did: {
3018
- type: 'string',
3019
- format: 'did',
3020
- },
3021
- },
3022
- },
3023
- },
3024
- },
3025
- links: {
3026
- type: 'object',
3027
- properties: {
3028
- privacyPolicy: {
3029
- type: 'string',
3030
- format: 'uri',
3031
- },
3032
- termsOfService: {
3033
- type: 'string',
3034
- format: 'uri',
3035
- },
3036
- },
3037
- },
3038
- contact: {
3039
- type: 'object',
3040
- properties: {
3041
- email: {
3042
- type: 'string',
3043
- },
3044
- },
3045
- },
3046
- },
3047
- },
3048
- ComAtprotoServerGetAccountInviteCodes: {
3049
- lexicon: 1,
3050
- id: 'com.atproto.server.getAccountInviteCodes',
3051
- defs: {
3052
- main: {
3053
- type: 'query',
3054
- description: 'Get all invite codes for the current account. Requires auth.',
3055
- parameters: {
3056
- type: 'params',
3057
- properties: {
3058
- includeUsed: {
3059
- type: 'boolean',
3060
- default: true,
3061
- },
3062
- createAvailable: {
3063
- type: 'boolean',
3064
- default: true,
3065
- description: "Controls whether any new 'earned' but not 'created' invites should be created.",
3066
- },
3067
- },
3068
- },
3069
- output: {
3070
- encoding: 'application/json',
3071
- schema: {
3072
- type: 'object',
3073
- required: ['codes'],
3074
- properties: {
3075
- codes: {
3076
- type: 'array',
3077
- items: {
3078
- type: 'ref',
3079
- ref: 'lex:com.atproto.server.defs#inviteCode',
3080
- },
3081
- },
3082
- },
3083
- },
3084
- },
3085
- errors: [
3086
- {
3087
- name: 'DuplicateCreate',
3088
- },
3089
- ],
3090
- },
3091
- },
3092
- },
3093
- ComAtprotoServerGetServiceAuth: {
3094
- lexicon: 1,
3095
- id: 'com.atproto.server.getServiceAuth',
3096
- defs: {
3097
- main: {
3098
- type: 'query',
3099
- description: 'Get a signed token on behalf of the requesting DID for the requested service.',
3100
- parameters: {
3101
- type: 'params',
3102
- required: ['aud'],
3103
- properties: {
3104
- aud: {
3105
- type: 'string',
3106
- format: 'did',
3107
- description: 'The DID of the service that the token will be used to authenticate with',
3108
- },
3109
- exp: {
3110
- type: 'integer',
3111
- description: 'The time in Unix Epoch seconds that the JWT expires. Defaults to 60 seconds in the future. The service may enforce certain time bounds on tokens depending on the requested scope.',
3112
- },
3113
- lxm: {
3114
- type: 'string',
3115
- format: 'nsid',
3116
- description: 'Lexicon (XRPC) method to bind the requested token to',
3117
- },
3118
- },
3119
- },
3120
- output: {
3121
- encoding: 'application/json',
3122
- schema: {
3123
- type: 'object',
3124
- required: ['token'],
3125
- properties: {
3126
- token: {
3127
- type: 'string',
3128
- },
3129
- },
3130
- },
3131
- },
3132
- errors: [
3133
- {
3134
- name: 'BadExpiration',
3135
- description: 'Indicates that the requested expiration date is not a valid. May be in the past or may be reliant on the requested scopes.',
3136
- },
3137
- ],
3138
- },
3139
- },
3140
- },
3141
- ComAtprotoServerGetSession: {
3142
- lexicon: 1,
3143
- id: 'com.atproto.server.getSession',
3144
- defs: {
3145
- main: {
3146
- type: 'query',
3147
- description: 'Get information about the current auth session. Requires auth.',
3148
- output: {
3149
- encoding: 'application/json',
3150
- schema: {
3151
- type: 'object',
3152
- required: ['handle', 'did'],
3153
- properties: {
3154
- handle: {
3155
- type: 'string',
3156
- format: 'handle',
3157
- },
3158
- did: {
3159
- type: 'string',
3160
- format: 'did',
3161
- },
3162
- email: {
3163
- type: 'string',
3164
- },
3165
- emailConfirmed: {
3166
- type: 'boolean',
3167
- },
3168
- emailAuthFactor: {
3169
- type: 'boolean',
3170
- },
3171
- didDoc: {
3172
- type: 'unknown',
3173
- },
3174
- active: {
3175
- type: 'boolean',
3176
- },
3177
- status: {
3178
- type: 'string',
3179
- description: 'If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted.',
3180
- knownValues: ['takendown', 'suspended', 'deactivated'],
3181
- },
3182
- },
3183
- },
3184
- },
3185
- },
3186
- },
3187
- },
3188
- ComAtprotoServerListAppPasswords: {
3189
- lexicon: 1,
3190
- id: 'com.atproto.server.listAppPasswords',
3191
- defs: {
3192
- main: {
3193
- type: 'query',
3194
- description: 'List all App Passwords.',
3195
- output: {
3196
- encoding: 'application/json',
3197
- schema: {
3198
- type: 'object',
3199
- required: ['passwords'],
3200
- properties: {
3201
- passwords: {
3202
- type: 'array',
3203
- items: {
3204
- type: 'ref',
3205
- ref: 'lex:com.atproto.server.listAppPasswords#appPassword',
3206
- },
3207
- },
3208
- },
3209
- },
3210
- },
3211
- errors: [
3212
- {
3213
- name: 'AccountTakedown',
3214
- },
3215
- ],
3216
- },
3217
- appPassword: {
3218
- type: 'object',
3219
- required: ['name', 'createdAt'],
3220
- properties: {
3221
- name: {
3222
- type: 'string',
3223
- },
3224
- createdAt: {
3225
- type: 'string',
3226
- format: 'datetime',
3227
- },
3228
- privileged: {
3229
- type: 'boolean',
3230
- },
3231
- },
3232
- },
3233
- },
3234
- },
3235
- ComAtprotoServerRefreshSession: {
3236
- lexicon: 1,
3237
- id: 'com.atproto.server.refreshSession',
3238
- defs: {
3239
- main: {
3240
- type: 'procedure',
3241
- description: "Refresh an authentication session. Requires auth using the 'refreshJwt' (not the 'accessJwt').",
3242
- output: {
3243
- encoding: 'application/json',
3244
- schema: {
3245
- type: 'object',
3246
- required: ['accessJwt', 'refreshJwt', 'handle', 'did'],
3247
- properties: {
3248
- accessJwt: {
3249
- type: 'string',
3250
- },
3251
- refreshJwt: {
3252
- type: 'string',
3253
- },
3254
- handle: {
3255
- type: 'string',
3256
- format: 'handle',
3257
- },
3258
- did: {
3259
- type: 'string',
3260
- format: 'did',
3261
- },
3262
- didDoc: {
3263
- type: 'unknown',
3264
- },
3265
- active: {
3266
- type: 'boolean',
3267
- },
3268
- status: {
3269
- type: 'string',
3270
- description: "Hosting status of the account. If not specified, then assume 'active'.",
3271
- knownValues: ['takendown', 'suspended', 'deactivated'],
3272
- },
3273
- },
3274
- },
3275
- },
3276
- errors: [
3277
- {
3278
- name: 'AccountTakedown',
3279
- },
3280
- ],
3281
- },
3282
- },
3283
- },
3284
- ComAtprotoServerRequestAccountDelete: {
3285
- lexicon: 1,
3286
- id: 'com.atproto.server.requestAccountDelete',
3287
- defs: {
3288
- main: {
3289
- type: 'procedure',
3290
- description: 'Initiate a user account deletion via email.',
3291
- },
3292
- },
3293
- },
3294
- ComAtprotoServerRequestEmailConfirmation: {
3295
- lexicon: 1,
3296
- id: 'com.atproto.server.requestEmailConfirmation',
3297
- defs: {
3298
- main: {
3299
- type: 'procedure',
3300
- description: 'Request an email with a code to confirm ownership of email.',
3301
- },
3302
- },
3303
- },
3304
- ComAtprotoServerRequestEmailUpdate: {
3305
- lexicon: 1,
3306
- id: 'com.atproto.server.requestEmailUpdate',
3307
- defs: {
3308
- main: {
3309
- type: 'procedure',
3310
- description: 'Request a token in order to update email.',
3311
- output: {
3312
- encoding: 'application/json',
3313
- schema: {
3314
- type: 'object',
3315
- required: ['tokenRequired'],
3316
- properties: {
3317
- tokenRequired: {
3318
- type: 'boolean',
3319
- },
3320
- },
3321
- },
3322
- },
3323
- },
3324
- },
3325
- },
3326
- ComAtprotoServerRequestPasswordReset: {
3327
- lexicon: 1,
3328
- id: 'com.atproto.server.requestPasswordReset',
3329
- defs: {
3330
- main: {
3331
- type: 'procedure',
3332
- description: 'Initiate a user account password reset via email.',
3333
- input: {
3334
- encoding: 'application/json',
3335
- schema: {
3336
- type: 'object',
3337
- required: ['email'],
3338
- properties: {
3339
- email: {
3340
- type: 'string',
3341
- },
3342
- },
3343
- },
3344
- },
3345
- },
3346
- },
3347
- },
3348
- ComAtprotoServerReserveSigningKey: {
3349
- lexicon: 1,
3350
- id: 'com.atproto.server.reserveSigningKey',
3351
- defs: {
3352
- main: {
3353
- type: 'procedure',
3354
- description: 'Reserve a repo signing key, for use with account creation. Necessary so that a DID PLC update operation can be constructed during an account migraiton. Public and does not require auth; implemented by PDS. NOTE: this endpoint may change when full account migration is implemented.',
3355
- input: {
3356
- encoding: 'application/json',
3357
- schema: {
3358
- type: 'object',
3359
- properties: {
3360
- did: {
3361
- type: 'string',
3362
- format: 'did',
3363
- description: 'The DID to reserve a key for.',
3364
- },
3365
- },
3366
- },
3367
- },
3368
- output: {
3369
- encoding: 'application/json',
3370
- schema: {
3371
- type: 'object',
3372
- required: ['signingKey'],
3373
- properties: {
3374
- signingKey: {
3375
- type: 'string',
3376
- description: 'The public key for the reserved signing key, in did:key serialization.',
3377
- },
3378
- },
3379
- },
3380
- },
3381
- },
3382
- },
3383
- },
3384
- ComAtprotoServerResetPassword: {
3385
- lexicon: 1,
3386
- id: 'com.atproto.server.resetPassword',
3387
- defs: {
3388
- main: {
3389
- type: 'procedure',
3390
- description: 'Reset a user account password using a token.',
3391
- input: {
3392
- encoding: 'application/json',
3393
- schema: {
3394
- type: 'object',
3395
- required: ['token', 'password'],
3396
- properties: {
3397
- token: {
3398
- type: 'string',
3399
- },
3400
- password: {
3401
- type: 'string',
3402
- },
3403
- },
3404
- },
3405
- },
3406
- errors: [
3407
- {
3408
- name: 'ExpiredToken',
3409
- },
3410
- {
3411
- name: 'InvalidToken',
3412
- },
3413
- ],
3414
- },
3415
- },
3416
- },
3417
- ComAtprotoServerRevokeAppPassword: {
3418
- lexicon: 1,
3419
- id: 'com.atproto.server.revokeAppPassword',
3420
- defs: {
3421
- main: {
3422
- type: 'procedure',
3423
- description: 'Revoke an App Password by name.',
3424
- input: {
3425
- encoding: 'application/json',
3426
- schema: {
3427
- type: 'object',
3428
- required: ['name'],
3429
- properties: {
3430
- name: {
3431
- type: 'string',
3432
- },
3433
- },
3434
- },
3435
- },
3436
- },
3437
- },
3438
- },
3439
- ComAtprotoServerUpdateEmail: {
3440
- lexicon: 1,
3441
- id: 'com.atproto.server.updateEmail',
3442
- defs: {
3443
- main: {
3444
- type: 'procedure',
3445
- description: "Update an account's email.",
3446
- input: {
3447
- encoding: 'application/json',
3448
- schema: {
3449
- type: 'object',
3450
- required: ['email'],
3451
- properties: {
3452
- email: {
3453
- type: 'string',
3454
- },
3455
- emailAuthFactor: {
3456
- type: 'boolean',
3457
- },
3458
- token: {
3459
- type: 'string',
3460
- description: "Requires a token from com.atproto.sever.requestEmailUpdate if the account's email has been confirmed.",
3461
- },
3462
- },
3463
- },
3464
- },
3465
- errors: [
3466
- {
3467
- name: 'ExpiredToken',
3468
- },
3469
- {
3470
- name: 'InvalidToken',
3471
- },
3472
- {
3473
- name: 'TokenRequired',
3474
- },
3475
- ],
3476
- },
3477
- },
3478
- },
3479
- ComAtprotoSyncGetBlob: {
3480
- lexicon: 1,
3481
- id: 'com.atproto.sync.getBlob',
3482
- defs: {
3483
- main: {
3484
- type: 'query',
3485
- description: 'Get a blob associated with a given account. Returns the full blob as originally uploaded. Does not require auth; implemented by PDS.',
3486
- parameters: {
3487
- type: 'params',
3488
- required: ['did', 'cid'],
3489
- properties: {
3490
- did: {
3491
- type: 'string',
3492
- format: 'did',
3493
- description: 'The DID of the account.',
3494
- },
3495
- cid: {
3496
- type: 'string',
3497
- format: 'cid',
3498
- description: 'The CID of the blob to fetch',
3499
- },
3500
- },
3501
- },
3502
- output: {
3503
- encoding: '*/*',
3504
- },
3505
- errors: [
3506
- {
3507
- name: 'BlobNotFound',
3508
- },
3509
- {
3510
- name: 'RepoNotFound',
3511
- },
3512
- {
3513
- name: 'RepoTakendown',
3514
- },
3515
- {
3516
- name: 'RepoSuspended',
3517
- },
3518
- {
3519
- name: 'RepoDeactivated',
3520
- },
3521
- ],
3522
- },
3523
- },
3524
- },
3525
- ComAtprotoSyncGetBlocks: {
3526
- lexicon: 1,
3527
- id: 'com.atproto.sync.getBlocks',
3528
- defs: {
3529
- main: {
3530
- type: 'query',
3531
- description: 'Get data blocks from a given repo, by CID. For example, intermediate MST nodes, or records. Does not require auth; implemented by PDS.',
3532
- parameters: {
3533
- type: 'params',
3534
- required: ['did', 'cids'],
3535
- properties: {
3536
- did: {
3537
- type: 'string',
3538
- format: 'did',
3539
- description: 'The DID of the repo.',
3540
- },
3541
- cids: {
3542
- type: 'array',
3543
- items: {
3544
- type: 'string',
3545
- format: 'cid',
3546
- },
3547
- },
3548
- },
3549
- },
3550
- output: {
3551
- encoding: 'application/vnd.ipld.car',
3552
- },
3553
- errors: [
3554
- {
3555
- name: 'BlockNotFound',
3556
- },
3557
- {
3558
- name: 'RepoNotFound',
3559
- },
3560
- {
3561
- name: 'RepoTakendown',
3562
- },
3563
- {
3564
- name: 'RepoSuspended',
3565
- },
3566
- {
3567
- name: 'RepoDeactivated',
3568
- },
3569
- ],
3570
- },
3571
- },
3572
- },
3573
- ComAtprotoSyncGetCheckout: {
3574
- lexicon: 1,
3575
- id: 'com.atproto.sync.getCheckout',
3576
- defs: {
3577
- main: {
3578
- type: 'query',
3579
- description: 'DEPRECATED - please use com.atproto.sync.getRepo instead',
3580
- parameters: {
3581
- type: 'params',
3582
- required: ['did'],
3583
- properties: {
3584
- did: {
3585
- type: 'string',
3586
- format: 'did',
3587
- description: 'The DID of the repo.',
3588
- },
3589
- },
3590
- },
3591
- output: {
3592
- encoding: 'application/vnd.ipld.car',
3593
- },
3594
- },
3595
- },
3596
- },
3597
- ComAtprotoSyncGetHead: {
3598
- lexicon: 1,
3599
- id: 'com.atproto.sync.getHead',
3600
- defs: {
3601
- main: {
3602
- type: 'query',
3603
- description: 'DEPRECATED - please use com.atproto.sync.getLatestCommit instead',
3604
- parameters: {
3605
- type: 'params',
3606
- required: ['did'],
3607
- properties: {
3608
- did: {
3609
- type: 'string',
3610
- format: 'did',
3611
- description: 'The DID of the repo.',
3612
- },
3613
- },
3614
- },
3615
- output: {
3616
- encoding: 'application/json',
3617
- schema: {
3618
- type: 'object',
3619
- required: ['root'],
3620
- properties: {
3621
- root: {
3622
- type: 'string',
3623
- format: 'cid',
3624
- },
3625
- },
3626
- },
3627
- },
3628
- errors: [
3629
- {
3630
- name: 'HeadNotFound',
3631
- },
3632
- ],
3633
- },
3634
- },
3635
- },
3636
- ComAtprotoSyncGetLatestCommit: {
3637
- lexicon: 1,
3638
- id: 'com.atproto.sync.getLatestCommit',
3639
- defs: {
3640
- main: {
3641
- type: 'query',
3642
- description: 'Get the current commit CID & revision of the specified repo. Does not require auth.',
3643
- parameters: {
3644
- type: 'params',
3645
- required: ['did'],
3646
- properties: {
3647
- did: {
3648
- type: 'string',
3649
- format: 'did',
3650
- description: 'The DID of the repo.',
3651
- },
3652
- },
3653
- },
3654
- output: {
3655
- encoding: 'application/json',
3656
- schema: {
3657
- type: 'object',
3658
- required: ['cid', 'rev'],
3659
- properties: {
3660
- cid: {
3661
- type: 'string',
3662
- format: 'cid',
3663
- },
3664
- rev: {
3665
- type: 'string',
3666
- format: 'tid',
3667
- },
3668
- },
3669
- },
3670
- },
3671
- errors: [
3672
- {
3673
- name: 'RepoNotFound',
3674
- },
3675
- {
3676
- name: 'RepoTakendown',
3677
- },
3678
- {
3679
- name: 'RepoSuspended',
3680
- },
3681
- {
3682
- name: 'RepoDeactivated',
3683
- },
3684
- ],
3685
- },
3686
- },
3687
- },
3688
- ComAtprotoSyncGetRecord: {
3689
- lexicon: 1,
3690
- id: 'com.atproto.sync.getRecord',
3691
- defs: {
3692
- main: {
3693
- type: 'query',
3694
- description: 'Get data blocks needed to prove the existence or non-existence of record in the current version of repo. Does not require auth.',
3695
- parameters: {
3696
- type: 'params',
3697
- required: ['did', 'collection', 'rkey'],
3698
- properties: {
3699
- did: {
3700
- type: 'string',
3701
- format: 'did',
3702
- description: 'The DID of the repo.',
3703
- },
3704
- collection: {
3705
- type: 'string',
3706
- format: 'nsid',
3707
- },
3708
- rkey: {
3709
- type: 'string',
3710
- description: 'Record Key',
3711
- format: 'record-key',
3712
- },
3713
- },
3714
- },
3715
- output: {
3716
- encoding: 'application/vnd.ipld.car',
3717
- },
3718
- errors: [
3719
- {
3720
- name: 'RecordNotFound',
3721
- },
3722
- {
3723
- name: 'RepoNotFound',
3724
- },
3725
- {
3726
- name: 'RepoTakendown',
3727
- },
3728
- {
3729
- name: 'RepoSuspended',
3730
- },
3731
- {
3732
- name: 'RepoDeactivated',
3733
- },
3734
- ],
3735
- },
3736
- },
3737
- },
3738
- ComAtprotoSyncGetRepo: {
3739
- lexicon: 1,
3740
- id: 'com.atproto.sync.getRepo',
3741
- defs: {
3742
- main: {
3743
- type: 'query',
3744
- description: "Download a repository export as CAR file. Optionally only a 'diff' since a previous revision. Does not require auth; implemented by PDS.",
3745
- parameters: {
3746
- type: 'params',
3747
- required: ['did'],
3748
- properties: {
3749
- did: {
3750
- type: 'string',
3751
- format: 'did',
3752
- description: 'The DID of the repo.',
3753
- },
3754
- since: {
3755
- type: 'string',
3756
- format: 'tid',
3757
- description: "The revision ('rev') of the repo to create a diff from.",
3758
- },
3759
- },
3760
- },
3761
- output: {
3762
- encoding: 'application/vnd.ipld.car',
3763
- },
3764
- errors: [
3765
- {
3766
- name: 'RepoNotFound',
3767
- },
3768
- {
3769
- name: 'RepoTakendown',
3770
- },
3771
- {
3772
- name: 'RepoSuspended',
3773
- },
3774
- {
3775
- name: 'RepoDeactivated',
3776
- },
3777
- ],
3778
- },
3779
- },
3780
- },
3781
- ComAtprotoSyncGetRepoStatus: {
3782
- lexicon: 1,
3783
- id: 'com.atproto.sync.getRepoStatus',
3784
- defs: {
3785
- main: {
3786
- type: 'query',
3787
- description: 'Get the hosting status for a repository, on this server. Expected to be implemented by PDS and Relay.',
3788
- parameters: {
3789
- type: 'params',
3790
- required: ['did'],
3791
- properties: {
3792
- did: {
3793
- type: 'string',
3794
- format: 'did',
3795
- description: 'The DID of the repo.',
3796
- },
3797
- },
3798
- },
3799
- output: {
3800
- encoding: 'application/json',
3801
- schema: {
3802
- type: 'object',
3803
- required: ['did', 'active'],
3804
- properties: {
3805
- did: {
3806
- type: 'string',
3807
- format: 'did',
3808
- },
3809
- active: {
3810
- type: 'boolean',
3811
- },
3812
- status: {
3813
- type: 'string',
3814
- description: 'If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted.',
3815
- knownValues: [
3816
- 'takendown',
3817
- 'suspended',
3818
- 'deleted',
3819
- 'deactivated',
3820
- 'desynchronized',
3821
- 'throttled',
3822
- ],
3823
- },
3824
- rev: {
3825
- type: 'string',
3826
- format: 'tid',
3827
- description: 'Optional field, the current rev of the repo, if active=true',
3828
- },
3829
- },
3830
- },
3831
- },
3832
- errors: [
3833
- {
3834
- name: 'RepoNotFound',
3835
- },
3836
- ],
3837
- },
3838
- },
3839
- },
3840
- ComAtprotoSyncListBlobs: {
3841
- lexicon: 1,
3842
- id: 'com.atproto.sync.listBlobs',
3843
- defs: {
3844
- main: {
3845
- type: 'query',
3846
- description: 'List blob CIDs for an account, since some repo revision. Does not require auth; implemented by PDS.',
3847
- parameters: {
3848
- type: 'params',
3849
- required: ['did'],
3850
- properties: {
3851
- did: {
3852
- type: 'string',
3853
- format: 'did',
3854
- description: 'The DID of the repo.',
3855
- },
3856
- since: {
3857
- type: 'string',
3858
- format: 'tid',
3859
- description: 'Optional revision of the repo to list blobs since.',
3860
- },
3861
- limit: {
3862
- type: 'integer',
3863
- minimum: 1,
3864
- maximum: 1000,
3865
- default: 500,
3866
- },
3867
- cursor: {
3868
- type: 'string',
3869
- },
3870
- },
3871
- },
3872
- output: {
3873
- encoding: 'application/json',
3874
- schema: {
3875
- type: 'object',
3876
- required: ['cids'],
3877
- properties: {
3878
- cursor: {
3879
- type: 'string',
3880
- },
3881
- cids: {
3882
- type: 'array',
3883
- items: {
3884
- type: 'string',
3885
- format: 'cid',
3886
- },
3887
- },
3888
- },
3889
- },
3890
- },
3891
- errors: [
3892
- {
3893
- name: 'RepoNotFound',
3894
- },
3895
- {
3896
- name: 'RepoTakendown',
3897
- },
3898
- {
3899
- name: 'RepoSuspended',
3900
- },
3901
- {
3902
- name: 'RepoDeactivated',
3903
- },
3904
- ],
3905
- },
3906
- },
3907
- },
3908
- ComAtprotoSyncListRepos: {
3909
- lexicon: 1,
3910
- id: 'com.atproto.sync.listRepos',
3911
- defs: {
3912
- main: {
3913
- type: 'query',
3914
- description: 'Enumerates all the DID, rev, and commit CID for all repos hosted by this service. Does not require auth; implemented by PDS and Relay.',
3915
- parameters: {
3916
- type: 'params',
3917
- properties: {
3918
- limit: {
3919
- type: 'integer',
3920
- minimum: 1,
3921
- maximum: 1000,
3922
- default: 500,
3923
- },
3924
- cursor: {
3925
- type: 'string',
3926
- },
3927
- },
3928
- },
3929
- output: {
3930
- encoding: 'application/json',
3931
- schema: {
3932
- type: 'object',
3933
- required: ['repos'],
3934
- properties: {
3935
- cursor: {
3936
- type: 'string',
3937
- },
3938
- repos: {
3939
- type: 'array',
3940
- items: {
3941
- type: 'ref',
3942
- ref: 'lex:com.atproto.sync.listRepos#repo',
3943
- },
3944
- },
3945
- },
3946
- },
3947
- },
3948
- },
3949
- repo: {
3950
- type: 'object',
3951
- required: ['did', 'head', 'rev'],
3952
- properties: {
3953
- did: {
3954
- type: 'string',
3955
- format: 'did',
3956
- },
3957
- head: {
379
+ cid: {
3958
380
  type: 'string',
3959
381
  format: 'cid',
3960
- description: 'Current repo commit CID',
3961
- },
3962
- rev: {
3963
- type: 'string',
3964
- format: 'tid',
3965
- },
3966
- active: {
3967
- type: 'boolean',
3968
- },
3969
- status: {
3970
- type: 'string',
3971
- description: 'If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted.',
3972
- knownValues: [
3973
- 'takendown',
3974
- 'suspended',
3975
- 'deleted',
3976
- 'deactivated',
3977
- 'desynchronized',
3978
- 'throttled',
3979
- ],
3980
- },
3981
- },
3982
- },
3983
- },
3984
- },
3985
- ComAtprotoSyncListReposByCollection: {
3986
- lexicon: 1,
3987
- id: 'com.atproto.sync.listReposByCollection',
3988
- defs: {
3989
- main: {
3990
- type: 'query',
3991
- description: 'Enumerates all the DIDs which have records with the given collection NSID.',
3992
- parameters: {
3993
- type: 'params',
3994
- required: ['collection'],
3995
- properties: {
3996
- collection: {
3997
- type: 'string',
3998
- format: 'nsid',
3999
- },
4000
- limit: {
4001
- type: 'integer',
4002
- description: 'Maximum size of response set. Recommend setting a large maximum (1000+) when enumerating large DID lists.',
4003
- minimum: 1,
4004
- maximum: 2000,
4005
- default: 500,
4006
- },
4007
- cursor: {
4008
- type: 'string',
4009
- },
4010
- },
4011
- },
4012
- output: {
4013
- encoding: 'application/json',
4014
- schema: {
4015
- type: 'object',
4016
- required: ['repos'],
4017
- properties: {
4018
- cursor: {
4019
- type: 'string',
4020
- },
4021
- repos: {
4022
- type: 'array',
4023
- items: {
4024
- type: 'ref',
4025
- ref: 'lex:com.atproto.sync.listReposByCollection#repo',
4026
- },
4027
- },
4028
- },
4029
- },
4030
- },
4031
- },
4032
- repo: {
4033
- type: 'object',
4034
- required: ['did'],
4035
- properties: {
4036
- did: {
4037
- type: 'string',
4038
- format: 'did',
4039
- },
4040
- },
4041
- },
4042
- },
4043
- },
4044
- ComAtprotoSyncNotifyOfUpdate: {
4045
- lexicon: 1,
4046
- id: 'com.atproto.sync.notifyOfUpdate',
4047
- defs: {
4048
- main: {
4049
- type: 'procedure',
4050
- description: 'Notify a crawling service of a recent update, and that crawling should resume. Intended use is after a gap between repo stream events caused the crawling service to disconnect. Does not require auth; implemented by Relay. DEPRECATED: just use com.atproto.sync.requestCrawl',
4051
- input: {
4052
- encoding: 'application/json',
4053
- schema: {
4054
- type: 'object',
4055
- required: ['hostname'],
4056
- properties: {
4057
- hostname: {
4058
- type: 'string',
4059
- description: 'Hostname of the current service (usually a PDS) that is notifying of update.',
4060
- },
4061
- },
4062
- },
4063
- },
4064
- },
4065
- },
4066
- },
4067
- ComAtprotoSyncRequestCrawl: {
4068
- lexicon: 1,
4069
- id: 'com.atproto.sync.requestCrawl',
4070
- defs: {
4071
- main: {
4072
- type: 'procedure',
4073
- description: 'Request a service to persistently crawl hosted repos. Expected use is new PDS instances declaring their existence to Relays. Does not require auth.',
4074
- input: {
4075
- encoding: 'application/json',
4076
- schema: {
4077
- type: 'object',
4078
- required: ['hostname'],
4079
- properties: {
4080
- hostname: {
4081
- type: 'string',
4082
- description: 'Hostname of the current service (eg, PDS) that is requesting to be crawled.',
4083
- },
4084
- },
4085
- },
4086
- },
4087
- },
4088
- },
4089
- },
4090
- ComAtprotoSyncSubscribeRepos: {
4091
- lexicon: 1,
4092
- id: 'com.atproto.sync.subscribeRepos',
4093
- defs: {
4094
- main: {
4095
- type: 'subscription',
4096
- description: 'Repository event stream, aka Firehose endpoint. Outputs repo commits with diff data, and identity update events, for all repositories on the current server. See the atproto specifications for details around stream sequencing, repo versioning, CAR diff format, and more. Public and does not require auth; implemented by PDS and Relay.',
4097
- parameters: {
4098
- type: 'params',
4099
- properties: {
4100
- cursor: {
4101
- type: 'integer',
4102
- description: 'The last known event seq number to backfill from.',
4103
- },
4104
- },
4105
- },
4106
- message: {
4107
- schema: {
4108
- type: 'union',
4109
- refs: [
4110
- 'lex:com.atproto.sync.subscribeRepos#commit',
4111
- 'lex:com.atproto.sync.subscribeRepos#sync',
4112
- 'lex:com.atproto.sync.subscribeRepos#identity',
4113
- 'lex:com.atproto.sync.subscribeRepos#account',
4114
- 'lex:com.atproto.sync.subscribeRepos#info',
4115
- ],
4116
- },
4117
- },
4118
- errors: [
4119
- {
4120
- name: 'FutureCursor',
4121
- },
4122
- {
4123
- name: 'ConsumerTooSlow',
4124
- description: 'If the consumer of the stream can not keep up with events, and a backlog gets too large, the server will drop the connection.',
4125
- },
4126
- ],
4127
- },
4128
- commit: {
4129
- type: 'object',
4130
- description: 'Represents an update of repository state. Note that empty commits are allowed, which include no repo data changes, but an update to rev and signature.',
4131
- required: [
4132
- 'seq',
4133
- 'rebase',
4134
- 'tooBig',
4135
- 'repo',
4136
- 'commit',
4137
- 'rev',
4138
- 'since',
4139
- 'blocks',
4140
- 'ops',
4141
- 'blobs',
4142
- 'time',
4143
- ],
4144
- nullable: ['since'],
4145
- properties: {
4146
- seq: {
4147
- type: 'integer',
4148
- description: 'The stream sequence number of this message.',
4149
- },
4150
- rebase: {
4151
- type: 'boolean',
4152
- description: 'DEPRECATED -- unused',
4153
- },
4154
- tooBig: {
4155
- type: 'boolean',
4156
- description: 'DEPRECATED -- replaced by #sync event and data limits. Indicates that this commit contained too many ops, or data size was too large. Consumers will need to make a separate request to get missing data.',
4157
- },
4158
- repo: {
4159
- type: 'string',
4160
- format: 'did',
4161
- description: "The repo this event comes from. Note that all other message types name this field 'did'.",
4162
- },
4163
- commit: {
4164
- type: 'cid-link',
4165
- description: 'Repo commit object CID.',
4166
- },
4167
- rev: {
4168
- type: 'string',
4169
- format: 'tid',
4170
- description: 'The rev of the emitted commit. Note that this information is also in the commit object included in blocks, unless this is a tooBig event.',
4171
- },
4172
- since: {
4173
- type: 'string',
4174
- format: 'tid',
4175
- description: 'The rev of the last emitted commit from this repo (if any).',
4176
- },
4177
- blocks: {
4178
- type: 'bytes',
4179
- description: "CAR file containing relevant blocks, as a diff since the previous repo state. The commit must be included as a block, and the commit block CID must be the first entry in the CAR header 'roots' list.",
4180
- maxLength: 2000000,
4181
- },
4182
- ops: {
4183
- type: 'array',
4184
- items: {
4185
- type: 'ref',
4186
- ref: 'lex:com.atproto.sync.subscribeRepos#repoOp',
4187
- description: 'List of repo mutation operations in this commit (eg, records created, updated, or deleted).',
4188
- },
4189
- maxLength: 200,
4190
- },
4191
- blobs: {
4192
- type: 'array',
4193
- items: {
4194
- type: 'cid-link',
4195
- description: 'DEPRECATED -- will soon always be empty. List of new blobs (by CID) referenced by records in this commit.',
4196
- },
4197
- },
4198
- prevData: {
4199
- type: 'cid-link',
4200
- description: "The root CID of the MST tree for the previous commit from this repo (indicated by the 'since' revision field in this message). Corresponds to the 'data' field in the repo commit object. NOTE: this field is effectively required for the 'inductive' version of firehose.",
4201
- },
4202
- time: {
4203
- type: 'string',
4204
- format: 'datetime',
4205
- description: 'Timestamp of when this message was originally broadcast.',
4206
- },
4207
- },
4208
- },
4209
- sync: {
4210
- type: 'object',
4211
- description: 'Updates the repo to a new state, without necessarily including that state on the firehose. Used to recover from broken commit streams, data loss incidents, or in situations where upstream host does not know recent state of the repository.',
4212
- required: ['seq', 'did', 'blocks', 'rev', 'time'],
4213
- properties: {
4214
- seq: {
4215
- type: 'integer',
4216
- description: 'The stream sequence number of this message.',
4217
- },
4218
- did: {
4219
- type: 'string',
4220
- format: 'did',
4221
- description: 'The account this repo event corresponds to. Must match that in the commit object.',
4222
- },
4223
- blocks: {
4224
- type: 'bytes',
4225
- description: "CAR file containing the commit, as a block. The CAR header must include the commit block CID as the first 'root'.",
4226
- maxLength: 10000,
4227
- },
4228
- rev: {
4229
- type: 'string',
4230
- description: 'The rev of the commit. This value must match that in the commit object.',
4231
- },
4232
- time: {
4233
- type: 'string',
4234
- format: 'datetime',
4235
- description: 'Timestamp of when this message was originally broadcast.',
4236
- },
4237
- },
4238
- },
4239
- identity: {
4240
- type: 'object',
4241
- description: "Represents a change to an account's identity. Could be an updated handle, signing key, or pds hosting endpoint. Serves as a prod to all downstream services to refresh their identity cache.",
4242
- required: ['seq', 'did', 'time'],
4243
- properties: {
4244
- seq: {
4245
- type: 'integer',
4246
- },
4247
- did: {
4248
- type: 'string',
4249
- format: 'did',
4250
- },
4251
- time: {
4252
- type: 'string',
4253
- format: 'datetime',
4254
- },
4255
- handle: {
4256
- type: 'string',
4257
- format: 'handle',
4258
- description: "The current handle for the account, or 'handle.invalid' if validation fails. This field is optional, might have been validated or passed-through from an upstream source. Semantics and behaviors for PDS vs Relay may evolve in the future; see atproto specs for more details.",
4259
- },
4260
- },
4261
- },
4262
- account: {
4263
- type: 'object',
4264
- description: "Represents a change to an account's status on a host (eg, PDS or Relay). The semantics of this event are that the status is at the host which emitted the event, not necessarily that at the currently active PDS. Eg, a Relay takedown would emit a takedown with active=false, even if the PDS is still active.",
4265
- required: ['seq', 'did', 'time', 'active'],
4266
- properties: {
4267
- seq: {
4268
- type: 'integer',
4269
- },
4270
- did: {
4271
- type: 'string',
4272
- format: 'did',
4273
- },
4274
- time: {
4275
- type: 'string',
4276
- format: 'datetime',
4277
- },
4278
- active: {
4279
- type: 'boolean',
4280
- description: 'Indicates that the account has a repository which can be fetched from the host that emitted this event.',
4281
- },
4282
- status: {
4283
- type: 'string',
4284
- description: 'If active=false, this optional field indicates a reason for why the account is not active.',
4285
- knownValues: [
4286
- 'takendown',
4287
- 'suspended',
4288
- 'deleted',
4289
- 'deactivated',
4290
- 'desynchronized',
4291
- 'throttled',
4292
- ],
4293
- },
4294
- },
4295
- },
4296
- info: {
4297
- type: 'object',
4298
- required: ['name'],
4299
- properties: {
4300
- name: {
4301
- type: 'string',
4302
- knownValues: ['OutdatedCursor'],
4303
- },
4304
- message: {
4305
- type: 'string',
4306
- },
4307
- },
4308
- },
4309
- repoOp: {
4310
- type: 'object',
4311
- description: 'A repo operation, ie a mutation of a single record.',
4312
- required: ['action', 'path', 'cid'],
4313
- nullable: ['cid'],
4314
- properties: {
4315
- action: {
4316
- type: 'string',
4317
- knownValues: ['create', 'update', 'delete'],
4318
- },
4319
- path: {
4320
- type: 'string',
4321
- },
4322
- cid: {
4323
- type: 'cid-link',
4324
- description: 'For creates and updates, the new record CID. For deletions, null.',
4325
- },
4326
- prev: {
4327
- type: 'cid-link',
4328
- description: 'For updates and deletes, the previous record CID (required for inductive firehose). For creations, field should not be defined.',
4329
- },
4330
- },
4331
- },
4332
- },
4333
- },
4334
- ComAtprotoTempAddReservedHandle: {
4335
- lexicon: 1,
4336
- id: 'com.atproto.temp.addReservedHandle',
4337
- defs: {
4338
- main: {
4339
- type: 'procedure',
4340
- description: 'Add a handle to the set of reserved handles.',
4341
- input: {
4342
- encoding: 'application/json',
4343
- schema: {
4344
- type: 'object',
4345
- required: ['handle'],
4346
- properties: {
4347
- handle: {
4348
- type: 'string',
4349
- },
4350
- },
4351
- },
4352
- },
4353
- output: {
4354
- encoding: 'application/json',
4355
- schema: {
4356
- type: 'object',
4357
- properties: {},
4358
- },
4359
- },
4360
- },
4361
- },
4362
- },
4363
- ComAtprotoTempCheckSignupQueue: {
4364
- lexicon: 1,
4365
- id: 'com.atproto.temp.checkSignupQueue',
4366
- defs: {
4367
- main: {
4368
- type: 'query',
4369
- description: 'Check accounts location in signup queue.',
4370
- output: {
4371
- encoding: 'application/json',
4372
- schema: {
4373
- type: 'object',
4374
- required: ['activated'],
4375
- properties: {
4376
- activated: {
4377
- type: 'boolean',
4378
- },
4379
- placeInQueue: {
4380
- type: 'integer',
4381
- },
4382
- estimatedTimeMs: {
4383
- type: 'integer',
4384
- },
4385
- },
4386
- },
4387
- },
4388
- },
4389
- },
4390
- },
4391
- ComAtprotoTempFetchLabels: {
4392
- lexicon: 1,
4393
- id: 'com.atproto.temp.fetchLabels',
4394
- defs: {
4395
- main: {
4396
- type: 'query',
4397
- description: 'DEPRECATED: use queryLabels or subscribeLabels instead -- Fetch all labels from a labeler created after a certain date.',
4398
- parameters: {
4399
- type: 'params',
4400
- properties: {
4401
- since: {
4402
- type: 'integer',
4403
- },
4404
- limit: {
4405
- type: 'integer',
4406
- minimum: 1,
4407
- maximum: 250,
4408
- default: 50,
4409
- },
4410
- },
4411
- },
4412
- output: {
4413
- encoding: 'application/json',
4414
- schema: {
4415
- type: 'object',
4416
- required: ['labels'],
4417
- properties: {
4418
- labels: {
4419
- type: 'array',
4420
- items: {
4421
- type: 'ref',
4422
- ref: 'lex:com.atproto.label.defs#label',
4423
- },
4424
- },
4425
- },
4426
- },
4427
- },
4428
- },
4429
- },
4430
- },
4431
- ComAtprotoTempRequestPhoneVerification: {
4432
- lexicon: 1,
4433
- id: 'com.atproto.temp.requestPhoneVerification',
4434
- defs: {
4435
- main: {
4436
- type: 'procedure',
4437
- description: 'Request a verification code to be sent to the supplied phone number',
4438
- input: {
4439
- encoding: 'application/json',
4440
- schema: {
4441
- type: 'object',
4442
- required: ['phoneNumber'],
4443
- properties: {
4444
- phoneNumber: {
4445
- type: 'string',
4446
- },
4447
- },
4448
382
  },
4449
383
  },
4450
384
  },
4451
385
  },
4452
386
  },
4453
387
  };
4454
- export const schemas = Object.values(schemaDict);
4455
- export const lexicons = new Lexicons(schemas);
4456
- export const ids = {
388
+ exports.schemas = Object.values(exports.schemaDict);
389
+ exports.lexicons = new lexicon_1.Lexicons(exports.schemas);
390
+ function validate(v, id, hash, requiredType) {
391
+ return (requiredType ? util_js_1.is$typed : util_js_1.maybe$typed)(v, id, hash)
392
+ ? exports.lexicons.validate(`${id}#${hash}`, v)
393
+ : {
394
+ success: false,
395
+ error: new lexicon_1.ValidationError(`Must be an object with "${hash === 'main' ? id : `${id}#${hash}`}" $type property`),
396
+ };
397
+ }
398
+ exports.ids = {
4457
399
  ComClioplaylistsAlphaActorProfile: 'com.clioplaylists.alpha.actor.profile',
4458
400
  ComClioplaylistsAlphaFeedDefs: 'com.clioplaylists.alpha.feed.defs',
4459
- ComClioplaylistsAlphaFeedGetSongs: 'com.clioplaylists.alpha.feed.getSongs',
401
+ ComClioplaylistsAlphaFeedGetRecommendedPlaylistsByUser: 'com.clioplaylists.alpha.feed.getRecommendedPlaylistsByUser',
4460
402
  ComClioplaylistsAlphaFeedPlaylistIdea: 'com.clioplaylists.alpha.feed.playlistIdea',
4461
- ComAtprotoAdminDefs: 'com.atproto.admin.defs',
4462
- ComAtprotoAdminDeleteAccount: 'com.atproto.admin.deleteAccount',
4463
- ComAtprotoAdminDisableAccountInvites: 'com.atproto.admin.disableAccountInvites',
4464
- ComAtprotoAdminDisableInviteCodes: 'com.atproto.admin.disableInviteCodes',
4465
- ComAtprotoAdminEnableAccountInvites: 'com.atproto.admin.enableAccountInvites',
4466
- ComAtprotoAdminGetAccountInfo: 'com.atproto.admin.getAccountInfo',
4467
- ComAtprotoAdminGetAccountInfos: 'com.atproto.admin.getAccountInfos',
4468
- ComAtprotoAdminGetInviteCodes: 'com.atproto.admin.getInviteCodes',
4469
- ComAtprotoAdminGetSubjectStatus: 'com.atproto.admin.getSubjectStatus',
4470
- ComAtprotoAdminSearchAccounts: 'com.atproto.admin.searchAccounts',
4471
- ComAtprotoAdminSendEmail: 'com.atproto.admin.sendEmail',
4472
- ComAtprotoAdminUpdateAccountEmail: 'com.atproto.admin.updateAccountEmail',
4473
- ComAtprotoAdminUpdateAccountHandle: 'com.atproto.admin.updateAccountHandle',
4474
- ComAtprotoAdminUpdateAccountPassword: 'com.atproto.admin.updateAccountPassword',
4475
- ComAtprotoAdminUpdateSubjectStatus: 'com.atproto.admin.updateSubjectStatus',
4476
- ComAtprotoIdentityDefs: 'com.atproto.identity.defs',
4477
- ComAtprotoIdentityGetRecommendedDidCredentials: 'com.atproto.identity.getRecommendedDidCredentials',
4478
- ComAtprotoIdentityRefreshIdentity: 'com.atproto.identity.refreshIdentity',
4479
- ComAtprotoIdentityRequestPlcOperationSignature: 'com.atproto.identity.requestPlcOperationSignature',
4480
- ComAtprotoIdentityResolveDid: 'com.atproto.identity.resolveDid',
4481
- ComAtprotoIdentityResolveHandle: 'com.atproto.identity.resolveHandle',
4482
- ComAtprotoIdentityResolveIdentity: 'com.atproto.identity.resolveIdentity',
4483
- ComAtprotoIdentitySignPlcOperation: 'com.atproto.identity.signPlcOperation',
4484
- ComAtprotoIdentitySubmitPlcOperation: 'com.atproto.identity.submitPlcOperation',
4485
- ComAtprotoIdentityUpdateHandle: 'com.atproto.identity.updateHandle',
4486
- ComAtprotoLabelDefs: 'com.atproto.label.defs',
4487
- ComAtprotoLabelQueryLabels: 'com.atproto.label.queryLabels',
4488
- ComAtprotoLabelSubscribeLabels: 'com.atproto.label.subscribeLabels',
4489
- ComAtprotoLexiconSchema: 'com.atproto.lexicon.schema',
4490
- ComAtprotoModerationCreateReport: 'com.atproto.moderation.createReport',
4491
- ComAtprotoModerationDefs: 'com.atproto.moderation.defs',
4492
- ComAtprotoRepoApplyWrites: 'com.atproto.repo.applyWrites',
4493
- ComAtprotoRepoCreateRecord: 'com.atproto.repo.createRecord',
4494
- ComAtprotoRepoDefs: 'com.atproto.repo.defs',
4495
- ComAtprotoRepoDeleteRecord: 'com.atproto.repo.deleteRecord',
4496
- ComAtprotoRepoDescribeRepo: 'com.atproto.repo.describeRepo',
4497
- ComAtprotoRepoGetRecord: 'com.atproto.repo.getRecord',
4498
- ComAtprotoRepoImportRepo: 'com.atproto.repo.importRepo',
4499
- ComAtprotoRepoListMissingBlobs: 'com.atproto.repo.listMissingBlobs',
4500
- ComAtprotoRepoListRecords: 'com.atproto.repo.listRecords',
4501
- ComAtprotoRepoPutRecord: 'com.atproto.repo.putRecord',
403
+ ComClioplaylistsAlphaFeedRecommendedPlaylist: 'com.clioplaylists.alpha.feed.recommendedPlaylist',
404
+ ComClioplaylistsAlphaFeedSongRecommendation: 'com.clioplaylists.alpha.feed.songRecommendation',
4502
405
  ComAtprotoRepoStrongRef: 'com.atproto.repo.strongRef',
4503
- ComAtprotoRepoUploadBlob: 'com.atproto.repo.uploadBlob',
4504
- ComAtprotoServerActivateAccount: 'com.atproto.server.activateAccount',
4505
- ComAtprotoServerCheckAccountStatus: 'com.atproto.server.checkAccountStatus',
4506
- ComAtprotoServerConfirmEmail: 'com.atproto.server.confirmEmail',
4507
- ComAtprotoServerCreateAccount: 'com.atproto.server.createAccount',
4508
- ComAtprotoServerCreateAppPassword: 'com.atproto.server.createAppPassword',
4509
- ComAtprotoServerCreateInviteCode: 'com.atproto.server.createInviteCode',
4510
- ComAtprotoServerCreateInviteCodes: 'com.atproto.server.createInviteCodes',
4511
- ComAtprotoServerCreateSession: 'com.atproto.server.createSession',
4512
- ComAtprotoServerDeactivateAccount: 'com.atproto.server.deactivateAccount',
4513
- ComAtprotoServerDefs: 'com.atproto.server.defs',
4514
- ComAtprotoServerDeleteAccount: 'com.atproto.server.deleteAccount',
4515
- ComAtprotoServerDeleteSession: 'com.atproto.server.deleteSession',
4516
- ComAtprotoServerDescribeServer: 'com.atproto.server.describeServer',
4517
- ComAtprotoServerGetAccountInviteCodes: 'com.atproto.server.getAccountInviteCodes',
4518
- ComAtprotoServerGetServiceAuth: 'com.atproto.server.getServiceAuth',
4519
- ComAtprotoServerGetSession: 'com.atproto.server.getSession',
4520
- ComAtprotoServerListAppPasswords: 'com.atproto.server.listAppPasswords',
4521
- ComAtprotoServerRefreshSession: 'com.atproto.server.refreshSession',
4522
- ComAtprotoServerRequestAccountDelete: 'com.atproto.server.requestAccountDelete',
4523
- ComAtprotoServerRequestEmailConfirmation: 'com.atproto.server.requestEmailConfirmation',
4524
- ComAtprotoServerRequestEmailUpdate: 'com.atproto.server.requestEmailUpdate',
4525
- ComAtprotoServerRequestPasswordReset: 'com.atproto.server.requestPasswordReset',
4526
- ComAtprotoServerReserveSigningKey: 'com.atproto.server.reserveSigningKey',
4527
- ComAtprotoServerResetPassword: 'com.atproto.server.resetPassword',
4528
- ComAtprotoServerRevokeAppPassword: 'com.atproto.server.revokeAppPassword',
4529
- ComAtprotoServerUpdateEmail: 'com.atproto.server.updateEmail',
4530
- ComAtprotoSyncGetBlob: 'com.atproto.sync.getBlob',
4531
- ComAtprotoSyncGetBlocks: 'com.atproto.sync.getBlocks',
4532
- ComAtprotoSyncGetCheckout: 'com.atproto.sync.getCheckout',
4533
- ComAtprotoSyncGetHead: 'com.atproto.sync.getHead',
4534
- ComAtprotoSyncGetLatestCommit: 'com.atproto.sync.getLatestCommit',
4535
- ComAtprotoSyncGetRecord: 'com.atproto.sync.getRecord',
4536
- ComAtprotoSyncGetRepo: 'com.atproto.sync.getRepo',
4537
- ComAtprotoSyncGetRepoStatus: 'com.atproto.sync.getRepoStatus',
4538
- ComAtprotoSyncListBlobs: 'com.atproto.sync.listBlobs',
4539
- ComAtprotoSyncListRepos: 'com.atproto.sync.listRepos',
4540
- ComAtprotoSyncListReposByCollection: 'com.atproto.sync.listReposByCollection',
4541
- ComAtprotoSyncNotifyOfUpdate: 'com.atproto.sync.notifyOfUpdate',
4542
- ComAtprotoSyncRequestCrawl: 'com.atproto.sync.requestCrawl',
4543
- ComAtprotoSyncSubscribeRepos: 'com.atproto.sync.subscribeRepos',
4544
- ComAtprotoTempAddReservedHandle: 'com.atproto.temp.addReservedHandle',
4545
- ComAtprotoTempCheckSignupQueue: 'com.atproto.temp.checkSignupQueue',
4546
- ComAtprotoTempFetchLabels: 'com.atproto.temp.fetchLabels',
4547
- ComAtprotoTempRequestPhoneVerification: 'com.atproto.temp.requestPhoneVerification',
4548
406
  };