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>