grain.social is a photo sharing platform built on atproto.
at main 712 lines 21 kB view raw
1/** 2 * GENERATED CODE - DO NOT MODIFY 3 */ 4import { 5 createServer as createXrpcServer, 6 Server as XrpcServer, 7 type Options as XrpcOptions, 8 type AuthVerifier, 9 type StreamAuthVerifier, 10} from "npm:@atproto/xrpc-server" 11import { schemas } from './lexicons.ts' 12import * as SocialGrainNotificationUpdateSeen from './types/social/grain/notification/updateSeen.ts' 13import * as SocialGrainNotificationGetNotifications from './types/social/grain/notification/getNotifications.ts' 14import * as SocialGrainCommentDeleteComment from './types/social/grain/comment/deleteComment.ts' 15import * as SocialGrainCommentCreateComment from './types/social/grain/comment/createComment.ts' 16import * as SocialGrainGalleryDeleteGallery from './types/social/grain/gallery/deleteGallery.ts' 17import * as SocialGrainGalleryCreateItem from './types/social/grain/gallery/createItem.ts' 18import * as SocialGrainGalleryCreateGallery from './types/social/grain/gallery/createGallery.ts' 19import * as SocialGrainGalleryDeleteItem from './types/social/grain/gallery/deleteItem.ts' 20import * as SocialGrainGalleryUpdateGallery from './types/social/grain/gallery/updateGallery.ts' 21import * as SocialGrainGalleryApplySort from './types/social/grain/gallery/applySort.ts' 22import * as SocialGrainGalleryGetGalleryThread from './types/social/grain/gallery/getGalleryThread.ts' 23import * as SocialGrainGalleryGetActorGalleries from './types/social/grain/gallery/getActorGalleries.ts' 24import * as SocialGrainGalleryGetGallery from './types/social/grain/gallery/getGallery.ts' 25import * as SocialGrainGraphDeleteFollow from './types/social/grain/graph/deleteFollow.ts' 26import * as SocialGrainGraphCreateFollow from './types/social/grain/graph/createFollow.ts' 27import * as SocialGrainGraphGetFollowers from './types/social/grain/graph/getFollowers.ts' 28import * as SocialGrainGraphGetFollows from './types/social/grain/graph/getFollows.ts' 29import * as SocialGrainDarkroomGetGalleryComposite from './types/social/grain/darkroom/getGalleryComposite.ts' 30import * as SocialGrainFavoriteDeleteFavorite from './types/social/grain/favorite/deleteFavorite.ts' 31import * as SocialGrainFavoriteCreateFavorite from './types/social/grain/favorite/createFavorite.ts' 32import * as SocialGrainFeedGetTimeline from './types/social/grain/feed/getTimeline.ts' 33import * as SocialGrainActorGetProfile from './types/social/grain/actor/getProfile.ts' 34import * as SocialGrainActorSearchActors from './types/social/grain/actor/searchActors.ts' 35import * as SocialGrainActorUpdateAvatar from './types/social/grain/actor/updateAvatar.ts' 36import * as SocialGrainActorGetActorFavs from './types/social/grain/actor/getActorFavs.ts' 37import * as SocialGrainActorUpdateProfile from './types/social/grain/actor/updateProfile.ts' 38import * as SocialGrainPhotoDeletePhoto from './types/social/grain/photo/deletePhoto.ts' 39import * as SocialGrainPhotoUploadPhoto from './types/social/grain/photo/uploadPhoto.ts' 40import * as SocialGrainPhotoCreateExif from './types/social/grain/photo/createExif.ts' 41import * as SocialGrainPhotoApplyAlts from './types/social/grain/photo/applyAlts.ts' 42import * as SocialGrainPhotoGetActorPhotos from './types/social/grain/photo/getActorPhotos.ts' 43 44export const APP_BSKY_GRAPH = { 45 DefsModlist: 'app.bsky.graph.defs#modlist', 46 DefsCuratelist: 'app.bsky.graph.defs#curatelist', 47 DefsReferencelist: 'app.bsky.graph.defs#referencelist', 48} 49export const APP_BSKY_FEED = { 50 DefsRequestLess: 'app.bsky.feed.defs#requestLess', 51 DefsRequestMore: 'app.bsky.feed.defs#requestMore', 52 DefsInteractionLike: 'app.bsky.feed.defs#interactionLike', 53 DefsInteractionSeen: 'app.bsky.feed.defs#interactionSeen', 54 DefsClickthroughItem: 'app.bsky.feed.defs#clickthroughItem', 55 DefsContentModeVideo: 'app.bsky.feed.defs#contentModeVideo', 56 DefsInteractionQuote: 'app.bsky.feed.defs#interactionQuote', 57 DefsInteractionReply: 'app.bsky.feed.defs#interactionReply', 58 DefsInteractionShare: 'app.bsky.feed.defs#interactionShare', 59 DefsClickthroughEmbed: 'app.bsky.feed.defs#clickthroughEmbed', 60 DefsInteractionRepost: 'app.bsky.feed.defs#interactionRepost', 61 DefsClickthroughAuthor: 'app.bsky.feed.defs#clickthroughAuthor', 62 DefsClickthroughReposter: 'app.bsky.feed.defs#clickthroughReposter', 63 DefsContentModeUnspecified: 'app.bsky.feed.defs#contentModeUnspecified', 64} 65export const COM_ATPROTO_MODERATION = { 66 DefsReasonRude: 'com.atproto.moderation.defs#reasonRude', 67 DefsReasonSpam: 'com.atproto.moderation.defs#reasonSpam', 68 DefsReasonOther: 'com.atproto.moderation.defs#reasonOther', 69 DefsReasonAppeal: 'com.atproto.moderation.defs#reasonAppeal', 70 DefsReasonSexual: 'com.atproto.moderation.defs#reasonSexual', 71 DefsReasonViolation: 'com.atproto.moderation.defs#reasonViolation', 72 DefsReasonMisleading: 'com.atproto.moderation.defs#reasonMisleading', 73} 74 75export function createServer(options?: XrpcOptions): Server { 76 return new Server(options) 77} 78 79export class Server { 80 xrpc: XrpcServer 81 app: AppNS 82 sh: ShNS 83 social: SocialNS 84 com: ComNS 85 86 constructor(options?: XrpcOptions) { 87 this.xrpc = createXrpcServer(schemas, options) 88 this.app = new AppNS(this) 89 this.sh = new ShNS(this) 90 this.social = new SocialNS(this) 91 this.com = new ComNS(this) 92 } 93} 94 95export class AppNS { 96 _server: Server 97 bsky: AppBskyNS 98 99 constructor(server: Server) { 100 this._server = server 101 this.bsky = new AppBskyNS(server) 102 } 103} 104 105export class AppBskyNS { 106 _server: Server 107 embed: AppBskyEmbedNS 108 graph: AppBskyGraphNS 109 feed: AppBskyFeedNS 110 richtext: AppBskyRichtextNS 111 actor: AppBskyActorNS 112 113 constructor(server: Server) { 114 this._server = server 115 this.embed = new AppBskyEmbedNS(server) 116 this.graph = new AppBskyGraphNS(server) 117 this.feed = new AppBskyFeedNS(server) 118 this.richtext = new AppBskyRichtextNS(server) 119 this.actor = new AppBskyActorNS(server) 120 } 121} 122 123export class AppBskyEmbedNS { 124 _server: Server 125 126 constructor(server: Server) { 127 this._server = server 128 } 129} 130 131export class AppBskyGraphNS { 132 _server: Server 133 134 constructor(server: Server) { 135 this._server = server 136 } 137} 138 139export class AppBskyFeedNS { 140 _server: Server 141 142 constructor(server: Server) { 143 this._server = server 144 } 145} 146 147export class AppBskyRichtextNS { 148 _server: Server 149 150 constructor(server: Server) { 151 this._server = server 152 } 153} 154 155export class AppBskyActorNS { 156 _server: Server 157 158 constructor(server: Server) { 159 this._server = server 160 } 161} 162 163export class ShNS { 164 _server: Server 165 tangled: ShTangledNS 166 167 constructor(server: Server) { 168 this._server = server 169 this.tangled = new ShTangledNS(server) 170 } 171} 172 173export class ShTangledNS { 174 _server: Server 175 graph: ShTangledGraphNS 176 actor: ShTangledActorNS 177 178 constructor(server: Server) { 179 this._server = server 180 this.graph = new ShTangledGraphNS(server) 181 this.actor = new ShTangledActorNS(server) 182 } 183} 184 185export class ShTangledGraphNS { 186 _server: Server 187 188 constructor(server: Server) { 189 this._server = server 190 } 191} 192 193export class ShTangledActorNS { 194 _server: Server 195 196 constructor(server: Server) { 197 this._server = server 198 } 199} 200 201export class SocialNS { 202 _server: Server 203 grain: SocialGrainNS 204 205 constructor(server: Server) { 206 this._server = server 207 this.grain = new SocialGrainNS(server) 208 } 209} 210 211export class SocialGrainNS { 212 _server: Server 213 notification: SocialGrainNotificationNS 214 comment: SocialGrainCommentNS 215 gallery: SocialGrainGalleryNS 216 graph: SocialGrainGraphNS 217 darkroom: SocialGrainDarkroomNS 218 favorite: SocialGrainFavoriteNS 219 labeler: SocialGrainLabelerNS 220 feed: SocialGrainFeedNS 221 actor: SocialGrainActorNS 222 photo: SocialGrainPhotoNS 223 224 constructor(server: Server) { 225 this._server = server 226 this.notification = new SocialGrainNotificationNS(server) 227 this.comment = new SocialGrainCommentNS(server) 228 this.gallery = new SocialGrainGalleryNS(server) 229 this.graph = new SocialGrainGraphNS(server) 230 this.darkroom = new SocialGrainDarkroomNS(server) 231 this.favorite = new SocialGrainFavoriteNS(server) 232 this.labeler = new SocialGrainLabelerNS(server) 233 this.feed = new SocialGrainFeedNS(server) 234 this.actor = new SocialGrainActorNS(server) 235 this.photo = new SocialGrainPhotoNS(server) 236 } 237} 238 239export class SocialGrainNotificationNS { 240 _server: Server 241 242 constructor(server: Server) { 243 this._server = server 244 } 245 246 updateSeen<AV extends AuthVerifier>( 247 cfg: ConfigOf< 248 AV, 249 SocialGrainNotificationUpdateSeen.Handler<ExtractAuth<AV>>, 250 SocialGrainNotificationUpdateSeen.HandlerReqCtx<ExtractAuth<AV>> 251 >, 252 ) { 253 const nsid = 'social.grain.notification.updateSeen' // @ts-ignore 254 return this._server.xrpc.method(nsid, cfg) 255 } 256 257 getNotifications<AV extends AuthVerifier>( 258 cfg: ConfigOf< 259 AV, 260 SocialGrainNotificationGetNotifications.Handler<ExtractAuth<AV>>, 261 SocialGrainNotificationGetNotifications.HandlerReqCtx<ExtractAuth<AV>> 262 >, 263 ) { 264 const nsid = 'social.grain.notification.getNotifications' // @ts-ignore 265 return this._server.xrpc.method(nsid, cfg) 266 } 267} 268 269export 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 299export class SocialGrainGalleryNS { 300 _server: Server 301 302 constructor(server: Server) { 303 this._server = server 304 } 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 372 getGalleryThread<AV extends AuthVerifier>( 373 cfg: ConfigOf< 374 AV, 375 SocialGrainGalleryGetGalleryThread.Handler<ExtractAuth<AV>>, 376 SocialGrainGalleryGetGalleryThread.HandlerReqCtx<ExtractAuth<AV>> 377 >, 378 ) { 379 const nsid = 'social.grain.gallery.getGalleryThread' // @ts-ignore 380 return this._server.xrpc.method(nsid, cfg) 381 } 382 383 getActorGalleries<AV extends AuthVerifier>( 384 cfg: ConfigOf< 385 AV, 386 SocialGrainGalleryGetActorGalleries.Handler<ExtractAuth<AV>>, 387 SocialGrainGalleryGetActorGalleries.HandlerReqCtx<ExtractAuth<AV>> 388 >, 389 ) { 390 const nsid = 'social.grain.gallery.getActorGalleries' // @ts-ignore 391 return this._server.xrpc.method(nsid, cfg) 392 } 393 394 getGallery<AV extends AuthVerifier>( 395 cfg: ConfigOf< 396 AV, 397 SocialGrainGalleryGetGallery.Handler<ExtractAuth<AV>>, 398 SocialGrainGalleryGetGallery.HandlerReqCtx<ExtractAuth<AV>> 399 >, 400 ) { 401 const nsid = 'social.grain.gallery.getGallery' // @ts-ignore 402 return this._server.xrpc.method(nsid, cfg) 403 } 404} 405 406export class SocialGrainGraphNS { 407 _server: Server 408 409 constructor(server: Server) { 410 this._server = server 411 } 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 435 getFollowers<AV extends AuthVerifier>( 436 cfg: ConfigOf< 437 AV, 438 SocialGrainGraphGetFollowers.Handler<ExtractAuth<AV>>, 439 SocialGrainGraphGetFollowers.HandlerReqCtx<ExtractAuth<AV>> 440 >, 441 ) { 442 const nsid = 'social.grain.graph.getFollowers' // @ts-ignore 443 return this._server.xrpc.method(nsid, cfg) 444 } 445 446 getFollows<AV extends AuthVerifier>( 447 cfg: ConfigOf< 448 AV, 449 SocialGrainGraphGetFollows.Handler<ExtractAuth<AV>>, 450 SocialGrainGraphGetFollows.HandlerReqCtx<ExtractAuth<AV>> 451 >, 452 ) { 453 const nsid = 'social.grain.graph.getFollows' // @ts-ignore 454 return this._server.xrpc.method(nsid, cfg) 455 } 456} 457 458export 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 477export 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 507export class SocialGrainLabelerNS { 508 _server: Server 509 510 constructor(server: Server) { 511 this._server = server 512 } 513} 514 515export class SocialGrainFeedNS { 516 _server: Server 517 518 constructor(server: Server) { 519 this._server = server 520 } 521 522 getTimeline<AV extends AuthVerifier>( 523 cfg: ConfigOf< 524 AV, 525 SocialGrainFeedGetTimeline.Handler<ExtractAuth<AV>>, 526 SocialGrainFeedGetTimeline.HandlerReqCtx<ExtractAuth<AV>> 527 >, 528 ) { 529 const nsid = 'social.grain.feed.getTimeline' // @ts-ignore 530 return this._server.xrpc.method(nsid, cfg) 531 } 532} 533 534export class SocialGrainActorNS { 535 _server: Server 536 537 constructor(server: Server) { 538 this._server = server 539 } 540 541 getProfile<AV extends AuthVerifier>( 542 cfg: ConfigOf< 543 AV, 544 SocialGrainActorGetProfile.Handler<ExtractAuth<AV>>, 545 SocialGrainActorGetProfile.HandlerReqCtx<ExtractAuth<AV>> 546 >, 547 ) { 548 const nsid = 'social.grain.actor.getProfile' // @ts-ignore 549 return this._server.xrpc.method(nsid, cfg) 550 } 551 552 searchActors<AV extends AuthVerifier>( 553 cfg: ConfigOf< 554 AV, 555 SocialGrainActorSearchActors.Handler<ExtractAuth<AV>>, 556 SocialGrainActorSearchActors.HandlerReqCtx<ExtractAuth<AV>> 557 >, 558 ) { 559 const nsid = 'social.grain.actor.searchActors' // @ts-ignore 560 return this._server.xrpc.method(nsid, cfg) 561 } 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 574 getActorFavs<AV extends AuthVerifier>( 575 cfg: ConfigOf< 576 AV, 577 SocialGrainActorGetActorFavs.Handler<ExtractAuth<AV>>, 578 SocialGrainActorGetActorFavs.HandlerReqCtx<ExtractAuth<AV>> 579 >, 580 ) { 581 const nsid = 'social.grain.actor.getActorFavs' // @ts-ignore 582 return this._server.xrpc.method(nsid, cfg) 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 } 595} 596 597export class SocialGrainPhotoNS { 598 _server: Server 599 600 constructor(server: Server) { 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) 646 } 647 648 getActorPhotos<AV extends AuthVerifier>( 649 cfg: ConfigOf< 650 AV, 651 SocialGrainPhotoGetActorPhotos.Handler<ExtractAuth<AV>>, 652 SocialGrainPhotoGetActorPhotos.HandlerReqCtx<ExtractAuth<AV>> 653 >, 654 ) { 655 const nsid = 'social.grain.photo.getActorPhotos' // @ts-ignore 656 return this._server.xrpc.method(nsid, cfg) 657 } 658} 659 660export class ComNS { 661 _server: Server 662 atproto: ComAtprotoNS 663 664 constructor(server: Server) { 665 this._server = server 666 this.atproto = new ComAtprotoNS(server) 667 } 668} 669 670export class ComAtprotoNS { 671 _server: Server 672 repo: ComAtprotoRepoNS 673 674 constructor(server: Server) { 675 this._server = server 676 this.repo = new ComAtprotoRepoNS(server) 677 } 678} 679 680export class ComAtprotoRepoNS { 681 _server: Server 682 683 constructor(server: Server) { 684 this._server = server 685 } 686} 687 688type SharedRateLimitOpts<T> = { 689 name: string 690 calcKey?: (ctx: T) => string | null 691 calcPoints?: (ctx: T) => number 692} 693type RouteRateLimitOpts<T> = { 694 durationMs: number 695 points: number 696 calcKey?: (ctx: T) => string | null 697 calcPoints?: (ctx: T) => number 698} 699type HandlerOpts = { blobLimit?: number } 700type HandlerRateLimitOpts<T> = SharedRateLimitOpts<T> | RouteRateLimitOpts<T> 701type ConfigOf<Auth, Handler, ReqCtx> = 702 | Handler 703 | { 704 auth?: Auth 705 opts?: HandlerOpts 706 rateLimit?: HandlerRateLimitOpts<ReqCtx> | HandlerRateLimitOpts<ReqCtx>[] 707 handler: Handler 708 } 709type ExtractAuth<AV extends AuthVerifier | StreamAuthVerifier> = Extract< 710 Awaited<ReturnType<AV>>, 711 { credentials: unknown } 712>