grain.social is a photo sharing platform built on atproto.
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 SocialGrainFavoriteDeleteFavorite from './types/social/grain/favorite/deleteFavorite.ts' 30import * as SocialGrainFavoriteCreateFavorite from './types/social/grain/favorite/createFavorite.ts' 31import * as SocialGrainFeedGetTimeline from './types/social/grain/feed/getTimeline.ts' 32import * as SocialGrainActorGetProfile from './types/social/grain/actor/getProfile.ts' 33import * as SocialGrainActorSearchActors from './types/social/grain/actor/searchActors.ts' 34import * as SocialGrainActorUpdateAvatar from './types/social/grain/actor/updateAvatar.ts' 35import * as SocialGrainActorGetActorFavs from './types/social/grain/actor/getActorFavs.ts' 36import * as SocialGrainActorUpdateProfile from './types/social/grain/actor/updateProfile.ts' 37import * as SocialGrainPhotoDeletePhoto from './types/social/grain/photo/deletePhoto.ts' 38import * as SocialGrainPhotoUploadPhoto from './types/social/grain/photo/uploadPhoto.ts' 39import * as SocialGrainPhotoCreateExif from './types/social/grain/photo/createExif.ts' 40import * as SocialGrainPhotoApplyAlts from './types/social/grain/photo/applyAlts.ts' 41import * as SocialGrainPhotoGetActorPhotos from './types/social/grain/photo/getActorPhotos.ts' 42 43export const APP_BSKY_GRAPH = { 44 DefsModlist: 'app.bsky.graph.defs#modlist', 45 DefsCuratelist: 'app.bsky.graph.defs#curatelist', 46 DefsReferencelist: 'app.bsky.graph.defs#referencelist', 47} 48export const APP_BSKY_FEED = { 49 DefsRequestLess: 'app.bsky.feed.defs#requestLess', 50 DefsRequestMore: 'app.bsky.feed.defs#requestMore', 51 DefsInteractionLike: 'app.bsky.feed.defs#interactionLike', 52 DefsInteractionSeen: 'app.bsky.feed.defs#interactionSeen', 53 DefsClickthroughItem: 'app.bsky.feed.defs#clickthroughItem', 54 DefsContentModeVideo: 'app.bsky.feed.defs#contentModeVideo', 55 DefsInteractionQuote: 'app.bsky.feed.defs#interactionQuote', 56 DefsInteractionReply: 'app.bsky.feed.defs#interactionReply', 57 DefsInteractionShare: 'app.bsky.feed.defs#interactionShare', 58 DefsClickthroughEmbed: 'app.bsky.feed.defs#clickthroughEmbed', 59 DefsInteractionRepost: 'app.bsky.feed.defs#interactionRepost', 60 DefsClickthroughAuthor: 'app.bsky.feed.defs#clickthroughAuthor', 61 DefsClickthroughReposter: 'app.bsky.feed.defs#clickthroughReposter', 62 DefsContentModeUnspecified: 'app.bsky.feed.defs#contentModeUnspecified', 63} 64export const COM_ATPROTO_MODERATION = { 65 DefsReasonRude: 'com.atproto.moderation.defs#reasonRude', 66 DefsReasonSpam: 'com.atproto.moderation.defs#reasonSpam', 67 DefsReasonOther: 'com.atproto.moderation.defs#reasonOther', 68 DefsReasonAppeal: 'com.atproto.moderation.defs#reasonAppeal', 69 DefsReasonSexual: 'com.atproto.moderation.defs#reasonSexual', 70 DefsReasonViolation: 'com.atproto.moderation.defs#reasonViolation', 71 DefsReasonMisleading: 'com.atproto.moderation.defs#reasonMisleading', 72} 73 74export function createServer(options?: XrpcOptions): Server { 75 return new Server(options) 76} 77 78export class Server { 79 xrpc: XrpcServer 80 app: AppNS 81 sh: ShNS 82 social: SocialNS 83 com: ComNS 84 85 constructor(options?: XrpcOptions) { 86 this.xrpc = createXrpcServer(schemas, options) 87 this.app = new AppNS(this) 88 this.sh = new ShNS(this) 89 this.social = new SocialNS(this) 90 this.com = new ComNS(this) 91 } 92} 93 94export class AppNS { 95 _server: Server 96 bsky: AppBskyNS 97 98 constructor(server: Server) { 99 this._server = server 100 this.bsky = new AppBskyNS(server) 101 } 102} 103 104export class AppBskyNS { 105 _server: Server 106 embed: AppBskyEmbedNS 107 graph: AppBskyGraphNS 108 feed: AppBskyFeedNS 109 richtext: AppBskyRichtextNS 110 actor: AppBskyActorNS 111 112 constructor(server: Server) { 113 this._server = server 114 this.embed = new AppBskyEmbedNS(server) 115 this.graph = new AppBskyGraphNS(server) 116 this.feed = new AppBskyFeedNS(server) 117 this.richtext = new AppBskyRichtextNS(server) 118 this.actor = new AppBskyActorNS(server) 119 } 120} 121 122export class AppBskyEmbedNS { 123 _server: Server 124 125 constructor(server: Server) { 126 this._server = server 127 } 128} 129 130export class AppBskyGraphNS { 131 _server: Server 132 133 constructor(server: Server) { 134 this._server = server 135 } 136} 137 138export class AppBskyFeedNS { 139 _server: Server 140 141 constructor(server: Server) { 142 this._server = server 143 } 144} 145 146export class AppBskyRichtextNS { 147 _server: Server 148 149 constructor(server: Server) { 150 this._server = server 151 } 152} 153 154export class AppBskyActorNS { 155 _server: Server 156 157 constructor(server: Server) { 158 this._server = server 159 } 160} 161 162export class ShNS { 163 _server: Server 164 tangled: ShTangledNS 165 166 constructor(server: Server) { 167 this._server = server 168 this.tangled = new ShTangledNS(server) 169 } 170} 171 172export class ShTangledNS { 173 _server: Server 174 graph: ShTangledGraphNS 175 actor: ShTangledActorNS 176 177 constructor(server: Server) { 178 this._server = server 179 this.graph = new ShTangledGraphNS(server) 180 this.actor = new ShTangledActorNS(server) 181 } 182} 183 184export class ShTangledGraphNS { 185 _server: Server 186 187 constructor(server: Server) { 188 this._server = server 189 } 190} 191 192export class ShTangledActorNS { 193 _server: Server 194 195 constructor(server: Server) { 196 this._server = server 197 } 198} 199 200export class SocialNS { 201 _server: Server 202 grain: SocialGrainNS 203 204 constructor(server: Server) { 205 this._server = server 206 this.grain = new SocialGrainNS(server) 207 } 208} 209 210export class SocialGrainNS { 211 _server: Server 212 notification: SocialGrainNotificationNS 213 comment: SocialGrainCommentNS 214 gallery: SocialGrainGalleryNS 215 graph: SocialGrainGraphNS 216 favorite: SocialGrainFavoriteNS 217 labeler: SocialGrainLabelerNS 218 feed: SocialGrainFeedNS 219 actor: SocialGrainActorNS 220 photo: SocialGrainPhotoNS 221 222 constructor(server: Server) { 223 this._server = server 224 this.notification = new SocialGrainNotificationNS(server) 225 this.comment = new SocialGrainCommentNS(server) 226 this.gallery = new SocialGrainGalleryNS(server) 227 this.graph = new SocialGrainGraphNS(server) 228 this.favorite = new SocialGrainFavoriteNS(server) 229 this.labeler = new SocialGrainLabelerNS(server) 230 this.feed = new SocialGrainFeedNS(server) 231 this.actor = new SocialGrainActorNS(server) 232 this.photo = new SocialGrainPhotoNS(server) 233 } 234} 235 236export class SocialGrainNotificationNS { 237 _server: Server 238 239 constructor(server: Server) { 240 this._server = server 241 } 242 243 updateSeen<AV extends AuthVerifier>( 244 cfg: ConfigOf< 245 AV, 246 SocialGrainNotificationUpdateSeen.Handler<ExtractAuth<AV>>, 247 SocialGrainNotificationUpdateSeen.HandlerReqCtx<ExtractAuth<AV>> 248 >, 249 ) { 250 const nsid = 'social.grain.notification.updateSeen' // @ts-ignore 251 return this._server.xrpc.method(nsid, cfg) 252 } 253 254 getNotifications<AV extends AuthVerifier>( 255 cfg: ConfigOf< 256 AV, 257 SocialGrainNotificationGetNotifications.Handler<ExtractAuth<AV>>, 258 SocialGrainNotificationGetNotifications.HandlerReqCtx<ExtractAuth<AV>> 259 >, 260 ) { 261 const nsid = 'social.grain.notification.getNotifications' // @ts-ignore 262 return this._server.xrpc.method(nsid, cfg) 263 } 264} 265 266export class SocialGrainCommentNS { 267 _server: Server 268 269 constructor(server: Server) { 270 this._server = server 271 } 272 273 deleteComment<AV extends AuthVerifier>( 274 cfg: ConfigOf< 275 AV, 276 SocialGrainCommentDeleteComment.Handler<ExtractAuth<AV>>, 277 SocialGrainCommentDeleteComment.HandlerReqCtx<ExtractAuth<AV>> 278 >, 279 ) { 280 const nsid = 'social.grain.comment.deleteComment' // @ts-ignore 281 return this._server.xrpc.method(nsid, cfg) 282 } 283 284 createComment<AV extends AuthVerifier>( 285 cfg: ConfigOf< 286 AV, 287 SocialGrainCommentCreateComment.Handler<ExtractAuth<AV>>, 288 SocialGrainCommentCreateComment.HandlerReqCtx<ExtractAuth<AV>> 289 >, 290 ) { 291 const nsid = 'social.grain.comment.createComment' // @ts-ignore 292 return this._server.xrpc.method(nsid, cfg) 293 } 294} 295 296export class SocialGrainGalleryNS { 297 _server: Server 298 299 constructor(server: Server) { 300 this._server = server 301 } 302 303 deleteGallery<AV extends AuthVerifier>( 304 cfg: ConfigOf< 305 AV, 306 SocialGrainGalleryDeleteGallery.Handler<ExtractAuth<AV>>, 307 SocialGrainGalleryDeleteGallery.HandlerReqCtx<ExtractAuth<AV>> 308 >, 309 ) { 310 const nsid = 'social.grain.gallery.deleteGallery' // @ts-ignore 311 return this._server.xrpc.method(nsid, cfg) 312 } 313 314 createItem<AV extends AuthVerifier>( 315 cfg: ConfigOf< 316 AV, 317 SocialGrainGalleryCreateItem.Handler<ExtractAuth<AV>>, 318 SocialGrainGalleryCreateItem.HandlerReqCtx<ExtractAuth<AV>> 319 >, 320 ) { 321 const nsid = 'social.grain.gallery.createItem' // @ts-ignore 322 return this._server.xrpc.method(nsid, cfg) 323 } 324 325 createGallery<AV extends AuthVerifier>( 326 cfg: ConfigOf< 327 AV, 328 SocialGrainGalleryCreateGallery.Handler<ExtractAuth<AV>>, 329 SocialGrainGalleryCreateGallery.HandlerReqCtx<ExtractAuth<AV>> 330 >, 331 ) { 332 const nsid = 'social.grain.gallery.createGallery' // @ts-ignore 333 return this._server.xrpc.method(nsid, cfg) 334 } 335 336 deleteItem<AV extends AuthVerifier>( 337 cfg: ConfigOf< 338 AV, 339 SocialGrainGalleryDeleteItem.Handler<ExtractAuth<AV>>, 340 SocialGrainGalleryDeleteItem.HandlerReqCtx<ExtractAuth<AV>> 341 >, 342 ) { 343 const nsid = 'social.grain.gallery.deleteItem' // @ts-ignore 344 return this._server.xrpc.method(nsid, cfg) 345 } 346 347 updateGallery<AV extends AuthVerifier>( 348 cfg: ConfigOf< 349 AV, 350 SocialGrainGalleryUpdateGallery.Handler<ExtractAuth<AV>>, 351 SocialGrainGalleryUpdateGallery.HandlerReqCtx<ExtractAuth<AV>> 352 >, 353 ) { 354 const nsid = 'social.grain.gallery.updateGallery' // @ts-ignore 355 return this._server.xrpc.method(nsid, cfg) 356 } 357 358 applySort<AV extends AuthVerifier>( 359 cfg: ConfigOf< 360 AV, 361 SocialGrainGalleryApplySort.Handler<ExtractAuth<AV>>, 362 SocialGrainGalleryApplySort.HandlerReqCtx<ExtractAuth<AV>> 363 >, 364 ) { 365 const nsid = 'social.grain.gallery.applySort' // @ts-ignore 366 return this._server.xrpc.method(nsid, cfg) 367 } 368 369 getGalleryThread<AV extends AuthVerifier>( 370 cfg: ConfigOf< 371 AV, 372 SocialGrainGalleryGetGalleryThread.Handler<ExtractAuth<AV>>, 373 SocialGrainGalleryGetGalleryThread.HandlerReqCtx<ExtractAuth<AV>> 374 >, 375 ) { 376 const nsid = 'social.grain.gallery.getGalleryThread' // @ts-ignore 377 return this._server.xrpc.method(nsid, cfg) 378 } 379 380 getActorGalleries<AV extends AuthVerifier>( 381 cfg: ConfigOf< 382 AV, 383 SocialGrainGalleryGetActorGalleries.Handler<ExtractAuth<AV>>, 384 SocialGrainGalleryGetActorGalleries.HandlerReqCtx<ExtractAuth<AV>> 385 >, 386 ) { 387 const nsid = 'social.grain.gallery.getActorGalleries' // @ts-ignore 388 return this._server.xrpc.method(nsid, cfg) 389 } 390 391 getGallery<AV extends AuthVerifier>( 392 cfg: ConfigOf< 393 AV, 394 SocialGrainGalleryGetGallery.Handler<ExtractAuth<AV>>, 395 SocialGrainGalleryGetGallery.HandlerReqCtx<ExtractAuth<AV>> 396 >, 397 ) { 398 const nsid = 'social.grain.gallery.getGallery' // @ts-ignore 399 return this._server.xrpc.method(nsid, cfg) 400 } 401} 402 403export class SocialGrainGraphNS { 404 _server: Server 405 406 constructor(server: Server) { 407 this._server = server 408 } 409 410 deleteFollow<AV extends AuthVerifier>( 411 cfg: ConfigOf< 412 AV, 413 SocialGrainGraphDeleteFollow.Handler<ExtractAuth<AV>>, 414 SocialGrainGraphDeleteFollow.HandlerReqCtx<ExtractAuth<AV>> 415 >, 416 ) { 417 const nsid = 'social.grain.graph.deleteFollow' // @ts-ignore 418 return this._server.xrpc.method(nsid, cfg) 419 } 420 421 createFollow<AV extends AuthVerifier>( 422 cfg: ConfigOf< 423 AV, 424 SocialGrainGraphCreateFollow.Handler<ExtractAuth<AV>>, 425 SocialGrainGraphCreateFollow.HandlerReqCtx<ExtractAuth<AV>> 426 >, 427 ) { 428 const nsid = 'social.grain.graph.createFollow' // @ts-ignore 429 return this._server.xrpc.method(nsid, cfg) 430 } 431 432 getFollowers<AV extends AuthVerifier>( 433 cfg: ConfigOf< 434 AV, 435 SocialGrainGraphGetFollowers.Handler<ExtractAuth<AV>>, 436 SocialGrainGraphGetFollowers.HandlerReqCtx<ExtractAuth<AV>> 437 >, 438 ) { 439 const nsid = 'social.grain.graph.getFollowers' // @ts-ignore 440 return this._server.xrpc.method(nsid, cfg) 441 } 442 443 getFollows<AV extends AuthVerifier>( 444 cfg: ConfigOf< 445 AV, 446 SocialGrainGraphGetFollows.Handler<ExtractAuth<AV>>, 447 SocialGrainGraphGetFollows.HandlerReqCtx<ExtractAuth<AV>> 448 >, 449 ) { 450 const nsid = 'social.grain.graph.getFollows' // @ts-ignore 451 return this._server.xrpc.method(nsid, cfg) 452 } 453} 454 455export class SocialGrainFavoriteNS { 456 _server: Server 457 458 constructor(server: Server) { 459 this._server = server 460 } 461 462 deleteFavorite<AV extends AuthVerifier>( 463 cfg: ConfigOf< 464 AV, 465 SocialGrainFavoriteDeleteFavorite.Handler<ExtractAuth<AV>>, 466 SocialGrainFavoriteDeleteFavorite.HandlerReqCtx<ExtractAuth<AV>> 467 >, 468 ) { 469 const nsid = 'social.grain.favorite.deleteFavorite' // @ts-ignore 470 return this._server.xrpc.method(nsid, cfg) 471 } 472 473 createFavorite<AV extends AuthVerifier>( 474 cfg: ConfigOf< 475 AV, 476 SocialGrainFavoriteCreateFavorite.Handler<ExtractAuth<AV>>, 477 SocialGrainFavoriteCreateFavorite.HandlerReqCtx<ExtractAuth<AV>> 478 >, 479 ) { 480 const nsid = 'social.grain.favorite.createFavorite' // @ts-ignore 481 return this._server.xrpc.method(nsid, cfg) 482 } 483} 484 485export class SocialGrainLabelerNS { 486 _server: Server 487 488 constructor(server: Server) { 489 this._server = server 490 } 491} 492 493export class SocialGrainFeedNS { 494 _server: Server 495 496 constructor(server: Server) { 497 this._server = server 498 } 499 500 getTimeline<AV extends AuthVerifier>( 501 cfg: ConfigOf< 502 AV, 503 SocialGrainFeedGetTimeline.Handler<ExtractAuth<AV>>, 504 SocialGrainFeedGetTimeline.HandlerReqCtx<ExtractAuth<AV>> 505 >, 506 ) { 507 const nsid = 'social.grain.feed.getTimeline' // @ts-ignore 508 return this._server.xrpc.method(nsid, cfg) 509 } 510} 511 512export class SocialGrainActorNS { 513 _server: Server 514 515 constructor(server: Server) { 516 this._server = server 517 } 518 519 getProfile<AV extends AuthVerifier>( 520 cfg: ConfigOf< 521 AV, 522 SocialGrainActorGetProfile.Handler<ExtractAuth<AV>>, 523 SocialGrainActorGetProfile.HandlerReqCtx<ExtractAuth<AV>> 524 >, 525 ) { 526 const nsid = 'social.grain.actor.getProfile' // @ts-ignore 527 return this._server.xrpc.method(nsid, cfg) 528 } 529 530 searchActors<AV extends AuthVerifier>( 531 cfg: ConfigOf< 532 AV, 533 SocialGrainActorSearchActors.Handler<ExtractAuth<AV>>, 534 SocialGrainActorSearchActors.HandlerReqCtx<ExtractAuth<AV>> 535 >, 536 ) { 537 const nsid = 'social.grain.actor.searchActors' // @ts-ignore 538 return this._server.xrpc.method(nsid, cfg) 539 } 540 541 updateAvatar<AV extends AuthVerifier>( 542 cfg: ConfigOf< 543 AV, 544 SocialGrainActorUpdateAvatar.Handler<ExtractAuth<AV>>, 545 SocialGrainActorUpdateAvatar.HandlerReqCtx<ExtractAuth<AV>> 546 >, 547 ) { 548 const nsid = 'social.grain.actor.updateAvatar' // @ts-ignore 549 return this._server.xrpc.method(nsid, cfg) 550 } 551 552 getActorFavs<AV extends AuthVerifier>( 553 cfg: ConfigOf< 554 AV, 555 SocialGrainActorGetActorFavs.Handler<ExtractAuth<AV>>, 556 SocialGrainActorGetActorFavs.HandlerReqCtx<ExtractAuth<AV>> 557 >, 558 ) { 559 const nsid = 'social.grain.actor.getActorFavs' // @ts-ignore 560 return this._server.xrpc.method(nsid, cfg) 561 } 562 563 updateProfile<AV extends AuthVerifier>( 564 cfg: ConfigOf< 565 AV, 566 SocialGrainActorUpdateProfile.Handler<ExtractAuth<AV>>, 567 SocialGrainActorUpdateProfile.HandlerReqCtx<ExtractAuth<AV>> 568 >, 569 ) { 570 const nsid = 'social.grain.actor.updateProfile' // @ts-ignore 571 return this._server.xrpc.method(nsid, cfg) 572 } 573} 574 575export class SocialGrainPhotoNS { 576 _server: Server 577 578 constructor(server: Server) { 579 this._server = server 580 } 581 582 deletePhoto<AV extends AuthVerifier>( 583 cfg: ConfigOf< 584 AV, 585 SocialGrainPhotoDeletePhoto.Handler<ExtractAuth<AV>>, 586 SocialGrainPhotoDeletePhoto.HandlerReqCtx<ExtractAuth<AV>> 587 >, 588 ) { 589 const nsid = 'social.grain.photo.deletePhoto' // @ts-ignore 590 return this._server.xrpc.method(nsid, cfg) 591 } 592 593 uploadPhoto<AV extends AuthVerifier>( 594 cfg: ConfigOf< 595 AV, 596 SocialGrainPhotoUploadPhoto.Handler<ExtractAuth<AV>>, 597 SocialGrainPhotoUploadPhoto.HandlerReqCtx<ExtractAuth<AV>> 598 >, 599 ) { 600 const nsid = 'social.grain.photo.uploadPhoto' // @ts-ignore 601 return this._server.xrpc.method(nsid, cfg) 602 } 603 604 createExif<AV extends AuthVerifier>( 605 cfg: ConfigOf< 606 AV, 607 SocialGrainPhotoCreateExif.Handler<ExtractAuth<AV>>, 608 SocialGrainPhotoCreateExif.HandlerReqCtx<ExtractAuth<AV>> 609 >, 610 ) { 611 const nsid = 'social.grain.photo.createExif' // @ts-ignore 612 return this._server.xrpc.method(nsid, cfg) 613 } 614 615 applyAlts<AV extends AuthVerifier>( 616 cfg: ConfigOf< 617 AV, 618 SocialGrainPhotoApplyAlts.Handler<ExtractAuth<AV>>, 619 SocialGrainPhotoApplyAlts.HandlerReqCtx<ExtractAuth<AV>> 620 >, 621 ) { 622 const nsid = 'social.grain.photo.applyAlts' // @ts-ignore 623 return this._server.xrpc.method(nsid, cfg) 624 } 625 626 getActorPhotos<AV extends AuthVerifier>( 627 cfg: ConfigOf< 628 AV, 629 SocialGrainPhotoGetActorPhotos.Handler<ExtractAuth<AV>>, 630 SocialGrainPhotoGetActorPhotos.HandlerReqCtx<ExtractAuth<AV>> 631 >, 632 ) { 633 const nsid = 'social.grain.photo.getActorPhotos' // @ts-ignore 634 return this._server.xrpc.method(nsid, cfg) 635 } 636} 637 638export class ComNS { 639 _server: Server 640 atproto: ComAtprotoNS 641 642 constructor(server: Server) { 643 this._server = server 644 this.atproto = new ComAtprotoNS(server) 645 } 646} 647 648export class ComAtprotoNS { 649 _server: Server 650 repo: ComAtprotoRepoNS 651 652 constructor(server: Server) { 653 this._server = server 654 this.repo = new ComAtprotoRepoNS(server) 655 } 656} 657 658export class ComAtprotoRepoNS { 659 _server: Server 660 661 constructor(server: Server) { 662 this._server = server 663 } 664} 665 666type SharedRateLimitOpts<T> = { 667 name: string 668 calcKey?: (ctx: T) => string | null 669 calcPoints?: (ctx: T) => number 670} 671type RouteRateLimitOpts<T> = { 672 durationMs: number 673 points: number 674 calcKey?: (ctx: T) => string | null 675 calcPoints?: (ctx: T) => number 676} 677type HandlerOpts = { blobLimit?: number } 678type HandlerRateLimitOpts<T> = SharedRateLimitOpts<T> | RouteRateLimitOpts<T> 679type ConfigOf<Auth, Handler, ReqCtx> = 680 | Handler 681 | { 682 auth?: Auth 683 opts?: HandlerOpts 684 rateLimit?: HandlerRateLimitOpts<ReqCtx> | HandlerRateLimitOpts<ReqCtx>[] 685 handler: Handler 686 } 687type ExtractAuth<AV extends AuthVerifier | StreamAuthVerifier> = Extract< 688 Awaited<ReturnType<AV>>, 689 { credentials: unknown } 690>