+258
notifications/__generated__/index.ts
+258
notifications/__generated__/index.ts
···
11
11
import { schemas } from './lexicons.ts'
12
12
import * as SocialGrainNotificationUpdateSeen from './types/social/grain/notification/updateSeen.ts'
13
13
import * as SocialGrainNotificationGetNotifications from './types/social/grain/notification/getNotifications.ts'
14
+
import * as SocialGrainCommentDeleteComment from './types/social/grain/comment/deleteComment.ts'
15
+
import * as SocialGrainCommentCreateComment from './types/social/grain/comment/createComment.ts'
16
+
import * as SocialGrainGalleryDeleteGallery from './types/social/grain/gallery/deleteGallery.ts'
17
+
import * as SocialGrainGalleryCreateItem from './types/social/grain/gallery/createItem.ts'
18
+
import * as SocialGrainGalleryCreateGallery from './types/social/grain/gallery/createGallery.ts'
19
+
import * as SocialGrainGalleryDeleteItem from './types/social/grain/gallery/deleteItem.ts'
20
+
import * as SocialGrainGalleryUpdateGallery from './types/social/grain/gallery/updateGallery.ts'
21
+
import * as SocialGrainGalleryApplySort from './types/social/grain/gallery/applySort.ts'
14
22
import * as SocialGrainGalleryGetGalleryThread from './types/social/grain/gallery/getGalleryThread.ts'
15
23
import * as SocialGrainGalleryGetActorGalleries from './types/social/grain/gallery/getActorGalleries.ts'
16
24
import * as SocialGrainGalleryGetGallery from './types/social/grain/gallery/getGallery.ts'
25
+
import * as SocialGrainGraphDeleteFollow from './types/social/grain/graph/deleteFollow.ts'
26
+
import * as SocialGrainGraphCreateFollow from './types/social/grain/graph/createFollow.ts'
17
27
import * as SocialGrainGraphGetFollowers from './types/social/grain/graph/getFollowers.ts'
18
28
import * as SocialGrainGraphGetFollows from './types/social/grain/graph/getFollows.ts'
29
+
import * as SocialGrainDarkroomGetGalleryComposite from './types/social/grain/darkroom/getGalleryComposite.ts'
30
+
import * as SocialGrainFavoriteDeleteFavorite from './types/social/grain/favorite/deleteFavorite.ts'
31
+
import * as SocialGrainFavoriteCreateFavorite from './types/social/grain/favorite/createFavorite.ts'
19
32
import * as SocialGrainFeedGetTimeline from './types/social/grain/feed/getTimeline.ts'
20
33
import * as SocialGrainActorGetProfile from './types/social/grain/actor/getProfile.ts'
21
34
import * as SocialGrainActorSearchActors from './types/social/grain/actor/searchActors.ts'
35
+
import * as SocialGrainActorUpdateAvatar from './types/social/grain/actor/updateAvatar.ts'
22
36
import * as SocialGrainActorGetActorFavs from './types/social/grain/actor/getActorFavs.ts'
37
+
import * as SocialGrainActorUpdateProfile from './types/social/grain/actor/updateProfile.ts'
38
+
import * as SocialGrainPhotoDeletePhoto from './types/social/grain/photo/deletePhoto.ts'
39
+
import * as SocialGrainPhotoUploadPhoto from './types/social/grain/photo/uploadPhoto.ts'
40
+
import * as SocialGrainPhotoCreateExif from './types/social/grain/photo/createExif.ts'
41
+
import * as SocialGrainPhotoApplyAlts from './types/social/grain/photo/applyAlts.ts'
23
42
import * as SocialGrainPhotoGetActorPhotos from './types/social/grain/photo/getActorPhotos.ts'
24
43
25
44
export const APP_BSKY_GRAPH = {
···
192
211
export class SocialGrainNS {
193
212
_server: Server
194
213
notification: SocialGrainNotificationNS
214
+
comment: SocialGrainCommentNS
195
215
gallery: SocialGrainGalleryNS
196
216
graph: SocialGrainGraphNS
217
+
darkroom: SocialGrainDarkroomNS
218
+
favorite: SocialGrainFavoriteNS
197
219
labeler: SocialGrainLabelerNS
198
220
feed: SocialGrainFeedNS
199
221
actor: SocialGrainActorNS
···
202
224
constructor(server: Server) {
203
225
this._server = server
204
226
this.notification = new SocialGrainNotificationNS(server)
227
+
this.comment = new SocialGrainCommentNS(server)
205
228
this.gallery = new SocialGrainGalleryNS(server)
206
229
this.graph = new SocialGrainGraphNS(server)
230
+
this.darkroom = new SocialGrainDarkroomNS(server)
231
+
this.favorite = new SocialGrainFavoriteNS(server)
207
232
this.labeler = new SocialGrainLabelerNS(server)
208
233
this.feed = new SocialGrainFeedNS(server)
209
234
this.actor = new SocialGrainActorNS(server)
···
241
266
}
242
267
}
243
268
269
+
export class SocialGrainCommentNS {
270
+
_server: Server
271
+
272
+
constructor(server: Server) {
273
+
this._server = server
274
+
}
275
+
276
+
deleteComment<AV extends AuthVerifier>(
277
+
cfg: ConfigOf<
278
+
AV,
279
+
SocialGrainCommentDeleteComment.Handler<ExtractAuth<AV>>,
280
+
SocialGrainCommentDeleteComment.HandlerReqCtx<ExtractAuth<AV>>
281
+
>,
282
+
) {
283
+
const nsid = 'social.grain.comment.deleteComment' // @ts-ignore
284
+
return this._server.xrpc.method(nsid, cfg)
285
+
}
286
+
287
+
createComment<AV extends AuthVerifier>(
288
+
cfg: ConfigOf<
289
+
AV,
290
+
SocialGrainCommentCreateComment.Handler<ExtractAuth<AV>>,
291
+
SocialGrainCommentCreateComment.HandlerReqCtx<ExtractAuth<AV>>
292
+
>,
293
+
) {
294
+
const nsid = 'social.grain.comment.createComment' // @ts-ignore
295
+
return this._server.xrpc.method(nsid, cfg)
296
+
}
297
+
}
298
+
244
299
export class SocialGrainGalleryNS {
245
300
_server: Server
246
301
···
248
303
this._server = server
249
304
}
250
305
306
+
deleteGallery<AV extends AuthVerifier>(
307
+
cfg: ConfigOf<
308
+
AV,
309
+
SocialGrainGalleryDeleteGallery.Handler<ExtractAuth<AV>>,
310
+
SocialGrainGalleryDeleteGallery.HandlerReqCtx<ExtractAuth<AV>>
311
+
>,
312
+
) {
313
+
const nsid = 'social.grain.gallery.deleteGallery' // @ts-ignore
314
+
return this._server.xrpc.method(nsid, cfg)
315
+
}
316
+
317
+
createItem<AV extends AuthVerifier>(
318
+
cfg: ConfigOf<
319
+
AV,
320
+
SocialGrainGalleryCreateItem.Handler<ExtractAuth<AV>>,
321
+
SocialGrainGalleryCreateItem.HandlerReqCtx<ExtractAuth<AV>>
322
+
>,
323
+
) {
324
+
const nsid = 'social.grain.gallery.createItem' // @ts-ignore
325
+
return this._server.xrpc.method(nsid, cfg)
326
+
}
327
+
328
+
createGallery<AV extends AuthVerifier>(
329
+
cfg: ConfigOf<
330
+
AV,
331
+
SocialGrainGalleryCreateGallery.Handler<ExtractAuth<AV>>,
332
+
SocialGrainGalleryCreateGallery.HandlerReqCtx<ExtractAuth<AV>>
333
+
>,
334
+
) {
335
+
const nsid = 'social.grain.gallery.createGallery' // @ts-ignore
336
+
return this._server.xrpc.method(nsid, cfg)
337
+
}
338
+
339
+
deleteItem<AV extends AuthVerifier>(
340
+
cfg: ConfigOf<
341
+
AV,
342
+
SocialGrainGalleryDeleteItem.Handler<ExtractAuth<AV>>,
343
+
SocialGrainGalleryDeleteItem.HandlerReqCtx<ExtractAuth<AV>>
344
+
>,
345
+
) {
346
+
const nsid = 'social.grain.gallery.deleteItem' // @ts-ignore
347
+
return this._server.xrpc.method(nsid, cfg)
348
+
}
349
+
350
+
updateGallery<AV extends AuthVerifier>(
351
+
cfg: ConfigOf<
352
+
AV,
353
+
SocialGrainGalleryUpdateGallery.Handler<ExtractAuth<AV>>,
354
+
SocialGrainGalleryUpdateGallery.HandlerReqCtx<ExtractAuth<AV>>
355
+
>,
356
+
) {
357
+
const nsid = 'social.grain.gallery.updateGallery' // @ts-ignore
358
+
return this._server.xrpc.method(nsid, cfg)
359
+
}
360
+
361
+
applySort<AV extends AuthVerifier>(
362
+
cfg: ConfigOf<
363
+
AV,
364
+
SocialGrainGalleryApplySort.Handler<ExtractAuth<AV>>,
365
+
SocialGrainGalleryApplySort.HandlerReqCtx<ExtractAuth<AV>>
366
+
>,
367
+
) {
368
+
const nsid = 'social.grain.gallery.applySort' // @ts-ignore
369
+
return this._server.xrpc.method(nsid, cfg)
370
+
}
371
+
251
372
getGalleryThread<AV extends AuthVerifier>(
252
373
cfg: ConfigOf<
253
374
AV,
···
289
410
this._server = server
290
411
}
291
412
413
+
deleteFollow<AV extends AuthVerifier>(
414
+
cfg: ConfigOf<
415
+
AV,
416
+
SocialGrainGraphDeleteFollow.Handler<ExtractAuth<AV>>,
417
+
SocialGrainGraphDeleteFollow.HandlerReqCtx<ExtractAuth<AV>>
418
+
>,
419
+
) {
420
+
const nsid = 'social.grain.graph.deleteFollow' // @ts-ignore
421
+
return this._server.xrpc.method(nsid, cfg)
422
+
}
423
+
424
+
createFollow<AV extends AuthVerifier>(
425
+
cfg: ConfigOf<
426
+
AV,
427
+
SocialGrainGraphCreateFollow.Handler<ExtractAuth<AV>>,
428
+
SocialGrainGraphCreateFollow.HandlerReqCtx<ExtractAuth<AV>>
429
+
>,
430
+
) {
431
+
const nsid = 'social.grain.graph.createFollow' // @ts-ignore
432
+
return this._server.xrpc.method(nsid, cfg)
433
+
}
434
+
292
435
getFollowers<AV extends AuthVerifier>(
293
436
cfg: ConfigOf<
294
437
AV,
···
312
455
}
313
456
}
314
457
458
+
export class SocialGrainDarkroomNS {
459
+
_server: Server
460
+
461
+
constructor(server: Server) {
462
+
this._server = server
463
+
}
464
+
465
+
getGalleryComposite<AV extends AuthVerifier>(
466
+
cfg: ConfigOf<
467
+
AV,
468
+
SocialGrainDarkroomGetGalleryComposite.Handler<ExtractAuth<AV>>,
469
+
SocialGrainDarkroomGetGalleryComposite.HandlerReqCtx<ExtractAuth<AV>>
470
+
>,
471
+
) {
472
+
const nsid = 'social.grain.darkroom.getGalleryComposite' // @ts-ignore
473
+
return this._server.xrpc.method(nsid, cfg)
474
+
}
475
+
}
476
+
477
+
export class SocialGrainFavoriteNS {
478
+
_server: Server
479
+
480
+
constructor(server: Server) {
481
+
this._server = server
482
+
}
483
+
484
+
deleteFavorite<AV extends AuthVerifier>(
485
+
cfg: ConfigOf<
486
+
AV,
487
+
SocialGrainFavoriteDeleteFavorite.Handler<ExtractAuth<AV>>,
488
+
SocialGrainFavoriteDeleteFavorite.HandlerReqCtx<ExtractAuth<AV>>
489
+
>,
490
+
) {
491
+
const nsid = 'social.grain.favorite.deleteFavorite' // @ts-ignore
492
+
return this._server.xrpc.method(nsid, cfg)
493
+
}
494
+
495
+
createFavorite<AV extends AuthVerifier>(
496
+
cfg: ConfigOf<
497
+
AV,
498
+
SocialGrainFavoriteCreateFavorite.Handler<ExtractAuth<AV>>,
499
+
SocialGrainFavoriteCreateFavorite.HandlerReqCtx<ExtractAuth<AV>>
500
+
>,
501
+
) {
502
+
const nsid = 'social.grain.favorite.createFavorite' // @ts-ignore
503
+
return this._server.xrpc.method(nsid, cfg)
504
+
}
505
+
}
506
+
315
507
export class SocialGrainLabelerNS {
316
508
_server: Server
317
509
···
368
560
return this._server.xrpc.method(nsid, cfg)
369
561
}
370
562
563
+
updateAvatar<AV extends AuthVerifier>(
564
+
cfg: ConfigOf<
565
+
AV,
566
+
SocialGrainActorUpdateAvatar.Handler<ExtractAuth<AV>>,
567
+
SocialGrainActorUpdateAvatar.HandlerReqCtx<ExtractAuth<AV>>
568
+
>,
569
+
) {
570
+
const nsid = 'social.grain.actor.updateAvatar' // @ts-ignore
571
+
return this._server.xrpc.method(nsid, cfg)
572
+
}
573
+
371
574
getActorFavs<AV extends AuthVerifier>(
372
575
cfg: ConfigOf<
373
576
AV,
···
378
581
const nsid = 'social.grain.actor.getActorFavs' // @ts-ignore
379
582
return this._server.xrpc.method(nsid, cfg)
380
583
}
584
+
585
+
updateProfile<AV extends AuthVerifier>(
586
+
cfg: ConfigOf<
587
+
AV,
588
+
SocialGrainActorUpdateProfile.Handler<ExtractAuth<AV>>,
589
+
SocialGrainActorUpdateProfile.HandlerReqCtx<ExtractAuth<AV>>
590
+
>,
591
+
) {
592
+
const nsid = 'social.grain.actor.updateProfile' // @ts-ignore
593
+
return this._server.xrpc.method(nsid, cfg)
594
+
}
381
595
}
382
596
383
597
export class SocialGrainPhotoNS {
···
385
599
386
600
constructor(server: Server) {
387
601
this._server = server
602
+
}
603
+
604
+
deletePhoto<AV extends AuthVerifier>(
605
+
cfg: ConfigOf<
606
+
AV,
607
+
SocialGrainPhotoDeletePhoto.Handler<ExtractAuth<AV>>,
608
+
SocialGrainPhotoDeletePhoto.HandlerReqCtx<ExtractAuth<AV>>
609
+
>,
610
+
) {
611
+
const nsid = 'social.grain.photo.deletePhoto' // @ts-ignore
612
+
return this._server.xrpc.method(nsid, cfg)
613
+
}
614
+
615
+
uploadPhoto<AV extends AuthVerifier>(
616
+
cfg: ConfigOf<
617
+
AV,
618
+
SocialGrainPhotoUploadPhoto.Handler<ExtractAuth<AV>>,
619
+
SocialGrainPhotoUploadPhoto.HandlerReqCtx<ExtractAuth<AV>>
620
+
>,
621
+
) {
622
+
const nsid = 'social.grain.photo.uploadPhoto' // @ts-ignore
623
+
return this._server.xrpc.method(nsid, cfg)
624
+
}
625
+
626
+
createExif<AV extends AuthVerifier>(
627
+
cfg: ConfigOf<
628
+
AV,
629
+
SocialGrainPhotoCreateExif.Handler<ExtractAuth<AV>>,
630
+
SocialGrainPhotoCreateExif.HandlerReqCtx<ExtractAuth<AV>>
631
+
>,
632
+
) {
633
+
const nsid = 'social.grain.photo.createExif' // @ts-ignore
634
+
return this._server.xrpc.method(nsid, cfg)
635
+
}
636
+
637
+
applyAlts<AV extends AuthVerifier>(
638
+
cfg: ConfigOf<
639
+
AV,
640
+
SocialGrainPhotoApplyAlts.Handler<ExtractAuth<AV>>,
641
+
SocialGrainPhotoApplyAlts.HandlerReqCtx<ExtractAuth<AV>>
642
+
>,
643
+
) {
644
+
const nsid = 'social.grain.photo.applyAlts' // @ts-ignore
645
+
return this._server.xrpc.method(nsid, cfg)
388
646
}
389
647
390
648
getActorPhotos<AV extends AuthVerifier>(
+831
-28
notifications/__generated__/lexicons.ts
+831
-28
notifications/__generated__/lexicons.ts
···
2666
2666
},
2667
2667
},
2668
2668
},
2669
+
SocialGrainCommentDeleteComment: {
2670
+
lexicon: 1,
2671
+
id: 'social.grain.comment.deleteComment',
2672
+
defs: {
2673
+
main: {
2674
+
type: 'procedure',
2675
+
description: 'Delete a comment. Requires auth.',
2676
+
input: {
2677
+
encoding: 'application/json',
2678
+
schema: {
2679
+
type: 'object',
2680
+
required: ['uri'],
2681
+
properties: {
2682
+
uri: {
2683
+
type: 'string',
2684
+
format: 'at-uri',
2685
+
description: 'AT URI of the comment to delete',
2686
+
},
2687
+
},
2688
+
},
2689
+
},
2690
+
output: {
2691
+
encoding: 'application/json',
2692
+
schema: {
2693
+
type: 'object',
2694
+
properties: {
2695
+
success: {
2696
+
type: 'boolean',
2697
+
description: 'True if the comment was deleted',
2698
+
},
2699
+
},
2700
+
},
2701
+
},
2702
+
},
2703
+
},
2704
+
},
2705
+
SocialGrainCommentCreateComment: {
2706
+
lexicon: 1,
2707
+
id: 'social.grain.comment.createComment',
2708
+
defs: {
2709
+
main: {
2710
+
type: 'procedure',
2711
+
description: 'Create a comment. Requires auth.',
2712
+
input: {
2713
+
encoding: 'application/json',
2714
+
schema: {
2715
+
type: 'object',
2716
+
required: ['text', 'subject'],
2717
+
properties: {
2718
+
text: {
2719
+
type: 'string',
2720
+
maxLength: 3000,
2721
+
maxGraphemes: 300,
2722
+
},
2723
+
subject: {
2724
+
type: 'string',
2725
+
format: 'at-uri',
2726
+
},
2727
+
focus: {
2728
+
type: 'string',
2729
+
format: 'at-uri',
2730
+
},
2731
+
replyTo: {
2732
+
type: 'string',
2733
+
format: 'at-uri',
2734
+
},
2735
+
},
2736
+
},
2737
+
},
2738
+
output: {
2739
+
encoding: 'application/json',
2740
+
schema: {
2741
+
type: 'object',
2742
+
properties: {
2743
+
commentUri: {
2744
+
type: 'string',
2745
+
format: 'at-uri',
2746
+
description: 'AT URI of the created comment',
2747
+
},
2748
+
},
2749
+
},
2750
+
},
2751
+
},
2752
+
},
2753
+
},
2669
2754
SocialGrainComment: {
2670
2755
lexicon: 1,
2671
2756
id: 'social.grain.comment',
···
2712
2797
},
2713
2798
},
2714
2799
},
2800
+
SocialGrainGalleryDeleteGallery: {
2801
+
lexicon: 1,
2802
+
id: 'social.grain.gallery.deleteGallery',
2803
+
defs: {
2804
+
main: {
2805
+
type: 'procedure',
2806
+
description:
2807
+
'Delete a gallery. Does not delete the items in the gallery, just the gallery itself.',
2808
+
input: {
2809
+
encoding: 'application/json',
2810
+
schema: {
2811
+
type: 'object',
2812
+
required: ['uri'],
2813
+
properties: {
2814
+
uri: {
2815
+
type: 'string',
2816
+
format: 'at-uri',
2817
+
description: 'Unique identifier of the gallery to delete',
2818
+
},
2819
+
cascade: {
2820
+
type: 'boolean',
2821
+
default: true,
2822
+
description:
2823
+
'If true, will also delete any associated items in the gallery.',
2824
+
},
2825
+
},
2826
+
},
2827
+
},
2828
+
output: {
2829
+
encoding: 'application/json',
2830
+
schema: {
2831
+
type: 'object',
2832
+
properties: {
2833
+
success: {
2834
+
type: 'boolean',
2835
+
description: 'True if the gallery was deleted',
2836
+
},
2837
+
},
2838
+
},
2839
+
},
2840
+
},
2841
+
},
2842
+
},
2715
2843
SocialGrainGalleryItem: {
2716
2844
lexicon: 1,
2717
2845
id: 'social.grain.gallery.item',
···
2738
2866
position: {
2739
2867
type: 'integer',
2740
2868
default: 0,
2869
+
},
2870
+
},
2871
+
},
2872
+
},
2873
+
},
2874
+
},
2875
+
SocialGrainGalleryCreateItem: {
2876
+
lexicon: 1,
2877
+
id: 'social.grain.gallery.createItem',
2878
+
defs: {
2879
+
main: {
2880
+
type: 'procedure',
2881
+
description: 'Create a new gallery item',
2882
+
input: {
2883
+
encoding: 'application/json',
2884
+
schema: {
2885
+
type: 'object',
2886
+
required: ['galleryUri', 'photoUri', 'position'],
2887
+
properties: {
2888
+
galleryUri: {
2889
+
type: 'string',
2890
+
format: 'at-uri',
2891
+
description: 'AT URI of the gallery to create the item in',
2892
+
},
2893
+
photoUri: {
2894
+
type: 'string',
2895
+
format: 'at-uri',
2896
+
description: 'AT URI of the photo to be added as an item',
2897
+
},
2898
+
position: {
2899
+
type: 'integer',
2900
+
description:
2901
+
'Position of the item in the gallery, used for ordering',
2902
+
},
2903
+
},
2904
+
},
2905
+
},
2906
+
output: {
2907
+
encoding: 'application/json',
2908
+
schema: {
2909
+
type: 'object',
2910
+
properties: {
2911
+
itemUri: {
2912
+
type: 'string',
2913
+
format: 'at-uri',
2914
+
description: 'AT URI of the created gallery item',
2915
+
},
2916
+
},
2917
+
},
2918
+
},
2919
+
},
2920
+
},
2921
+
},
2922
+
SocialGrainGalleryCreateGallery: {
2923
+
lexicon: 1,
2924
+
id: 'social.grain.gallery.createGallery',
2925
+
defs: {
2926
+
main: {
2927
+
type: 'procedure',
2928
+
description: 'Create a new gallery',
2929
+
input: {
2930
+
encoding: 'application/json',
2931
+
schema: {
2932
+
type: 'object',
2933
+
required: ['title'],
2934
+
properties: {
2935
+
title: {
2936
+
type: 'string',
2937
+
maxLength: 100,
2938
+
},
2939
+
description: {
2940
+
type: 'string',
2941
+
maxLength: 1000,
2942
+
},
2943
+
},
2944
+
},
2945
+
},
2946
+
output: {
2947
+
encoding: 'application/json',
2948
+
schema: {
2949
+
type: 'object',
2950
+
properties: {
2951
+
galleryUri: {
2952
+
type: 'string',
2953
+
format: 'at-uri',
2954
+
description: 'AT URI of the created gallery',
2955
+
},
2741
2956
},
2742
2957
},
2743
2958
},
···
2837
3052
},
2838
3053
},
2839
3054
},
3055
+
SocialGrainGalleryDeleteItem: {
3056
+
lexicon: 1,
3057
+
id: 'social.grain.gallery.deleteItem',
3058
+
defs: {
3059
+
main: {
3060
+
type: 'procedure',
3061
+
description: 'Delete a gallery item',
3062
+
input: {
3063
+
encoding: 'application/json',
3064
+
schema: {
3065
+
type: 'object',
3066
+
required: ['uri'],
3067
+
properties: {
3068
+
uri: {
3069
+
type: 'string',
3070
+
format: 'at-uri',
3071
+
description: 'AT URI of the gallery to create the item in',
3072
+
},
3073
+
},
3074
+
},
3075
+
},
3076
+
output: {
3077
+
encoding: 'application/json',
3078
+
schema: {
3079
+
type: 'object',
3080
+
properties: {
3081
+
success: {
3082
+
type: 'boolean',
3083
+
description: 'True if the gallery item was deleted',
3084
+
},
3085
+
},
3086
+
},
3087
+
},
3088
+
},
3089
+
},
3090
+
},
2840
3091
SocialGrainGallery: {
2841
3092
lexicon: 1,
2842
3093
id: 'social.grain.gallery',
···
2884
3135
},
2885
3136
},
2886
3137
},
3138
+
SocialGrainGalleryUpdateGallery: {
3139
+
lexicon: 1,
3140
+
id: 'social.grain.gallery.updateGallery',
3141
+
defs: {
3142
+
main: {
3143
+
type: 'procedure',
3144
+
description: 'Create a new gallery',
3145
+
input: {
3146
+
encoding: 'application/json',
3147
+
schema: {
3148
+
type: 'object',
3149
+
required: ['galleryUri', 'title'],
3150
+
properties: {
3151
+
galleryUri: {
3152
+
type: 'string',
3153
+
format: 'at-uri',
3154
+
description: 'The AT-URI of the gallery to update',
3155
+
},
3156
+
title: {
3157
+
type: 'string',
3158
+
},
3159
+
description: {
3160
+
type: 'string',
3161
+
},
3162
+
},
3163
+
},
3164
+
},
3165
+
output: {
3166
+
encoding: 'application/json',
3167
+
schema: {
3168
+
type: 'object',
3169
+
properties: {
3170
+
success: {
3171
+
type: 'boolean',
3172
+
description: 'True if the gallery was updated',
3173
+
},
3174
+
},
3175
+
},
3176
+
},
3177
+
},
3178
+
},
3179
+
},
3180
+
SocialGrainGalleryApplySort: {
3181
+
lexicon: 1,
3182
+
id: 'social.grain.gallery.applySort',
3183
+
defs: {
3184
+
main: {
3185
+
type: 'procedure',
3186
+
description: 'Apply sorting to photos in a gallery. Requires auth.',
3187
+
input: {
3188
+
encoding: 'application/json',
3189
+
schema: {
3190
+
type: 'object',
3191
+
required: ['writes'],
3192
+
properties: {
3193
+
writes: {
3194
+
type: 'array',
3195
+
items: {
3196
+
type: 'ref',
3197
+
ref: 'lex:social.grain.gallery.applySort#update',
3198
+
},
3199
+
},
3200
+
},
3201
+
},
3202
+
},
3203
+
output: {
3204
+
encoding: 'application/json',
3205
+
schema: {
3206
+
type: 'object',
3207
+
properties: {
3208
+
success: {
3209
+
type: 'boolean',
3210
+
description: 'True if the writes were successfully applied',
3211
+
},
3212
+
},
3213
+
},
3214
+
},
3215
+
},
3216
+
update: {
3217
+
type: 'object',
3218
+
required: ['itemUri', 'position'],
3219
+
properties: {
3220
+
itemUri: {
3221
+
type: 'string',
3222
+
format: 'at-uri',
3223
+
description: 'AT URI of the item to update',
3224
+
},
3225
+
position: {
3226
+
type: 'integer',
3227
+
description:
3228
+
'The position of the item in the gallery, used for ordering',
3229
+
},
3230
+
},
3231
+
},
3232
+
},
3233
+
},
2887
3234
SocialGrainGalleryGetGalleryThread: {
2888
3235
lexicon: 1,
2889
3236
id: 'social.grain.gallery.getGalleryThread',
···
3006
3353
},
3007
3354
},
3008
3355
},
3356
+
SocialGrainGraphDeleteFollow: {
3357
+
lexicon: 1,
3358
+
id: 'social.grain.graph.deleteFollow',
3359
+
defs: {
3360
+
main: {
3361
+
type: 'procedure',
3362
+
description: 'Delete a follow relationship. Requires auth.',
3363
+
input: {
3364
+
encoding: 'application/json',
3365
+
schema: {
3366
+
type: 'object',
3367
+
required: ['uri'],
3368
+
properties: {
3369
+
uri: {
3370
+
type: 'string',
3371
+
format: 'at-uri',
3372
+
description: 'AT URI of the follow record to delete',
3373
+
},
3374
+
},
3375
+
},
3376
+
},
3377
+
output: {
3378
+
encoding: 'application/json',
3379
+
schema: {
3380
+
type: 'object',
3381
+
properties: {
3382
+
success: {
3383
+
type: 'boolean',
3384
+
description: 'True if the follow was deleted',
3385
+
},
3386
+
},
3387
+
},
3388
+
},
3389
+
},
3390
+
},
3391
+
},
3009
3392
SocialGrainGraphFollow: {
3010
3393
lexicon: 1,
3011
3394
id: 'social.grain.graph.follow',
···
3024
3407
createdAt: {
3025
3408
type: 'string',
3026
3409
format: 'datetime',
3410
+
},
3411
+
},
3412
+
},
3413
+
},
3414
+
},
3415
+
},
3416
+
SocialGrainGraphCreateFollow: {
3417
+
lexicon: 1,
3418
+
id: 'social.grain.graph.createFollow',
3419
+
defs: {
3420
+
main: {
3421
+
type: 'procedure',
3422
+
description: 'Create a follow relationship between actors.',
3423
+
input: {
3424
+
encoding: 'application/json',
3425
+
schema: {
3426
+
type: 'object',
3427
+
required: ['subject'],
3428
+
properties: {
3429
+
subject: {
3430
+
type: 'string',
3431
+
format: 'at-identifier',
3432
+
description: 'DID of the actor to follow.',
3433
+
},
3434
+
},
3435
+
},
3436
+
},
3437
+
output: {
3438
+
encoding: 'application/json',
3439
+
schema: {
3440
+
type: 'object',
3441
+
properties: {
3442
+
followUri: {
3443
+
type: 'string',
3444
+
format: 'at-uri',
3445
+
description: 'AT URI of the created follow record.',
3446
+
},
3027
3447
},
3028
3448
},
3029
3449
},
···
3136
3556
},
3137
3557
},
3138
3558
},
3559
+
SocialGrainDarkroomGetGalleryComposite: {
3560
+
lexicon: 1,
3561
+
id: 'social.grain.darkroom.getGalleryComposite',
3562
+
defs: {
3563
+
main: {
3564
+
type: 'query',
3565
+
description:
3566
+
'Returns a composite image for a specified gallery AT-URI.',
3567
+
parameters: {
3568
+
type: 'params',
3569
+
required: ['uri'],
3570
+
properties: {
3571
+
uri: {
3572
+
type: 'string',
3573
+
description:
3574
+
'The AT-URI of the gallery to return a composite for.',
3575
+
format: 'at-uri',
3576
+
},
3577
+
},
3578
+
},
3579
+
output: {
3580
+
encoding: '*/*',
3581
+
},
3582
+
},
3583
+
},
3584
+
},
3585
+
SocialGrainFavoriteDeleteFavorite: {
3586
+
lexicon: 1,
3587
+
id: 'social.grain.favorite.deleteFavorite',
3588
+
defs: {
3589
+
main: {
3590
+
type: 'procedure',
3591
+
description: 'Delete a favorite item by its ID.',
3592
+
input: {
3593
+
encoding: 'application/json',
3594
+
schema: {
3595
+
type: 'object',
3596
+
required: ['uri'],
3597
+
properties: {
3598
+
uri: {
3599
+
type: 'string',
3600
+
format: 'at-uri',
3601
+
description: 'The AT URI of the favorite to delete.',
3602
+
},
3603
+
},
3604
+
},
3605
+
},
3606
+
output: {
3607
+
encoding: 'application/json',
3608
+
schema: {
3609
+
type: 'object',
3610
+
required: ['success'],
3611
+
properties: {
3612
+
success: {
3613
+
type: 'boolean',
3614
+
description:
3615
+
'Indicates if the favorite was successfully deleted.',
3616
+
},
3617
+
},
3618
+
},
3619
+
},
3620
+
},
3621
+
},
3622
+
},
3623
+
SocialGrainFavoriteCreateFavorite: {
3624
+
lexicon: 1,
3625
+
id: 'social.grain.favorite.createFavorite',
3626
+
defs: {
3627
+
main: {
3628
+
description: 'Create a favorite for a given subject.',
3629
+
type: 'procedure',
3630
+
input: {
3631
+
encoding: 'application/json',
3632
+
schema: {
3633
+
type: 'object',
3634
+
required: ['subject'],
3635
+
properties: {
3636
+
subject: {
3637
+
type: 'string',
3638
+
format: 'at-uri',
3639
+
description: 'URI of the subject to favorite.',
3640
+
},
3641
+
},
3642
+
},
3643
+
},
3644
+
output: {
3645
+
encoding: 'application/json',
3646
+
schema: {
3647
+
type: 'object',
3648
+
required: ['favoriteUri'],
3649
+
properties: {
3650
+
favoriteUri: {
3651
+
type: 'string',
3652
+
format: 'at-uri',
3653
+
description: 'AT URI for the created favorite.',
3654
+
},
3655
+
},
3656
+
},
3657
+
},
3658
+
},
3659
+
},
3660
+
},
3661
+
SocialGrainFavorite: {
3662
+
lexicon: 1,
3663
+
id: 'social.grain.favorite',
3664
+
defs: {
3665
+
main: {
3666
+
type: 'record',
3667
+
key: 'tid',
3668
+
record: {
3669
+
type: 'object',
3670
+
required: ['createdAt', 'subject'],
3671
+
properties: {
3672
+
createdAt: {
3673
+
type: 'string',
3674
+
format: 'datetime',
3675
+
},
3676
+
subject: {
3677
+
type: 'string',
3678
+
format: 'at-uri',
3679
+
},
3680
+
},
3681
+
},
3682
+
},
3683
+
},
3684
+
},
3139
3685
SocialGrainLabelerDefs: {
3140
3686
lexicon: 1,
3141
3687
id: 'social.grain.labeler.defs',
···
3384
3930
},
3385
3931
},
3386
3932
},
3387
-
SocialGrainFavorite: {
3388
-
lexicon: 1,
3389
-
id: 'social.grain.favorite',
3390
-
defs: {
3391
-
main: {
3392
-
type: 'record',
3393
-
key: 'tid',
3394
-
record: {
3395
-
type: 'object',
3396
-
required: ['createdAt', 'subject'],
3397
-
properties: {
3398
-
createdAt: {
3399
-
type: 'string',
3400
-
format: 'datetime',
3401
-
},
3402
-
subject: {
3403
-
type: 'string',
3404
-
format: 'at-uri',
3405
-
},
3406
-
},
3407
-
},
3408
-
},
3409
-
},
3410
-
},
3411
3933
SocialGrainActorDefs: {
3412
3934
lexicon: 1,
3413
3935
id: 'social.grain.actor.defs',
···
3618
4140
},
3619
4141
},
3620
4142
},
4143
+
SocialGrainActorUpdateAvatar: {
4144
+
lexicon: 1,
4145
+
id: 'social.grain.actor.updateAvatar',
4146
+
defs: {
4147
+
main: {
4148
+
type: 'procedure',
4149
+
description: "Update an actor's avatar. Requires auth.",
4150
+
input: {
4151
+
encoding: '*/*',
4152
+
},
4153
+
output: {
4154
+
encoding: 'application/json',
4155
+
schema: {
4156
+
type: 'object',
4157
+
properties: {
4158
+
success: {
4159
+
type: 'boolean',
4160
+
description:
4161
+
'Indicates whether the avatar update was successful.',
4162
+
},
4163
+
},
4164
+
},
4165
+
},
4166
+
},
4167
+
},
4168
+
},
3621
4169
SocialGrainActorGetActorFavs: {
3622
4170
lexicon: 1,
3623
4171
id: 'social.grain.actor.getActorFavs',
···
3705
4253
},
3706
4254
},
3707
4255
},
4256
+
SocialGrainActorUpdateProfile: {
4257
+
lexicon: 1,
4258
+
id: 'social.grain.actor.updateProfile',
4259
+
defs: {
4260
+
main: {
4261
+
type: 'procedure',
4262
+
description: "Update an actor's profile info. Requires auth.",
4263
+
input: {
4264
+
encoding: 'application/json',
4265
+
schema: {
4266
+
type: 'object',
4267
+
properties: {
4268
+
displayName: {
4269
+
type: 'string',
4270
+
maxGraphemes: 64,
4271
+
maxLength: 640,
4272
+
},
4273
+
description: {
4274
+
type: 'string',
4275
+
description: 'Free-form profile description text.',
4276
+
maxGraphemes: 256,
4277
+
maxLength: 2560,
4278
+
},
4279
+
},
4280
+
},
4281
+
},
4282
+
output: {
4283
+
encoding: 'application/json',
4284
+
schema: {
4285
+
type: 'object',
4286
+
properties: {
4287
+
success: {
4288
+
type: 'boolean',
4289
+
description:
4290
+
'Indicates whether the profile update was successful.',
4291
+
},
4292
+
},
4293
+
},
4294
+
},
4295
+
},
4296
+
},
4297
+
},
3708
4298
SocialGrainPhotoDefs: {
3709
4299
lexicon: 1,
3710
4300
id: 'social.grain.photo.defs',
3711
4301
defs: {
3712
4302
photoView: {
3713
4303
type: 'object',
3714
-
required: ['uri', 'cid', 'thumb', 'fullsize', 'alt'],
4304
+
required: ['uri', 'cid', 'thumb', 'fullsize', 'aspectRatio'],
3715
4305
properties: {
3716
4306
uri: {
3717
4307
type: 'string',
···
3755
4345
},
3756
4346
exifView: {
3757
4347
type: 'object',
3758
-
required: ['photo', 'createdAt'],
4348
+
required: ['uri', 'cid', 'photo', 'record', 'createdAt'],
3759
4349
properties: {
3760
4350
uri: {
3761
4351
type: 'string',
···
3768
4358
photo: {
3769
4359
type: 'string',
3770
4360
format: 'at-uri',
4361
+
},
4362
+
record: {
4363
+
type: 'unknown',
3771
4364
},
3772
4365
createdAt: {
3773
4366
type: 'string',
···
3826
4419
},
3827
4420
},
3828
4421
},
4422
+
SocialGrainPhotoDeletePhoto: {
4423
+
lexicon: 1,
4424
+
id: 'social.grain.photo.deletePhoto',
4425
+
defs: {
4426
+
main: {
4427
+
type: 'procedure',
4428
+
description: 'Delete a photo by its unique at-uri.',
4429
+
input: {
4430
+
encoding: 'application/json',
4431
+
schema: {
4432
+
type: 'object',
4433
+
required: ['uri'],
4434
+
properties: {
4435
+
uri: {
4436
+
type: 'string',
4437
+
format: 'at-uri',
4438
+
description: 'AT URI of the photo to delete.',
4439
+
},
4440
+
cascade: {
4441
+
type: 'boolean',
4442
+
default: true,
4443
+
description:
4444
+
'If true, will also delete any associated EXIF data and gallery items.',
4445
+
},
4446
+
},
4447
+
},
4448
+
},
4449
+
output: {
4450
+
encoding: 'application/json',
4451
+
schema: {
4452
+
type: 'object',
4453
+
required: ['success'],
4454
+
properties: {
4455
+
success: {
4456
+
type: 'boolean',
4457
+
description: 'Indicates if the photo was successfully deleted.',
4458
+
},
4459
+
},
4460
+
},
4461
+
},
4462
+
},
4463
+
},
4464
+
},
4465
+
SocialGrainPhotoUploadPhoto: {
4466
+
lexicon: 1,
4467
+
id: 'social.grain.photo.uploadPhoto',
4468
+
defs: {
4469
+
main: {
4470
+
type: 'procedure',
4471
+
description: 'Upload a photo. Requires auth.',
4472
+
input: {
4473
+
encoding: '*/*',
4474
+
},
4475
+
output: {
4476
+
encoding: 'application/json',
4477
+
schema: {
4478
+
type: 'object',
4479
+
properties: {
4480
+
photoUri: {
4481
+
type: 'string',
4482
+
format: 'at-uri',
4483
+
description: 'AT URI of the created photo',
4484
+
},
4485
+
},
4486
+
},
4487
+
},
4488
+
},
4489
+
},
4490
+
},
4491
+
SocialGrainPhotoCreateExif: {
4492
+
lexicon: 1,
4493
+
id: 'social.grain.photo.createExif',
4494
+
defs: {
4495
+
main: {
4496
+
type: 'procedure',
4497
+
description: 'Create a new Exif record for a photo',
4498
+
input: {
4499
+
encoding: 'application/json',
4500
+
schema: {
4501
+
type: 'object',
4502
+
required: ['photo'],
4503
+
properties: {
4504
+
photo: {
4505
+
type: 'string',
4506
+
format: 'at-uri',
4507
+
},
4508
+
dateTimeOriginal: {
4509
+
type: 'string',
4510
+
format: 'datetime',
4511
+
},
4512
+
exposureTime: {
4513
+
type: 'integer',
4514
+
},
4515
+
fNumber: {
4516
+
type: 'integer',
4517
+
},
4518
+
flash: {
4519
+
type: 'string',
4520
+
},
4521
+
focalLengthIn35mmFormat: {
4522
+
type: 'integer',
4523
+
},
4524
+
iSO: {
4525
+
type: 'integer',
4526
+
},
4527
+
lensMake: {
4528
+
type: 'string',
4529
+
},
4530
+
lensModel: {
4531
+
type: 'string',
4532
+
},
4533
+
make: {
4534
+
type: 'string',
4535
+
},
4536
+
model: {
4537
+
type: 'string',
4538
+
},
4539
+
},
4540
+
},
4541
+
},
4542
+
output: {
4543
+
encoding: 'application/json',
4544
+
schema: {
4545
+
type: 'object',
4546
+
properties: {
4547
+
exifUri: {
4548
+
type: 'string',
4549
+
format: 'at-uri',
4550
+
description: 'AT URI of the created gallery',
4551
+
},
4552
+
},
4553
+
},
4554
+
},
4555
+
},
4556
+
},
4557
+
},
3829
4558
SocialGrainPhotoExif: {
3830
4559
lexicon: 1,
3831
4560
id: 'social.grain.photo.exif',
···
3883
4612
},
3884
4613
},
3885
4614
},
4615
+
SocialGrainPhotoApplyAlts: {
4616
+
lexicon: 1,
4617
+
id: 'social.grain.photo.applyAlts',
4618
+
defs: {
4619
+
main: {
4620
+
type: 'procedure',
4621
+
description: 'Apply alt texts to photos. Requires auth.',
4622
+
input: {
4623
+
encoding: 'application/json',
4624
+
schema: {
4625
+
type: 'object',
4626
+
required: ['writes'],
4627
+
properties: {
4628
+
writes: {
4629
+
type: 'array',
4630
+
items: {
4631
+
type: 'ref',
4632
+
ref: 'lex:social.grain.photo.applyAlts#update',
4633
+
},
4634
+
},
4635
+
},
4636
+
},
4637
+
},
4638
+
output: {
4639
+
encoding: 'application/json',
4640
+
schema: {
4641
+
type: 'object',
4642
+
properties: {
4643
+
success: {
4644
+
type: 'boolean',
4645
+
description: 'True if the writes were successfully applied',
4646
+
},
4647
+
},
4648
+
},
4649
+
},
4650
+
},
4651
+
update: {
4652
+
type: 'object',
4653
+
required: ['photoUri', 'alt'],
4654
+
properties: {
4655
+
photoUri: {
4656
+
type: 'string',
4657
+
format: 'at-uri',
4658
+
description: 'AT URI of the item to update',
4659
+
},
4660
+
alt: {
4661
+
type: 'string',
4662
+
maxLength: 1000,
4663
+
description: 'The alt text to apply to the photo',
4664
+
},
4665
+
},
4666
+
},
4667
+
},
4668
+
},
3886
4669
SocialGrainPhotoGetActorPhotos: {
3887
4670
lexicon: 1,
3888
4671
id: 'social.grain.photo.getActorPhotos',
···
3940
4723
key: 'tid',
3941
4724
record: {
3942
4725
type: 'object',
3943
-
required: ['photo', 'alt'],
4726
+
required: ['photo', 'aspectRatio', 'createdAt'],
3944
4727
properties: {
3945
4728
photo: {
3946
4729
type: 'blob',
···
4273
5056
SocialGrainNotificationGetNotifications:
4274
5057
'social.grain.notification.getNotifications',
4275
5058
SocialGrainCommentDefs: 'social.grain.comment.defs',
5059
+
SocialGrainCommentDeleteComment: 'social.grain.comment.deleteComment',
5060
+
SocialGrainCommentCreateComment: 'social.grain.comment.createComment',
4276
5061
SocialGrainComment: 'social.grain.comment',
5062
+
SocialGrainGalleryDeleteGallery: 'social.grain.gallery.deleteGallery',
4277
5063
SocialGrainGalleryItem: 'social.grain.gallery.item',
5064
+
SocialGrainGalleryCreateItem: 'social.grain.gallery.createItem',
5065
+
SocialGrainGalleryCreateGallery: 'social.grain.gallery.createGallery',
4278
5066
SocialGrainGalleryDefs: 'social.grain.gallery.defs',
5067
+
SocialGrainGalleryDeleteItem: 'social.grain.gallery.deleteItem',
4279
5068
SocialGrainGallery: 'social.grain.gallery',
5069
+
SocialGrainGalleryUpdateGallery: 'social.grain.gallery.updateGallery',
5070
+
SocialGrainGalleryApplySort: 'social.grain.gallery.applySort',
4280
5071
SocialGrainGalleryGetGalleryThread: 'social.grain.gallery.getGalleryThread',
4281
5072
SocialGrainGalleryGetActorGalleries: 'social.grain.gallery.getActorGalleries',
4282
5073
SocialGrainGalleryGetGallery: 'social.grain.gallery.getGallery',
5074
+
SocialGrainGraphDeleteFollow: 'social.grain.graph.deleteFollow',
4283
5075
SocialGrainGraphFollow: 'social.grain.graph.follow',
5076
+
SocialGrainGraphCreateFollow: 'social.grain.graph.createFollow',
4284
5077
SocialGrainGraphGetFollowers: 'social.grain.graph.getFollowers',
4285
5078
SocialGrainGraphGetFollows: 'social.grain.graph.getFollows',
5079
+
SocialGrainDarkroomGetGalleryComposite:
5080
+
'social.grain.darkroom.getGalleryComposite',
5081
+
SocialGrainFavoriteDeleteFavorite: 'social.grain.favorite.deleteFavorite',
5082
+
SocialGrainFavoriteCreateFavorite: 'social.grain.favorite.createFavorite',
5083
+
SocialGrainFavorite: 'social.grain.favorite',
4286
5084
SocialGrainLabelerDefs: 'social.grain.labeler.defs',
4287
5085
SocialGrainLabelerService: 'social.grain.labeler.service',
4288
5086
SocialGrainFeedGetTimeline: 'social.grain.feed.getTimeline',
4289
-
SocialGrainFavorite: 'social.grain.favorite',
4290
5087
SocialGrainActorDefs: 'social.grain.actor.defs',
4291
5088
SocialGrainActorGetProfile: 'social.grain.actor.getProfile',
4292
5089
SocialGrainActorSearchActors: 'social.grain.actor.searchActors',
5090
+
SocialGrainActorUpdateAvatar: 'social.grain.actor.updateAvatar',
4293
5091
SocialGrainActorGetActorFavs: 'social.grain.actor.getActorFavs',
4294
5092
SocialGrainActorProfile: 'social.grain.actor.profile',
5093
+
SocialGrainActorUpdateProfile: 'social.grain.actor.updateProfile',
4295
5094
SocialGrainPhotoDefs: 'social.grain.photo.defs',
5095
+
SocialGrainPhotoDeletePhoto: 'social.grain.photo.deletePhoto',
5096
+
SocialGrainPhotoUploadPhoto: 'social.grain.photo.uploadPhoto',
5097
+
SocialGrainPhotoCreateExif: 'social.grain.photo.createExif',
4296
5098
SocialGrainPhotoExif: 'social.grain.photo.exif',
5099
+
SocialGrainPhotoApplyAlts: 'social.grain.photo.applyAlts',
4297
5100
SocialGrainPhotoGetActorPhotos: 'social.grain.photo.getActorPhotos',
4298
5101
SocialGrainPhoto: 'social.grain.photo',
4299
5102
ComAtprotoLabelDefs: 'com.atproto.label.defs',
+1
-1
notifications/deno.json
+1
-1
notifications/deno.json
···
7
7
"start": "deno run -A ./main.ts",
8
8
"dev": "deno run \"dev:*\"",
9
9
"dev:server": "deno run -A --env-file --watch ./main.ts",
10
-
"codegen": "deno run -A jsr:@bigmoves/bff-cli@0.3.0-beta.42 lexgen"
10
+
"codegen": "deno run -A jsr:@bigmoves/bff-cli@0.3.0-beta.57 lexgen --lexicon-dir=../lexicons"
11
11
},
12
12
"nodeModulesDir": "auto"
13
13
}
-695
notifications/lexicons/app/bsky/actor/defs.json
-695
notifications/lexicons/app/bsky/actor/defs.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "app.bsky.actor.defs",
4
-
"defs": {
5
-
"nux": {
6
-
"type": "object",
7
-
"required": [
8
-
"id",
9
-
"completed"
10
-
],
11
-
"properties": {
12
-
"id": {
13
-
"type": "string",
14
-
"maxLength": 100
15
-
},
16
-
"data": {
17
-
"type": "string",
18
-
"maxLength": 3000,
19
-
"description": "Arbitrary data for the NUX. The structure is defined by the NUX itself. Limited to 300 characters.",
20
-
"maxGraphemes": 300
21
-
},
22
-
"completed": {
23
-
"type": "boolean",
24
-
"default": false
25
-
},
26
-
"expiresAt": {
27
-
"type": "string",
28
-
"format": "datetime",
29
-
"description": "The date and time at which the NUX will expire and should be considered completed."
30
-
}
31
-
},
32
-
"description": "A new user experiences (NUX) storage object"
33
-
},
34
-
"mutedWord": {
35
-
"type": "object",
36
-
"required": [
37
-
"value",
38
-
"targets"
39
-
],
40
-
"properties": {
41
-
"id": {
42
-
"type": "string"
43
-
},
44
-
"value": {
45
-
"type": "string",
46
-
"maxLength": 10000,
47
-
"description": "The muted word itself.",
48
-
"maxGraphemes": 1000
49
-
},
50
-
"targets": {
51
-
"type": "array",
52
-
"items": {
53
-
"ref": "app.bsky.actor.defs#mutedWordTarget",
54
-
"type": "ref"
55
-
},
56
-
"description": "The intended targets of the muted word."
57
-
},
58
-
"expiresAt": {
59
-
"type": "string",
60
-
"format": "datetime",
61
-
"description": "The date and time at which the muted word will expire and no longer be applied."
62
-
},
63
-
"actorTarget": {
64
-
"type": "string",
65
-
"default": "all",
66
-
"description": "Groups of users to apply the muted word to. If undefined, applies to all users.",
67
-
"knownValues": [
68
-
"all",
69
-
"exclude-following"
70
-
]
71
-
}
72
-
},
73
-
"description": "A word that the account owner has muted."
74
-
},
75
-
"savedFeed": {
76
-
"type": "object",
77
-
"required": [
78
-
"id",
79
-
"type",
80
-
"value",
81
-
"pinned"
82
-
],
83
-
"properties": {
84
-
"id": {
85
-
"type": "string"
86
-
},
87
-
"type": {
88
-
"type": "string",
89
-
"knownValues": [
90
-
"feed",
91
-
"list",
92
-
"timeline"
93
-
]
94
-
},
95
-
"value": {
96
-
"type": "string"
97
-
},
98
-
"pinned": {
99
-
"type": "boolean"
100
-
}
101
-
}
102
-
},
103
-
"preferences": {
104
-
"type": "array",
105
-
"items": {
106
-
"refs": [
107
-
"#adultContentPref",
108
-
"#contentLabelPref",
109
-
"#savedFeedsPref",
110
-
"#savedFeedsPrefV2",
111
-
"#personalDetailsPref",
112
-
"#feedViewPref",
113
-
"#threadViewPref",
114
-
"#interestsPref",
115
-
"#mutedWordsPref",
116
-
"#hiddenPostsPref",
117
-
"#bskyAppStatePref",
118
-
"#labelersPref",
119
-
"#postInteractionSettingsPref"
120
-
],
121
-
"type": "union"
122
-
}
123
-
},
124
-
"profileView": {
125
-
"type": "object",
126
-
"required": [
127
-
"did",
128
-
"handle"
129
-
],
130
-
"properties": {
131
-
"did": {
132
-
"type": "string",
133
-
"format": "did"
134
-
},
135
-
"avatar": {
136
-
"type": "string",
137
-
"format": "uri"
138
-
},
139
-
"handle": {
140
-
"type": "string",
141
-
"format": "handle"
142
-
},
143
-
"labels": {
144
-
"type": "array",
145
-
"items": {
146
-
"ref": "com.atproto.label.defs#label",
147
-
"type": "ref"
148
-
}
149
-
},
150
-
"viewer": {
151
-
"ref": "#viewerState",
152
-
"type": "ref"
153
-
},
154
-
"createdAt": {
155
-
"type": "string",
156
-
"format": "datetime"
157
-
},
158
-
"indexedAt": {
159
-
"type": "string",
160
-
"format": "datetime"
161
-
},
162
-
"associated": {
163
-
"ref": "#profileAssociated",
164
-
"type": "ref"
165
-
},
166
-
"description": {
167
-
"type": "string",
168
-
"maxLength": 2560,
169
-
"maxGraphemes": 256
170
-
},
171
-
"displayName": {
172
-
"type": "string",
173
-
"maxLength": 640,
174
-
"maxGraphemes": 64
175
-
}
176
-
}
177
-
},
178
-
"viewerState": {
179
-
"type": "object",
180
-
"properties": {
181
-
"muted": {
182
-
"type": "boolean"
183
-
},
184
-
"blocking": {
185
-
"type": "string",
186
-
"format": "at-uri"
187
-
},
188
-
"blockedBy": {
189
-
"type": "boolean"
190
-
},
191
-
"following": {
192
-
"type": "string",
193
-
"format": "at-uri"
194
-
},
195
-
"followedBy": {
196
-
"type": "string",
197
-
"format": "at-uri"
198
-
},
199
-
"mutedByList": {
200
-
"ref": "app.bsky.graph.defs#listViewBasic",
201
-
"type": "ref"
202
-
},
203
-
"blockingByList": {
204
-
"ref": "app.bsky.graph.defs#listViewBasic",
205
-
"type": "ref"
206
-
},
207
-
"knownFollowers": {
208
-
"ref": "#knownFollowers",
209
-
"type": "ref"
210
-
}
211
-
},
212
-
"description": "Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests."
213
-
},
214
-
"feedViewPref": {
215
-
"type": "object",
216
-
"required": [
217
-
"feed"
218
-
],
219
-
"properties": {
220
-
"feed": {
221
-
"type": "string",
222
-
"description": "The URI of the feed, or an identifier which describes the feed."
223
-
},
224
-
"hideReplies": {
225
-
"type": "boolean",
226
-
"description": "Hide replies in the feed."
227
-
},
228
-
"hideReposts": {
229
-
"type": "boolean",
230
-
"description": "Hide reposts in the feed."
231
-
},
232
-
"hideQuotePosts": {
233
-
"type": "boolean",
234
-
"description": "Hide quote posts in the feed."
235
-
},
236
-
"hideRepliesByLikeCount": {
237
-
"type": "integer",
238
-
"description": "Hide replies in the feed if they do not have this number of likes."
239
-
},
240
-
"hideRepliesByUnfollowed": {
241
-
"type": "boolean",
242
-
"default": true,
243
-
"description": "Hide replies in the feed if they are not by followed users."
244
-
}
245
-
}
246
-
},
247
-
"labelersPref": {
248
-
"type": "object",
249
-
"required": [
250
-
"labelers"
251
-
],
252
-
"properties": {
253
-
"labelers": {
254
-
"type": "array",
255
-
"items": {
256
-
"ref": "#labelerPrefItem",
257
-
"type": "ref"
258
-
}
259
-
}
260
-
}
261
-
},
262
-
"interestsPref": {
263
-
"type": "object",
264
-
"required": [
265
-
"tags"
266
-
],
267
-
"properties": {
268
-
"tags": {
269
-
"type": "array",
270
-
"items": {
271
-
"type": "string",
272
-
"maxLength": 640,
273
-
"maxGraphemes": 64
274
-
},
275
-
"maxLength": 100,
276
-
"description": "A list of tags which describe the account owner's interests gathered during onboarding."
277
-
}
278
-
}
279
-
},
280
-
"knownFollowers": {
281
-
"type": "object",
282
-
"required": [
283
-
"count",
284
-
"followers"
285
-
],
286
-
"properties": {
287
-
"count": {
288
-
"type": "integer"
289
-
},
290
-
"followers": {
291
-
"type": "array",
292
-
"items": {
293
-
"ref": "#profileViewBasic",
294
-
"type": "ref"
295
-
},
296
-
"maxLength": 5,
297
-
"minLength": 0
298
-
}
299
-
},
300
-
"description": "The subject's followers whom you also follow"
301
-
},
302
-
"mutedWordsPref": {
303
-
"type": "object",
304
-
"required": [
305
-
"items"
306
-
],
307
-
"properties": {
308
-
"items": {
309
-
"type": "array",
310
-
"items": {
311
-
"ref": "app.bsky.actor.defs#mutedWord",
312
-
"type": "ref"
313
-
},
314
-
"description": "A list of words the account owner has muted."
315
-
}
316
-
}
317
-
},
318
-
"savedFeedsPref": {
319
-
"type": "object",
320
-
"required": [
321
-
"pinned",
322
-
"saved"
323
-
],
324
-
"properties": {
325
-
"saved": {
326
-
"type": "array",
327
-
"items": {
328
-
"type": "string",
329
-
"format": "at-uri"
330
-
}
331
-
},
332
-
"pinned": {
333
-
"type": "array",
334
-
"items": {
335
-
"type": "string",
336
-
"format": "at-uri"
337
-
}
338
-
},
339
-
"timelineIndex": {
340
-
"type": "integer"
341
-
}
342
-
}
343
-
},
344
-
"threadViewPref": {
345
-
"type": "object",
346
-
"properties": {
347
-
"sort": {
348
-
"type": "string",
349
-
"description": "Sorting mode for threads.",
350
-
"knownValues": [
351
-
"oldest",
352
-
"newest",
353
-
"most-likes",
354
-
"random",
355
-
"hotness"
356
-
]
357
-
},
358
-
"prioritizeFollowedUsers": {
359
-
"type": "boolean",
360
-
"description": "Show followed users at the top of all replies."
361
-
}
362
-
}
363
-
},
364
-
"hiddenPostsPref": {
365
-
"type": "object",
366
-
"required": [
367
-
"items"
368
-
],
369
-
"properties": {
370
-
"items": {
371
-
"type": "array",
372
-
"items": {
373
-
"type": "string",
374
-
"format": "at-uri"
375
-
},
376
-
"description": "A list of URIs of posts the account owner has hidden."
377
-
}
378
-
}
379
-
},
380
-
"labelerPrefItem": {
381
-
"type": "object",
382
-
"required": [
383
-
"did"
384
-
],
385
-
"properties": {
386
-
"did": {
387
-
"type": "string",
388
-
"format": "did"
389
-
}
390
-
}
391
-
},
392
-
"mutedWordTarget": {
393
-
"type": "string",
394
-
"maxLength": 640,
395
-
"knownValues": [
396
-
"content",
397
-
"tag"
398
-
],
399
-
"maxGraphemes": 64
400
-
},
401
-
"adultContentPref": {
402
-
"type": "object",
403
-
"required": [
404
-
"enabled"
405
-
],
406
-
"properties": {
407
-
"enabled": {
408
-
"type": "boolean",
409
-
"default": false
410
-
}
411
-
}
412
-
},
413
-
"bskyAppStatePref": {
414
-
"type": "object",
415
-
"properties": {
416
-
"nuxs": {
417
-
"type": "array",
418
-
"items": {
419
-
"ref": "app.bsky.actor.defs#nux",
420
-
"type": "ref"
421
-
},
422
-
"maxLength": 100,
423
-
"description": "Storage for NUXs the user has encountered."
424
-
},
425
-
"queuedNudges": {
426
-
"type": "array",
427
-
"items": {
428
-
"type": "string",
429
-
"maxLength": 100
430
-
},
431
-
"maxLength": 1000,
432
-
"description": "An array of tokens which identify nudges (modals, popups, tours, highlight dots) that should be shown to the user."
433
-
},
434
-
"activeProgressGuide": {
435
-
"ref": "#bskyAppProgressGuide",
436
-
"type": "ref"
437
-
}
438
-
},
439
-
"description": "A grab bag of state that's specific to the bsky.app program. Third-party apps shouldn't use this."
440
-
},
441
-
"contentLabelPref": {
442
-
"type": "object",
443
-
"required": [
444
-
"label",
445
-
"visibility"
446
-
],
447
-
"properties": {
448
-
"label": {
449
-
"type": "string"
450
-
},
451
-
"labelerDid": {
452
-
"type": "string",
453
-
"format": "did",
454
-
"description": "Which labeler does this preference apply to? If undefined, applies globally."
455
-
},
456
-
"visibility": {
457
-
"type": "string",
458
-
"knownValues": [
459
-
"ignore",
460
-
"show",
461
-
"warn",
462
-
"hide"
463
-
]
464
-
}
465
-
}
466
-
},
467
-
"profileViewBasic": {
468
-
"type": "object",
469
-
"required": [
470
-
"did",
471
-
"handle"
472
-
],
473
-
"properties": {
474
-
"did": {
475
-
"type": "string",
476
-
"format": "did"
477
-
},
478
-
"avatar": {
479
-
"type": "string",
480
-
"format": "uri"
481
-
},
482
-
"handle": {
483
-
"type": "string",
484
-
"format": "handle"
485
-
},
486
-
"labels": {
487
-
"type": "array",
488
-
"items": {
489
-
"ref": "com.atproto.label.defs#label",
490
-
"type": "ref"
491
-
}
492
-
},
493
-
"viewer": {
494
-
"ref": "#viewerState",
495
-
"type": "ref"
496
-
},
497
-
"createdAt": {
498
-
"type": "string",
499
-
"format": "datetime"
500
-
},
501
-
"associated": {
502
-
"ref": "#profileAssociated",
503
-
"type": "ref"
504
-
},
505
-
"displayName": {
506
-
"type": "string",
507
-
"maxLength": 640,
508
-
"maxGraphemes": 64
509
-
}
510
-
}
511
-
},
512
-
"savedFeedsPrefV2": {
513
-
"type": "object",
514
-
"required": [
515
-
"items"
516
-
],
517
-
"properties": {
518
-
"items": {
519
-
"type": "array",
520
-
"items": {
521
-
"ref": "app.bsky.actor.defs#savedFeed",
522
-
"type": "ref"
523
-
}
524
-
}
525
-
}
526
-
},
527
-
"profileAssociated": {
528
-
"type": "object",
529
-
"properties": {
530
-
"chat": {
531
-
"ref": "#profileAssociatedChat",
532
-
"type": "ref"
533
-
},
534
-
"lists": {
535
-
"type": "integer"
536
-
},
537
-
"labeler": {
538
-
"type": "boolean"
539
-
},
540
-
"feedgens": {
541
-
"type": "integer"
542
-
},
543
-
"starterPacks": {
544
-
"type": "integer"
545
-
}
546
-
}
547
-
},
548
-
"personalDetailsPref": {
549
-
"type": "object",
550
-
"properties": {
551
-
"birthDate": {
552
-
"type": "string",
553
-
"format": "datetime",
554
-
"description": "The birth date of account owner."
555
-
}
556
-
}
557
-
},
558
-
"profileViewDetailed": {
559
-
"type": "object",
560
-
"required": [
561
-
"did",
562
-
"handle"
563
-
],
564
-
"properties": {
565
-
"did": {
566
-
"type": "string",
567
-
"format": "did"
568
-
},
569
-
"avatar": {
570
-
"type": "string",
571
-
"format": "uri"
572
-
},
573
-
"banner": {
574
-
"type": "string",
575
-
"format": "uri"
576
-
},
577
-
"handle": {
578
-
"type": "string",
579
-
"format": "handle"
580
-
},
581
-
"labels": {
582
-
"type": "array",
583
-
"items": {
584
-
"ref": "com.atproto.label.defs#label",
585
-
"type": "ref"
586
-
}
587
-
},
588
-
"viewer": {
589
-
"ref": "#viewerState",
590
-
"type": "ref"
591
-
},
592
-
"createdAt": {
593
-
"type": "string",
594
-
"format": "datetime"
595
-
},
596
-
"indexedAt": {
597
-
"type": "string",
598
-
"format": "datetime"
599
-
},
600
-
"associated": {
601
-
"ref": "#profileAssociated",
602
-
"type": "ref"
603
-
},
604
-
"pinnedPost": {
605
-
"ref": "com.atproto.repo.strongRef",
606
-
"type": "ref"
607
-
},
608
-
"postsCount": {
609
-
"type": "integer"
610
-
},
611
-
"description": {
612
-
"type": "string",
613
-
"maxLength": 2560,
614
-
"maxGraphemes": 256
615
-
},
616
-
"displayName": {
617
-
"type": "string",
618
-
"maxLength": 640,
619
-
"maxGraphemes": 64
620
-
},
621
-
"followsCount": {
622
-
"type": "integer"
623
-
},
624
-
"followersCount": {
625
-
"type": "integer"
626
-
},
627
-
"joinedViaStarterPack": {
628
-
"ref": "app.bsky.graph.defs#starterPackViewBasic",
629
-
"type": "ref"
630
-
}
631
-
}
632
-
},
633
-
"bskyAppProgressGuide": {
634
-
"type": "object",
635
-
"required": [
636
-
"guide"
637
-
],
638
-
"properties": {
639
-
"guide": {
640
-
"type": "string",
641
-
"maxLength": 100
642
-
}
643
-
},
644
-
"description": "If set, an active progress guide. Once completed, can be set to undefined. Should have unspecced fields tracking progress."
645
-
},
646
-
"profileAssociatedChat": {
647
-
"type": "object",
648
-
"required": [
649
-
"allowIncoming"
650
-
],
651
-
"properties": {
652
-
"allowIncoming": {
653
-
"type": "string",
654
-
"knownValues": [
655
-
"all",
656
-
"none",
657
-
"following"
658
-
]
659
-
}
660
-
}
661
-
},
662
-
"postInteractionSettingsPref": {
663
-
"type": "object",
664
-
"required": [],
665
-
"properties": {
666
-
"threadgateAllowRules": {
667
-
"type": "array",
668
-
"items": {
669
-
"refs": [
670
-
"app.bsky.feed.threadgate#mentionRule",
671
-
"app.bsky.feed.threadgate#followerRule",
672
-
"app.bsky.feed.threadgate#followingRule",
673
-
"app.bsky.feed.threadgate#listRule"
674
-
],
675
-
"type": "union"
676
-
},
677
-
"maxLength": 5,
678
-
"description": "Matches threadgate record. List of rules defining who can reply to this users posts. If value is an empty array, no one can reply. If value is undefined, anyone can reply."
679
-
},
680
-
"postgateEmbeddingRules": {
681
-
"type": "array",
682
-
"items": {
683
-
"refs": [
684
-
"app.bsky.feed.postgate#disableRule"
685
-
],
686
-
"type": "union"
687
-
},
688
-
"maxLength": 5,
689
-
"description": "Matches postgate record. List of rules defining who can embed this users posts. If value is an empty array or is undefined, no particular rules apply and anyone can embed."
690
-
}
691
-
},
692
-
"description": "Default post interaction settings for the account. These values should be applied as default values when creating new posts. These refs should mirror the threadgate and postgate records exactly."
693
-
}
694
-
}
695
-
}
-64
notifications/lexicons/app/bsky/actor/profile.json
-64
notifications/lexicons/app/bsky/actor/profile.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "app.bsky.actor.profile",
4
-
"defs": {
5
-
"main": {
6
-
"key": "literal:self",
7
-
"type": "record",
8
-
"record": {
9
-
"type": "object",
10
-
"properties": {
11
-
"avatar": {
12
-
"type": "blob",
13
-
"accept": [
14
-
"image/png",
15
-
"image/jpeg"
16
-
],
17
-
"maxSize": 1000000,
18
-
"description": "Small image to be displayed next to posts from account. AKA, 'profile picture'"
19
-
},
20
-
"banner": {
21
-
"type": "blob",
22
-
"accept": [
23
-
"image/png",
24
-
"image/jpeg"
25
-
],
26
-
"maxSize": 1000000,
27
-
"description": "Larger horizontal image to display behind profile view."
28
-
},
29
-
"labels": {
30
-
"refs": [
31
-
"com.atproto.label.defs#selfLabels"
32
-
],
33
-
"type": "union",
34
-
"description": "Self-label values, specific to the Bluesky application, on the overall account."
35
-
},
36
-
"createdAt": {
37
-
"type": "string",
38
-
"format": "datetime"
39
-
},
40
-
"pinnedPost": {
41
-
"ref": "com.atproto.repo.strongRef",
42
-
"type": "ref"
43
-
},
44
-
"description": {
45
-
"type": "string",
46
-
"maxLength": 2560,
47
-
"description": "Free-form profile description text.",
48
-
"maxGraphemes": 256
49
-
},
50
-
"displayName": {
51
-
"type": "string",
52
-
"maxLength": 640,
53
-
"maxGraphemes": 64
54
-
},
55
-
"joinedViaStarterPack": {
56
-
"ref": "com.atproto.repo.strongRef",
57
-
"type": "ref"
58
-
}
59
-
}
60
-
},
61
-
"description": "A declaration of a Bluesky account profile."
62
-
}
63
-
}
64
-
}
-24
notifications/lexicons/app/bsky/embed/defs.json
-24
notifications/lexicons/app/bsky/embed/defs.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "app.bsky.embed.defs",
4
-
"defs": {
5
-
"aspectRatio": {
6
-
"type": "object",
7
-
"required": [
8
-
"width",
9
-
"height"
10
-
],
11
-
"properties": {
12
-
"width": {
13
-
"type": "integer",
14
-
"minimum": 1
15
-
},
16
-
"height": {
17
-
"type": "integer",
18
-
"minimum": 1
19
-
}
20
-
},
21
-
"description": "width:height represents an aspect ratio. It may be approximate, and may not correspond to absolute dimensions in any given unit."
22
-
}
23
-
}
24
-
}
-82
notifications/lexicons/app/bsky/embed/external.json
-82
notifications/lexicons/app/bsky/embed/external.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "app.bsky.embed.external",
4
-
"defs": {
5
-
"main": {
6
-
"type": "object",
7
-
"required": [
8
-
"external"
9
-
],
10
-
"properties": {
11
-
"external": {
12
-
"ref": "#external",
13
-
"type": "ref"
14
-
}
15
-
},
16
-
"description": "A representation of some externally linked content (eg, a URL and 'card'), embedded in a Bluesky record (eg, a post)."
17
-
},
18
-
"view": {
19
-
"type": "object",
20
-
"required": [
21
-
"external"
22
-
],
23
-
"properties": {
24
-
"external": {
25
-
"ref": "#viewExternal",
26
-
"type": "ref"
27
-
}
28
-
}
29
-
},
30
-
"external": {
31
-
"type": "object",
32
-
"required": [
33
-
"uri",
34
-
"title",
35
-
"description"
36
-
],
37
-
"properties": {
38
-
"uri": {
39
-
"type": "string",
40
-
"format": "uri"
41
-
},
42
-
"thumb": {
43
-
"type": "blob",
44
-
"accept": [
45
-
"image/*"
46
-
],
47
-
"maxSize": 1000000
48
-
},
49
-
"title": {
50
-
"type": "string"
51
-
},
52
-
"description": {
53
-
"type": "string"
54
-
}
55
-
}
56
-
},
57
-
"viewExternal": {
58
-
"type": "object",
59
-
"required": [
60
-
"uri",
61
-
"title",
62
-
"description"
63
-
],
64
-
"properties": {
65
-
"uri": {
66
-
"type": "string",
67
-
"format": "uri"
68
-
},
69
-
"thumb": {
70
-
"type": "string",
71
-
"format": "uri"
72
-
},
73
-
"title": {
74
-
"type": "string"
75
-
},
76
-
"description": {
77
-
"type": "string"
78
-
}
79
-
}
80
-
}
81
-
}
82
-
}
-91
notifications/lexicons/app/bsky/embed/images.json
-91
notifications/lexicons/app/bsky/embed/images.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "app.bsky.embed.images",
4
-
"description": "A set of images embedded in a Bluesky record (eg, a post).",
5
-
"defs": {
6
-
"main": {
7
-
"type": "object",
8
-
"required": [
9
-
"images"
10
-
],
11
-
"properties": {
12
-
"images": {
13
-
"type": "array",
14
-
"items": {
15
-
"ref": "#image",
16
-
"type": "ref"
17
-
},
18
-
"maxLength": 4
19
-
}
20
-
}
21
-
},
22
-
"view": {
23
-
"type": "object",
24
-
"required": [
25
-
"images"
26
-
],
27
-
"properties": {
28
-
"images": {
29
-
"type": "array",
30
-
"items": {
31
-
"ref": "#viewImage",
32
-
"type": "ref"
33
-
},
34
-
"maxLength": 4
35
-
}
36
-
}
37
-
},
38
-
"image": {
39
-
"type": "object",
40
-
"required": [
41
-
"image",
42
-
"alt"
43
-
],
44
-
"properties": {
45
-
"alt": {
46
-
"type": "string",
47
-
"description": "Alt text description of the image, for accessibility."
48
-
},
49
-
"image": {
50
-
"type": "blob",
51
-
"accept": [
52
-
"image/*"
53
-
],
54
-
"maxSize": 1000000
55
-
},
56
-
"aspectRatio": {
57
-
"ref": "app.bsky.embed.defs#aspectRatio",
58
-
"type": "ref"
59
-
}
60
-
}
61
-
},
62
-
"viewImage": {
63
-
"type": "object",
64
-
"required": [
65
-
"thumb",
66
-
"fullsize",
67
-
"alt"
68
-
],
69
-
"properties": {
70
-
"alt": {
71
-
"type": "string",
72
-
"description": "Alt text description of the image, for accessibility."
73
-
},
74
-
"thumb": {
75
-
"type": "string",
76
-
"format": "uri",
77
-
"description": "Fully-qualified URL where a thumbnail of the image can be fetched. For example, CDN location provided by the App View."
78
-
},
79
-
"fullsize": {
80
-
"type": "string",
81
-
"format": "uri",
82
-
"description": "Fully-qualified URL where a large version of the image can be fetched. May or may not be the exact original blob. For example, CDN location provided by the App View."
83
-
},
84
-
"aspectRatio": {
85
-
"ref": "app.bsky.embed.defs#aspectRatio",
86
-
"type": "ref"
87
-
}
88
-
}
89
-
}
90
-
}
91
-
}
-160
notifications/lexicons/app/bsky/embed/record.json
-160
notifications/lexicons/app/bsky/embed/record.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "app.bsky.embed.record",
4
-
"description": "A representation of a record embedded in a Bluesky record (eg, a post). For example, a quote-post, or sharing a feed generator record.",
5
-
"defs": {
6
-
"main": {
7
-
"type": "object",
8
-
"required": [
9
-
"record"
10
-
],
11
-
"properties": {
12
-
"record": {
13
-
"ref": "com.atproto.repo.strongRef",
14
-
"type": "ref"
15
-
}
16
-
}
17
-
},
18
-
"view": {
19
-
"type": "object",
20
-
"required": [
21
-
"record"
22
-
],
23
-
"properties": {
24
-
"record": {
25
-
"refs": [
26
-
"#viewRecord",
27
-
"#viewNotFound",
28
-
"#viewBlocked",
29
-
"#viewDetached",
30
-
"app.bsky.feed.defs#generatorView",
31
-
"app.bsky.graph.defs#listView",
32
-
"app.bsky.labeler.defs#labelerView",
33
-
"app.bsky.graph.defs#starterPackViewBasic"
34
-
],
35
-
"type": "union"
36
-
}
37
-
}
38
-
},
39
-
"viewRecord": {
40
-
"type": "object",
41
-
"required": [
42
-
"uri",
43
-
"cid",
44
-
"author",
45
-
"value",
46
-
"indexedAt"
47
-
],
48
-
"properties": {
49
-
"cid": {
50
-
"type": "string",
51
-
"format": "cid"
52
-
},
53
-
"uri": {
54
-
"type": "string",
55
-
"format": "at-uri"
56
-
},
57
-
"value": {
58
-
"type": "unknown",
59
-
"description": "The record data itself."
60
-
},
61
-
"author": {
62
-
"ref": "app.bsky.actor.defs#profileViewBasic",
63
-
"type": "ref"
64
-
},
65
-
"embeds": {
66
-
"type": "array",
67
-
"items": {
68
-
"refs": [
69
-
"app.bsky.embed.images#view",
70
-
"app.bsky.embed.video#view",
71
-
"app.bsky.embed.external#view",
72
-
"app.bsky.embed.record#view",
73
-
"app.bsky.embed.recordWithMedia#view"
74
-
],
75
-
"type": "union"
76
-
}
77
-
},
78
-
"labels": {
79
-
"type": "array",
80
-
"items": {
81
-
"ref": "com.atproto.label.defs#label",
82
-
"type": "ref"
83
-
}
84
-
},
85
-
"indexedAt": {
86
-
"type": "string",
87
-
"format": "datetime"
88
-
},
89
-
"likeCount": {
90
-
"type": "integer"
91
-
},
92
-
"quoteCount": {
93
-
"type": "integer"
94
-
},
95
-
"replyCount": {
96
-
"type": "integer"
97
-
},
98
-
"repostCount": {
99
-
"type": "integer"
100
-
}
101
-
}
102
-
},
103
-
"viewBlocked": {
104
-
"type": "object",
105
-
"required": [
106
-
"uri",
107
-
"blocked",
108
-
"author"
109
-
],
110
-
"properties": {
111
-
"uri": {
112
-
"type": "string",
113
-
"format": "at-uri"
114
-
},
115
-
"author": {
116
-
"ref": "app.bsky.feed.defs#blockedAuthor",
117
-
"type": "ref"
118
-
},
119
-
"blocked": {
120
-
"type": "boolean",
121
-
"const": true
122
-
}
123
-
}
124
-
},
125
-
"viewDetached": {
126
-
"type": "object",
127
-
"required": [
128
-
"uri",
129
-
"detached"
130
-
],
131
-
"properties": {
132
-
"uri": {
133
-
"type": "string",
134
-
"format": "at-uri"
135
-
},
136
-
"detached": {
137
-
"type": "boolean",
138
-
"const": true
139
-
}
140
-
}
141
-
},
142
-
"viewNotFound": {
143
-
"type": "object",
144
-
"required": [
145
-
"uri",
146
-
"notFound"
147
-
],
148
-
"properties": {
149
-
"uri": {
150
-
"type": "string",
151
-
"format": "at-uri"
152
-
},
153
-
"notFound": {
154
-
"type": "boolean",
155
-
"const": true
156
-
}
157
-
}
158
-
}
159
-
}
160
-
}
-49
notifications/lexicons/app/bsky/embed/recordWithMedia.json
-49
notifications/lexicons/app/bsky/embed/recordWithMedia.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "app.bsky.embed.recordWithMedia",
4
-
"description": "A representation of a record embedded in a Bluesky record (eg, a post), alongside other compatible embeds. For example, a quote post and image, or a quote post and external URL card.",
5
-
"defs": {
6
-
"main": {
7
-
"type": "object",
8
-
"required": [
9
-
"record",
10
-
"media"
11
-
],
12
-
"properties": {
13
-
"media": {
14
-
"refs": [
15
-
"app.bsky.embed.images",
16
-
"app.bsky.embed.video",
17
-
"app.bsky.embed.external"
18
-
],
19
-
"type": "union"
20
-
},
21
-
"record": {
22
-
"ref": "app.bsky.embed.record",
23
-
"type": "ref"
24
-
}
25
-
}
26
-
},
27
-
"view": {
28
-
"type": "object",
29
-
"required": [
30
-
"record",
31
-
"media"
32
-
],
33
-
"properties": {
34
-
"media": {
35
-
"refs": [
36
-
"app.bsky.embed.images#view",
37
-
"app.bsky.embed.video#view",
38
-
"app.bsky.embed.external#view"
39
-
],
40
-
"type": "union"
41
-
},
42
-
"record": {
43
-
"ref": "app.bsky.embed.record#view",
44
-
"type": "ref"
45
-
}
46
-
}
47
-
}
48
-
}
49
-
}
-90
notifications/lexicons/app/bsky/embed/video.json
-90
notifications/lexicons/app/bsky/embed/video.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "app.bsky.embed.video",
4
-
"description": "A video embedded in a Bluesky record (eg, a post).",
5
-
"defs": {
6
-
"main": {
7
-
"type": "object",
8
-
"required": [
9
-
"video"
10
-
],
11
-
"properties": {
12
-
"alt": {
13
-
"type": "string",
14
-
"maxLength": 10000,
15
-
"description": "Alt text description of the video, for accessibility.",
16
-
"maxGraphemes": 1000
17
-
},
18
-
"video": {
19
-
"type": "blob",
20
-
"accept": [
21
-
"video/mp4"
22
-
],
23
-
"maxSize": 50000000
24
-
},
25
-
"captions": {
26
-
"type": "array",
27
-
"items": {
28
-
"ref": "#caption",
29
-
"type": "ref"
30
-
},
31
-
"maxLength": 20
32
-
},
33
-
"aspectRatio": {
34
-
"ref": "app.bsky.embed.defs#aspectRatio",
35
-
"type": "ref"
36
-
}
37
-
}
38
-
},
39
-
"view": {
40
-
"type": "object",
41
-
"required": [
42
-
"cid",
43
-
"playlist"
44
-
],
45
-
"properties": {
46
-
"alt": {
47
-
"type": "string",
48
-
"maxLength": 10000,
49
-
"maxGraphemes": 1000
50
-
},
51
-
"cid": {
52
-
"type": "string",
53
-
"format": "cid"
54
-
},
55
-
"playlist": {
56
-
"type": "string",
57
-
"format": "uri"
58
-
},
59
-
"thumbnail": {
60
-
"type": "string",
61
-
"format": "uri"
62
-
},
63
-
"aspectRatio": {
64
-
"ref": "app.bsky.embed.defs#aspectRatio",
65
-
"type": "ref"
66
-
}
67
-
}
68
-
},
69
-
"caption": {
70
-
"type": "object",
71
-
"required": [
72
-
"lang",
73
-
"file"
74
-
],
75
-
"properties": {
76
-
"file": {
77
-
"type": "blob",
78
-
"accept": [
79
-
"text/vtt"
80
-
],
81
-
"maxSize": 20000
82
-
},
83
-
"lang": {
84
-
"type": "string",
85
-
"format": "language"
86
-
}
87
-
}
88
-
}
89
-
}
90
-
}
-515
notifications/lexicons/app/bsky/feed/defs.json
-515
notifications/lexicons/app/bsky/feed/defs.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "app.bsky.feed.defs",
4
-
"defs": {
5
-
"postView": {
6
-
"type": "object",
7
-
"required": [
8
-
"uri",
9
-
"cid",
10
-
"author",
11
-
"record",
12
-
"indexedAt"
13
-
],
14
-
"properties": {
15
-
"cid": {
16
-
"type": "string",
17
-
"format": "cid"
18
-
},
19
-
"uri": {
20
-
"type": "string",
21
-
"format": "at-uri"
22
-
},
23
-
"embed": {
24
-
"refs": [
25
-
"app.bsky.embed.images#view",
26
-
"app.bsky.embed.video#view",
27
-
"app.bsky.embed.external#view",
28
-
"app.bsky.embed.record#view",
29
-
"app.bsky.embed.recordWithMedia#view"
30
-
],
31
-
"type": "union"
32
-
},
33
-
"author": {
34
-
"ref": "app.bsky.actor.defs#profileViewBasic",
35
-
"type": "ref"
36
-
},
37
-
"labels": {
38
-
"type": "array",
39
-
"items": {
40
-
"ref": "com.atproto.label.defs#label",
41
-
"type": "ref"
42
-
}
43
-
},
44
-
"record": {
45
-
"type": "unknown"
46
-
},
47
-
"viewer": {
48
-
"ref": "#viewerState",
49
-
"type": "ref"
50
-
},
51
-
"indexedAt": {
52
-
"type": "string",
53
-
"format": "datetime"
54
-
},
55
-
"likeCount": {
56
-
"type": "integer"
57
-
},
58
-
"quoteCount": {
59
-
"type": "integer"
60
-
},
61
-
"replyCount": {
62
-
"type": "integer"
63
-
},
64
-
"threadgate": {
65
-
"ref": "#threadgateView",
66
-
"type": "ref"
67
-
},
68
-
"repostCount": {
69
-
"type": "integer"
70
-
}
71
-
}
72
-
},
73
-
"replyRef": {
74
-
"type": "object",
75
-
"required": [
76
-
"root",
77
-
"parent"
78
-
],
79
-
"properties": {
80
-
"root": {
81
-
"refs": [
82
-
"#postView",
83
-
"#notFoundPost",
84
-
"#blockedPost"
85
-
],
86
-
"type": "union"
87
-
},
88
-
"parent": {
89
-
"refs": [
90
-
"#postView",
91
-
"#notFoundPost",
92
-
"#blockedPost"
93
-
],
94
-
"type": "union"
95
-
},
96
-
"grandparentAuthor": {
97
-
"ref": "app.bsky.actor.defs#profileViewBasic",
98
-
"type": "ref",
99
-
"description": "When parent is a reply to another post, this is the author of that post."
100
-
}
101
-
}
102
-
},
103
-
"reasonPin": {
104
-
"type": "object",
105
-
"properties": {}
106
-
},
107
-
"blockedPost": {
108
-
"type": "object",
109
-
"required": [
110
-
"uri",
111
-
"blocked",
112
-
"author"
113
-
],
114
-
"properties": {
115
-
"uri": {
116
-
"type": "string",
117
-
"format": "at-uri"
118
-
},
119
-
"author": {
120
-
"ref": "#blockedAuthor",
121
-
"type": "ref"
122
-
},
123
-
"blocked": {
124
-
"type": "boolean",
125
-
"const": true
126
-
}
127
-
}
128
-
},
129
-
"interaction": {
130
-
"type": "object",
131
-
"properties": {
132
-
"item": {
133
-
"type": "string",
134
-
"format": "at-uri"
135
-
},
136
-
"event": {
137
-
"type": "string",
138
-
"knownValues": [
139
-
"app.bsky.feed.defs#requestLess",
140
-
"app.bsky.feed.defs#requestMore",
141
-
"app.bsky.feed.defs#clickthroughItem",
142
-
"app.bsky.feed.defs#clickthroughAuthor",
143
-
"app.bsky.feed.defs#clickthroughReposter",
144
-
"app.bsky.feed.defs#clickthroughEmbed",
145
-
"app.bsky.feed.defs#interactionSeen",
146
-
"app.bsky.feed.defs#interactionLike",
147
-
"app.bsky.feed.defs#interactionRepost",
148
-
"app.bsky.feed.defs#interactionReply",
149
-
"app.bsky.feed.defs#interactionQuote",
150
-
"app.bsky.feed.defs#interactionShare"
151
-
]
152
-
},
153
-
"feedContext": {
154
-
"type": "string",
155
-
"maxLength": 2000,
156
-
"description": "Context on a feed item that was originally supplied by the feed generator on getFeedSkeleton."
157
-
}
158
-
}
159
-
},
160
-
"requestLess": {
161
-
"type": "token",
162
-
"description": "Request that less content like the given feed item be shown in the feed"
163
-
},
164
-
"requestMore": {
165
-
"type": "token",
166
-
"description": "Request that more content like the given feed item be shown in the feed"
167
-
},
168
-
"viewerState": {
169
-
"type": "object",
170
-
"properties": {
171
-
"like": {
172
-
"type": "string",
173
-
"format": "at-uri"
174
-
},
175
-
"pinned": {
176
-
"type": "boolean"
177
-
},
178
-
"repost": {
179
-
"type": "string",
180
-
"format": "at-uri"
181
-
},
182
-
"threadMuted": {
183
-
"type": "boolean"
184
-
},
185
-
"replyDisabled": {
186
-
"type": "boolean"
187
-
},
188
-
"embeddingDisabled": {
189
-
"type": "boolean"
190
-
}
191
-
},
192
-
"description": "Metadata about the requesting account's relationship with the subject content. Only has meaningful content for authed requests."
193
-
},
194
-
"feedViewPost": {
195
-
"type": "object",
196
-
"required": [
197
-
"post"
198
-
],
199
-
"properties": {
200
-
"post": {
201
-
"ref": "#postView",
202
-
"type": "ref"
203
-
},
204
-
"reply": {
205
-
"ref": "#replyRef",
206
-
"type": "ref"
207
-
},
208
-
"reason": {
209
-
"refs": [
210
-
"#reasonRepost",
211
-
"#reasonPin"
212
-
],
213
-
"type": "union"
214
-
},
215
-
"feedContext": {
216
-
"type": "string",
217
-
"maxLength": 2000,
218
-
"description": "Context provided by feed generator that may be passed back alongside interactions."
219
-
}
220
-
}
221
-
},
222
-
"notFoundPost": {
223
-
"type": "object",
224
-
"required": [
225
-
"uri",
226
-
"notFound"
227
-
],
228
-
"properties": {
229
-
"uri": {
230
-
"type": "string",
231
-
"format": "at-uri"
232
-
},
233
-
"notFound": {
234
-
"type": "boolean",
235
-
"const": true
236
-
}
237
-
}
238
-
},
239
-
"reasonRepost": {
240
-
"type": "object",
241
-
"required": [
242
-
"by",
243
-
"indexedAt"
244
-
],
245
-
"properties": {
246
-
"by": {
247
-
"ref": "app.bsky.actor.defs#profileViewBasic",
248
-
"type": "ref"
249
-
},
250
-
"indexedAt": {
251
-
"type": "string",
252
-
"format": "datetime"
253
-
}
254
-
}
255
-
},
256
-
"blockedAuthor": {
257
-
"type": "object",
258
-
"required": [
259
-
"did"
260
-
],
261
-
"properties": {
262
-
"did": {
263
-
"type": "string",
264
-
"format": "did"
265
-
},
266
-
"viewer": {
267
-
"ref": "app.bsky.actor.defs#viewerState",
268
-
"type": "ref"
269
-
}
270
-
}
271
-
},
272
-
"generatorView": {
273
-
"type": "object",
274
-
"required": [
275
-
"uri",
276
-
"cid",
277
-
"did",
278
-
"creator",
279
-
"displayName",
280
-
"indexedAt"
281
-
],
282
-
"properties": {
283
-
"cid": {
284
-
"type": "string",
285
-
"format": "cid"
286
-
},
287
-
"did": {
288
-
"type": "string",
289
-
"format": "did"
290
-
},
291
-
"uri": {
292
-
"type": "string",
293
-
"format": "at-uri"
294
-
},
295
-
"avatar": {
296
-
"type": "string",
297
-
"format": "uri"
298
-
},
299
-
"labels": {
300
-
"type": "array",
301
-
"items": {
302
-
"ref": "com.atproto.label.defs#label",
303
-
"type": "ref"
304
-
}
305
-
},
306
-
"viewer": {
307
-
"ref": "#generatorViewerState",
308
-
"type": "ref"
309
-
},
310
-
"creator": {
311
-
"ref": "app.bsky.actor.defs#profileView",
312
-
"type": "ref"
313
-
},
314
-
"indexedAt": {
315
-
"type": "string",
316
-
"format": "datetime"
317
-
},
318
-
"likeCount": {
319
-
"type": "integer",
320
-
"minimum": 0
321
-
},
322
-
"contentMode": {
323
-
"type": "string",
324
-
"knownValues": [
325
-
"app.bsky.feed.defs#contentModeUnspecified",
326
-
"app.bsky.feed.defs#contentModeVideo"
327
-
]
328
-
},
329
-
"description": {
330
-
"type": "string",
331
-
"maxLength": 3000,
332
-
"maxGraphemes": 300
333
-
},
334
-
"displayName": {
335
-
"type": "string"
336
-
},
337
-
"descriptionFacets": {
338
-
"type": "array",
339
-
"items": {
340
-
"ref": "app.bsky.richtext.facet",
341
-
"type": "ref"
342
-
}
343
-
},
344
-
"acceptsInteractions": {
345
-
"type": "boolean"
346
-
}
347
-
}
348
-
},
349
-
"threadContext": {
350
-
"type": "object",
351
-
"properties": {
352
-
"rootAuthorLike": {
353
-
"type": "string",
354
-
"format": "at-uri"
355
-
}
356
-
},
357
-
"description": "Metadata about this post within the context of the thread it is in."
358
-
},
359
-
"threadViewPost": {
360
-
"type": "object",
361
-
"required": [
362
-
"post"
363
-
],
364
-
"properties": {
365
-
"post": {
366
-
"ref": "#postView",
367
-
"type": "ref"
368
-
},
369
-
"parent": {
370
-
"refs": [
371
-
"#threadViewPost",
372
-
"#notFoundPost",
373
-
"#blockedPost"
374
-
],
375
-
"type": "union"
376
-
},
377
-
"replies": {
378
-
"type": "array",
379
-
"items": {
380
-
"refs": [
381
-
"#threadViewPost",
382
-
"#notFoundPost",
383
-
"#blockedPost"
384
-
],
385
-
"type": "union"
386
-
}
387
-
},
388
-
"threadContext": {
389
-
"ref": "#threadContext",
390
-
"type": "ref"
391
-
}
392
-
}
393
-
},
394
-
"threadgateView": {
395
-
"type": "object",
396
-
"properties": {
397
-
"cid": {
398
-
"type": "string",
399
-
"format": "cid"
400
-
},
401
-
"uri": {
402
-
"type": "string",
403
-
"format": "at-uri"
404
-
},
405
-
"lists": {
406
-
"type": "array",
407
-
"items": {
408
-
"ref": "app.bsky.graph.defs#listViewBasic",
409
-
"type": "ref"
410
-
}
411
-
},
412
-
"record": {
413
-
"type": "unknown"
414
-
}
415
-
}
416
-
},
417
-
"interactionLike": {
418
-
"type": "token",
419
-
"description": "User liked the feed item"
420
-
},
421
-
"interactionSeen": {
422
-
"type": "token",
423
-
"description": "Feed item was seen by user"
424
-
},
425
-
"clickthroughItem": {
426
-
"type": "token",
427
-
"description": "User clicked through to the feed item"
428
-
},
429
-
"contentModeVideo": {
430
-
"type": "token",
431
-
"description": "Declares the feed generator returns posts containing app.bsky.embed.video embeds."
432
-
},
433
-
"interactionQuote": {
434
-
"type": "token",
435
-
"description": "User quoted the feed item"
436
-
},
437
-
"interactionReply": {
438
-
"type": "token",
439
-
"description": "User replied to the feed item"
440
-
},
441
-
"interactionShare": {
442
-
"type": "token",
443
-
"description": "User shared the feed item"
444
-
},
445
-
"skeletonFeedPost": {
446
-
"type": "object",
447
-
"required": [
448
-
"post"
449
-
],
450
-
"properties": {
451
-
"post": {
452
-
"type": "string",
453
-
"format": "at-uri"
454
-
},
455
-
"reason": {
456
-
"refs": [
457
-
"#skeletonReasonRepost",
458
-
"#skeletonReasonPin"
459
-
],
460
-
"type": "union"
461
-
},
462
-
"feedContext": {
463
-
"type": "string",
464
-
"maxLength": 2000,
465
-
"description": "Context that will be passed through to client and may be passed to feed generator back alongside interactions."
466
-
}
467
-
}
468
-
},
469
-
"clickthroughEmbed": {
470
-
"type": "token",
471
-
"description": "User clicked through to the embedded content of the feed item"
472
-
},
473
-
"interactionRepost": {
474
-
"type": "token",
475
-
"description": "User reposted the feed item"
476
-
},
477
-
"skeletonReasonPin": {
478
-
"type": "object",
479
-
"properties": {}
480
-
},
481
-
"clickthroughAuthor": {
482
-
"type": "token",
483
-
"description": "User clicked through to the author of the feed item"
484
-
},
485
-
"clickthroughReposter": {
486
-
"type": "token",
487
-
"description": "User clicked through to the reposter of the feed item"
488
-
},
489
-
"generatorViewerState": {
490
-
"type": "object",
491
-
"properties": {
492
-
"like": {
493
-
"type": "string",
494
-
"format": "at-uri"
495
-
}
496
-
}
497
-
},
498
-
"skeletonReasonRepost": {
499
-
"type": "object",
500
-
"required": [
501
-
"repost"
502
-
],
503
-
"properties": {
504
-
"repost": {
505
-
"type": "string",
506
-
"format": "at-uri"
507
-
}
508
-
}
509
-
},
510
-
"contentModeUnspecified": {
511
-
"type": "token",
512
-
"description": "Declares the feed generator returns any types of posts."
513
-
}
514
-
}
515
-
}
-54
notifications/lexicons/app/bsky/feed/postgate.json
-54
notifications/lexicons/app/bsky/feed/postgate.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "app.bsky.feed.postgate",
4
-
"defs": {
5
-
"main": {
6
-
"key": "tid",
7
-
"type": "record",
8
-
"record": {
9
-
"type": "object",
10
-
"required": [
11
-
"post",
12
-
"createdAt"
13
-
],
14
-
"properties": {
15
-
"post": {
16
-
"type": "string",
17
-
"format": "at-uri",
18
-
"description": "Reference (AT-URI) to the post record."
19
-
},
20
-
"createdAt": {
21
-
"type": "string",
22
-
"format": "datetime"
23
-
},
24
-
"embeddingRules": {
25
-
"type": "array",
26
-
"items": {
27
-
"refs": [
28
-
"#disableRule"
29
-
],
30
-
"type": "union"
31
-
},
32
-
"maxLength": 5,
33
-
"description": "List of rules defining who can embed this post. If value is an empty array or is undefined, no particular rules apply and anyone can embed."
34
-
},
35
-
"detachedEmbeddingUris": {
36
-
"type": "array",
37
-
"items": {
38
-
"type": "string",
39
-
"format": "at-uri"
40
-
},
41
-
"maxLength": 50,
42
-
"description": "List of AT-URIs embedding this post that the author has detached from."
43
-
}
44
-
}
45
-
},
46
-
"description": "Record defining interaction rules for a post. The record key (rkey) of the postgate record must match the record key of the post, and that record must be in the same repository."
47
-
},
48
-
"disableRule": {
49
-
"type": "object",
50
-
"properties": {},
51
-
"description": "Disables embedding of this post."
52
-
}
53
-
}
54
-
}
-80
notifications/lexicons/app/bsky/feed/threadgate.json
-80
notifications/lexicons/app/bsky/feed/threadgate.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "app.bsky.feed.threadgate",
4
-
"defs": {
5
-
"main": {
6
-
"key": "tid",
7
-
"type": "record",
8
-
"record": {
9
-
"type": "object",
10
-
"required": [
11
-
"post",
12
-
"createdAt"
13
-
],
14
-
"properties": {
15
-
"post": {
16
-
"type": "string",
17
-
"format": "at-uri",
18
-
"description": "Reference (AT-URI) to the post record."
19
-
},
20
-
"allow": {
21
-
"type": "array",
22
-
"items": {
23
-
"refs": [
24
-
"#mentionRule",
25
-
"#followerRule",
26
-
"#followingRule",
27
-
"#listRule"
28
-
],
29
-
"type": "union"
30
-
},
31
-
"maxLength": 5,
32
-
"description": "List of rules defining who can reply to this post. If value is an empty array, no one can reply. If value is undefined, anyone can reply."
33
-
},
34
-
"createdAt": {
35
-
"type": "string",
36
-
"format": "datetime"
37
-
},
38
-
"hiddenReplies": {
39
-
"type": "array",
40
-
"items": {
41
-
"type": "string",
42
-
"format": "at-uri"
43
-
},
44
-
"maxLength": 50,
45
-
"description": "List of hidden reply URIs."
46
-
}
47
-
}
48
-
},
49
-
"description": "Record defining interaction gating rules for a thread (aka, reply controls). The record key (rkey) of the threadgate record must match the record key of the thread's root post, and that record must be in the same repository."
50
-
},
51
-
"listRule": {
52
-
"type": "object",
53
-
"required": [
54
-
"list"
55
-
],
56
-
"properties": {
57
-
"list": {
58
-
"type": "string",
59
-
"format": "at-uri"
60
-
}
61
-
},
62
-
"description": "Allow replies from actors on a list."
63
-
},
64
-
"mentionRule": {
65
-
"type": "object",
66
-
"properties": {},
67
-
"description": "Allow replies from actors mentioned in your post."
68
-
},
69
-
"followerRule": {
70
-
"type": "object",
71
-
"properties": {},
72
-
"description": "Allow replies from actors who follow you."
73
-
},
74
-
"followingRule": {
75
-
"type": "object",
76
-
"properties": {},
77
-
"description": "Allow replies from actors you follow."
78
-
}
79
-
}
80
-
}
-332
notifications/lexicons/app/bsky/graph/defs.json
-332
notifications/lexicons/app/bsky/graph/defs.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "app.bsky.graph.defs",
4
-
"defs": {
5
-
"modlist": {
6
-
"type": "token",
7
-
"description": "A list of actors to apply an aggregate moderation action (mute/block) on."
8
-
},
9
-
"listView": {
10
-
"type": "object",
11
-
"required": [
12
-
"uri",
13
-
"cid",
14
-
"creator",
15
-
"name",
16
-
"purpose",
17
-
"indexedAt"
18
-
],
19
-
"properties": {
20
-
"cid": {
21
-
"type": "string",
22
-
"format": "cid"
23
-
},
24
-
"uri": {
25
-
"type": "string",
26
-
"format": "at-uri"
27
-
},
28
-
"name": {
29
-
"type": "string",
30
-
"maxLength": 64,
31
-
"minLength": 1
32
-
},
33
-
"avatar": {
34
-
"type": "string",
35
-
"format": "uri"
36
-
},
37
-
"labels": {
38
-
"type": "array",
39
-
"items": {
40
-
"ref": "com.atproto.label.defs#label",
41
-
"type": "ref"
42
-
}
43
-
},
44
-
"viewer": {
45
-
"ref": "#listViewerState",
46
-
"type": "ref"
47
-
},
48
-
"creator": {
49
-
"ref": "app.bsky.actor.defs#profileView",
50
-
"type": "ref"
51
-
},
52
-
"purpose": {
53
-
"ref": "#listPurpose",
54
-
"type": "ref"
55
-
},
56
-
"indexedAt": {
57
-
"type": "string",
58
-
"format": "datetime"
59
-
},
60
-
"description": {
61
-
"type": "string",
62
-
"maxLength": 3000,
63
-
"maxGraphemes": 300
64
-
},
65
-
"listItemCount": {
66
-
"type": "integer",
67
-
"minimum": 0
68
-
},
69
-
"descriptionFacets": {
70
-
"type": "array",
71
-
"items": {
72
-
"ref": "app.bsky.richtext.facet",
73
-
"type": "ref"
74
-
}
75
-
}
76
-
}
77
-
},
78
-
"curatelist": {
79
-
"type": "token",
80
-
"description": "A list of actors used for curation purposes such as list feeds or interaction gating."
81
-
},
82
-
"listPurpose": {
83
-
"type": "string",
84
-
"knownValues": [
85
-
"app.bsky.graph.defs#modlist",
86
-
"app.bsky.graph.defs#curatelist",
87
-
"app.bsky.graph.defs#referencelist"
88
-
]
89
-
},
90
-
"listItemView": {
91
-
"type": "object",
92
-
"required": [
93
-
"uri",
94
-
"subject"
95
-
],
96
-
"properties": {
97
-
"uri": {
98
-
"type": "string",
99
-
"format": "at-uri"
100
-
},
101
-
"subject": {
102
-
"ref": "app.bsky.actor.defs#profileView",
103
-
"type": "ref"
104
-
}
105
-
}
106
-
},
107
-
"relationship": {
108
-
"type": "object",
109
-
"required": [
110
-
"did"
111
-
],
112
-
"properties": {
113
-
"did": {
114
-
"type": "string",
115
-
"format": "did"
116
-
},
117
-
"following": {
118
-
"type": "string",
119
-
"format": "at-uri",
120
-
"description": "if the actor follows this DID, this is the AT-URI of the follow record"
121
-
},
122
-
"followedBy": {
123
-
"type": "string",
124
-
"format": "at-uri",
125
-
"description": "if the actor is followed by this DID, contains the AT-URI of the follow record"
126
-
}
127
-
},
128
-
"description": "lists the bi-directional graph relationships between one actor (not indicated in the object), and the target actors (the DID included in the object)"
129
-
},
130
-
"listViewBasic": {
131
-
"type": "object",
132
-
"required": [
133
-
"uri",
134
-
"cid",
135
-
"name",
136
-
"purpose"
137
-
],
138
-
"properties": {
139
-
"cid": {
140
-
"type": "string",
141
-
"format": "cid"
142
-
},
143
-
"uri": {
144
-
"type": "string",
145
-
"format": "at-uri"
146
-
},
147
-
"name": {
148
-
"type": "string",
149
-
"maxLength": 64,
150
-
"minLength": 1
151
-
},
152
-
"avatar": {
153
-
"type": "string",
154
-
"format": "uri"
155
-
},
156
-
"labels": {
157
-
"type": "array",
158
-
"items": {
159
-
"ref": "com.atproto.label.defs#label",
160
-
"type": "ref"
161
-
}
162
-
},
163
-
"viewer": {
164
-
"ref": "#listViewerState",
165
-
"type": "ref"
166
-
},
167
-
"purpose": {
168
-
"ref": "#listPurpose",
169
-
"type": "ref"
170
-
},
171
-
"indexedAt": {
172
-
"type": "string",
173
-
"format": "datetime"
174
-
},
175
-
"listItemCount": {
176
-
"type": "integer",
177
-
"minimum": 0
178
-
}
179
-
}
180
-
},
181
-
"notFoundActor": {
182
-
"type": "object",
183
-
"required": [
184
-
"actor",
185
-
"notFound"
186
-
],
187
-
"properties": {
188
-
"actor": {
189
-
"type": "string",
190
-
"format": "at-identifier"
191
-
},
192
-
"notFound": {
193
-
"type": "boolean",
194
-
"const": true
195
-
}
196
-
},
197
-
"description": "indicates that a handle or DID could not be resolved"
198
-
},
199
-
"referencelist": {
200
-
"type": "token",
201
-
"description": "A list of actors used for only for reference purposes such as within a starter pack."
202
-
},
203
-
"listViewerState": {
204
-
"type": "object",
205
-
"properties": {
206
-
"muted": {
207
-
"type": "boolean"
208
-
},
209
-
"blocked": {
210
-
"type": "string",
211
-
"format": "at-uri"
212
-
}
213
-
}
214
-
},
215
-
"starterPackView": {
216
-
"type": "object",
217
-
"required": [
218
-
"uri",
219
-
"cid",
220
-
"record",
221
-
"creator",
222
-
"indexedAt"
223
-
],
224
-
"properties": {
225
-
"cid": {
226
-
"type": "string",
227
-
"format": "cid"
228
-
},
229
-
"uri": {
230
-
"type": "string",
231
-
"format": "at-uri"
232
-
},
233
-
"list": {
234
-
"ref": "#listViewBasic",
235
-
"type": "ref"
236
-
},
237
-
"feeds": {
238
-
"type": "array",
239
-
"items": {
240
-
"ref": "app.bsky.feed.defs#generatorView",
241
-
"type": "ref"
242
-
},
243
-
"maxLength": 3
244
-
},
245
-
"labels": {
246
-
"type": "array",
247
-
"items": {
248
-
"ref": "com.atproto.label.defs#label",
249
-
"type": "ref"
250
-
}
251
-
},
252
-
"record": {
253
-
"type": "unknown"
254
-
},
255
-
"creator": {
256
-
"ref": "app.bsky.actor.defs#profileViewBasic",
257
-
"type": "ref"
258
-
},
259
-
"indexedAt": {
260
-
"type": "string",
261
-
"format": "datetime"
262
-
},
263
-
"joinedWeekCount": {
264
-
"type": "integer",
265
-
"minimum": 0
266
-
},
267
-
"listItemsSample": {
268
-
"type": "array",
269
-
"items": {
270
-
"ref": "#listItemView",
271
-
"type": "ref"
272
-
},
273
-
"maxLength": 12
274
-
},
275
-
"joinedAllTimeCount": {
276
-
"type": "integer",
277
-
"minimum": 0
278
-
}
279
-
}
280
-
},
281
-
"starterPackViewBasic": {
282
-
"type": "object",
283
-
"required": [
284
-
"uri",
285
-
"cid",
286
-
"record",
287
-
"creator",
288
-
"indexedAt"
289
-
],
290
-
"properties": {
291
-
"cid": {
292
-
"type": "string",
293
-
"format": "cid"
294
-
},
295
-
"uri": {
296
-
"type": "string",
297
-
"format": "at-uri"
298
-
},
299
-
"labels": {
300
-
"type": "array",
301
-
"items": {
302
-
"ref": "com.atproto.label.defs#label",
303
-
"type": "ref"
304
-
}
305
-
},
306
-
"record": {
307
-
"type": "unknown"
308
-
},
309
-
"creator": {
310
-
"ref": "app.bsky.actor.defs#profileViewBasic",
311
-
"type": "ref"
312
-
},
313
-
"indexedAt": {
314
-
"type": "string",
315
-
"format": "datetime"
316
-
},
317
-
"listItemCount": {
318
-
"type": "integer",
319
-
"minimum": 0
320
-
},
321
-
"joinedWeekCount": {
322
-
"type": "integer",
323
-
"minimum": 0
324
-
},
325
-
"joinedAllTimeCount": {
326
-
"type": "integer",
327
-
"minimum": 0
328
-
}
329
-
}
330
-
}
331
-
}
332
-
}
-28
notifications/lexicons/app/bsky/graph/follow.json
-28
notifications/lexicons/app/bsky/graph/follow.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "app.bsky.graph.follow",
4
-
"defs": {
5
-
"main": {
6
-
"key": "tid",
7
-
"type": "record",
8
-
"record": {
9
-
"type": "object",
10
-
"required": [
11
-
"subject",
12
-
"createdAt"
13
-
],
14
-
"properties": {
15
-
"subject": {
16
-
"type": "string",
17
-
"format": "did"
18
-
},
19
-
"createdAt": {
20
-
"type": "string",
21
-
"format": "datetime"
22
-
}
23
-
}
24
-
},
25
-
"description": "Record declaring a social 'follow' relationship of another account. Duplicate follows will be ignored by the AppView."
26
-
}
27
-
}
28
-
}
-128
notifications/lexicons/app/bsky/labeler/defs.json
-128
notifications/lexicons/app/bsky/labeler/defs.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "app.bsky.labeler.defs",
4
-
"defs": {
5
-
"labelerView": {
6
-
"type": "object",
7
-
"required": [
8
-
"uri",
9
-
"cid",
10
-
"creator",
11
-
"indexedAt"
12
-
],
13
-
"properties": {
14
-
"cid": {
15
-
"type": "string",
16
-
"format": "cid"
17
-
},
18
-
"uri": {
19
-
"type": "string",
20
-
"format": "at-uri"
21
-
},
22
-
"labels": {
23
-
"type": "array",
24
-
"items": {
25
-
"ref": "com.atproto.label.defs#label",
26
-
"type": "ref"
27
-
}
28
-
},
29
-
"viewer": {
30
-
"ref": "#labelerViewerState",
31
-
"type": "ref"
32
-
},
33
-
"creator": {
34
-
"ref": "app.bsky.actor.defs#profileView",
35
-
"type": "ref"
36
-
},
37
-
"indexedAt": {
38
-
"type": "string",
39
-
"format": "datetime"
40
-
},
41
-
"likeCount": {
42
-
"type": "integer",
43
-
"minimum": 0
44
-
}
45
-
}
46
-
},
47
-
"labelerPolicies": {
48
-
"type": "object",
49
-
"required": [
50
-
"labelValues"
51
-
],
52
-
"properties": {
53
-
"labelValues": {
54
-
"type": "array",
55
-
"items": {
56
-
"ref": "com.atproto.label.defs#labelValue",
57
-
"type": "ref"
58
-
},
59
-
"description": "The label values which this labeler publishes. May include global or custom labels."
60
-
},
61
-
"labelValueDefinitions": {
62
-
"type": "array",
63
-
"items": {
64
-
"ref": "com.atproto.label.defs#labelValueDefinition",
65
-
"type": "ref"
66
-
},
67
-
"description": "Label values created by this labeler and scoped exclusively to it. Labels defined here will override global label definitions for this labeler."
68
-
}
69
-
}
70
-
},
71
-
"labelerViewerState": {
72
-
"type": "object",
73
-
"properties": {
74
-
"like": {
75
-
"type": "string",
76
-
"format": "at-uri"
77
-
}
78
-
}
79
-
},
80
-
"labelerViewDetailed": {
81
-
"type": "object",
82
-
"required": [
83
-
"uri",
84
-
"cid",
85
-
"creator",
86
-
"policies",
87
-
"indexedAt"
88
-
],
89
-
"properties": {
90
-
"cid": {
91
-
"type": "string",
92
-
"format": "cid"
93
-
},
94
-
"uri": {
95
-
"type": "string",
96
-
"format": "at-uri"
97
-
},
98
-
"labels": {
99
-
"type": "array",
100
-
"items": {
101
-
"ref": "com.atproto.label.defs#label",
102
-
"type": "ref"
103
-
}
104
-
},
105
-
"viewer": {
106
-
"ref": "#labelerViewerState",
107
-
"type": "ref"
108
-
},
109
-
"creator": {
110
-
"ref": "app.bsky.actor.defs#profileView",
111
-
"type": "ref"
112
-
},
113
-
"policies": {
114
-
"ref": "app.bsky.labeler.defs#labelerPolicies",
115
-
"type": "ref"
116
-
},
117
-
"indexedAt": {
118
-
"type": "string",
119
-
"format": "datetime"
120
-
},
121
-
"likeCount": {
122
-
"type": "integer",
123
-
"minimum": 0
124
-
}
125
-
}
126
-
}
127
-
}
128
-
}
-89
notifications/lexicons/app/bsky/richtext/facet.json
-89
notifications/lexicons/app/bsky/richtext/facet.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "app.bsky.richtext.facet",
4
-
"defs": {
5
-
"tag": {
6
-
"type": "object",
7
-
"required": [
8
-
"tag"
9
-
],
10
-
"properties": {
11
-
"tag": {
12
-
"type": "string",
13
-
"maxLength": 640,
14
-
"maxGraphemes": 64
15
-
}
16
-
},
17
-
"description": "Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not (except in the case of 'double hash tags')."
18
-
},
19
-
"link": {
20
-
"type": "object",
21
-
"required": [
22
-
"uri"
23
-
],
24
-
"properties": {
25
-
"uri": {
26
-
"type": "string",
27
-
"format": "uri"
28
-
}
29
-
},
30
-
"description": "Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL."
31
-
},
32
-
"main": {
33
-
"type": "object",
34
-
"required": [
35
-
"index",
36
-
"features"
37
-
],
38
-
"properties": {
39
-
"index": {
40
-
"ref": "#byteSlice",
41
-
"type": "ref"
42
-
},
43
-
"features": {
44
-
"type": "array",
45
-
"items": {
46
-
"refs": [
47
-
"#mention",
48
-
"#link",
49
-
"#tag"
50
-
],
51
-
"type": "union"
52
-
}
53
-
}
54
-
},
55
-
"description": "Annotation of a sub-string within rich text."
56
-
},
57
-
"mention": {
58
-
"type": "object",
59
-
"required": [
60
-
"did"
61
-
],
62
-
"properties": {
63
-
"did": {
64
-
"type": "string",
65
-
"format": "did"
66
-
}
67
-
},
68
-
"description": "Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID."
69
-
},
70
-
"byteSlice": {
71
-
"type": "object",
72
-
"required": [
73
-
"byteStart",
74
-
"byteEnd"
75
-
],
76
-
"properties": {
77
-
"byteEnd": {
78
-
"type": "integer",
79
-
"minimum": 0
80
-
},
81
-
"byteStart": {
82
-
"type": "integer",
83
-
"minimum": 0
84
-
}
85
-
},
86
-
"description": "Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets."
87
-
}
88
-
}
89
-
}
-192
notifications/lexicons/com/atproto/label/defs.json
-192
notifications/lexicons/com/atproto/label/defs.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "com.atproto.label.defs",
4
-
"defs": {
5
-
"label": {
6
-
"type": "object",
7
-
"required": [
8
-
"src",
9
-
"uri",
10
-
"val",
11
-
"cts"
12
-
],
13
-
"properties": {
14
-
"cid": {
15
-
"type": "string",
16
-
"format": "cid",
17
-
"description": "Optionally, CID specifying the specific version of 'uri' resource this label applies to."
18
-
},
19
-
"cts": {
20
-
"type": "string",
21
-
"format": "datetime",
22
-
"description": "Timestamp when this label was created."
23
-
},
24
-
"exp": {
25
-
"type": "string",
26
-
"format": "datetime",
27
-
"description": "Timestamp at which this label expires (no longer applies)."
28
-
},
29
-
"neg": {
30
-
"type": "boolean",
31
-
"description": "If true, this is a negation label, overwriting a previous label."
32
-
},
33
-
"sig": {
34
-
"type": "bytes",
35
-
"description": "Signature of dag-cbor encoded label."
36
-
},
37
-
"src": {
38
-
"type": "string",
39
-
"format": "did",
40
-
"description": "DID of the actor who created this label."
41
-
},
42
-
"uri": {
43
-
"type": "string",
44
-
"format": "uri",
45
-
"description": "AT URI of the record, repository (account), or other resource that this label applies to."
46
-
},
47
-
"val": {
48
-
"type": "string",
49
-
"maxLength": 128,
50
-
"description": "The short string name of the value or type of this label."
51
-
},
52
-
"ver": {
53
-
"type": "integer",
54
-
"description": "The AT Protocol version of the label object."
55
-
}
56
-
},
57
-
"description": "Metadata tag on an atproto resource (eg, repo or record)."
58
-
},
59
-
"selfLabel": {
60
-
"type": "object",
61
-
"required": [
62
-
"val"
63
-
],
64
-
"properties": {
65
-
"val": {
66
-
"type": "string",
67
-
"maxLength": 128,
68
-
"description": "The short string name of the value or type of this label."
69
-
}
70
-
},
71
-
"description": "Metadata tag on an atproto record, published by the author within the record. Note that schemas should use #selfLabels, not #selfLabel."
72
-
},
73
-
"labelValue": {
74
-
"type": "string",
75
-
"knownValues": [
76
-
"!hide",
77
-
"!no-promote",
78
-
"!warn",
79
-
"!no-unauthenticated",
80
-
"dmca-violation",
81
-
"doxxing",
82
-
"porn",
83
-
"sexual",
84
-
"nudity",
85
-
"nsfl",
86
-
"gore"
87
-
]
88
-
},
89
-
"selfLabels": {
90
-
"type": "object",
91
-
"required": [
92
-
"values"
93
-
],
94
-
"properties": {
95
-
"values": {
96
-
"type": "array",
97
-
"items": {
98
-
"ref": "#selfLabel",
99
-
"type": "ref"
100
-
},
101
-
"maxLength": 10
102
-
}
103
-
},
104
-
"description": "Metadata tags on an atproto record, published by the author within the record."
105
-
},
106
-
"labelValueDefinition": {
107
-
"type": "object",
108
-
"required": [
109
-
"identifier",
110
-
"severity",
111
-
"blurs",
112
-
"locales"
113
-
],
114
-
"properties": {
115
-
"blurs": {
116
-
"type": "string",
117
-
"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.",
118
-
"knownValues": [
119
-
"content",
120
-
"media",
121
-
"none"
122
-
]
123
-
},
124
-
"locales": {
125
-
"type": "array",
126
-
"items": {
127
-
"ref": "#labelValueDefinitionStrings",
128
-
"type": "ref"
129
-
}
130
-
},
131
-
"severity": {
132
-
"type": "string",
133
-
"description": "How should a client visually convey this label? 'inform' means neutral and informational; 'alert' means negative and warning; 'none' means show nothing.",
134
-
"knownValues": [
135
-
"inform",
136
-
"alert",
137
-
"none"
138
-
]
139
-
},
140
-
"adultOnly": {
141
-
"type": "boolean",
142
-
"description": "Does the user need to have adult content enabled in order to configure this label?"
143
-
},
144
-
"identifier": {
145
-
"type": "string",
146
-
"maxLength": 100,
147
-
"description": "The value of the label being defined. Must only include lowercase ascii and the '-' character ([a-z-]+).",
148
-
"maxGraphemes": 100
149
-
},
150
-
"defaultSetting": {
151
-
"type": "string",
152
-
"default": "warn",
153
-
"description": "The default setting for this label.",
154
-
"knownValues": [
155
-
"ignore",
156
-
"warn",
157
-
"hide"
158
-
]
159
-
}
160
-
},
161
-
"description": "Declares a label value and its expected interpretations and behaviors."
162
-
},
163
-
"labelValueDefinitionStrings": {
164
-
"type": "object",
165
-
"required": [
166
-
"lang",
167
-
"name",
168
-
"description"
169
-
],
170
-
"properties": {
171
-
"lang": {
172
-
"type": "string",
173
-
"format": "language",
174
-
"description": "The code of the language these strings are written in."
175
-
},
176
-
"name": {
177
-
"type": "string",
178
-
"maxLength": 640,
179
-
"description": "A short human-readable name for the label.",
180
-
"maxGraphemes": 64
181
-
},
182
-
"description": {
183
-
"type": "string",
184
-
"maxLength": 100000,
185
-
"description": "A longer description of what the label means and why it might be applied.",
186
-
"maxGraphemes": 10000
187
-
}
188
-
},
189
-
"description": "Strings which describe the label in the UI, localized into a specific language."
190
-
}
191
-
}
192
-
}
-55
notifications/lexicons/com/atproto/moderation/defs.json
-55
notifications/lexicons/com/atproto/moderation/defs.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "com.atproto.moderation.defs",
4
-
"defs": {
5
-
"reasonRude": {
6
-
"type": "token",
7
-
"description": "Rude, harassing, explicit, or otherwise unwelcoming behavior"
8
-
},
9
-
"reasonSpam": {
10
-
"type": "token",
11
-
"description": "Spam: frequent unwanted promotion, replies, mentions"
12
-
},
13
-
"reasonType": {
14
-
"type": "string",
15
-
"knownValues": [
16
-
"com.atproto.moderation.defs#reasonSpam",
17
-
"com.atproto.moderation.defs#reasonViolation",
18
-
"com.atproto.moderation.defs#reasonMisleading",
19
-
"com.atproto.moderation.defs#reasonSexual",
20
-
"com.atproto.moderation.defs#reasonRude",
21
-
"com.atproto.moderation.defs#reasonOther",
22
-
"com.atproto.moderation.defs#reasonAppeal"
23
-
]
24
-
},
25
-
"reasonOther": {
26
-
"type": "token",
27
-
"description": "Other: reports not falling under another report category"
28
-
},
29
-
"subjectType": {
30
-
"type": "string",
31
-
"description": "Tag describing a type of subject that might be reported.",
32
-
"knownValues": [
33
-
"account",
34
-
"record",
35
-
"chat"
36
-
]
37
-
},
38
-
"reasonAppeal": {
39
-
"type": "token",
40
-
"description": "Appeal: appeal a previously taken moderation action"
41
-
},
42
-
"reasonSexual": {
43
-
"type": "token",
44
-
"description": "Unwanted or mislabeled sexual content"
45
-
},
46
-
"reasonViolation": {
47
-
"type": "token",
48
-
"description": "Direct violation of server rules, laws, terms of service"
49
-
},
50
-
"reasonMisleading": {
51
-
"type": "token",
52
-
"description": "Misleading identity, affiliation, or content"
53
-
}
54
-
}
55
-
}
-24
notifications/lexicons/com/atproto/repo/strongRef.json
-24
notifications/lexicons/com/atproto/repo/strongRef.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "com.atproto.repo.strongRef",
4
-
"description": "A URI with a content-hash fingerprint.",
5
-
"defs": {
6
-
"main": {
7
-
"type": "object",
8
-
"required": [
9
-
"uri",
10
-
"cid"
11
-
],
12
-
"properties": {
13
-
"cid": {
14
-
"type": "string",
15
-
"format": "cid"
16
-
},
17
-
"uri": {
18
-
"type": "string",
19
-
"format": "at-uri"
20
-
}
21
-
}
22
-
}
23
-
}
24
-
}
-71
notifications/lexicons/sh/tangled/actor/profile.json
-71
notifications/lexicons/sh/tangled/actor/profile.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "sh.tangled.actor.profile",
4
-
"defs": {
5
-
"main": {
6
-
"type": "record",
7
-
"description": "A declaration of a Tangled account profile.",
8
-
"key": "literal:self",
9
-
"record": {
10
-
"type": "object",
11
-
"required": [
12
-
"bluesky"
13
-
],
14
-
"properties": {
15
-
"description": {
16
-
"type": "string",
17
-
"description": "Free-form profile description text.",
18
-
"maxGraphemes": 256,
19
-
"maxLength": 2560
20
-
},
21
-
"links": {
22
-
"type": "array",
23
-
"minLength": 0,
24
-
"maxLength": 5,
25
-
"items": {
26
-
"type": "string",
27
-
"description": "Any URI, intended for social profiles or websites, can be used to link DIDs/AT-URIs too."
28
-
}
29
-
},
30
-
"stats": {
31
-
"type": "array",
32
-
"minLength": 0,
33
-
"maxLength": 2,
34
-
"items": {
35
-
"type": "string",
36
-
"description": "Vanity stats.",
37
-
"enum": [
38
-
"merged-pull-request-count",
39
-
"closed-pull-request-count",
40
-
"open-pull-request-count",
41
-
"open-issue-count",
42
-
"closed-issue-count",
43
-
"repository-count"
44
-
]
45
-
}
46
-
},
47
-
"bluesky": {
48
-
"type": "boolean",
49
-
"description": "Include link to this account on Bluesky."
50
-
},
51
-
"location": {
52
-
"type": "string",
53
-
"description": "Free-form location text.",
54
-
"maxGraphemes": 40,
55
-
"maxLength": 400
56
-
},
57
-
"pinnedRepositories": {
58
-
"type": "array",
59
-
"description": "Any ATURI, it is up to appviews to validate these fields.",
60
-
"minLength": 0,
61
-
"maxLength": 6,
62
-
"items": {
63
-
"type": "string",
64
-
"format": "at-uri"
65
-
}
66
-
}
67
-
}
68
-
}
69
-
}
70
-
}
71
-
}
-27
notifications/lexicons/sh/tangled/graph/follow.json
-27
notifications/lexicons/sh/tangled/graph/follow.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "sh.tangled.graph.follow",
4
-
"defs": {
5
-
"main": {
6
-
"type": "record",
7
-
"key": "tid",
8
-
"record": {
9
-
"type": "object",
10
-
"required": [
11
-
"subject",
12
-
"createdAt"
13
-
],
14
-
"properties": {
15
-
"subject": {
16
-
"type": "string",
17
-
"format": "did"
18
-
},
19
-
"createdAt": {
20
-
"type": "string",
21
-
"format": "datetime"
22
-
}
23
-
}
24
-
}
25
-
}
26
-
}
27
-
}