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 SocialGrainGalleryGetGalleryThread from './types/social/grain/gallery/getGalleryThread.ts' 13import * as SocialGrainGalleryGetActorGalleries from './types/social/grain/gallery/getActorGalleries.ts' 14import * as SocialGrainGalleryGetGallery from './types/social/grain/gallery/getGallery.ts' 15import * as SocialGrainFeedGetTimeline from './types/social/grain/feed/getTimeline.ts' 16import * as SocialGrainActorGetProfile from './types/social/grain/actor/getProfile.ts' 17 18export const APP_BSKY_GRAPH = { 19 DefsModlist: 'app.bsky.graph.defs#modlist', 20 DefsCuratelist: 'app.bsky.graph.defs#curatelist', 21 DefsReferencelist: 'app.bsky.graph.defs#referencelist', 22} 23export const APP_BSKY_FEED = { 24 DefsRequestLess: 'app.bsky.feed.defs#requestLess', 25 DefsRequestMore: 'app.bsky.feed.defs#requestMore', 26 DefsInteractionLike: 'app.bsky.feed.defs#interactionLike', 27 DefsInteractionSeen: 'app.bsky.feed.defs#interactionSeen', 28 DefsClickthroughItem: 'app.bsky.feed.defs#clickthroughItem', 29 DefsContentModeVideo: 'app.bsky.feed.defs#contentModeVideo', 30 DefsInteractionQuote: 'app.bsky.feed.defs#interactionQuote', 31 DefsInteractionReply: 'app.bsky.feed.defs#interactionReply', 32 DefsInteractionShare: 'app.bsky.feed.defs#interactionShare', 33 DefsClickthroughEmbed: 'app.bsky.feed.defs#clickthroughEmbed', 34 DefsInteractionRepost: 'app.bsky.feed.defs#interactionRepost', 35 DefsClickthroughAuthor: 'app.bsky.feed.defs#clickthroughAuthor', 36 DefsClickthroughReposter: 'app.bsky.feed.defs#clickthroughReposter', 37 DefsContentModeUnspecified: 'app.bsky.feed.defs#contentModeUnspecified', 38} 39export const COM_ATPROTO_MODERATION = { 40 DefsReasonRude: 'com.atproto.moderation.defs#reasonRude', 41 DefsReasonSpam: 'com.atproto.moderation.defs#reasonSpam', 42 DefsReasonOther: 'com.atproto.moderation.defs#reasonOther', 43 DefsReasonAppeal: 'com.atproto.moderation.defs#reasonAppeal', 44 DefsReasonSexual: 'com.atproto.moderation.defs#reasonSexual', 45 DefsReasonViolation: 'com.atproto.moderation.defs#reasonViolation', 46 DefsReasonMisleading: 'com.atproto.moderation.defs#reasonMisleading', 47} 48 49export function createServer(options?: XrpcOptions): Server { 50 return new Server(options) 51} 52 53export class Server { 54 xrpc: XrpcServer 55 app: AppNS 56 sh: ShNS 57 social: SocialNS 58 com: ComNS 59 60 constructor(options?: XrpcOptions) { 61 this.xrpc = createXrpcServer(schemas, options) 62 this.app = new AppNS(this) 63 this.sh = new ShNS(this) 64 this.social = new SocialNS(this) 65 this.com = new ComNS(this) 66 } 67} 68 69export class AppNS { 70 _server: Server 71 bsky: AppBskyNS 72 73 constructor(server: Server) { 74 this._server = server 75 this.bsky = new AppBskyNS(server) 76 } 77} 78 79export class AppBskyNS { 80 _server: Server 81 embed: AppBskyEmbedNS 82 graph: AppBskyGraphNS 83 feed: AppBskyFeedNS 84 richtext: AppBskyRichtextNS 85 actor: AppBskyActorNS 86 87 constructor(server: Server) { 88 this._server = server 89 this.embed = new AppBskyEmbedNS(server) 90 this.graph = new AppBskyGraphNS(server) 91 this.feed = new AppBskyFeedNS(server) 92 this.richtext = new AppBskyRichtextNS(server) 93 this.actor = new AppBskyActorNS(server) 94 } 95} 96 97export class AppBskyEmbedNS { 98 _server: Server 99 100 constructor(server: Server) { 101 this._server = server 102 } 103} 104 105export class AppBskyGraphNS { 106 _server: Server 107 108 constructor(server: Server) { 109 this._server = server 110 } 111} 112 113export class AppBskyFeedNS { 114 _server: Server 115 116 constructor(server: Server) { 117 this._server = server 118 } 119} 120 121export class AppBskyRichtextNS { 122 _server: Server 123 124 constructor(server: Server) { 125 this._server = server 126 } 127} 128 129export class AppBskyActorNS { 130 _server: Server 131 132 constructor(server: Server) { 133 this._server = server 134 } 135} 136 137export class ShNS { 138 _server: Server 139 tangled: ShTangledNS 140 141 constructor(server: Server) { 142 this._server = server 143 this.tangled = new ShTangledNS(server) 144 } 145} 146 147export class ShTangledNS { 148 _server: Server 149 graph: ShTangledGraphNS 150 actor: ShTangledActorNS 151 152 constructor(server: Server) { 153 this._server = server 154 this.graph = new ShTangledGraphNS(server) 155 this.actor = new ShTangledActorNS(server) 156 } 157} 158 159export class ShTangledGraphNS { 160 _server: Server 161 162 constructor(server: Server) { 163 this._server = server 164 } 165} 166 167export class ShTangledActorNS { 168 _server: Server 169 170 constructor(server: Server) { 171 this._server = server 172 } 173} 174 175export class SocialNS { 176 _server: Server 177 grain: SocialGrainNS 178 179 constructor(server: Server) { 180 this._server = server 181 this.grain = new SocialGrainNS(server) 182 } 183} 184 185export class SocialGrainNS { 186 _server: Server 187 gallery: SocialGrainGalleryNS 188 graph: SocialGrainGraphNS 189 labeler: SocialGrainLabelerNS 190 feed: SocialGrainFeedNS 191 actor: SocialGrainActorNS 192 photo: SocialGrainPhotoNS 193 194 constructor(server: Server) { 195 this._server = server 196 this.gallery = new SocialGrainGalleryNS(server) 197 this.graph = new SocialGrainGraphNS(server) 198 this.labeler = new SocialGrainLabelerNS(server) 199 this.feed = new SocialGrainFeedNS(server) 200 this.actor = new SocialGrainActorNS(server) 201 this.photo = new SocialGrainPhotoNS(server) 202 } 203} 204 205export class SocialGrainGalleryNS { 206 _server: Server 207 208 constructor(server: Server) { 209 this._server = server 210 } 211 212 getGalleryThread<AV extends AuthVerifier>( 213 cfg: ConfigOf< 214 AV, 215 SocialGrainGalleryGetGalleryThread.Handler<ExtractAuth<AV>>, 216 SocialGrainGalleryGetGalleryThread.HandlerReqCtx<ExtractAuth<AV>> 217 >, 218 ) { 219 const nsid = 'social.grain.gallery.getGalleryThread' // @ts-ignore 220 return this._server.xrpc.method(nsid, cfg) 221 } 222 223 getActorGalleries<AV extends AuthVerifier>( 224 cfg: ConfigOf< 225 AV, 226 SocialGrainGalleryGetActorGalleries.Handler<ExtractAuth<AV>>, 227 SocialGrainGalleryGetActorGalleries.HandlerReqCtx<ExtractAuth<AV>> 228 >, 229 ) { 230 const nsid = 'social.grain.gallery.getActorGalleries' // @ts-ignore 231 return this._server.xrpc.method(nsid, cfg) 232 } 233 234 getGallery<AV extends AuthVerifier>( 235 cfg: ConfigOf< 236 AV, 237 SocialGrainGalleryGetGallery.Handler<ExtractAuth<AV>>, 238 SocialGrainGalleryGetGallery.HandlerReqCtx<ExtractAuth<AV>> 239 >, 240 ) { 241 const nsid = 'social.grain.gallery.getGallery' // @ts-ignore 242 return this._server.xrpc.method(nsid, cfg) 243 } 244} 245 246export class SocialGrainGraphNS { 247 _server: Server 248 249 constructor(server: Server) { 250 this._server = server 251 } 252} 253 254export class SocialGrainLabelerNS { 255 _server: Server 256 257 constructor(server: Server) { 258 this._server = server 259 } 260} 261 262export class SocialGrainFeedNS { 263 _server: Server 264 265 constructor(server: Server) { 266 this._server = server 267 } 268 269 getTimeline<AV extends AuthVerifier>( 270 cfg: ConfigOf< 271 AV, 272 SocialGrainFeedGetTimeline.Handler<ExtractAuth<AV>>, 273 SocialGrainFeedGetTimeline.HandlerReqCtx<ExtractAuth<AV>> 274 >, 275 ) { 276 const nsid = 'social.grain.feed.getTimeline' // @ts-ignore 277 return this._server.xrpc.method(nsid, cfg) 278 } 279} 280 281export class SocialGrainActorNS { 282 _server: Server 283 284 constructor(server: Server) { 285 this._server = server 286 } 287 288 getProfile<AV extends AuthVerifier>( 289 cfg: ConfigOf< 290 AV, 291 SocialGrainActorGetProfile.Handler<ExtractAuth<AV>>, 292 SocialGrainActorGetProfile.HandlerReqCtx<ExtractAuth<AV>> 293 >, 294 ) { 295 const nsid = 'social.grain.actor.getProfile' // @ts-ignore 296 return this._server.xrpc.method(nsid, cfg) 297 } 298} 299 300export class SocialGrainPhotoNS { 301 _server: Server 302 303 constructor(server: Server) { 304 this._server = server 305 } 306} 307 308export class ComNS { 309 _server: Server 310 atproto: ComAtprotoNS 311 312 constructor(server: Server) { 313 this._server = server 314 this.atproto = new ComAtprotoNS(server) 315 } 316} 317 318export class ComAtprotoNS { 319 _server: Server 320 repo: ComAtprotoRepoNS 321 322 constructor(server: Server) { 323 this._server = server 324 this.repo = new ComAtprotoRepoNS(server) 325 } 326} 327 328export class ComAtprotoRepoNS { 329 _server: Server 330 331 constructor(server: Server) { 332 this._server = server 333 } 334} 335 336type SharedRateLimitOpts<T> = { 337 name: string 338 calcKey?: (ctx: T) => string | null 339 calcPoints?: (ctx: T) => number 340} 341type RouteRateLimitOpts<T> = { 342 durationMs: number 343 points: number 344 calcKey?: (ctx: T) => string | null 345 calcPoints?: (ctx: T) => number 346} 347type HandlerOpts = { blobLimit?: number } 348type HandlerRateLimitOpts<T> = SharedRateLimitOpts<T> | RouteRateLimitOpts<T> 349type ConfigOf<Auth, Handler, ReqCtx> = 350 | Handler 351 | { 352 auth?: Auth 353 opts?: HandlerOpts 354 rateLimit?: HandlerRateLimitOpts<ReqCtx> | HandlerRateLimitOpts<ReqCtx>[] 355 handler: Handler 356 } 357type ExtractAuth<AV extends AuthVerifier | StreamAuthVerifier> = Extract< 358 Awaited<ReturnType<AV>>, 359 { credentials: unknown } 360>