Bluesky app fork with some witchin' additions 💫

Update to use new getTimeline, getAuthorFeed, and getPostThread output models

+705 -897
+113 -166
src/state/models/feed-view.ts
··· 1 1 import {makeAutoObservable, runInAction} from 'mobx' 2 - import {Record as PostRecord} from '../../third-party/api/src/client/types/app/bsky/feed/post' 3 2 import * as GetTimeline from '../../third-party/api/src/client/types/app/bsky/feed/getTimeline' 4 - import * as ActorRef from '../../third-party/api/src/client/types/app/bsky/actor/ref' 3 + import { 4 + Main as FeedViewPost, 5 + ReasonTrend, 6 + ReasonRepost, 7 + } from '../../third-party/api/src/client/types/app/bsky/feed/feedViewPost' 8 + import {View as PostView} from '../../third-party/api/src/client/types/app/bsky/feed/post' 5 9 import * as GetAuthorFeed from '../../third-party/api/src/client/types/app/bsky/feed/getAuthorFeed' 6 - import {PostThreadViewModel} from './post-thread-view' 7 10 import {AtUri} from '../../third-party/uri' 8 11 import {RootStoreModel} from './root-store' 9 12 import * as apilib from '../lib/api' 10 13 import {cleanError} from '../../lib/strings' 11 - import {isObj, hasProp} from '../lib/type-guards' 12 14 13 15 const PAGE_SIZE = 30 14 16 15 17 let _idCounter = 0 16 18 17 - type FeedItem = GetTimeline.FeedItem | GetAuthorFeed.FeedItem 18 - type FeedItemWithThreadMeta = FeedItem & { 19 + type FeedViewPostWithThreadMeta = FeedViewPost & { 19 20 _isThreadParent?: boolean 20 21 _isThreadChildElided?: boolean 21 22 _isThreadChild?: boolean 22 23 } 23 24 24 - export class FeedItemMyStateModel { 25 - repost?: string 26 - upvote?: string 27 - downvote?: string 28 - 29 - constructor() { 30 - makeAutoObservable(this) 31 - } 32 - } 33 - 34 - export class FeedItemModel implements GetTimeline.FeedItem { 25 + export class FeedItemModel { 35 26 // ui state 36 27 _reactKey: string = '' 37 28 _isThreadParent: boolean = false ··· 39 30 _isThreadChild: boolean = false 40 31 41 32 // data 42 - uri: string = '' 43 - cid: string = '' 44 - author: ActorRef.WithInfo = { 45 - did: '', 46 - handle: '', 47 - displayName: '', 48 - declaration: {cid: '', actorType: ''}, 49 - avatar: undefined, 50 - } 51 - repostedBy?: ActorRef.WithInfo 52 - trendedBy?: ActorRef.WithInfo 53 - record: Record<string, unknown> = {} 54 - embed?: GetTimeline.FeedItem['embed'] 55 - replyCount: number = 0 56 - repostCount: number = 0 57 - upvoteCount: number = 0 58 - downvoteCount: number = 0 59 - indexedAt: string = '' 60 - myState = new FeedItemMyStateModel() 61 - 62 - // additional data 63 - additionalParentPost?: PostThreadViewModel 33 + post: PostView 34 + reply?: FeedViewPost['reply'] 35 + replyParent?: FeedItemModel 36 + reason?: FeedViewPost['reason'] 64 37 65 38 constructor( 66 39 public rootStore: RootStoreModel, 67 40 reactKey: string, 68 - v: FeedItemWithThreadMeta, 41 + v: FeedViewPostWithThreadMeta, 69 42 ) { 70 - makeAutoObservable(this, {rootStore: false}) 71 43 this._reactKey = reactKey 72 - this.copy(v) 44 + this.post = v.post 45 + this.reply = v.reply 46 + if (v.reply?.parent) { 47 + this.replyParent = new FeedItemModel(rootStore, '', { 48 + post: v.reply.parent, 49 + }) 50 + } 51 + this.reason = v.reason 73 52 this._isThreadParent = v._isThreadParent || false 74 53 this._isThreadChild = v._isThreadChild || false 75 54 this._isThreadChildElided = v._isThreadChildElided || false 55 + makeAutoObservable(this, {rootStore: false}) 76 56 } 77 57 78 - copy(v: GetTimeline.FeedItem | GetAuthorFeed.FeedItem) { 79 - this.uri = v.uri 80 - this.cid = v.cid 81 - this.author = v.author 82 - this.repostedBy = v.repostedBy 83 - this.trendedBy = v.trendedBy 84 - this.record = v.record 85 - this.embed = v.embed 86 - this.replyCount = v.replyCount 87 - this.repostCount = v.repostCount 88 - this.upvoteCount = v.upvoteCount 89 - this.downvoteCount = v.downvoteCount 90 - this.indexedAt = v.indexedAt 91 - if (v.myState) { 92 - this.myState.upvote = v.myState.upvote 93 - this.myState.downvote = v.myState.downvote 94 - this.myState.repost = v.myState.repost 58 + copy(v: FeedViewPost) { 59 + this.post = v.post 60 + this.reply = v.reply 61 + if (v.reply?.parent) { 62 + this.replyParent = new FeedItemModel(this.rootStore, '', { 63 + post: v.reply.parent, 64 + }) 65 + } else { 66 + this.replyParent = undefined 67 + } 68 + this.reason = v.reason 69 + } 70 + 71 + get reasonRepost(): ReasonRepost | undefined { 72 + if (this.reason?.$type === 'app.bsky.feed.feedViewPost#reasonRepost') { 73 + return this.reason as ReasonRepost 74 + } 75 + } 76 + 77 + get reasonTrend(): ReasonTrend | undefined { 78 + if (this.reason?.$type === 'app.bsky.feed.feedViewPost#reasonTrend') { 79 + return this.reason as ReasonTrend 95 80 } 96 81 } 97 82 98 83 async toggleUpvote() { 99 - const wasUpvoted = !!this.myState.upvote 100 - const wasDownvoted = !!this.myState.downvote 84 + const wasUpvoted = !!this.post.viewer.upvote 85 + const wasDownvoted = !!this.post.viewer.downvote 101 86 const res = await this.rootStore.api.app.bsky.feed.setVote({ 102 87 subject: { 103 - uri: this.uri, 104 - cid: this.cid, 88 + uri: this.post.uri, 89 + cid: this.post.cid, 105 90 }, 106 91 direction: wasUpvoted ? 'none' : 'up', 107 92 }) 108 93 runInAction(() => { 109 94 if (wasDownvoted) { 110 - this.downvoteCount-- 95 + this.post.downvoteCount-- 111 96 } 112 97 if (wasUpvoted) { 113 - this.upvoteCount-- 98 + this.post.upvoteCount-- 114 99 } else { 115 - this.upvoteCount++ 100 + this.post.upvoteCount++ 116 101 } 117 - this.myState.upvote = res.data.upvote 118 - this.myState.downvote = res.data.downvote 102 + this.post.viewer.upvote = res.data.upvote 103 + this.post.viewer.downvote = res.data.downvote 119 104 }) 120 105 } 121 106 122 107 async toggleDownvote() { 123 - const wasUpvoted = !!this.myState.upvote 124 - const wasDownvoted = !!this.myState.downvote 108 + const wasUpvoted = !!this.post.viewer.upvote 109 + const wasDownvoted = !!this.post.viewer.downvote 125 110 const res = await this.rootStore.api.app.bsky.feed.setVote({ 126 111 subject: { 127 - uri: this.uri, 128 - cid: this.cid, 112 + uri: this.post.uri, 113 + cid: this.post.cid, 129 114 }, 130 115 direction: wasDownvoted ? 'none' : 'down', 131 116 }) 132 117 runInAction(() => { 133 118 if (wasUpvoted) { 134 - this.upvoteCount-- 119 + this.post.upvoteCount-- 135 120 } 136 121 if (wasDownvoted) { 137 - this.downvoteCount-- 122 + this.post.downvoteCount-- 138 123 } else { 139 - this.downvoteCount++ 124 + this.post.downvoteCount++ 140 125 } 141 - this.myState.upvote = res.data.upvote 142 - this.myState.downvote = res.data.downvote 126 + this.post.viewer.upvote = res.data.upvote 127 + this.post.viewer.downvote = res.data.downvote 143 128 }) 144 129 } 145 130 146 131 async toggleRepost() { 147 - if (this.myState.repost) { 148 - await apilib.unrepost(this.rootStore, this.myState.repost) 132 + if (this.post.viewer.repost) { 133 + await apilib.unrepost(this.rootStore, this.post.viewer.repost) 149 134 runInAction(() => { 150 - this.repostCount-- 151 - this.myState.repost = undefined 135 + this.post.repostCount-- 136 + this.post.viewer.repost = undefined 152 137 }) 153 138 } else { 154 - const res = await apilib.repost(this.rootStore, this.uri, this.cid) 139 + const res = await apilib.repost( 140 + this.rootStore, 141 + this.post.uri, 142 + this.post.cid, 143 + ) 155 144 runInAction(() => { 156 - this.repostCount++ 157 - this.myState.repost = res.uri 145 + this.post.repostCount++ 146 + this.post.viewer.repost = res.uri 158 147 }) 159 148 } 160 149 } 161 150 162 151 async delete() { 163 152 await this.rootStore.api.app.bsky.feed.post.delete({ 164 - did: this.author.did, 165 - rkey: new AtUri(this.uri).rkey, 166 - }) 167 - } 168 - 169 - get needsAdditionalData() { 170 - if ( 171 - (this.record as PostRecord).reply?.parent?.uri && 172 - !this._isThreadChild 173 - ) { 174 - return !this.additionalParentPost 175 - } 176 - return false 177 - } 178 - 179 - async fetchAdditionalData() { 180 - if (!this.needsAdditionalData) { 181 - return 182 - } 183 - this.additionalParentPost = new PostThreadViewModel(this.rootStore, { 184 - uri: (this.record as PostRecord).reply?.parent.uri, 185 - depth: 0, 186 - }) 187 - await this.additionalParentPost.setup().catch(e => { 188 - console.error('Failed to load post needed by notification', e) 153 + did: this.post.author.did, 154 + rkey: new AtUri(this.post.uri).rkey, 189 155 }) 190 156 } 191 157 } ··· 244 210 245 211 get nonReplyFeed() { 246 212 return this.feed.filter( 247 - post => 248 - !post.record.reply || // not a reply 249 - !!post.repostedBy || // or a repost 250 - !!post.trendedBy || // or a trend 251 - post._isThreadParent || // but allow if it's a thread by the user 252 - post._isThreadChild, 213 + item => 214 + !item.reply || // not a reply 215 + ((item._isThreadParent || // but allow if it's a thread by the user 216 + item._isThreadChild) && 217 + item.reply?.root.author.did === item.post.author.did), 253 218 ) 254 219 } 255 220 ··· 335 300 const res = await this._getFeed({limit: 1}) 336 301 const currentLatestUri = this.pollCursor 337 302 const receivedLatestUri = res.data.feed[0] 338 - ? res.data.feed[0].uri 303 + ? res.data.feed[0].post.uri 339 304 : undefined 340 305 const hasNewLatest = Boolean( 341 306 receivedLatestUri && ··· 435 400 } 436 401 this._updateAll(res) 437 402 numToFetch -= res.data.feed.length 438 - cursor = this.feed[res.data.feed.length - 1].indexedAt 403 + cursor = this.feed[res.data.feed.length - 1] 404 + ? ts(this.feed[res.data.feed.length - 1]) 405 + : undefined 439 406 console.log(numToFetch, cursor, res.data.feed.length) 440 407 } while (numToFetch > 0) 441 408 this._xIdle() ··· 447 414 private async _replaceAll( 448 415 res: GetTimeline.Response | GetAuthorFeed.Response, 449 416 ) { 450 - this.pollCursor = res.data.feed[0]?.uri 417 + this.pollCursor = res.data.feed[0]?.post.uri 451 418 return this._appendAll(res, true) 452 419 } 453 420 ··· 460 427 461 428 const reorgedFeed = preprocessFeed(res.data.feed) 462 429 463 - const promises = [] 464 430 const toAppend: FeedItemModel[] = [] 465 431 for (const item of reorgedFeed) { 466 432 const itemModel = new FeedItemModel( ··· 468 434 `item-${_idCounter++}`, 469 435 item, 470 436 ) 471 - if (itemModel.needsAdditionalData) { 472 - promises.push( 473 - itemModel.fetchAdditionalData().catch(e => { 474 - console.error('Failure during feed-view _appendAll()', e) 475 - }), 476 - ) 477 - } 478 437 toAppend.push(itemModel) 479 438 } 480 - await Promise.all(promises) 481 439 runInAction(() => { 482 440 if (replace) { 483 441 this.feed = toAppend ··· 490 448 private async _prependAll( 491 449 res: GetTimeline.Response | GetAuthorFeed.Response, 492 450 ) { 493 - this.pollCursor = res.data.feed[0]?.uri 451 + this.pollCursor = res.data.feed[0]?.post.uri 494 452 495 - const promises = [] 496 453 const toPrepend: FeedItemModel[] = [] 497 454 for (const item of res.data.feed) { 498 - if (this.feed.find(item2 => item2.uri === item.uri)) { 455 + if (this.feed.find(item2 => item2.post.uri === item.post.uri)) { 499 456 break // stop here - we've hit a post we already have 500 457 } 501 458 ··· 504 461 `item-${_idCounter++}`, 505 462 item, 506 463 ) 507 - if (itemModel.needsAdditionalData) { 508 - promises.push( 509 - itemModel.fetchAdditionalData().catch(e => { 510 - console.error('Failure during feed-view _prependAll()', e) 511 - }), 512 - ) 513 - } 514 464 toPrepend.push(itemModel) 515 465 } 516 - await Promise.all(promises) 517 466 runInAction(() => { 518 467 this.feed = toPrepend.concat(this.feed) 519 468 }) ··· 524 473 const existingItem = this.feed.find( 525 474 // HACK: need to find the reposts and trends item, so we have to check for that -prf 526 475 item2 => 527 - item.uri === item2.uri && 528 - item.repostedBy?.did === item2.repostedBy?.did && 529 - item.trendedBy?.did === item2.trendedBy?.did, 476 + item.uri === item2.post.uri && 477 + item.reason?.$trend === item2.reason?.$trend && 478 + // @ts-ignore todo 479 + item.reason?.by?.did === item2.reason?.by?.did, 530 480 ) 531 481 if (existingItem) { 532 482 existingItem.copy(item) ··· 554 504 index: number 555 505 length: number 556 506 } 557 - function preprocessFeed(feed: FeedItem[]): FeedItemWithThreadMeta[] { 558 - const reorg: FeedItemWithThreadMeta[] = [] 507 + function preprocessFeed(feed: FeedViewPost[]): FeedViewPostWithThreadMeta[] { 508 + const reorg: FeedViewPostWithThreadMeta[] = [] 559 509 560 510 // phase one: identify threads and reorganize them into the feed so 561 511 // that they are in order and marked as part of a thread 562 512 for (let i = feed.length - 1; i >= 0; i--) { 563 - const item = feed[i] as FeedItemWithThreadMeta 513 + const item = feed[i] as FeedViewPostWithThreadMeta 564 514 565 515 const selfReplyUri = getSelfReplyUri(item) 566 516 if (selfReplyUri) { 567 - const parentIndex = reorg.findIndex(item2 => item2.uri === selfReplyUri) 517 + const parentIndex = reorg.findIndex( 518 + item2 => item2.post.uri === selfReplyUri, 519 + ) 568 520 if (parentIndex !== -1 && !reorg[parentIndex]._isThreadParent) { 569 521 reorg[parentIndex]._isThreadParent = true 570 522 item._isThreadChild = true ··· 579 531 let activeSlice = -1 580 532 let threadSlices: Slice[] = [] 581 533 for (let i = 0; i < reorg.length; i++) { 582 - const item = reorg[i] as FeedItemWithThreadMeta 534 + const item = reorg[i] as FeedViewPostWithThreadMeta 583 535 if (activeSlice === -1) { 584 536 if (item._isThreadParent) { 585 537 activeSlice = i ··· 602 554 // phase three: reorder the feed so that the timestamp of the 603 555 // last post in a thread establishes its ordering 604 556 for (const slice of threadSlices) { 605 - const removed: FeedItemWithThreadMeta[] = reorg.splice( 557 + const removed: FeedViewPostWithThreadMeta[] = reorg.splice( 606 558 slice.index, 607 559 slice.length, 608 560 ) 609 - const targetDate = new Date(removed[removed.length - 1].indexedAt) 610 - let newIndex = reorg.findIndex( 611 - item => new Date(item.indexedAt) < targetDate, 612 - ) 561 + const targetDate = new Date(ts(removed[removed.length - 1])) 562 + let newIndex = reorg.findIndex(item => new Date(ts(item)) < targetDate) 613 563 if (newIndex === -1) { 614 564 newIndex = reorg.length 615 565 } ··· 630 580 return reorg 631 581 } 632 582 633 - function getSelfReplyUri( 634 - item: GetTimeline.FeedItem | GetAuthorFeed.FeedItem, 635 - ): string | undefined { 636 - if ( 637 - isObj(item.record) && 638 - hasProp(item.record, 'reply') && 639 - isObj(item.record.reply) && 640 - hasProp(item.record.reply, 'parent') && 641 - isObj(item.record.reply.parent) && 642 - hasProp(item.record.reply.parent, 'uri') && 643 - typeof item.record.reply.parent.uri === 'string' 644 - ) { 645 - if (new AtUri(item.record.reply.parent.uri).host === item.author.did) { 646 - return item.record.reply.parent.uri 647 - } 583 + function getSelfReplyUri(item: FeedViewPost): string | undefined { 584 + return item.reply?.parent.author.did === item.post.author.did 585 + ? item.reply?.parent.uri 586 + : undefined 587 + } 588 + 589 + function ts(item: FeedViewPost | FeedItemModel): string { 590 + if (item.reason?.indexedAt) { 591 + // @ts-ignore need better type checks 592 + return item.reason.indexedAt 648 593 } 594 + console.log(item) 595 + return item.post.indexedAt 649 596 }
+105 -106
src/state/models/post-thread-view.ts
··· 1 1 import {makeAutoObservable, runInAction} from 'mobx' 2 - import {AppBskyFeedGetPostThread as GetPostThread} from '../../third-party/api' 3 - import * as ActorRef from '../../third-party/api/src/client/types/app/bsky/actor/ref' 2 + import {AppBskyFeedGetPostThread as GPT} from '../../third-party/api' 3 + import type * as GetPostThread from '../../third-party/api/src/client/types/app/bsky/feed/getPostThread' 4 4 import {AtUri} from '../../third-party/uri' 5 - import _omit from 'lodash.omit' 6 5 import {RootStoreModel} from './root-store' 7 6 import * as apilib from '../lib/api' 8 7 9 - type MaybePost = 10 - | GetPostThread.Post 11 - | GetPostThread.NotFoundPost 12 - | { 13 - $type: string 14 - [k: string]: unknown 15 - } 8 + interface UnknownPost { 9 + $type: string 10 + [k: string]: unknown 11 + } 16 12 17 13 function* reactKeyGenerator(): Generator<string> { 18 14 let counter = 0 ··· 33 29 text: string 34 30 } 35 31 36 - export class PostThreadViewPostMyStateModel { 37 - repost?: string 38 - upvote?: string 39 - downvote?: string 40 - 41 - constructor() { 42 - makeAutoObservable(this) 43 - } 32 + function isThreadViewPost( 33 + v: GetPostThread.ThreadViewPost | GetPostThread.NotFoundPost | UnknownPost, 34 + ): v is GetPostThread.ThreadViewPost { 35 + return v.$type === 'app.bksy.feed.getPostThread#threadViewPost' 36 + } 37 + function isNotFoundPost( 38 + v: GetPostThread.ThreadViewPost | GetPostThread.NotFoundPost | UnknownPost, 39 + ): v is GetPostThread.NotFoundPost { 40 + return v.$type === 'app.bsky.feed.getPostThread#notFoundPost' 44 41 } 45 42 46 - export class PostThreadViewPostModel implements GetPostThread.Post { 43 + export class PostThreadViewPostModel { 47 44 // ui state 48 45 _reactKey: string = '' 49 46 _depth = 0 ··· 51 48 _hasMore = false 52 49 53 50 // data 54 - $type: string = '' 55 - uri: string = '' 56 - cid: string = '' 57 - author: ActorRef.WithInfo = { 58 - did: '', 59 - handle: '', 60 - declaration: {cid: '', actorType: ''}, 61 - } 62 - record: Record<string, unknown> = {} 63 - embed?: GetPostThread.Post['embed'] = undefined 64 - parent?: PostThreadViewPostModel 65 - replyCount: number = 0 66 - replies?: PostThreadViewPostModel[] 67 - repostCount: number = 0 68 - upvoteCount: number = 0 69 - downvoteCount: number = 0 70 - indexedAt: string = '' 71 - myState = new PostThreadViewPostMyStateModel() 51 + post: GetPostThread.ThreadViewPost['post'] 52 + parent?: PostThreadViewPostModel | GetPostThread.NotFoundPost 53 + replies?: (PostThreadViewPostModel | GetPostThread.NotFoundPost)[] 72 54 73 55 // added data 74 56 replyingTo?: ReplyingTo ··· 76 58 constructor( 77 59 public rootStore: RootStoreModel, 78 60 reactKey: string, 79 - v?: GetPostThread.Post, 61 + v: GetPostThread.ThreadViewPost, 80 62 ) { 81 - makeAutoObservable(this, {rootStore: false}) 82 63 this._reactKey = reactKey 83 - if (v) { 84 - Object.assign(this, _omit(v, 'parent', 'replies', 'myState')) // replies and parent are handled via assignTreeModels 85 - if (v.myState) { 86 - Object.assign(this.myState, v.myState) 87 - } 88 - } 64 + this.post = v.post 65 + // replies and parent are handled via assignTreeModels 66 + makeAutoObservable(this, {rootStore: false}) 89 67 } 90 68 91 69 assignTreeModels( 92 70 keyGen: Generator<string>, 93 - v: GetPostThread.Post, 71 + v: GetPostThread.ThreadViewPost, 94 72 includeParent = true, 95 73 includeChildren = true, 96 74 isFirstChild = true, 97 75 ) { 98 76 // parents 99 77 if (includeParent && v.parent) { 100 - // TODO: validate .record 101 - const parentModel = new PostThreadViewPostModel( 102 - this.rootStore, 103 - keyGen.next().value, 104 - v.parent, 105 - ) 106 - parentModel._depth = this._depth - 1 107 - if (v.parent.parent) { 108 - parentModel.assignTreeModels(keyGen, v.parent, true, false) 78 + if (isThreadViewPost(v.parent)) { 79 + const parentModel = new PostThreadViewPostModel( 80 + this.rootStore, 81 + keyGen.next().value, 82 + v.parent, 83 + ) 84 + parentModel._depth = this._depth - 1 85 + if (v.parent.parent) { 86 + parentModel.assignTreeModels(keyGen, v.parent, true, false) 87 + } 88 + this.parent = parentModel 89 + } else if (isNotFoundPost(v.parent)) { 90 + this.parent = v.parent 109 91 } 110 - this.parent = parentModel 111 92 } 112 - if (!includeParent && v.parent?.author.handle && !isFirstChild) { 93 + if ( 94 + !includeParent && 95 + v.parent && 96 + isThreadViewPost(v.parent) && 97 + !isFirstChild 98 + ) { 113 99 this.replyingTo = { 114 100 author: { 115 - handle: v.parent.author.handle, 116 - displayName: v.parent.author.displayName, 117 - avatar: v.parent.author.avatar, 101 + handle: v.parent.post.author.handle, 102 + displayName: v.parent.post.author.displayName, 103 + avatar: v.parent.post.author.avatar, 118 104 }, 119 105 text: (v.parent.record as OriginalRecord).text, 120 106 } ··· 124 110 const replies = [] 125 111 let isChildFirstChild = true 126 112 for (const item of v.replies) { 127 - // TODO: validate .record 128 - const itemModel = new PostThreadViewPostModel( 129 - this.rootStore, 130 - keyGen.next().value, 131 - item, 132 - ) 133 - itemModel._depth = this._depth + 1 134 - if (item.replies) { 135 - itemModel.assignTreeModels( 136 - keyGen, 113 + if (isThreadViewPost(item)) { 114 + const itemModel = new PostThreadViewPostModel( 115 + this.rootStore, 116 + keyGen.next().value, 137 117 item, 138 - false, 139 - true, 140 - isChildFirstChild, 141 118 ) 119 + itemModel._depth = this._depth + 1 120 + if (item.replies) { 121 + itemModel.assignTreeModels( 122 + keyGen, 123 + item, 124 + false, 125 + true, 126 + isChildFirstChild, 127 + ) 128 + } 129 + isChildFirstChild = false 130 + replies.push(itemModel) 131 + } else if (isNotFoundPost(item)) { 132 + replies.push(item) 142 133 } 143 - isChildFirstChild = false 144 - replies.push(itemModel) 145 134 } 146 135 this.replies = replies 147 136 } 148 137 } 149 138 150 139 async toggleUpvote() { 151 - const wasUpvoted = !!this.myState.upvote 152 - const wasDownvoted = !!this.myState.downvote 140 + const wasUpvoted = !!this.post.viewer.upvote 141 + const wasDownvoted = !!this.post.viewer.downvote 153 142 const res = await this.rootStore.api.app.bsky.feed.setVote({ 154 143 subject: { 155 - uri: this.uri, 156 - cid: this.cid, 144 + uri: this.post.uri, 145 + cid: this.post.cid, 157 146 }, 158 147 direction: wasUpvoted ? 'none' : 'up', 159 148 }) 160 149 runInAction(() => { 161 150 if (wasDownvoted) { 162 - this.downvoteCount-- 151 + this.post.downvoteCount-- 163 152 } 164 153 if (wasUpvoted) { 165 - this.upvoteCount-- 154 + this.post.upvoteCount-- 166 155 } else { 167 - this.upvoteCount++ 156 + this.post.upvoteCount++ 168 157 } 169 - this.myState.upvote = res.data.upvote 170 - this.myState.downvote = res.data.downvote 158 + this.post.viewer.upvote = res.data.upvote 159 + this.post.viewer.downvote = res.data.downvote 171 160 }) 172 161 } 173 162 174 163 async toggleDownvote() { 175 - const wasUpvoted = !!this.myState.upvote 176 - const wasDownvoted = !!this.myState.downvote 164 + const wasUpvoted = !!this.post.viewer.upvote 165 + const wasDownvoted = !!this.post.viewer.downvote 177 166 const res = await this.rootStore.api.app.bsky.feed.setVote({ 178 167 subject: { 179 - uri: this.uri, 180 - cid: this.cid, 168 + uri: this.post.uri, 169 + cid: this.post.cid, 181 170 }, 182 171 direction: wasDownvoted ? 'none' : 'down', 183 172 }) 184 173 runInAction(() => { 185 174 if (wasUpvoted) { 186 - this.upvoteCount-- 175 + this.post.upvoteCount-- 187 176 } 188 177 if (wasDownvoted) { 189 - this.downvoteCount-- 178 + this.post.downvoteCount-- 190 179 } else { 191 - this.downvoteCount++ 180 + this.post.downvoteCount++ 192 181 } 193 - this.myState.upvote = res.data.upvote 194 - this.myState.downvote = res.data.downvote 182 + this.post.viewer.upvote = res.data.upvote 183 + this.post.viewer.downvote = res.data.downvote 195 184 }) 196 185 } 197 186 198 187 async toggleRepost() { 199 - if (this.myState.repost) { 200 - await apilib.unrepost(this.rootStore, this.myState.repost) 188 + if (this.post.viewer.repost) { 189 + await apilib.unrepost(this.rootStore, this.post.viewer.repost) 201 190 runInAction(() => { 202 - this.repostCount-- 203 - this.myState.repost = undefined 191 + this.post.repostCount-- 192 + this.post.viewer.repost = undefined 204 193 }) 205 194 } else { 206 - const res = await apilib.repost(this.rootStore, this.uri, this.cid) 195 + const res = await apilib.repost( 196 + this.rootStore, 197 + this.post.uri, 198 + this.post.cid, 199 + ) 207 200 runInAction(() => { 208 - this.repostCount++ 209 - this.myState.repost = res.uri 201 + this.post.repostCount++ 202 + this.post.viewer.repost = res.uri 210 203 }) 211 204 } 212 205 } 213 206 214 207 async delete() { 215 208 await this.rootStore.api.app.bsky.feed.post.delete({ 216 - did: this.author.did, 217 - rkey: new AtUri(this.uri).rkey, 209 + did: this.post.author.did, 210 + rkey: new AtUri(this.post.uri).rkey, 218 211 }) 219 212 } 220 213 } ··· 304 297 this.isRefreshing = false 305 298 this.hasLoaded = true 306 299 this.error = err ? err.toString() : '' 307 - this.notFound = err instanceof GetPostThread.NotFoundError 300 + this.notFound = err instanceof GPT.NotFoundError 308 301 } 309 302 310 303 // loader functions ··· 339 332 340 333 private _replaceAll(res: GetPostThread.Response) { 341 334 // TODO: validate .record 342 - sortThread(res.data.thread) 335 + // sortThread(res.data.thread) TODO needed? 343 336 const keyGen = reactKeyGenerator() 344 337 const thread = new PostThreadViewPostModel( 345 338 this.rootStore, 346 339 keyGen.next().value, 347 - res.data.thread as GetPostThread.Post, 340 + res.data.thread as GetPostThread.ThreadViewPost, 348 341 ) 349 342 thread._isHighlightedPost = true 350 - thread.assignTreeModels(keyGen, res.data.thread as GetPostThread.Post) 343 + thread.assignTreeModels( 344 + keyGen, 345 + res.data.thread as GetPostThread.ThreadViewPost, 346 + ) 351 347 this.thread = thread 352 348 } 353 349 } 354 350 351 + /* 352 + TODO needed? 355 353 function sortThread(post: MaybePost) { 356 354 if (post.notFound) { 357 355 return ··· 382 380 post.replies.forEach(reply => sortThread(reply)) 383 381 } 384 382 } 383 + */
+151 -222
src/third-party/api/index.js
··· 40 40 AppBskyActorUpdateProfile: () => updateProfile_exports, 41 41 AppBskyEmbedExternal: () => external_exports, 42 42 AppBskyEmbedImages: () => images_exports, 43 + AppBskyFeedFeedViewPost: () => feedViewPost_exports, 43 44 AppBskyFeedGetAuthorFeed: () => getAuthorFeed_exports, 44 45 AppBskyFeedGetPostThread: () => getPostThread_exports, 45 46 AppBskyFeedGetRepostedBy: () => getRepostedBy_exports, ··· 5756 5757 } 5757 5758 } 5758 5759 }, 5760 + AppBskyFeedFeedViewPost: { 5761 + lexicon: 1, 5762 + id: "app.bsky.feed.feedViewPost", 5763 + defs: { 5764 + main: { 5765 + type: "object", 5766 + required: ["post"], 5767 + properties: { 5768 + post: { 5769 + type: "ref", 5770 + ref: "lex:app.bsky.feed.post#view" 5771 + }, 5772 + reply: { 5773 + type: "ref", 5774 + ref: "lex:app.bsky.feed.feedViewPost#replyRef" 5775 + }, 5776 + reason: { 5777 + type: "union", 5778 + refs: [ 5779 + "lex:app.bsky.feed.feedViewPost#reasonTrend", 5780 + "lex:app.bsky.feed.feedViewPost#reasonRepost" 5781 + ] 5782 + } 5783 + } 5784 + }, 5785 + replyRef: { 5786 + type: "object", 5787 + required: ["root", "parent"], 5788 + properties: { 5789 + root: { 5790 + type: "ref", 5791 + ref: "lex:app.bsky.feed.post#view" 5792 + }, 5793 + parent: { 5794 + type: "ref", 5795 + ref: "lex:app.bsky.feed.post#view" 5796 + } 5797 + } 5798 + }, 5799 + reasonTrend: { 5800 + type: "object", 5801 + required: ["by", "indexedAt"], 5802 + properties: { 5803 + by: { 5804 + type: "ref", 5805 + ref: "lex:app.bsky.actor.ref#withInfo" 5806 + }, 5807 + indexedAt: { 5808 + type: "datetime" 5809 + } 5810 + } 5811 + }, 5812 + reasonRepost: { 5813 + type: "object", 5814 + required: ["by", "indexedAt"], 5815 + properties: { 5816 + by: { 5817 + type: "ref", 5818 + ref: "lex:app.bsky.actor.ref#withInfo" 5819 + }, 5820 + indexedAt: { 5821 + type: "datetime" 5822 + } 5823 + } 5824 + } 5825 + } 5826 + }, 5759 5827 AppBskyFeedGetAuthorFeed: { 5760 5828 lexicon: 1, 5761 5829 id: "app.bsky.feed.getAuthorFeed", ··· 5794 5862 type: "array", 5795 5863 items: { 5796 5864 type: "ref", 5797 - ref: "lex:app.bsky.feed.getAuthorFeed#feedItem" 5865 + ref: "lex:app.bsky.feed.feedViewPost" 5798 5866 } 5799 5867 } 5800 5868 } 5801 5869 } 5802 5870 } 5803 - }, 5804 - feedItem: { 5805 - type: "object", 5806 - required: [ 5807 - "uri", 5808 - "cid", 5809 - "author", 5810 - "record", 5811 - "replyCount", 5812 - "repostCount", 5813 - "upvoteCount", 5814 - "downvoteCount", 5815 - "indexedAt" 5816 - ], 5817 - properties: { 5818 - uri: { 5819 - type: "string" 5820 - }, 5821 - cid: { 5822 - type: "string" 5823 - }, 5824 - author: { 5825 - type: "ref", 5826 - ref: "lex:app.bsky.actor.ref#withInfo" 5827 - }, 5828 - trendedBy: { 5829 - type: "ref", 5830 - ref: "lex:app.bsky.actor.ref#withInfo" 5831 - }, 5832 - repostedBy: { 5833 - type: "ref", 5834 - ref: "lex:app.bsky.actor.ref#withInfo" 5835 - }, 5836 - record: { 5837 - type: "unknown" 5838 - }, 5839 - embed: { 5840 - type: "union", 5841 - refs: [ 5842 - "lex:app.bsky.embed.images#presented", 5843 - "lex:app.bsky.embed.external#presented" 5844 - ] 5845 - }, 5846 - replyCount: { 5847 - type: "integer" 5848 - }, 5849 - repostCount: { 5850 - type: "integer" 5851 - }, 5852 - upvoteCount: { 5853 - type: "integer" 5854 - }, 5855 - downvoteCount: { 5856 - type: "integer" 5857 - }, 5858 - indexedAt: { 5859 - type: "datetime" 5860 - }, 5861 - myState: { 5862 - type: "ref", 5863 - ref: "lex:app.bsky.feed.getAuthorFeed#myState" 5864 - } 5865 - } 5866 - }, 5867 - myState: { 5868 - type: "object", 5869 - properties: { 5870 - repost: { 5871 - type: "string" 5872 - }, 5873 - upvote: { 5874 - type: "string" 5875 - }, 5876 - downvote: { 5877 - type: "string" 5878 - } 5879 - } 5880 5871 } 5881 5872 } 5882 5873 }, ··· 5907 5898 thread: { 5908 5899 type: "union", 5909 5900 refs: [ 5910 - "lex:app.bsky.feed.getPostThread#post", 5901 + "lex:app.bsky.feed.getPostThread#threadViewPost", 5911 5902 "lex:app.bsky.feed.getPostThread#notFoundPost" 5912 5903 ] 5913 5904 } ··· 5920 5911 } 5921 5912 ] 5922 5913 }, 5923 - post: { 5914 + threadViewPost: { 5924 5915 type: "object", 5925 - required: [ 5926 - "uri", 5927 - "cid", 5928 - "author", 5929 - "record", 5930 - "replyCount", 5931 - "repostCount", 5932 - "upvoteCount", 5933 - "downvoteCount", 5934 - "indexedAt" 5935 - ], 5916 + required: ["post"], 5936 5917 properties: { 5937 - uri: { 5938 - type: "string" 5939 - }, 5940 - cid: { 5941 - type: "string" 5942 - }, 5943 - author: { 5918 + post: { 5944 5919 type: "ref", 5945 - ref: "lex:app.bsky.actor.ref#withInfo" 5946 - }, 5947 - record: { 5948 - type: "unknown" 5949 - }, 5950 - embed: { 5951 - type: "union", 5952 - refs: [ 5953 - "lex:app.bsky.embed.images#presented", 5954 - "lex:app.bsky.embed.external#presented" 5955 - ] 5920 + ref: "lex:app.bsky.feed.post#view" 5956 5921 }, 5957 5922 parent: { 5958 5923 type: "union", 5959 5924 refs: [ 5960 - "lex:app.bsky.feed.getPostThread#post", 5925 + "lex:app.bsky.feed.getPostThread#threadViewPost", 5961 5926 "lex:app.bsky.feed.getPostThread#notFoundPost" 5962 5927 ] 5963 5928 }, 5964 - replyCount: { 5965 - type: "integer" 5966 - }, 5967 5929 replies: { 5968 5930 type: "array", 5969 5931 items: { 5970 5932 type: "union", 5971 5933 refs: [ 5972 - "lex:app.bsky.feed.getPostThread#post", 5934 + "lex:app.bsky.feed.getPostThread#threadViewPost", 5973 5935 "lex:app.bsky.feed.getPostThread#notFoundPost" 5974 5936 ] 5975 5937 } 5976 - }, 5977 - repostCount: { 5978 - type: "integer" 5979 - }, 5980 - upvoteCount: { 5981 - type: "integer" 5982 - }, 5983 - downvoteCount: { 5984 - type: "integer" 5985 - }, 5986 - indexedAt: { 5987 - type: "datetime" 5988 - }, 5989 - myState: { 5990 - type: "ref", 5991 - ref: "lex:app.bsky.feed.getPostThread#myState" 5992 5938 } 5993 5939 } 5994 5940 }, ··· 6002 5948 notFound: { 6003 5949 type: "boolean", 6004 5950 const: true 6005 - } 6006 - } 6007 - }, 6008 - myState: { 6009 - type: "object", 6010 - properties: { 6011 - repost: { 6012 - type: "string" 6013 - }, 6014 - upvote: { 6015 - type: "string" 6016 - }, 6017 - downvote: { 6018 - type: "string" 6019 5951 } 6020 5952 } 6021 5953 } ··· 6142 6074 type: "array", 6143 6075 items: { 6144 6076 type: "ref", 6145 - ref: "lex:app.bsky.feed.getTimeline#feedItem" 6077 + ref: "lex:app.bsky.feed.feedViewPost" 6146 6078 } 6147 6079 } 6148 6080 } 6149 6081 } 6150 6082 } 6151 - }, 6152 - feedItem: { 6153 - type: "object", 6154 - required: [ 6155 - "uri", 6156 - "cid", 6157 - "author", 6158 - "record", 6159 - "replyCount", 6160 - "repostCount", 6161 - "upvoteCount", 6162 - "downvoteCount", 6163 - "indexedAt" 6164 - ], 6165 - properties: { 6166 - uri: { 6167 - type: "string" 6168 - }, 6169 - cid: { 6170 - type: "string" 6171 - }, 6172 - author: { 6173 - type: "ref", 6174 - ref: "lex:app.bsky.actor.ref#withInfo" 6175 - }, 6176 - trendedBy: { 6177 - type: "ref", 6178 - ref: "lex:app.bsky.actor.ref#withInfo" 6179 - }, 6180 - repostedBy: { 6181 - type: "ref", 6182 - ref: "lex:app.bsky.actor.ref#withInfo" 6183 - }, 6184 - record: { 6185 - type: "unknown" 6186 - }, 6187 - embed: { 6188 - type: "union", 6189 - refs: [ 6190 - "lex:app.bsky.embed.images#presented", 6191 - "lex:app.bsky.embed.external#presented" 6192 - ] 6193 - }, 6194 - replyCount: { 6195 - type: "integer" 6196 - }, 6197 - repostCount: { 6198 - type: "integer" 6199 - }, 6200 - upvoteCount: { 6201 - type: "integer" 6202 - }, 6203 - downvoteCount: { 6204 - type: "integer" 6205 - }, 6206 - indexedAt: { 6207 - type: "datetime" 6208 - }, 6209 - myState: { 6210 - type: "ref", 6211 - ref: "lex:app.bsky.feed.getTimeline#myState" 6212 - } 6213 - } 6214 - }, 6215 - myState: { 6216 - type: "object", 6217 - properties: { 6218 - repost: { 6219 - type: "string" 6220 - }, 6221 - upvote: { 6222 - type: "string" 6223 - }, 6224 - downvote: { 6225 - type: "string" 6226 - } 6227 - } 6228 6083 } 6229 6084 } 6230 6085 }, ··· 6388 6243 end: { 6389 6244 type: "integer", 6390 6245 minimum: 0 6246 + } 6247 + } 6248 + }, 6249 + view: { 6250 + type: "object", 6251 + required: [ 6252 + "uri", 6253 + "cid", 6254 + "author", 6255 + "record", 6256 + "replyCount", 6257 + "repostCount", 6258 + "upvoteCount", 6259 + "downvoteCount", 6260 + "indexedAt", 6261 + "viewer" 6262 + ], 6263 + properties: { 6264 + uri: { 6265 + type: "string" 6266 + }, 6267 + cid: { 6268 + type: "string" 6269 + }, 6270 + author: { 6271 + type: "ref", 6272 + ref: "lex:app.bsky.actor.ref#withInfo" 6273 + }, 6274 + record: { 6275 + type: "unknown" 6276 + }, 6277 + embed: { 6278 + type: "union", 6279 + refs: [ 6280 + "lex:app.bsky.embed.images#presented", 6281 + "lex:app.bsky.embed.external#presented" 6282 + ] 6283 + }, 6284 + replyCount: { 6285 + type: "integer" 6286 + }, 6287 + repostCount: { 6288 + type: "integer" 6289 + }, 6290 + upvoteCount: { 6291 + type: "integer" 6292 + }, 6293 + downvoteCount: { 6294 + type: "integer" 6295 + }, 6296 + indexedAt: { 6297 + type: "datetime" 6298 + }, 6299 + viewer: { 6300 + type: "ref", 6301 + ref: "lex:app.bsky.feed.post#viewerState" 6302 + } 6303 + } 6304 + }, 6305 + viewerState: { 6306 + type: "object", 6307 + properties: { 6308 + repost: { 6309 + type: "string" 6310 + }, 6311 + upvote: { 6312 + type: "string" 6313 + }, 6314 + downvote: { 6315 + type: "string" 6391 6316 } 6392 6317 } 6393 6318 } ··· 7826 7751 // src/client/types/app/bsky/embed/images.ts 7827 7752 var images_exports = {}; 7828 7753 7754 + // src/client/types/app/bsky/feed/feedViewPost.ts 7755 + var feedViewPost_exports = {}; 7756 + 7829 7757 // src/client/types/app/bsky/feed/post.ts 7830 7758 var post_exports = {}; 7831 7759 ··· 8709 8637 AppBskyActorUpdateProfile, 8710 8638 AppBskyEmbedExternal, 8711 8639 AppBskyEmbedImages, 8640 + AppBskyFeedFeedViewPost, 8712 8641 AppBskyFeedGetAuthorFeed, 8713 8642 AppBskyFeedGetPostThread, 8714 8643 AppBskyFeedGetRepostedBy,
+3 -3
src/third-party/api/index.js.map
··· 1 1 { 2 2 "version": 3, 3 - "sources": ["../src/index.ts", "../../../node_modules/zod/lib/index.mjs", "../../xrpc/src/types.ts", "../../nsid/src/index.ts", "../../lexicon/src/types.ts", "../../lexicon/src/validators/primitives.ts", "../../lexicon/src/validators/blob.ts", "../../lexicon/src/validators/complex.ts", "../../lexicon/src/util.ts", "../../lexicon/src/validators/xrpc.ts", "../../lexicon/src/validation.ts", "../../lexicon/src/lexicons.ts", "../../xrpc/src/util.ts", "../../xrpc/src/client.ts", "../../xrpc/src/index.ts", "../src/client/lexicons.ts", "../src/client/types/com/atproto/account/create.ts", "../src/client/types/com/atproto/account/createInviteCode.ts", "../src/client/types/com/atproto/account/delete.ts", "../src/client/types/com/atproto/account/get.ts", "../src/client/types/com/atproto/account/requestPasswordReset.ts", "../src/client/types/com/atproto/account/resetPassword.ts", "../src/client/types/com/atproto/blob/upload.ts", "../src/client/types/com/atproto/handle/resolve.ts", "../src/client/types/com/atproto/repo/batchWrite.ts", "../src/client/types/com/atproto/repo/createRecord.ts", "../src/client/types/com/atproto/repo/deleteRecord.ts", "../src/client/types/com/atproto/repo/describe.ts", "../src/client/types/com/atproto/repo/getRecord.ts", "../src/client/types/com/atproto/repo/listRecords.ts", "../src/client/types/com/atproto/repo/putRecord.ts", "../src/client/types/com/atproto/server/getAccountsConfig.ts", "../src/client/types/com/atproto/session/create.ts", "../src/client/types/com/atproto/session/delete.ts", "../src/client/types/com/atproto/session/get.ts", "../src/client/types/com/atproto/session/refresh.ts", "../src/client/types/com/atproto/sync/getRepo.ts", "../src/client/types/com/atproto/sync/getRoot.ts", "../src/client/types/com/atproto/sync/updateRepo.ts", "../src/client/types/app/bsky/actor/createScene.ts", "../src/client/types/app/bsky/actor/getProfile.ts", "../src/client/types/app/bsky/actor/getSuggestions.ts", "../src/client/types/app/bsky/actor/search.ts", "../src/client/types/app/bsky/actor/searchTypeahead.ts", "../src/client/types/app/bsky/actor/updateProfile.ts", "../src/client/types/app/bsky/feed/getAuthorFeed.ts", "../src/client/types/app/bsky/feed/getPostThread.ts", "../src/client/types/app/bsky/feed/getRepostedBy.ts", "../src/client/types/app/bsky/feed/getTimeline.ts", "../src/client/types/app/bsky/feed/getVotes.ts", "../src/client/types/app/bsky/feed/setVote.ts", "../src/client/types/app/bsky/graph/getAssertions.ts", "../src/client/types/app/bsky/graph/getFollowers.ts", "../src/client/types/app/bsky/graph/getFollows.ts", "../src/client/types/app/bsky/graph/getMembers.ts", "../src/client/types/app/bsky/graph/getMemberships.ts", "../src/client/types/app/bsky/notification/getCount.ts", "../src/client/types/app/bsky/notification/list.ts", "../src/client/types/app/bsky/notification/updateSeen.ts", "../src/client/types/com/atproto/repo/strongRef.ts", "../src/client/types/app/bsky/actor/profile.ts", "../src/client/types/app/bsky/actor/ref.ts", "../src/client/types/app/bsky/embed/external.ts", "../src/client/types/app/bsky/embed/images.ts", "../src/client/types/app/bsky/feed/post.ts", "../src/client/types/app/bsky/feed/repost.ts", "../src/client/types/app/bsky/feed/trend.ts", "../src/client/types/app/bsky/feed/vote.ts", "../src/client/types/app/bsky/graph/assertCreator.ts", "../src/client/types/app/bsky/graph/assertMember.ts", "../src/client/types/app/bsky/graph/assertion.ts", "../src/client/types/app/bsky/graph/confirmation.ts", "../src/client/types/app/bsky/graph/follow.ts", "../src/client/types/app/bsky/system/actorScene.ts", "../src/client/types/app/bsky/system/actorUser.ts", "../src/client/types/app/bsky/system/declRef.ts", "../src/client/types/app/bsky/system/declaration.ts", "../src/client/index.ts", "../src/session.ts"], 4 - "sourcesContent": ["export * from './client'\nexport { default } from './client'\nexport * from './session'\nexport { default as sessionClient } from './session'\n", "var util;\n(function (util) {\n util.assertEqual = (val) => val;\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nconst ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n\nconst ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nclass ZodError extends Error {\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n get errors() {\n return this.issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be greater than ${issue.inclusive ? `or equal to ` : ``}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be greater than ${issue.inclusive ? `or equal to ` : ``}${new Date(issue.minimum)}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be less than ${issue.inclusive ? `or equal to ` : ``}${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be smaller than ${issue.inclusive ? `or equal to ` : ``}${new Date(issue.maximum)}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\n\nlet overrideErrorMap = errorMap;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message || errorMessage,\n };\n};\nconst EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n syncPairs.push({\n key: await pair.key,\n value: await pair.value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (typeof value.value !== \"undefined\" || pair.alwaysSet) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nconst INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nconst OK = (value) => ({ status: \"valid\", value });\nconst isAborted = (x) => x.status === \"aborted\";\nconst isDirty = (x) => x.status === \"dirty\";\nconst isValid = (x) => x.status === \"valid\";\nconst isAsync = (x) => typeof Promise !== undefined && x instanceof Promise;\n\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\n\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n return this._path.concat(this._key);\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n const error = new ZodError(ctx.common.issues);\n return { success: false, error };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n if (typeof ctx.data === \"undefined\") {\n return { message: required_error !== null && required_error !== void 0 ? required_error : ctx.defaultError };\n }\n return { message: invalid_type_error !== null && invalid_type_error !== void 0 ? invalid_type_error : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this.superRefine = this._refinement;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.default = this.default.bind(this);\n this.describe = this.describe.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n }\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: [], parent: ctx });\n const result = await (isAsync(maybeAsyncResult)\n ? maybeAsyncResult\n : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\"\n ? refinementData(val, ctx)\n : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n optional() {\n return ZodOptional.create(this);\n }\n nullable() {\n return ZodNullable.create(this);\n }\n nullish() {\n return this.optional().nullable();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this);\n }\n or(option) {\n return ZodUnion.create([this, option]);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming);\n }\n transform(transform) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(undefined),\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst uuidRegex = /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n// eslint-disable-next-line\nconst emailRegex = /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\nclass ZodString extends ZodType {\n constructor() {\n super(...arguments);\n this._regex = (regex, validation, message) => this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n /**\n * @deprecated Use z.string().min(1) instead.\n * @see {@link ZodString.min}\n */\n this.nonempty = (message) => this.min(1, errorUtil.errToObj(message));\n this.trim = () => new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n }\n //\n );\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this.min(len, message).max(len, message);\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\");\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all(ctx.data.map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = ctx.data.map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return this.min(len, message).max(len, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////\n/////////////////////////////////////////\n////////// //////////\n////////// ZodObject //////////\n////////// //////////\n/////////////////////////////////////////\n/////////////////////////////////////////\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second,\n };\n };\n})(objectUtil || (objectUtil = {}));\nconst AugmentFactory = (def) => (augmentation) => {\n return new ZodObject({\n ...def,\n shape: () => ({\n ...def.shape(),\n ...augmentation,\n }),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return ZodArray.create(deepPartialify(schema.element));\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n this.augment = AugmentFactory(this._def);\n this.extend = AugmentFactory(this._def);\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever &&\n this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n syncPairs.push({\n key,\n value: await pair.value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n // const mergedShape = objectUtil.mergeShapes(\n // this._def.shape(),\n // merging._def.shape()\n // );\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).map((key) => {\n // only add to shape if key corresponds to an element of the current shape\n if (this.shape[key])\n shape[key] = this.shape[key];\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).map((key) => {\n if (util.objectKeys(mask).indexOf(key) === -1) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n if (mask) {\n util.objectKeys(this.shape).map((key) => {\n if (util.objectKeys(mask).indexOf(key) === -1) {\n newShape[key] = this.shape[key];\n }\n else {\n newShape[key] = this.shape[key].optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n else {\n for (const key in this.shape) {\n const fieldSchema = this.shape[key];\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required() {\n const newShape = {};\n for (const key in this.shape) {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.options.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: this.validDiscriminatorValues,\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get validDiscriminatorValues() {\n return Array.from(this.options.keys());\n }\n get options() {\n return this._def.options;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, types, params) {\n // Get all the valid discriminator values\n const options = new Map();\n try {\n types.forEach((type) => {\n const discriminatorValue = type.shape[discriminator].value;\n options.set(discriminatorValue, type);\n });\n }\n catch (e) {\n throw new Error(\"The discriminator value could not be extracted from all the provided schemas\");\n }\n // Assert that all the discriminator values are unique\n if (options.size !== types.length) {\n throw new Error(\"Some of the discriminator values are not unique\");\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util\n .objectKeys(a)\n .filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date &&\n bType === ZodParsedType.date &&\n +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n type: \"array\",\n });\n status.dirty();\n }\n const items = ctx.data\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nclass ZodMap extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n return OK(async (...args) => {\n const error = new ZodError([]);\n const parsedArgs = await this._def.args\n .parseAsync(args, params)\n .catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await fn(...parsedArgs);\n const parsedReturns = await this._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n return OK((...args) => {\n const parsedArgs = this._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = fn(...parsedArgs.data);\n const parsedReturns = this._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args\n ? args\n : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nclass ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (this._def.values.indexOf(input.data) === -1) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n}\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string &&\n ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (nativeEnumValues.indexOf(input.data) === -1) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise &&\n ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data);\n if (ctx.common.async) {\n return Promise.resolve(processed).then((processed) => {\n return this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n });\n }\n else {\n return this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc\n // effect: RefinementEffect<any>\n ) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n // if (base.status === \"aborted\") return INVALID;\n // if (base.status === \"dirty\") {\n // return { status: \"dirty\", value: base.value };\n // }\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((base) => {\n if (!isValid(base))\n return base;\n // if (base.status === \"aborted\") return INVALID;\n // if (base.status === \"dirty\") {\n // return { status: \"dirty\", value: base.value };\n // }\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nconst BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nconst custom = (check, params = {}, fatal) => {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n if (!check(data)) {\n const p = typeof params === \"function\" ? params(data) : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n ctx.addIssue({ code: \"custom\", ...p2, fatal });\n }\n });\n return ZodAny.create();\n};\nconst late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// new approach that works for abstract classes\n// but required TS 4.4+\n// abstract class Class {\n// constructor(..._: any[]) {}\n// }\n// const instanceOfType = <T extends typeof Class>(\nconst instanceOfType = (cls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params, true);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nconst NEVER = INVALID;\n\nvar mod = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getParsedType: getParsedType,\n ZodParsedType: ZodParsedType,\n defaultErrorMap: errorMap,\n setErrorMap: setErrorMap,\n getErrorMap: getErrorMap,\n makeIssue: makeIssue,\n EMPTY_PATH: EMPTY_PATH,\n addIssueToContext: addIssueToContext,\n ParseStatus: ParseStatus,\n INVALID: INVALID,\n DIRTY: DIRTY,\n OK: OK,\n isAborted: isAborted,\n isDirty: isDirty,\n isValid: isValid,\n isAsync: isAsync,\n ZodType: ZodType,\n ZodString: ZodString,\n ZodNumber: ZodNumber,\n ZodBigInt: ZodBigInt,\n ZodBoolean: ZodBoolean,\n ZodDate: ZodDate,\n ZodUndefined: ZodUndefined,\n ZodNull: ZodNull,\n ZodAny: ZodAny,\n ZodUnknown: ZodUnknown,\n ZodNever: ZodNever,\n ZodVoid: ZodVoid,\n ZodArray: ZodArray,\n get objectUtil () { return objectUtil; },\n ZodObject: ZodObject,\n ZodUnion: ZodUnion,\n ZodDiscriminatedUnion: ZodDiscriminatedUnion,\n ZodIntersection: ZodIntersection,\n ZodTuple: ZodTuple,\n ZodRecord: ZodRecord,\n ZodMap: ZodMap,\n ZodSet: ZodSet,\n ZodFunction: ZodFunction,\n ZodLazy: ZodLazy,\n ZodLiteral: ZodLiteral,\n ZodEnum: ZodEnum,\n ZodNativeEnum: ZodNativeEnum,\n ZodPromise: ZodPromise,\n ZodEffects: ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional: ZodOptional,\n ZodNullable: ZodNullable,\n ZodDefault: ZodDefault,\n ZodNaN: ZodNaN,\n BRAND: BRAND,\n ZodBranded: ZodBranded,\n custom: custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late: late,\n get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; },\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n 'enum': enumType,\n 'function': functionType,\n 'instanceof': instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n 'null': nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean: oboolean,\n onumber: onumber,\n optional: optionalType,\n ostring: ostring,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n transformer: effectsType,\n tuple: tupleType,\n 'undefined': undefinedType,\n union: unionType,\n unknown: unknownType,\n 'void': voidType,\n NEVER: NEVER,\n ZodIssueCode: ZodIssueCode,\n quotelessJson: quotelessJson,\n ZodError: ZodError\n});\n\nexport { BRAND, DIRTY, EMPTY_PATH, INVALID, NEVER, OK, ParseStatus, ZodType as Schema, ZodAny, ZodArray, ZodBigInt, ZodBoolean, ZodBranded, ZodDate, ZodDefault, ZodDiscriminatedUnion, ZodEffects, ZodEnum, ZodError, ZodFirstPartyTypeKind, ZodFunction, ZodIntersection, ZodIssueCode, ZodLazy, ZodLiteral, ZodMap, ZodNaN, ZodNativeEnum, ZodNever, ZodNull, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodParsedType, ZodPromise, ZodRecord, ZodType as ZodSchema, ZodSet, ZodString, ZodEffects as ZodTransformer, ZodTuple, ZodType, ZodUndefined, ZodUnion, ZodUnknown, ZodVoid, addIssueToContext, anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, custom, dateType as date, mod as default, errorMap as defaultErrorMap, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, getErrorMap, getParsedType, instanceOfType as instanceof, intersectionType as intersection, isAborted, isAsync, isDirty, isValid, late, lazyType as lazy, literalType as literal, makeIssue, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, objectUtil, oboolean, onumber, optionalType as optional, ostring, preprocessType as preprocess, promiseType as promise, quotelessJson, recordType as record, setType as set, setErrorMap, strictObjectType as strictObject, stringType as string, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, mod as z };\n", "import { z } from 'zod'\n\nexport type QueryParams = Record<string, any>\nexport type Headers = Record<string, string>\n\nexport interface CallOptions {\n encoding?: string\n headers?: Headers\n}\n\nexport interface FetchHandlerResponse {\n status: number\n headers: Headers\n body: ArrayBuffer | undefined\n}\n\nexport type FetchHandler = (\n httpUri: string,\n httpMethod: string,\n httpHeaders: Headers,\n httpReqBody: any,\n) => Promise<FetchHandlerResponse>\n\nexport const errorResponseBody = z.object({\n error: z.string().optional(),\n message: z.string().optional(),\n})\nexport type ErrorResponseBody = z.infer<typeof errorResponseBody>\n\nexport enum ResponseType {\n Unknown = 1,\n InvalidResponse = 2,\n Success = 200,\n InvalidRequest = 400,\n AuthRequired = 401,\n Forbidden = 403,\n XRPCNotSupported = 404,\n PayloadTooLarge = 413,\n RateLimitExceeded = 429,\n InternalServerError = 500,\n MethodNotImplemented = 501,\n UpstreamFailure = 502,\n NotEnoughResouces = 503,\n UpstreamTimeout = 504,\n}\n\nexport const ResponseTypeNames = {\n [ResponseType.InvalidResponse]: 'InvalidResponse',\n [ResponseType.Success]: 'Success',\n [ResponseType.InvalidRequest]: 'InvalidRequest',\n [ResponseType.AuthRequired]: 'AuthenticationRequired',\n [ResponseType.Forbidden]: 'Forbidden',\n [ResponseType.XRPCNotSupported]: 'XRPCNotSupported',\n [ResponseType.PayloadTooLarge]: 'PayloadTooLarge',\n [ResponseType.RateLimitExceeded]: 'RateLimitExceeded',\n [ResponseType.InternalServerError]: 'InternalServerError',\n [ResponseType.MethodNotImplemented]: 'MethodNotImplemented',\n [ResponseType.UpstreamFailure]: 'UpstreamFailure',\n [ResponseType.NotEnoughResouces]: 'NotEnoughResouces',\n [ResponseType.UpstreamTimeout]: 'UpstreamTimeout',\n}\n\nexport const ResponseTypeStrings = {\n [ResponseType.InvalidResponse]: 'Invalid Response',\n [ResponseType.Success]: 'Success',\n [ResponseType.InvalidRequest]: 'Invalid Request',\n [ResponseType.AuthRequired]: 'Authentication Required',\n [ResponseType.Forbidden]: 'Forbidden',\n [ResponseType.XRPCNotSupported]: 'XRPC Not Supported',\n [ResponseType.PayloadTooLarge]: 'Payload Too Large',\n [ResponseType.RateLimitExceeded]: 'Rate Limit Exceeded',\n [ResponseType.InternalServerError]: 'Internal Server Error',\n [ResponseType.MethodNotImplemented]: 'Method Not Implemented',\n [ResponseType.UpstreamFailure]: 'Upstream Failure',\n [ResponseType.NotEnoughResouces]: 'Not Enough Resouces',\n [ResponseType.UpstreamTimeout]: 'Upstream Timeout',\n}\n\nexport class XRPCResponse {\n success = true\n\n constructor(public data: any, public headers: Headers) {}\n}\n\nexport class XRPCError extends Error {\n success = false\n\n constructor(\n public status: ResponseType,\n public error?: string,\n message?: string,\n ) {\n super(message || error || ResponseTypeStrings[status])\n if (!this.error) {\n this.error = ResponseTypeNames[status]\n }\n }\n}\n", "/*\nGrammar:\n\nalpha = \"a\" / \"b\" / \"c\" / \"d\" / \"e\" / \"f\" / \"g\" / \"h\" / \"i\" / \"j\" / \"k\" / \"l\" / \"m\" / \"n\" / \"o\" / \"p\" / \"q\" / \"r\" / \"s\" / \"t\" / \"u\" / \"v\" / \"w\" / \"x\" / \"y\" / \"z\" / \"A\" / \"B\" / \"C\" / \"D\" / \"E\" / \"F\" / \"G\" / \"H\" / \"I\" / \"J\" / \"K\" / \"L\" / \"M\" / \"N\" / \"O\" / \"P\" / \"Q\" / \"R\" / \"S\" / \"T\" / \"U\" / \"V\" / \"W\" / \"X\" / \"Y\" / \"Z\"\nnumber = \"1\" / \"2\" / \"3\" / \"4\" / \"5\" / \"6\" / \"7\" / \"8\" / \"9\" / \"0\"\ndelim = \".\"\nsegment = alpha *( alpha / number / \"-\" )\nauthority = segment *( delim segment )\nname = segment\nnsid = authority delim name\nnsid-ns = authority delim \"*\"\n\n*/\n\nconst SEGMENT_RE = /^[a-zA-Z]([a-zA-Z0-9-])*$/\n\nexport class NSID {\n segments: string[] = []\n\n static parse(nsid: string): NSID {\n return new NSID(nsid)\n }\n\n static create(authority: string, name: string): NSID {\n const segments = [...authority.split('.').reverse(), name].join('.')\n return new NSID(segments)\n }\n\n static isValid(nsid: string): boolean {\n try {\n NSID.parse(nsid)\n return true\n } catch (e) {\n return false\n }\n }\n\n constructor(nsid: string) {\n const segments = nsid.split('.')\n if (segments.length <= 2) {\n throw new Error(`Invalid NSID: ${nsid}`)\n }\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i]\n if (SEGMENT_RE.test(segment)) {\n continue\n }\n if (i === segments.length - 1 && segment === '*') {\n continue\n }\n throw new Error(`Invalid NSID: invalid character in segment \"${segment}\"`)\n }\n this.segments = segments\n }\n\n get authority() {\n return this.segments\n .slice(0, this.segments.length - 1)\n .reverse()\n .join('.')\n }\n\n get name() {\n return this.segments.at(this.segments.length - 1)\n }\n\n toString() {\n return this.segments.join('.')\n }\n}\n", "import { z } from 'zod'\nimport { NSID } from '@atproto/nsid'\n\n// primitives\n// =\n\nexport const lexBoolean = z.object({\n type: z.literal('boolean'),\n description: z.string().optional(),\n default: z.boolean().optional(),\n const: z.boolean().optional(),\n})\nexport type LexBoolean = z.infer<typeof lexBoolean>\n\nexport const lexNumber = z.object({\n type: z.literal('number'),\n description: z.string().optional(),\n default: z.number().optional(),\n minimum: z.number().optional(),\n maximum: z.number().optional(),\n enum: z.number().array().optional(),\n const: z.number().optional(),\n})\nexport type LexNumber = z.infer<typeof lexNumber>\n\nexport const lexInteger = z.object({\n type: z.literal('integer'),\n description: z.string().optional(),\n default: z.number().int().optional(),\n minimum: z.number().int().optional(),\n maximum: z.number().int().optional(),\n enum: z.number().int().array().optional(),\n const: z.number().int().optional(),\n})\nexport type LexInteger = z.infer<typeof lexInteger>\n\nexport const lexString = z.object({\n type: z.literal('string'),\n description: z.string().optional(),\n default: z.string().optional(),\n minLength: z.number().int().optional(),\n maxLength: z.number().int().optional(),\n enum: z.string().array().optional(),\n const: z.string().optional(),\n knownValues: z.string().array().optional(),\n})\nexport type LexString = z.infer<typeof lexString>\n\nexport const lexDatetime = z.object({\n type: z.literal('datetime'),\n description: z.string().optional(),\n})\nexport type LexDatetime = z.infer<typeof lexDatetime>\n\nexport const lexUnknown = z.object({\n type: z.literal('unknown'),\n description: z.string().optional(),\n})\nexport type LexUnknown = z.infer<typeof lexUnknown>\n\nexport const lexPrimitive = z.union([\n lexBoolean,\n lexNumber,\n lexInteger,\n lexString,\n lexDatetime,\n lexUnknown,\n])\nexport type LexPrimitive = z.infer<typeof lexPrimitive>\n\n// references\n// =\n\nexport const lexRef = z.object({\n type: z.literal('ref'),\n description: z.string().optional(),\n ref: z.string(),\n})\nexport type LexRef = z.infer<typeof lexRef>\n\nexport const lexRefUnion = z.object({\n type: z.literal('union'),\n description: z.string().optional(),\n refs: z.string().array(),\n closed: z.boolean().optional(),\n})\nexport type LexRefUnion = z.infer<typeof lexRefUnion>\n\nexport const lexRefVariant = z.union([lexRef, lexRefUnion])\nexport type LexRefVariant = z.infer<typeof lexRefVariant>\n\n// blobs\n// =\n\nexport const lexBlob = z.object({\n type: z.literal('blob'),\n description: z.string().optional(),\n accept: z.string().array().optional(),\n maxSize: z.number().optional(),\n})\nexport type LexBlob = z.infer<typeof lexBlob>\n\nexport const lexImage = z.object({\n type: z.literal('image'),\n description: z.string().optional(),\n accept: z.string().array().optional(),\n maxSize: z.number().optional(),\n maxWidth: z.number().int().optional(),\n maxHeight: z.number().int().optional(),\n})\nexport type LexImage = z.infer<typeof lexImage>\n\nexport const lexVideo = z.object({\n type: z.literal('video'),\n description: z.string().optional(),\n accept: z.string().array().optional(),\n maxSize: z.number().optional(),\n maxWidth: z.number().int().optional(),\n maxHeight: z.number().int().optional(),\n maxLength: z.number().int().optional(),\n})\nexport type LexVideo = z.infer<typeof lexVideo>\n\nexport const lexAudio = z.object({\n type: z.literal('audio'),\n description: z.string().optional(),\n accept: z.string().array().optional(),\n maxSize: z.number().optional(),\n maxLength: z.number().int().optional(),\n})\nexport type LexAudio = z.infer<typeof lexAudio>\n\nexport const lexBlobVariant = z.union([lexBlob, lexImage, lexVideo, lexAudio])\nexport type LexBlobVariant = z.infer<typeof lexBlobVariant>\n\n// complex types\n// =\n\nexport const lexArray = z.object({\n type: z.literal('array'),\n description: z.string().optional(),\n items: z.union([lexPrimitive, lexBlobVariant, lexRefVariant]),\n minLength: z.number().int().optional(),\n maxLength: z.number().int().optional(),\n})\nexport type LexArray = z.infer<typeof lexArray>\n\nexport const lexToken = z.object({\n type: z.literal('token'),\n description: z.string().optional(),\n})\nexport type LexToken = z.infer<typeof lexToken>\n\nexport const lexObject = z.object({\n type: z.literal('object'),\n description: z.string().optional(),\n required: z.string().array().optional(),\n properties: z\n .record(z.union([lexRefVariant, lexArray, lexBlobVariant, lexPrimitive]))\n .optional(),\n})\nexport type LexObject = z.infer<typeof lexObject>\n\n// xrpc\n// =\n\nexport const lexXrpcParameters = z.object({\n type: z.literal('params'),\n description: z.string().optional(),\n required: z.string().array().optional(),\n properties: z.record(lexPrimitive),\n})\nexport type LexXrpcParameters = z.infer<typeof lexXrpcParameters>\n\nexport const lexXrpcBody = z.object({\n description: z.string().optional(),\n encoding: z.string(),\n schema: z.union([lexRefVariant, lexObject]).optional(),\n})\nexport type LexXrpcBody = z.infer<typeof lexXrpcBody>\n\nexport const lexXrpcError = z.object({\n name: z.string(),\n description: z.string().optional(),\n})\nexport type LexXrpcError = z.infer<typeof lexXrpcError>\n\nexport const lexXrpcQuery = z.object({\n type: z.literal('query'),\n description: z.string().optional(),\n parameters: lexXrpcParameters.optional(),\n output: lexXrpcBody.optional(),\n errors: lexXrpcError.array().optional(),\n})\nexport type LexXrpcQuery = z.infer<typeof lexXrpcQuery>\n\nexport const lexXrpcProcedure = z.object({\n type: z.literal('procedure'),\n description: z.string().optional(),\n parameters: lexXrpcParameters.optional(),\n input: lexXrpcBody.optional(),\n output: lexXrpcBody.optional(),\n errors: lexXrpcError.array().optional(),\n})\nexport type LexXrpcProcedure = z.infer<typeof lexXrpcProcedure>\n\n// database\n// =\n\nexport const lexRecord = z.object({\n type: z.literal('record'),\n description: z.string().optional(),\n key: z.string().optional(),\n record: lexObject,\n})\nexport type LexRecord = z.infer<typeof lexRecord>\n\n// core\n// =\n\nexport const lexUserType = z.union([\n lexRecord,\n\n lexXrpcQuery,\n lexXrpcProcedure,\n\n lexBlob,\n lexImage,\n lexVideo,\n lexAudio,\n\n lexArray,\n lexToken,\n lexObject,\n\n lexBoolean,\n lexNumber,\n lexInteger,\n lexString,\n lexDatetime,\n lexUnknown,\n])\nexport type LexUserType = z.infer<typeof lexUserType>\n\nexport const lexiconDoc = z\n .object({\n lexicon: z.literal(1),\n id: z.string().refine((v: string) => NSID.isValid(v), {\n message: 'Must be a valid NSID',\n }),\n revision: z.number().optional(),\n description: z.string().optional(),\n defs: z.record(lexUserType),\n })\n .superRefine((doc: LexiconDoc, ctx) => {\n for (const defId in doc.defs) {\n const def = doc.defs[defId]\n if (\n defId !== 'main' &&\n (def.type === 'record' ||\n def.type === 'procedure' ||\n def.type === 'query')\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Records, procedures, and queries must be the main definition.`,\n })\n }\n }\n })\nexport type LexiconDoc = z.infer<typeof lexiconDoc>\n\n// helpers\n// =\n\nexport function isValidLexiconDoc(v: unknown): v is LexiconDoc {\n return lexiconDoc.safeParse(v).success\n}\n\nexport function isObj(obj: unknown): obj is Record<string, unknown> {\n return !!obj && typeof obj === 'object'\n}\n\nexport function hasProp<K extends PropertyKey>(\n data: object,\n prop: K,\n): data is Record<K, unknown> {\n return prop in data\n}\n\nexport const discriminatedObject = z.object({ $type: z.string() })\nexport type DiscriminatedObject = z.infer<typeof discriminatedObject>\nexport function isDiscriminatedObject(\n value: unknown,\n): value is DiscriminatedObject {\n return discriminatedObject.safeParse(value).success\n}\n\nexport class LexiconDocMalformedError extends Error {\n constructor(\n message: string,\n public schemaDef: unknown,\n public issues?: z.ZodIssue[],\n ) {\n super(message)\n this.schemaDef = schemaDef\n this.issues = issues\n }\n}\n\nexport interface ValidationResult {\n success: boolean\n error?: ValidationError\n}\n\nexport class ValidationError extends Error {}\nexport class InvalidLexiconError extends Error {}\nexport class LexiconDefNotFoundError extends Error {}\n", "import { Lexicons } from '../lexicons'\nimport {\n LexUserType,\n LexBoolean,\n LexNumber,\n LexInteger,\n LexString,\n LexDatetime,\n ValidationResult,\n ValidationError,\n} from '../types'\n\nexport function validate(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n switch (def.type) {\n case 'boolean':\n return boolean(lexicons, path, def, value)\n case 'number':\n return number(lexicons, path, def, value)\n case 'integer':\n return integer(lexicons, path, def, value)\n case 'string':\n return string(lexicons, path, def, value)\n case 'datetime':\n return datetime(lexicons, path, def, value)\n case 'unknown':\n return unknown(lexicons, path, def, value)\n default:\n return {\n success: false,\n error: new ValidationError(`Unexpected lexicon type: ${def.type}`),\n }\n }\n}\n\nexport function boolean(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexBoolean\n\n // type\n const type = typeof value\n if (type == 'undefined') {\n if (typeof def.default === 'boolean') {\n return { success: true }\n }\n return {\n success: false,\n error: new ValidationError(`${path} must be a boolean`),\n }\n } else if (type !== 'boolean') {\n return {\n success: false,\n error: new ValidationError(`${path} must be a boolean`),\n }\n }\n\n // const\n if (typeof def.const === 'boolean') {\n if (value !== def.const) {\n return {\n success: false,\n error: new ValidationError(`${path} must be ${def.const}`),\n }\n }\n }\n\n return { success: true }\n}\n\nexport function number(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexNumber\n\n // type\n const type = typeof value\n if (type == 'undefined') {\n if (typeof def.default === 'number') {\n return { success: true }\n }\n return {\n success: false,\n error: new ValidationError(`${path} must be a number`),\n }\n } else if (type !== 'number') {\n return {\n success: false,\n error: new ValidationError(`${path} must be a number`),\n }\n }\n\n // const\n if (typeof def.const === 'number') {\n if (value !== def.const) {\n return {\n success: false,\n error: new ValidationError(`${path} must be ${def.const}`),\n }\n }\n }\n\n // enum\n if (Array.isArray(def.enum)) {\n if (!def.enum.includes(value as number)) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must be one of (${def.enum.join('|')})`,\n ),\n }\n }\n }\n\n // maximum\n if (typeof def.maximum === 'number') {\n if ((value as number) > def.maximum) {\n return {\n success: false,\n error: new ValidationError(\n `${path} can not be greater than ${def.maximum}`,\n ),\n }\n }\n }\n\n // minimum\n if (typeof def.minimum === 'number') {\n if ((value as number) < def.minimum) {\n return {\n success: false,\n error: new ValidationError(\n `${path} can not be less than ${def.minimum}`,\n ),\n }\n }\n }\n\n return { success: true }\n}\n\nexport function integer(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexInteger\n\n // run number validation\n const numRes = number(lexicons, path, def, value)\n if (!numRes.success) {\n return numRes\n }\n\n // whole numbers only\n if (!Number.isInteger(value)) {\n return {\n success: false,\n error: new ValidationError(`${path} must be an integer`),\n }\n }\n\n return { success: true }\n}\n\nexport function string(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexString\n\n // type\n const type = typeof value\n if (type == 'undefined') {\n if (typeof def.default === 'string') {\n return { success: true }\n }\n return {\n success: false,\n error: new ValidationError(`${path} must be a string`),\n }\n } else if (type !== 'string') {\n return {\n success: false,\n error: new ValidationError(`${path} must be a string`),\n }\n }\n\n // const\n if (typeof def.const === 'string') {\n if (value !== def.const) {\n return {\n success: false,\n error: new ValidationError(`${path} must be ${def.const}`),\n }\n }\n }\n\n // enum\n if (Array.isArray(def.enum)) {\n if (!def.enum.includes(value as string)) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must be one of (${def.enum.join('|')})`,\n ),\n }\n }\n }\n\n // maxLength\n if (typeof def.maxLength === 'number') {\n if ((value as string).length > def.maxLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be longer than ${def.maxLength} characters`,\n ),\n }\n }\n }\n\n // minLength\n if (typeof def.minLength === 'number') {\n if ((value as string).length < def.minLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be shorter than ${def.minLength} characters`,\n ),\n }\n }\n }\n\n return { success: true }\n}\n\nexport function datetime(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexDatetime\n\n // type\n const type = typeof value\n if (type !== 'string') {\n return {\n success: false,\n error: new ValidationError(`${path} must be a string`),\n }\n }\n\n // valid iso-8601\n {\n try {\n const date = new Date(Date.parse(value as string))\n if (value !== date.toISOString()) {\n throw new ValidationError(\n `${path} must be an iso8601 formatted datetime`,\n )\n }\n } catch {\n throw new ValidationError(`${path} must be an iso8601 formatted datetime`)\n }\n }\n\n return { success: true }\n}\n\nexport function unknown(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n // type\n if (!value || typeof value !== 'object') {\n return {\n success: false,\n error: new ValidationError(`${path} must be an object`),\n }\n }\n\n return { success: true }\n}\n", "import { Lexicons } from '../lexicons'\nimport { LexUserType, ValidationResult, ValidationError } from '../types'\nimport { isObj, hasProp } from '../types'\n\nexport function blob(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n if (!isObj(value)) {\n return {\n success: false,\n error: new ValidationError(`${path} should be an object`),\n }\n }\n if (!hasProp(value, 'cid') || typeof value.cid !== 'string') {\n return {\n success: false,\n error: new ValidationError(`${path}/cid should be a string`),\n }\n }\n if (!hasProp(value, 'mimeType') || typeof value.mimeType !== 'string') {\n return {\n success: false,\n error: new ValidationError(`${path}/mimeType should be a string`),\n }\n }\n return { success: true }\n}\n\nexport function image(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n return blob(lexicons, path, def, value)\n}\n\nexport function video(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n return blob(lexicons, path, def, value)\n}\n\nexport function audio(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n return blob(lexicons, path, def, value)\n}\n", "import { Lexicons } from '../lexicons'\nimport {\n LexArray,\n LexObject,\n LexUserType,\n ValidationResult,\n ValidationError,\n} from '../types'\nimport { validateOneOf } from '../util'\n\nimport * as Primitives from './primitives'\nimport * as Blob from './blob'\n\nexport function validate(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n switch (def.type) {\n case 'boolean':\n return Primitives.boolean(lexicons, path, def, value)\n case 'number':\n return Primitives.number(lexicons, path, def, value)\n case 'integer':\n return Primitives.integer(lexicons, path, def, value)\n case 'string':\n return Primitives.string(lexicons, path, def, value)\n case 'datetime':\n return Primitives.datetime(lexicons, path, def, value)\n case 'unknown':\n return Primitives.unknown(lexicons, path, def, value)\n case 'object':\n return object(lexicons, path, def, value)\n case 'array':\n return array(lexicons, path, def, value)\n case 'blob':\n return Blob.blob(lexicons, path, def, value)\n case 'image':\n return Blob.image(lexicons, path, def, value)\n case 'video':\n return Blob.video(lexicons, path, def, value)\n case 'audio':\n return Blob.audio(lexicons, path, def, value)\n default:\n return {\n success: false,\n error: new ValidationError(`Unexpected lexicon type: ${def.type}`),\n }\n }\n}\n\nexport function array(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexArray\n\n // type\n if (!Array.isArray(value)) {\n return {\n success: false,\n error: new ValidationError(`${path} must be an array`),\n }\n }\n\n // maxLength\n if (typeof def.maxLength === 'number') {\n if ((value as Array<unknown>).length > def.maxLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not have more than ${def.maxLength} elements`,\n ),\n }\n }\n }\n\n // minLength\n if (typeof def.minLength === 'number') {\n if ((value as Array<unknown>).length < def.minLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not have fewer than ${def.minLength} elements`,\n ),\n }\n }\n }\n\n // items\n const itemsDef = def.items\n for (let i = 0; i < (value as Array<unknown>).length; i++) {\n const itemValue = value[i]\n const itemPath = `${path}/${i}`\n const res = validateOneOf(lexicons, itemPath, itemsDef, itemValue)\n if (!res.success) {\n return res\n }\n }\n\n return { success: true }\n}\n\nexport function object(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexObject\n\n // type\n if (!value || typeof value !== 'object') {\n return {\n success: false,\n error: new ValidationError(`${path} must be an object`),\n }\n }\n\n // required\n if (Array.isArray(def.required)) {\n for (const key of def.required) {\n if (!(key in value)) {\n return {\n success: false,\n error: new ValidationError(`${path} must have the property \"${key}\"`),\n }\n }\n }\n }\n\n // properties\n if (typeof def.properties === 'object') {\n for (const key in def.properties) {\n const propValue = value[key]\n if (typeof propValue === 'undefined') {\n continue // skip- if required, will have already failed\n }\n const propDef = def.properties[key]\n const propPath = `${path}/${key}`\n const res = validateOneOf(lexicons, propPath, propDef, propValue)\n if (!res.success) {\n return res\n }\n }\n }\n\n return { success: true }\n}\n", "import { Lexicons } from './lexicons'\nimport * as ComplexValidators from './validators/complex'\nimport {\n LexUserType,\n LexRefVariant,\n ValidationError,\n ValidationResult,\n isDiscriminatedObject,\n} from './types'\n\nexport function toLexUri(str: string, baseUri?: string): string {\n if (str.startsWith('lex:')) {\n return str\n }\n if (str.startsWith('#')) {\n if (!baseUri) {\n throw new Error(`Unable to resolve uri without anchor: ${str}`)\n }\n return `${baseUri}${str}`\n }\n return `lex:${str}`\n}\n\nexport function validateOneOf(\n lexicons: Lexicons,\n path: string,\n def: LexRefVariant | LexUserType,\n value: unknown,\n mustBeObj = false, // this is the only type constraint we need currently (used by xrpc body schema validators)\n): ValidationResult {\n let error\n\n let concreteDefs\n if (def.type === 'union') {\n if (!isDiscriminatedObject(value)) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must be an object which includes the \"$type\" property`,\n ),\n }\n }\n if (!def.refs.includes(toLexUri(value.$type))) {\n if (def.closed) {\n return {\n success: false,\n error: new ValidationError(\n `${path} $type must be one of ${def.refs.join(', ')}`,\n ),\n }\n }\n return { success: true }\n } else {\n concreteDefs = toConcreteTypes(lexicons, {\n type: 'ref',\n ref: value.$type,\n })\n }\n } else {\n concreteDefs = toConcreteTypes(lexicons, def)\n }\n\n for (const concreteDef of concreteDefs) {\n const result = mustBeObj\n ? ComplexValidators.object(lexicons, path, concreteDef, value)\n : ComplexValidators.validate(lexicons, path, concreteDef, value)\n if (result.success) {\n return result\n }\n error ??= result.error\n }\n if (concreteDefs.length > 1) {\n return {\n success: false,\n error: new ValidationError(\n `${path} did not match any of the expected definitions`,\n ),\n }\n }\n return { success: false, error }\n}\n\nexport function assertValidOneOf(\n lexicons: Lexicons,\n path: string,\n def: LexRefVariant | LexUserType,\n value: unknown,\n mustBeObj = false,\n) {\n const res = validateOneOf(lexicons, path, def, value, mustBeObj)\n if (!res.success) {\n throw res.error\n }\n}\n\nexport function toConcreteTypes(\n lexicons: Lexicons,\n def: LexRefVariant | LexUserType,\n): LexUserType[] {\n if (def.type === 'ref') {\n return [lexicons.getDefOrThrow(def.ref)]\n } else if (def.type === 'union') {\n return def.refs.map((ref) => lexicons.getDefOrThrow(ref)).flat()\n } else {\n return [def]\n }\n}\n", "import { Lexicons } from '../lexicons'\nimport { LexXrpcParameters, ValidationResult, ValidationError } from '../types'\n\nimport * as PrimitiveValidators from './primitives'\n\nexport function params(\n lexicons: Lexicons,\n path: string,\n def: LexXrpcParameters,\n value: unknown,\n): ValidationResult {\n def = def as LexXrpcParameters\n\n // type\n if (!value || typeof value !== 'object') {\n // in this case, we just fall back to an object\n value = {}\n }\n\n // required\n if (Array.isArray(def.required)) {\n for (const key of def.required) {\n if (!(key in (value as Record<string, unknown>))) {\n return {\n success: false,\n error: new ValidationError(`${path} must have the property \"${key}\"`),\n }\n }\n }\n }\n\n // properties\n for (const key in def.properties) {\n if (typeof (value as Record<string, unknown>)[key] === 'undefined') {\n continue // skip- if required, will have already failed\n }\n const paramDef = def.properties[key]\n const res = PrimitiveValidators.validate(\n lexicons,\n key,\n paramDef,\n (value as Record<string, unknown>)[key],\n )\n if (!res.success) {\n return res\n }\n }\n\n return { success: true }\n}\n", "import { Lexicons } from './lexicons'\nimport { LexRecord, LexXrpcProcedure, LexXrpcQuery } from './types'\nimport { assertValidOneOf } from './util'\n\nimport * as ComplexValidators from './validators/complex'\nimport * as XrpcValidators from './validators/xrpc'\n\nexport function assertValidRecord(\n lexicons: Lexicons,\n def: LexRecord,\n value: unknown,\n) {\n const res = ComplexValidators.object(lexicons, 'Record', def.record, value)\n if (!res.success) throw res.error\n}\n\nexport function assertValidXrpcParams(\n lexicons: Lexicons,\n def: LexXrpcProcedure | LexXrpcQuery,\n value: unknown,\n) {\n if (def.parameters) {\n const res = XrpcValidators.params(lexicons, 'Params', def.parameters, value)\n if (!res.success) throw res.error\n }\n}\n\nexport function assertValidXrpcInput(\n lexicons: Lexicons,\n def: LexXrpcProcedure,\n value: unknown,\n) {\n if (def.input?.schema) {\n // loop: all input schema definitions\n assertValidOneOf(lexicons, 'Input', def.input.schema, value, true)\n }\n}\n\nexport function assertValidXrpcOutput(\n lexicons: Lexicons,\n def: LexXrpcProcedure | LexXrpcQuery,\n value: unknown,\n) {\n if (def.output?.schema) {\n // loop: all output schema definitions\n assertValidOneOf(lexicons, 'Output', def.output.schema, value, true)\n }\n}\n", "import { ZodError } from 'zod'\nimport {\n LexiconDoc,\n lexiconDoc,\n LexRecord,\n LexXrpcProcedure,\n LexXrpcQuery,\n LexUserType,\n LexiconDocMalformedError,\n LexiconDefNotFoundError,\n InvalidLexiconError,\n ValidationError,\n isObj,\n hasProp,\n} from './types'\nimport {\n assertValidRecord,\n assertValidXrpcParams,\n assertValidXrpcInput,\n assertValidXrpcOutput,\n} from './validation'\nimport { toLexUri } from './util'\n\n/**\n * A collection of compiled lexicons.\n */\nexport class Lexicons {\n docs: Map<string, LexiconDoc> = new Map()\n defs: Map<string, LexUserType> = new Map()\n\n constructor(docs?: unknown[]) {\n if (docs?.length) {\n for (const doc of docs) {\n this.add(doc)\n }\n }\n }\n\n /**\n * Add a lexicon doc.\n */\n add(doc: unknown): void {\n try {\n lexiconDoc.parse(doc)\n } catch (e) {\n if (e instanceof ZodError) {\n throw new LexiconDocMalformedError(\n `Failed to parse schema definition ${\n (doc as Record<string, string>).id\n }`,\n doc,\n e.issues,\n )\n } else {\n throw e\n }\n }\n const validatedDoc = doc as LexiconDoc\n const uri = toLexUri(validatedDoc.id)\n if (this.docs.has(uri)) {\n throw new Error(`${uri} has already been registered`)\n }\n\n // WARNING\n // mutates the object\n // -prf\n resolveRefUris(validatedDoc, uri)\n\n this.docs.set(uri, validatedDoc)\n for (const [defUri, def] of iterDefs(validatedDoc)) {\n this.defs.set(defUri, def)\n }\n }\n\n /**\n * Remove a lexicon doc.\n */\n remove(uri: string) {\n uri = toLexUri(uri)\n const doc = this.docs.get(uri)\n if (!doc) {\n throw new Error(`Unable to remove \"${uri}\": does not exist`)\n }\n for (const [defUri, _def] of iterDefs(doc)) {\n this.defs.delete(defUri)\n }\n this.docs.delete(uri)\n }\n\n /**\n * Get a lexicon doc.\n */\n get(uri: string): LexiconDoc | undefined {\n uri = toLexUri(uri)\n return this.docs.get(uri)\n }\n\n /**\n * Get a definition.\n */\n getDef(uri: string): LexUserType | undefined {\n uri = toLexUri(uri)\n return this.defs.get(uri)\n }\n\n /**\n * Get a def, throw if not found. Throws on not found.\n */\n getDefOrThrow(uri: string, types?: string[]): LexUserType {\n const def = this.getDef(uri)\n if (!def) {\n throw new LexiconDefNotFoundError(`Lexicon not found: ${uri}`)\n }\n if (types && !types.includes(def.type)) {\n throw new InvalidLexiconError(\n `Not a ${types.join(' or ')} lexicon: ${uri}`,\n )\n }\n return def\n }\n\n /**\n * Validate a record and throw on any error.\n */\n assertValidRecord(lexUri: string, value: unknown) {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['record'])\n if (!isObj(value)) {\n throw new ValidationError(`Record must be an object`)\n }\n if (!hasProp(value, '$type') || typeof value.$type !== 'string') {\n throw new ValidationError(`Record/$type must be a string`)\n }\n const $type = (value as Record<string, string>).$type || ''\n if (toLexUri($type) !== lexUri) {\n throw new ValidationError(\n `Invalid $type: must be ${lexUri}, got ${$type}`,\n )\n }\n assertValidRecord(this, def as LexRecord, value)\n }\n\n /**\n * Validate xrpc query params and throw on any error.\n */\n assertValidXrpcParams(lexUri: string, value: unknown) {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['query', 'procedure'])\n assertValidXrpcParams(this, def as LexXrpcProcedure | LexXrpcQuery, value)\n }\n\n /**\n * Validate xrpc input body and throw on any error.\n */\n assertValidXrpcInput(lexUri: string, value: unknown) {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['procedure'])\n assertValidXrpcInput(this, def as LexXrpcProcedure, value)\n }\n\n /**\n * Validate xrpc output body and throw on any error.\n */\n assertValidXrpcOutput(lexUri: string, value: unknown) {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['query', 'procedure'])\n assertValidXrpcOutput(this, def as LexXrpcProcedure | LexXrpcQuery, value)\n }\n}\n\nfunction* iterDefs(doc: LexiconDoc): Generator<[string, LexUserType]> {\n for (const defId in doc.defs) {\n yield [`lex:${doc.id}#${defId}`, doc.defs[defId]]\n if (defId === 'main') {\n yield [`lex:${doc.id}`, doc.defs[defId]]\n }\n }\n}\n\n// WARNING\n// this method mutates objects\n// -prf\nfunction resolveRefUris(obj: any, baseUri: string): any {\n for (const k in obj) {\n if (obj.type === 'ref') {\n obj.ref = toLexUri(obj.ref, baseUri)\n } else if (obj.type === 'union') {\n obj.refs = obj.refs.map((ref) => toLexUri(ref, baseUri))\n } else if (Array.isArray(obj[k])) {\n obj[k] = obj[k].map((item: any) => {\n if (typeof item === 'string') {\n return item.startsWith('#') ? toLexUri(item, baseUri) : item\n } else if (item && typeof item === 'object') {\n return resolveRefUris(item, baseUri)\n }\n return item\n })\n } else if (obj[k] && typeof obj[k] === 'object') {\n obj[k] = resolveRefUris(obj[k], baseUri)\n }\n }\n return obj\n}\n", "import { LexXrpcProcedure, LexXrpcQuery } from '@atproto/lexicon'\nimport {\n CallOptions,\n Headers,\n QueryParams,\n ResponseType,\n XRPCError,\n} from './types'\n\nexport function getMethodSchemaHTTPMethod(\n schema: LexXrpcProcedure | LexXrpcQuery,\n) {\n if (schema.type === 'procedure') {\n return 'post'\n }\n return 'get'\n}\n\nexport function constructMethodCallUri(\n nsid: string,\n schema: LexXrpcProcedure | LexXrpcQuery,\n serviceUri: URL,\n params?: QueryParams,\n): string {\n const uri = new URL(serviceUri)\n uri.pathname = `/xrpc/${nsid}`\n\n // given parameters\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n const paramSchema = schema.parameters?.properties?.[key]\n if (!paramSchema) {\n throw new Error(`Invalid query parameter: ${key}`)\n }\n if (value !== undefined) {\n uri.searchParams.set(key, encodeQueryParam(paramSchema.type, value))\n }\n }\n }\n\n return uri.toString()\n}\n\nexport function encodeQueryParam(\n type: 'string' | 'number' | 'integer' | 'boolean' | 'datetime' | 'unknown',\n value: any,\n): string {\n if (type === 'string' || type === 'unknown') {\n return String(value)\n }\n if (type === 'number') {\n return String(Number(value))\n } else if (type === 'integer') {\n return String(Number(value) | 0)\n } else if (type === 'boolean') {\n return value ? 'true' : 'false'\n } else if (type === 'datetime') {\n if (value instanceof Date) {\n return value.toISOString()\n }\n return String(value)\n }\n throw new Error(`Unsupported query param type: ${type}`)\n}\n\nexport function constructMethodCallHeaders(\n schema: LexXrpcProcedure | LexXrpcQuery,\n data?: any,\n opts?: CallOptions,\n): Headers {\n const headers: Headers = opts?.headers || {}\n if (schema.type === 'procedure') {\n if (opts?.encoding) {\n headers['Content-Type'] = opts.encoding\n }\n if (data && typeof data === 'object') {\n if (!headers['Content-Type']) {\n headers['Content-Type'] = 'application/json'\n }\n }\n }\n return headers\n}\n\nexport function encodeMethodCallBody(\n headers: Headers,\n data?: any,\n): ArrayBuffer | undefined {\n if (!headers['Content-Type'] || typeof data === 'undefined') {\n return undefined\n }\n if (data instanceof ArrayBuffer) {\n return data\n }\n if (headers['Content-Type'].startsWith('text/')) {\n return new TextEncoder().encode(data.toString())\n }\n if (headers['Content-Type'].startsWith('application/json')) {\n return new TextEncoder().encode(JSON.stringify(data))\n }\n return data\n}\n\nexport function httpResponseCodeToEnum(status: number): ResponseType {\n let resCode: ResponseType\n if (status in ResponseType) {\n resCode = status\n } else if (status >= 100 && status < 200) {\n resCode = ResponseType.XRPCNotSupported\n } else if (status >= 200 && status < 300) {\n resCode = ResponseType.Success\n } else if (status >= 300 && status < 400) {\n resCode = ResponseType.XRPCNotSupported\n } else if (status >= 400 && status < 500) {\n resCode = ResponseType.InvalidRequest\n } else {\n resCode = ResponseType.InternalServerError\n }\n return resCode\n}\n\nexport function httpResponseBodyParse(\n mimeType: string | null,\n data: ArrayBuffer | undefined,\n): any {\n if (mimeType) {\n if (mimeType.includes('application/json') && data?.byteLength) {\n try {\n const str = new TextDecoder().decode(data)\n return JSON.parse(str)\n } catch (e) {\n throw new XRPCError(\n ResponseType.InvalidResponse,\n `Failed to parse response body: ${String(e)}`,\n )\n }\n }\n if (mimeType.startsWith('text/') && data?.byteLength) {\n try {\n return new TextDecoder().decode(data)\n } catch (e) {\n throw new XRPCError(\n ResponseType.InvalidResponse,\n `Failed to parse response body: ${String(e)}`,\n )\n }\n }\n }\n return data\n}\n", "import { Lexicons } from '@atproto/lexicon'\nimport {\n getMethodSchemaHTTPMethod,\n constructMethodCallUri,\n constructMethodCallHeaders,\n encodeMethodCallBody,\n httpResponseCodeToEnum,\n httpResponseBodyParse,\n} from './util'\nimport {\n FetchHandler,\n FetchHandlerResponse,\n Headers,\n CallOptions,\n QueryParams,\n ResponseType,\n errorResponseBody,\n ErrorResponseBody,\n XRPCResponse,\n XRPCError,\n} from './types'\n\nexport class Client {\n fetch: FetchHandler = defaultFetchHandler\n lex = new Lexicons()\n\n // method calls\n //\n\n async call(\n serviceUri: string | URL,\n methodNsid: string,\n params?: QueryParams,\n data?: unknown,\n opts?: CallOptions,\n ) {\n return this.service(serviceUri).call(methodNsid, params, data, opts)\n }\n\n service(serviceUri: string | URL) {\n return new ServiceClient(this, serviceUri)\n }\n\n // schemas\n // =\n\n addLexicon(doc: unknown) {\n this.lex.add(doc)\n }\n\n addLexicons(docs: unknown[]) {\n for (const doc of docs) {\n this.addLexicon(doc)\n }\n }\n\n removeLexicon(uri: string) {\n this.lex.remove(uri)\n }\n}\n\nexport class ServiceClient {\n baseClient: Client\n uri: URL\n headers: Record<string, string> = {}\n\n constructor(baseClient: Client, serviceUri: string | URL) {\n this.baseClient = baseClient\n this.uri = typeof serviceUri === 'string' ? new URL(serviceUri) : serviceUri\n }\n\n setHeader(key: string, value: string): void {\n this.headers[key] = value\n }\n\n unsetHeader(key: string): void {\n delete this.headers[key]\n }\n\n async call(\n methodNsid: string,\n params?: QueryParams,\n data?: unknown,\n opts?: CallOptions,\n ) {\n const def = this.baseClient.lex.getDefOrThrow(methodNsid)\n if (!def || (def.type !== 'query' && def.type !== 'procedure')) {\n throw new Error(\n `Invalid lexicon: ${methodNsid}. Must be a query or procedure.`,\n )\n }\n\n const httpMethod = getMethodSchemaHTTPMethod(def)\n const httpUri = constructMethodCallUri(methodNsid, def, this.uri, params)\n const httpHeaders = constructMethodCallHeaders(def, data, {\n headers: {\n ...this.headers,\n ...opts?.headers,\n },\n encoding: opts?.encoding,\n })\n\n const res = await this.baseClient.fetch(\n httpUri,\n httpMethod,\n httpHeaders,\n data,\n )\n\n const resCode = httpResponseCodeToEnum(res.status)\n if (resCode === ResponseType.Success) {\n return new XRPCResponse(res.body, res.headers)\n } else {\n if (res.body && isErrorResponseBody(res.body)) {\n throw new XRPCError(resCode, res.body.error, res.body.message)\n } else {\n throw new XRPCError(resCode)\n }\n }\n }\n}\n\nasync function defaultFetchHandler(\n httpUri: string,\n httpMethod: string,\n httpHeaders: Headers,\n httpReqBody: unknown,\n): Promise<FetchHandlerResponse> {\n try {\n const res = await fetch(httpUri, {\n method: httpMethod,\n headers: httpHeaders,\n body: encodeMethodCallBody(httpHeaders, httpReqBody),\n })\n const resBody = await res.arrayBuffer()\n return {\n status: res.status,\n headers: Object.fromEntries(res.headers.entries()),\n body: httpResponseBodyParse(res.headers.get('content-type'), resBody),\n }\n } catch (e) {\n throw new XRPCError(ResponseType.Unknown, String(e))\n }\n}\n\nfunction isErrorResponseBody(v: unknown): v is ErrorResponseBody {\n return errorResponseBody.safeParse(v).success\n}\n", "export * from './types'\nexport * from './client'\n\nimport { Client } from './client'\nconst defaultInst = new Client()\nexport default defaultInst\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { LexiconDoc, Lexicons } from '@atproto/lexicon'\n\nexport const schemaDict = {\n ComAtprotoAccountCreate: {\n lexicon: 1,\n id: 'com.atproto.account.create',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create an account.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['handle', 'email', 'password'],\n properties: {\n email: {\n type: 'string',\n },\n handle: {\n type: 'string',\n },\n inviteCode: {\n type: 'string',\n },\n password: {\n type: 'string',\n },\n recoveryKey: {\n type: 'string',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['accessJwt', 'refreshJwt', 'handle', 'did'],\n properties: {\n accessJwt: {\n type: 'string',\n },\n refreshJwt: {\n type: 'string',\n },\n handle: {\n type: 'string',\n },\n did: {\n type: 'string',\n },\n },\n },\n },\n errors: [\n {\n name: 'InvalidHandle',\n },\n {\n name: 'InvalidPassword',\n },\n {\n name: 'InvalidInviteCode',\n },\n {\n name: 'HandleNotAvailable',\n },\n ],\n },\n },\n },\n ComAtprotoAccountCreateInviteCode: {\n lexicon: 1,\n id: 'com.atproto.account.createInviteCode',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create an invite code.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['useCount'],\n properties: {\n useCount: {\n type: 'integer',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['code'],\n properties: {\n code: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoAccountDelete: {\n lexicon: 1,\n id: 'com.atproto.account.delete',\n defs: {\n main: {\n type: 'procedure',\n description: 'Delete an account.',\n },\n },\n },\n ComAtprotoAccountGet: {\n lexicon: 1,\n id: 'com.atproto.account.get',\n defs: {\n main: {\n type: 'query',\n description: 'Get information about an account.',\n },\n },\n },\n ComAtprotoAccountRequestPasswordReset: {\n lexicon: 1,\n id: 'com.atproto.account.requestPasswordReset',\n defs: {\n main: {\n type: 'procedure',\n description: 'Initiate a user account password reset via email.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['email'],\n properties: {\n email: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoAccountResetPassword: {\n lexicon: 1,\n id: 'com.atproto.account.resetPassword',\n defs: {\n main: {\n type: 'procedure',\n description: 'Reset a user account password using a token.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['token', 'password'],\n properties: {\n token: {\n type: 'string',\n },\n password: {\n type: 'string',\n },\n },\n },\n },\n errors: [\n {\n name: 'ExpiredToken',\n },\n {\n name: 'InvalidToken',\n },\n ],\n },\n },\n },\n ComAtprotoBlobUpload: {\n lexicon: 1,\n id: 'com.atproto.blob.upload',\n defs: {\n main: {\n type: 'procedure',\n description:\n 'Upload a new blob to be added to repo in a later request.',\n input: {\n encoding: '*/*',\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['cid'],\n properties: {\n cid: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoHandleResolve: {\n lexicon: 1,\n id: 'com.atproto.handle.resolve',\n defs: {\n main: {\n type: 'query',\n description: 'Provides the DID of a repo.',\n parameters: {\n type: 'params',\n properties: {\n handle: {\n type: 'string',\n description:\n \"The handle to resolve. If not supplied, will resolve the host's own handle.\",\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoBatchWrite: {\n lexicon: 1,\n id: 'com.atproto.repo.batchWrite',\n defs: {\n main: {\n type: 'procedure',\n description: 'Apply a batch transaction of creates, puts, and deletes.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did', 'writes'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n validate: {\n type: 'boolean',\n default: true,\n description: 'Validate the records?',\n },\n writes: {\n type: 'array',\n items: {\n type: 'union',\n refs: [\n 'lex:com.atproto.repo.batchWrite#create',\n 'lex:com.atproto.repo.batchWrite#update',\n 'lex:com.atproto.repo.batchWrite#delete',\n ],\n closed: true,\n },\n },\n },\n },\n },\n },\n create: {\n type: 'object',\n required: ['action', 'collection', 'value'],\n properties: {\n action: {\n type: 'string',\n const: 'create',\n },\n collection: {\n type: 'string',\n },\n rkey: {\n type: 'string',\n },\n value: {\n type: 'unknown',\n },\n },\n },\n update: {\n type: 'object',\n required: ['action', 'collection', 'rkey', 'value'],\n properties: {\n action: {\n type: 'string',\n const: 'update',\n },\n collection: {\n type: 'string',\n },\n rkey: {\n type: 'string',\n },\n value: {\n type: 'unknown',\n },\n },\n },\n delete: {\n type: 'object',\n required: ['action', 'collection', 'rkey'],\n properties: {\n action: {\n type: 'string',\n const: 'delete',\n },\n collection: {\n type: 'string',\n },\n rkey: {\n type: 'string',\n },\n },\n },\n },\n },\n ComAtprotoRepoCreateRecord: {\n lexicon: 1,\n id: 'com.atproto.repo.createRecord',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create a new record.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did', 'collection', 'record'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n collection: {\n type: 'string',\n description: 'The NSID of the record collection.',\n },\n validate: {\n type: 'boolean',\n default: true,\n description: 'Validate the record?',\n },\n record: {\n type: 'unknown',\n description: 'The record to create.',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'cid'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoDeleteRecord: {\n lexicon: 1,\n id: 'com.atproto.repo.deleteRecord',\n defs: {\n main: {\n type: 'procedure',\n description: 'Delete a record.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did', 'collection', 'rkey'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n collection: {\n type: 'string',\n description: 'The NSID of the record collection.',\n },\n rkey: {\n type: 'string',\n description: 'The key of the record.',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoDescribe: {\n lexicon: 1,\n id: 'com.atproto.repo.describe',\n defs: {\n main: {\n type: 'query',\n description:\n 'Get information about the repo, including the list of collections.',\n parameters: {\n type: 'params',\n required: ['user'],\n properties: {\n user: {\n type: 'string',\n description: 'The handle or DID of the repo.',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: [\n 'handle',\n 'did',\n 'didDoc',\n 'collections',\n 'handleIsCorrect',\n ],\n properties: {\n handle: {\n type: 'string',\n },\n did: {\n type: 'string',\n },\n didDoc: {\n type: 'unknown',\n },\n collections: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n handleIsCorrect: {\n type: 'boolean',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoGetRecord: {\n lexicon: 1,\n id: 'com.atproto.repo.getRecord',\n defs: {\n main: {\n type: 'query',\n description: 'Fetch a record.',\n parameters: {\n type: 'params',\n required: ['user', 'collection', 'rkey'],\n properties: {\n user: {\n type: 'string',\n description: 'The handle or DID of the repo.',\n },\n collection: {\n type: 'string',\n description: 'The NSID of the collection.',\n },\n rkey: {\n type: 'string',\n description: 'The key of the record.',\n },\n cid: {\n type: 'string',\n description:\n 'The CID of the version of the record. If not specified, then return the most recent version.',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'value'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n value: {\n type: 'unknown',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoListRecords: {\n lexicon: 1,\n id: 'com.atproto.repo.listRecords',\n defs: {\n main: {\n type: 'query',\n description: 'List a range of records in a collection.',\n parameters: {\n type: 'params',\n required: ['user', 'collection'],\n properties: {\n user: {\n type: 'string',\n description: 'The handle or DID of the repo.',\n },\n collection: {\n type: 'string',\n description: 'The NSID of the record type.',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n description: 'The number of records to return.',\n },\n before: {\n type: 'string',\n description: 'A TID to filter the range of records returned.',\n },\n after: {\n type: 'string',\n description: 'A TID to filter the range of records returned.',\n },\n reverse: {\n type: 'boolean',\n description: 'Reverse the order of the returned records?',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['records'],\n properties: {\n cursor: {\n type: 'string',\n },\n records: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.listRecords#record',\n },\n },\n },\n },\n },\n },\n record: {\n type: 'object',\n required: ['uri', 'cid', 'value'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n value: {\n type: 'unknown',\n },\n },\n },\n },\n },\n ComAtprotoRepoPutRecord: {\n lexicon: 1,\n id: 'com.atproto.repo.putRecord',\n defs: {\n main: {\n type: 'procedure',\n description: 'Write a record.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did', 'collection', 'rkey', 'record'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n collection: {\n type: 'string',\n description: 'The NSID of the record type.',\n },\n rkey: {\n type: 'string',\n description: 'The TID of the record.',\n },\n validate: {\n type: 'boolean',\n default: true,\n description: 'Validate the record?',\n },\n record: {\n type: 'unknown',\n description: 'The record to create.',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'cid'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoStrongRef: {\n lexicon: 1,\n id: 'com.atproto.repo.strongRef',\n description: 'A URI with a content-hash fingerprint.',\n defs: {\n main: {\n type: 'object',\n required: ['uri', 'cid'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n },\n },\n },\n },\n ComAtprotoServerGetAccountsConfig: {\n lexicon: 1,\n id: 'com.atproto.server.getAccountsConfig',\n defs: {\n main: {\n type: 'query',\n description:\n \"Get a document describing the service's accounts configuration.\",\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['availableUserDomains'],\n properties: {\n inviteCodeRequired: {\n type: 'boolean',\n },\n availableUserDomains: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n links: {\n type: 'ref',\n ref: 'lex:com.atproto.server.getAccountsConfig#links',\n },\n },\n },\n },\n },\n links: {\n type: 'object',\n properties: {\n privacyPolicy: {\n type: 'string',\n },\n termsOfService: {\n type: 'string',\n },\n },\n },\n },\n },\n ComAtprotoSessionCreate: {\n lexicon: 1,\n id: 'com.atproto.session.create',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create an authentication session.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['handle', 'password'],\n properties: {\n handle: {\n type: 'string',\n },\n password: {\n type: 'string',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['accessJwt', 'refreshJwt', 'handle', 'did'],\n properties: {\n accessJwt: {\n type: 'string',\n },\n refreshJwt: {\n type: 'string',\n },\n handle: {\n type: 'string',\n },\n did: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoSessionDelete: {\n lexicon: 1,\n id: 'com.atproto.session.delete',\n defs: {\n main: {\n type: 'procedure',\n description: 'Delete the current session.',\n },\n },\n },\n ComAtprotoSessionGet: {\n lexicon: 1,\n id: 'com.atproto.session.get',\n defs: {\n main: {\n type: 'query',\n description: 'Get information about the current session.',\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['handle', 'did'],\n properties: {\n handle: {\n type: 'string',\n },\n did: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoSessionRefresh: {\n lexicon: 1,\n id: 'com.atproto.session.refresh',\n defs: {\n main: {\n type: 'procedure',\n description: 'Refresh an authentication session.',\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['accessJwt', 'refreshJwt', 'handle', 'did'],\n properties: {\n accessJwt: {\n type: 'string',\n },\n refreshJwt: {\n type: 'string',\n },\n handle: {\n type: 'string',\n },\n did: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoSyncGetRepo: {\n lexicon: 1,\n id: 'com.atproto.sync.getRepo',\n defs: {\n main: {\n type: 'query',\n description: 'Gets the repo state.',\n parameters: {\n type: 'params',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n from: {\n type: 'string',\n description: 'A past commit CID.',\n },\n },\n },\n output: {\n encoding: 'application/cbor',\n },\n },\n },\n },\n ComAtprotoSyncGetRoot: {\n lexicon: 1,\n id: 'com.atproto.sync.getRoot',\n defs: {\n main: {\n type: 'query',\n description: 'Gets the current root CID of a repo.',\n parameters: {\n type: 'params',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['root'],\n properties: {\n root: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoSyncUpdateRepo: {\n lexicon: 1,\n id: 'com.atproto.sync.updateRepo',\n defs: {\n main: {\n type: 'procedure',\n description: 'Writes commits to a repo.',\n parameters: {\n type: 'params',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n },\n },\n input: {\n encoding: 'application/cbor',\n },\n },\n },\n },\n AppBskyActorCreateScene: {\n lexicon: 1,\n id: 'app.bsky.actor.createScene',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create a scene.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['handle'],\n properties: {\n handle: {\n type: 'string',\n },\n recoveryKey: {\n type: 'string',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['handle', 'did', 'declaration'],\n properties: {\n handle: {\n type: 'string',\n },\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n },\n },\n },\n errors: [\n {\n name: 'InvalidHandle',\n },\n {\n name: 'HandleNotAvailable',\n },\n ],\n },\n },\n },\n AppBskyActorGetProfile: {\n lexicon: 1,\n id: 'app.bsky.actor.getProfile',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n required: ['actor'],\n properties: {\n actor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: [\n 'did',\n 'declaration',\n 'handle',\n 'creator',\n 'followersCount',\n 'followsCount',\n 'membersCount',\n 'postsCount',\n ],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n creator: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n description: {\n type: 'string',\n maxLength: 256,\n },\n avatar: {\n type: 'string',\n },\n banner: {\n type: 'string',\n },\n followersCount: {\n type: 'integer',\n },\n followsCount: {\n type: 'integer',\n },\n membersCount: {\n type: 'integer',\n },\n postsCount: {\n type: 'integer',\n },\n myState: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.getProfile#myState',\n },\n },\n },\n },\n },\n myState: {\n type: 'object',\n properties: {\n follow: {\n type: 'string',\n },\n member: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyActorGetSuggestions: {\n lexicon: 1,\n id: 'app.bsky.actor.getSuggestions',\n defs: {\n main: {\n type: 'query',\n description:\n 'Get a list of actors suggested for following. Used in discovery UIs.',\n parameters: {\n type: 'params',\n properties: {\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['actors'],\n properties: {\n cursor: {\n type: 'string',\n },\n actors: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.getSuggestions#actor',\n },\n },\n },\n },\n },\n },\n actor: {\n type: 'object',\n required: ['did', 'declaration', 'handle'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n description: {\n type: 'string',\n },\n avatar: {\n type: 'string',\n },\n indexedAt: {\n type: 'datetime',\n },\n myState: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.getSuggestions#myState',\n },\n },\n },\n myState: {\n type: 'object',\n properties: {\n follow: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyActorProfile: {\n lexicon: 1,\n id: 'app.bsky.actor.profile',\n defs: {\n main: {\n type: 'record',\n key: 'literal:self',\n record: {\n type: 'object',\n required: ['displayName'],\n properties: {\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n description: {\n type: 'string',\n maxLength: 256,\n },\n avatar: {\n type: 'image',\n accept: ['image/png', 'image/jpeg'],\n maxWidth: 500,\n maxHeight: 500,\n maxSize: 300000,\n },\n banner: {\n type: 'image',\n accept: ['image/png', 'image/jpeg'],\n maxWidth: 1500,\n maxHeight: 500,\n maxSize: 500000,\n },\n },\n },\n },\n },\n },\n AppBskyActorRef: {\n lexicon: 1,\n id: 'app.bsky.actor.ref',\n description: 'A reference to an actor in the network.',\n defs: {\n main: {\n type: 'object',\n required: ['did', 'declarationCid'],\n properties: {\n did: {\n type: 'string',\n },\n declarationCid: {\n type: 'string',\n },\n },\n },\n withInfo: {\n type: 'object',\n required: ['did', 'declaration', 'handle'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyActorSearch: {\n lexicon: 1,\n id: 'app.bsky.actor.search',\n defs: {\n main: {\n type: 'query',\n description: 'Find users matching search criteria.',\n parameters: {\n type: 'params',\n required: ['term'],\n properties: {\n term: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['users'],\n properties: {\n cursor: {\n type: 'string',\n },\n users: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.search#user',\n },\n },\n },\n },\n },\n },\n user: {\n type: 'object',\n required: ['did', 'declaration', 'handle'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n description: {\n type: 'string',\n },\n indexedAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyActorSearchTypeahead: {\n lexicon: 1,\n id: 'app.bsky.actor.searchTypeahead',\n defs: {\n main: {\n type: 'query',\n description: 'Find user suggestions for a search term.',\n parameters: {\n type: 'params',\n required: ['term'],\n properties: {\n term: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['users'],\n properties: {\n users: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.searchTypeahead#user',\n },\n },\n },\n },\n },\n },\n user: {\n type: 'object',\n required: ['did', 'declaration', 'handle'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyActorUpdateProfile: {\n lexicon: 1,\n id: 'app.bsky.actor.updateProfile',\n defs: {\n main: {\n type: 'procedure',\n description: 'Notify server that the user has seen notifications.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n properties: {\n did: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n description: {\n type: 'string',\n maxLength: 256,\n },\n avatar: {\n type: 'image',\n accept: ['image/png', 'image/jpeg'],\n maxWidth: 500,\n maxHeight: 500,\n maxSize: 100000,\n },\n banner: {\n type: 'image',\n accept: ['image/png', 'image/jpeg'],\n maxWidth: 1500,\n maxHeight: 500,\n maxSize: 500000,\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'cid', 'record'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n record: {\n type: 'unknown',\n },\n },\n },\n },\n errors: [\n {\n name: 'InvalidBlob',\n },\n {\n name: 'BlobTooLarge',\n },\n {\n name: 'InvalidMimeType',\n },\n {\n name: 'InvalidImageDimensions',\n },\n ],\n },\n },\n },\n AppBskyEmbedExternal: {\n lexicon: 1,\n id: 'app.bsky.embed.external',\n description:\n 'An representation of some externally linked content, embedded in another form of content',\n defs: {\n main: {\n type: 'object',\n required: ['external'],\n properties: {\n external: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.external#external',\n },\n },\n },\n external: {\n type: 'object',\n required: ['uri', 'title', 'description'],\n properties: {\n uri: {\n type: 'string',\n },\n title: {\n type: 'string',\n },\n description: {\n type: 'string',\n },\n thumb: {\n type: 'image',\n accept: ['image/*'],\n maxWidth: 250,\n maxHeight: 250,\n maxSize: 100000,\n },\n },\n },\n presented: {\n type: 'object',\n required: ['external'],\n properties: {\n external: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.external#presentedExternal',\n },\n },\n },\n presentedExternal: {\n type: 'object',\n required: ['uri', 'title', 'description'],\n properties: {\n uri: {\n type: 'string',\n },\n title: {\n type: 'string',\n },\n description: {\n type: 'string',\n },\n thumb: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyEmbedImages: {\n lexicon: 1,\n id: 'app.bsky.embed.images',\n description: 'A set of images embedded in some other form of content',\n defs: {\n main: {\n type: 'object',\n required: ['images'],\n properties: {\n images: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.images#image',\n },\n maxLength: 4,\n },\n },\n },\n image: {\n type: 'object',\n required: ['image', 'alt'],\n properties: {\n image: {\n type: 'image',\n accept: ['image/*'],\n maxWidth: 500,\n maxHeight: 500,\n maxSize: 300000,\n },\n alt: {\n type: 'string',\n },\n },\n },\n presented: {\n type: 'object',\n required: ['images'],\n properties: {\n images: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.images#presentedImage',\n },\n maxLength: 4,\n },\n },\n },\n presentedImage: {\n type: 'object',\n required: ['thumb', 'fullsize', 'alt'],\n properties: {\n thumb: {\n type: 'string',\n },\n fullsize: {\n type: 'string',\n },\n alt: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyFeedGetAuthorFeed: {\n lexicon: 1,\n id: 'app.bsky.feed.getAuthorFeed',\n defs: {\n main: {\n type: 'query',\n description: \"A view of a user's feed.\",\n parameters: {\n type: 'params',\n required: ['author'],\n properties: {\n author: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['feed'],\n properties: {\n cursor: {\n type: 'string',\n },\n feed: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.getAuthorFeed#feedItem',\n },\n },\n },\n },\n },\n },\n feedItem: {\n type: 'object',\n required: [\n 'uri',\n 'cid',\n 'author',\n 'record',\n 'replyCount',\n 'repostCount',\n 'upvoteCount',\n 'downvoteCount',\n 'indexedAt',\n ],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n author: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n trendedBy: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n repostedBy: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n record: {\n type: 'unknown',\n },\n embed: {\n type: 'union',\n refs: [\n 'lex:app.bsky.embed.images#presented',\n 'lex:app.bsky.embed.external#presented',\n ],\n },\n replyCount: {\n type: 'integer',\n },\n repostCount: {\n type: 'integer',\n },\n upvoteCount: {\n type: 'integer',\n },\n downvoteCount: {\n type: 'integer',\n },\n indexedAt: {\n type: 'datetime',\n },\n myState: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.getAuthorFeed#myState',\n },\n },\n },\n myState: {\n type: 'object',\n properties: {\n repost: {\n type: 'string',\n },\n upvote: {\n type: 'string',\n },\n downvote: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyFeedGetPostThread: {\n lexicon: 1,\n id: 'app.bsky.feed.getPostThread',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n },\n depth: {\n type: 'integer',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['thread'],\n properties: {\n thread: {\n type: 'union',\n refs: [\n 'lex:app.bsky.feed.getPostThread#post',\n 'lex:app.bsky.feed.getPostThread#notFoundPost',\n ],\n },\n },\n },\n },\n errors: [\n {\n name: 'NotFound',\n },\n ],\n },\n post: {\n type: 'object',\n required: [\n 'uri',\n 'cid',\n 'author',\n 'record',\n 'replyCount',\n 'repostCount',\n 'upvoteCount',\n 'downvoteCount',\n 'indexedAt',\n ],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n author: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n record: {\n type: 'unknown',\n },\n embed: {\n type: 'union',\n refs: [\n 'lex:app.bsky.embed.images#presented',\n 'lex:app.bsky.embed.external#presented',\n ],\n },\n parent: {\n type: 'union',\n refs: [\n 'lex:app.bsky.feed.getPostThread#post',\n 'lex:app.bsky.feed.getPostThread#notFoundPost',\n ],\n },\n replyCount: {\n type: 'integer',\n },\n replies: {\n type: 'array',\n items: {\n type: 'union',\n refs: [\n 'lex:app.bsky.feed.getPostThread#post',\n 'lex:app.bsky.feed.getPostThread#notFoundPost',\n ],\n },\n },\n repostCount: {\n type: 'integer',\n },\n upvoteCount: {\n type: 'integer',\n },\n downvoteCount: {\n type: 'integer',\n },\n indexedAt: {\n type: 'datetime',\n },\n myState: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.getPostThread#myState',\n },\n },\n },\n notFoundPost: {\n type: 'object',\n required: ['uri', 'notFound'],\n properties: {\n uri: {\n type: 'string',\n },\n notFound: {\n type: 'boolean',\n const: true,\n },\n },\n },\n myState: {\n type: 'object',\n properties: {\n repost: {\n type: 'string',\n },\n upvote: {\n type: 'string',\n },\n downvote: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyFeedGetRepostedBy: {\n lexicon: 1,\n id: 'app.bsky.feed.getRepostedBy',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'repostedBy'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n cursor: {\n type: 'string',\n },\n repostedBy: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.getRepostedBy#repostedBy',\n },\n },\n },\n },\n },\n },\n repostedBy: {\n type: 'object',\n required: ['did', 'declaration', 'handle', 'indexedAt'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n createdAt: {\n type: 'datetime',\n },\n indexedAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyFeedGetTimeline: {\n lexicon: 1,\n id: 'app.bsky.feed.getTimeline',\n defs: {\n main: {\n type: 'query',\n description: \"A view of the user's home timeline.\",\n parameters: {\n type: 'params',\n properties: {\n algorithm: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['feed'],\n properties: {\n cursor: {\n type: 'string',\n },\n feed: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.getTimeline#feedItem',\n },\n },\n },\n },\n },\n },\n feedItem: {\n type: 'object',\n required: [\n 'uri',\n 'cid',\n 'author',\n 'record',\n 'replyCount',\n 'repostCount',\n 'upvoteCount',\n 'downvoteCount',\n 'indexedAt',\n ],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n author: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n trendedBy: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n repostedBy: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n record: {\n type: 'unknown',\n },\n embed: {\n type: 'union',\n refs: [\n 'lex:app.bsky.embed.images#presented',\n 'lex:app.bsky.embed.external#presented',\n ],\n },\n replyCount: {\n type: 'integer',\n },\n repostCount: {\n type: 'integer',\n },\n upvoteCount: {\n type: 'integer',\n },\n downvoteCount: {\n type: 'integer',\n },\n indexedAt: {\n type: 'datetime',\n },\n myState: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.getTimeline#myState',\n },\n },\n },\n myState: {\n type: 'object',\n properties: {\n repost: {\n type: 'string',\n },\n upvote: {\n type: 'string',\n },\n downvote: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyFeedGetVotes: {\n lexicon: 1,\n id: 'app.bsky.feed.getVotes',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n direction: {\n type: 'string',\n enum: ['up', 'down'],\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'votes'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n cursor: {\n type: 'string',\n },\n votes: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.getVotes#vote',\n },\n },\n },\n },\n },\n },\n vote: {\n type: 'object',\n required: ['direction', 'indexedAt', 'createdAt', 'actor'],\n properties: {\n direction: {\n type: 'string',\n enum: ['up', 'down'],\n },\n indexedAt: {\n type: 'datetime',\n },\n createdAt: {\n type: 'datetime',\n },\n actor: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n },\n },\n },\n },\n AppBskyFeedPost: {\n lexicon: 1,\n id: 'app.bsky.feed.post',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['text', 'createdAt'],\n properties: {\n text: {\n type: 'string',\n maxLength: 256,\n },\n entities: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#entity',\n },\n },\n reply: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#replyRef',\n },\n embed: {\n type: 'union',\n refs: [\n 'lex:app.bsky.embed.images',\n 'lex:app.bsky.embed.external',\n ],\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n replyRef: {\n type: 'object',\n required: ['root', 'parent'],\n properties: {\n root: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n parent: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n },\n },\n entity: {\n type: 'object',\n required: ['index', 'type', 'value'],\n properties: {\n index: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#textSlice',\n },\n type: {\n type: 'string',\n description:\n \"Expected values are 'mention', 'hashtag', and 'link'.\",\n },\n value: {\n type: 'string',\n },\n },\n },\n textSlice: {\n type: 'object',\n required: ['start', 'end'],\n properties: {\n start: {\n type: 'integer',\n minimum: 0,\n },\n end: {\n type: 'integer',\n minimum: 0,\n },\n },\n },\n },\n },\n AppBskyFeedRepost: {\n lexicon: 1,\n id: 'app.bsky.feed.repost',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['subject', 'createdAt'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyFeedSetVote: {\n lexicon: 1,\n id: 'app.bsky.feed.setVote',\n defs: {\n main: {\n type: 'procedure',\n description: \"Upvote, downvote, or clear the user's vote for a post.\",\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['subject', 'direction'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n direction: {\n type: 'string',\n enum: ['up', 'down', 'none'],\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n properties: {\n upvote: {\n type: 'string',\n },\n downvote: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n AppBskyFeedTrend: {\n lexicon: 1,\n id: 'app.bsky.feed.trend',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['subject', 'createdAt'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyFeedVote: {\n lexicon: 1,\n id: 'app.bsky.feed.vote',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['subject', 'direction', 'createdAt'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n direction: {\n type: 'string',\n enum: ['up', 'down'],\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyGraphAssertCreator: {\n lexicon: 1,\n id: 'app.bsky.graph.assertCreator',\n defs: {\n main: {\n type: 'token',\n description:\n \"Assertion type: Creator. Defined for app.bsky.graph.assertions's assertion.\",\n },\n },\n },\n AppBskyGraphAssertMember: {\n lexicon: 1,\n id: 'app.bsky.graph.assertMember',\n defs: {\n main: {\n type: 'token',\n description:\n \"Assertion type: Member. Defined for app.bsky.graph.assertions's assertion.\",\n },\n },\n },\n AppBskyGraphAssertion: {\n lexicon: 1,\n id: 'app.bsky.graph.assertion',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['assertion', 'subject', 'createdAt'],\n properties: {\n assertion: {\n type: 'string',\n },\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref',\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyGraphConfirmation: {\n lexicon: 1,\n id: 'app.bsky.graph.confirmation',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['originator', 'assertion', 'createdAt'],\n properties: {\n originator: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref',\n },\n assertion: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyGraphFollow: {\n lexicon: 1,\n id: 'app.bsky.graph.follow',\n defs: {\n main: {\n type: 'record',\n description: 'A social follow.',\n key: 'tid',\n record: {\n type: 'object',\n required: ['subject', 'createdAt'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref',\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyGraphGetAssertions: {\n lexicon: 1,\n id: 'app.bsky.graph.getAssertions',\n defs: {\n main: {\n type: 'query',\n description: 'General-purpose query for assertions.',\n parameters: {\n type: 'params',\n properties: {\n author: {\n type: 'string',\n },\n subject: {\n type: 'string',\n },\n assertion: {\n type: 'string',\n },\n confirmed: {\n type: 'boolean',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['assertions'],\n properties: {\n cursor: {\n type: 'string',\n },\n assertions: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.getAssertions#assertion',\n },\n },\n },\n },\n },\n },\n assertion: {\n type: 'object',\n required: [\n 'uri',\n 'cid',\n 'assertion',\n 'author',\n 'subject',\n 'indexedAt',\n 'createdAt',\n ],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n assertion: {\n type: 'string',\n },\n confirmation: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.getAssertions#confirmation',\n },\n author: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n indexedAt: {\n type: 'datetime',\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n confirmation: {\n type: 'object',\n required: ['uri', 'cid', 'indexedAt', 'createdAt'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n indexedAt: {\n type: 'datetime',\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyGraphGetFollowers: {\n lexicon: 1,\n id: 'app.bsky.graph.getFollowers',\n defs: {\n main: {\n type: 'query',\n description: 'Who is following a user?',\n parameters: {\n type: 'params',\n required: ['user'],\n properties: {\n user: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['subject', 'followers'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n cursor: {\n type: 'string',\n },\n followers: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.getFollowers#follower',\n },\n },\n },\n },\n },\n },\n follower: {\n type: 'object',\n required: ['did', 'declaration', 'handle', 'indexedAt'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n createdAt: {\n type: 'datetime',\n },\n indexedAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyGraphGetFollows: {\n lexicon: 1,\n id: 'app.bsky.graph.getFollows',\n defs: {\n main: {\n type: 'query',\n description: 'Who is a user following?',\n parameters: {\n type: 'params',\n required: ['user'],\n properties: {\n user: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['subject', 'follows'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n cursor: {\n type: 'string',\n },\n follows: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.getFollows#follow',\n },\n },\n },\n },\n },\n },\n follow: {\n type: 'object',\n required: ['did', 'declaration', 'handle', 'indexedAt'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n createdAt: {\n type: 'datetime',\n },\n indexedAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyGraphGetMembers: {\n lexicon: 1,\n id: 'app.bsky.graph.getMembers',\n defs: {\n main: {\n type: 'query',\n description: 'Who is a member of the group?',\n parameters: {\n type: 'params',\n required: ['actor'],\n properties: {\n actor: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['subject', 'members'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n cursor: {\n type: 'string',\n },\n members: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.getMembers#member',\n },\n },\n },\n },\n },\n },\n member: {\n type: 'object',\n required: ['did', 'declaration', 'handle', 'indexedAt'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n createdAt: {\n type: 'datetime',\n },\n indexedAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyGraphGetMemberships: {\n lexicon: 1,\n id: 'app.bsky.graph.getMemberships',\n defs: {\n main: {\n type: 'query',\n description: 'Which groups is the actor a member of?',\n parameters: {\n type: 'params',\n required: ['actor'],\n properties: {\n actor: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['subject', 'memberships'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n cursor: {\n type: 'string',\n },\n memberships: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.getMemberships#membership',\n },\n },\n },\n },\n },\n },\n membership: {\n type: 'object',\n required: ['did', 'declaration', 'handle', 'indexedAt'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n createdAt: {\n type: 'datetime',\n },\n indexedAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyNotificationGetCount: {\n lexicon: 1,\n id: 'app.bsky.notification.getCount',\n defs: {\n main: {\n type: 'query',\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['count'],\n properties: {\n count: {\n type: 'integer',\n },\n },\n },\n },\n },\n },\n },\n AppBskyNotificationList: {\n lexicon: 1,\n id: 'app.bsky.notification.list',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n properties: {\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['notifications'],\n properties: {\n cursor: {\n type: 'string',\n },\n notifications: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.notification.list#notification',\n },\n },\n },\n },\n },\n },\n notification: {\n type: 'object',\n required: [\n 'uri',\n 'cid',\n 'author',\n 'reason',\n 'record',\n 'isRead',\n 'indexedAt',\n ],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n author: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n reason: {\n type: 'string',\n description:\n \"Expected values are 'vote', 'repost', 'trend', 'follow', 'invite', 'mention' and 'reply'.\",\n knownValues: [\n 'vote',\n 'repost',\n 'trend',\n 'follow',\n 'invite',\n 'mention',\n 'reply',\n ],\n },\n reasonSubject: {\n type: 'string',\n },\n record: {\n type: 'unknown',\n },\n isRead: {\n type: 'boolean',\n },\n indexedAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyNotificationUpdateSeen: {\n lexicon: 1,\n id: 'app.bsky.notification.updateSeen',\n defs: {\n main: {\n type: 'procedure',\n description: 'Notify server that the user has seen notifications.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['seenAt'],\n properties: {\n seenAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n },\n },\n AppBskySystemActorScene: {\n lexicon: 1,\n id: 'app.bsky.system.actorScene',\n defs: {\n main: {\n type: 'token',\n description:\n \"Actor type: Scene. Defined for app.bsky.system.declaration's actorType.\",\n },\n },\n },\n AppBskySystemActorUser: {\n lexicon: 1,\n id: 'app.bsky.system.actorUser',\n defs: {\n main: {\n type: 'token',\n description:\n \"Actor type: User. Defined for app.bsky.system.declaration's actorType.\",\n },\n },\n },\n AppBskySystemDeclRef: {\n lexicon: 1,\n id: 'app.bsky.system.declRef',\n defs: {\n main: {\n description: 'A reference to a app.bsky.system.declaration record.',\n type: 'object',\n required: ['cid', 'actorType'],\n properties: {\n cid: {\n type: 'string',\n },\n actorType: {\n type: 'string',\n knownValues: [\n 'app.bsky.system.actorUser',\n 'app.bsky.system.actorScene',\n ],\n },\n },\n },\n },\n },\n AppBskySystemDeclaration: {\n lexicon: 1,\n id: 'app.bsky.system.declaration',\n defs: {\n main: {\n description:\n 'Context for an account that is considered intrinsic to it and alters the fundamental understanding of an account of changed. A declaration should be treated as immutable.',\n type: 'record',\n key: 'literal:self',\n record: {\n type: 'object',\n required: ['actorType'],\n properties: {\n actorType: {\n type: 'string',\n knownValues: [\n 'app.bsky.system.actorUser',\n 'app.bsky.system.actorScene',\n ],\n },\n },\n },\n },\n },\n },\n}\nexport const schemas: LexiconDoc[] = Object.values(schemaDict) as LexiconDoc[]\nexport const lexicons: Lexicons = new Lexicons(schemas)\nexport const ids = {\n ComAtprotoAccountCreate: 'com.atproto.account.create',\n ComAtprotoAccountCreateInviteCode: 'com.atproto.account.createInviteCode',\n ComAtprotoAccountDelete: 'com.atproto.account.delete',\n ComAtprotoAccountGet: 'com.atproto.account.get',\n ComAtprotoAccountRequestPasswordReset:\n 'com.atproto.account.requestPasswordReset',\n ComAtprotoAccountResetPassword: 'com.atproto.account.resetPassword',\n ComAtprotoBlobUpload: 'com.atproto.blob.upload',\n ComAtprotoHandleResolve: 'com.atproto.handle.resolve',\n ComAtprotoRepoBatchWrite: 'com.atproto.repo.batchWrite',\n ComAtprotoRepoCreateRecord: 'com.atproto.repo.createRecord',\n ComAtprotoRepoDeleteRecord: 'com.atproto.repo.deleteRecord',\n ComAtprotoRepoDescribe: 'com.atproto.repo.describe',\n ComAtprotoRepoGetRecord: 'com.atproto.repo.getRecord',\n ComAtprotoRepoListRecords: 'com.atproto.repo.listRecords',\n ComAtprotoRepoPutRecord: 'com.atproto.repo.putRecord',\n ComAtprotoRepoStrongRef: 'com.atproto.repo.strongRef',\n ComAtprotoServerGetAccountsConfig: 'com.atproto.server.getAccountsConfig',\n ComAtprotoSessionCreate: 'com.atproto.session.create',\n ComAtprotoSessionDelete: 'com.atproto.session.delete',\n ComAtprotoSessionGet: 'com.atproto.session.get',\n ComAtprotoSessionRefresh: 'com.atproto.session.refresh',\n ComAtprotoSyncGetRepo: 'com.atproto.sync.getRepo',\n ComAtprotoSyncGetRoot: 'com.atproto.sync.getRoot',\n ComAtprotoSyncUpdateRepo: 'com.atproto.sync.updateRepo',\n AppBskyActorCreateScene: 'app.bsky.actor.createScene',\n AppBskyActorGetProfile: 'app.bsky.actor.getProfile',\n AppBskyActorGetSuggestions: 'app.bsky.actor.getSuggestions',\n AppBskyActorProfile: 'app.bsky.actor.profile',\n AppBskyActorRef: 'app.bsky.actor.ref',\n AppBskyActorSearch: 'app.bsky.actor.search',\n AppBskyActorSearchTypeahead: 'app.bsky.actor.searchTypeahead',\n AppBskyActorUpdateProfile: 'app.bsky.actor.updateProfile',\n AppBskyEmbedExternal: 'app.bsky.embed.external',\n AppBskyEmbedImages: 'app.bsky.embed.images',\n AppBskyFeedGetAuthorFeed: 'app.bsky.feed.getAuthorFeed',\n AppBskyFeedGetPostThread: 'app.bsky.feed.getPostThread',\n AppBskyFeedGetRepostedBy: 'app.bsky.feed.getRepostedBy',\n AppBskyFeedGetTimeline: 'app.bsky.feed.getTimeline',\n AppBskyFeedGetVotes: 'app.bsky.feed.getVotes',\n AppBskyFeedPost: 'app.bsky.feed.post',\n AppBskyFeedRepost: 'app.bsky.feed.repost',\n AppBskyFeedSetVote: 'app.bsky.feed.setVote',\n AppBskyFeedTrend: 'app.bsky.feed.trend',\n AppBskyFeedVote: 'app.bsky.feed.vote',\n AppBskyGraphAssertCreator: 'app.bsky.graph.assertCreator',\n AppBskyGraphAssertMember: 'app.bsky.graph.assertMember',\n AppBskyGraphAssertion: 'app.bsky.graph.assertion',\n AppBskyGraphConfirmation: 'app.bsky.graph.confirmation',\n AppBskyGraphFollow: 'app.bsky.graph.follow',\n AppBskyGraphGetAssertions: 'app.bsky.graph.getAssertions',\n AppBskyGraphGetFollowers: 'app.bsky.graph.getFollowers',\n AppBskyGraphGetFollows: 'app.bsky.graph.getFollows',\n AppBskyGraphGetMembers: 'app.bsky.graph.getMembers',\n AppBskyGraphGetMemberships: 'app.bsky.graph.getMemberships',\n AppBskyNotificationGetCount: 'app.bsky.notification.getCount',\n AppBskyNotificationList: 'app.bsky.notification.list',\n AppBskyNotificationUpdateSeen: 'app.bsky.notification.updateSeen',\n AppBskySystemActorScene: 'app.bsky.system.actorScene',\n AppBskySystemActorUser: 'app.bsky.system.actorUser',\n AppBskySystemDeclRef: 'app.bsky.system.declRef',\n AppBskySystemDeclaration: 'app.bsky.system.declaration',\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n email: string\n handle: string\n inviteCode?: string\n password: string\n recoveryKey?: string\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n accessJwt: string\n refreshJwt: string\n handle: string\n did: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class InvalidHandleError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidPasswordError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidInviteCodeError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class HandleNotAvailableError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'InvalidHandle') return new InvalidHandleError(e)\n if (e.error === 'InvalidPassword') return new InvalidPasswordError(e)\n if (e.error === 'InvalidInviteCode') return new InvalidInviteCodeError(e)\n if (e.error === 'HandleNotAvailable') return new HandleNotAvailableError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n useCount: number\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n code: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n email: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n token: string\n password: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport class ExpiredTokenError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidTokenError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'ExpiredToken') return new ExpiredTokenError(e)\n if (e.error === 'InvalidToken') return new InvalidTokenError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport type InputSchema = string | Uint8Array\n\nexport interface OutputSchema {\n cid: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: string\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {\n /** The handle to resolve. If not supplied, will resolve the host's own handle. */\n handle?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n did: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The DID of the repo. */\n did: string\n /** Validate the records? */\n validate?: boolean\n writes: (Create | Update | Delete)[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Create {\n action: 'create'\n collection: string\n rkey?: string\n value: {}\n [k: string]: unknown\n}\n\nexport interface Update {\n action: 'update'\n collection: string\n rkey: string\n value: {}\n [k: string]: unknown\n}\n\nexport interface Delete {\n action: 'delete'\n collection: string\n rkey: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The DID of the repo. */\n did: string\n /** The NSID of the record collection. */\n collection: string\n /** Validate the record? */\n validate?: boolean\n /** The record to create. */\n record: {}\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n uri: string\n cid: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The DID of the repo. */\n did: string\n /** The NSID of the record collection. */\n collection: string\n /** The key of the record. */\n rkey: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {\n /** The handle or DID of the repo. */\n user: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n handle: string\n did: string\n didDoc: {}\n collections: string[]\n handleIsCorrect: boolean\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {\n /** The handle or DID of the repo. */\n user: string\n /** The NSID of the collection. */\n collection: string\n /** The key of the record. */\n rkey: string\n /** The CID of the version of the record. If not specified, then return the most recent version. */\n cid?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n uri: string\n cid?: string\n value: {}\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {\n /** The handle or DID of the repo. */\n user: string\n /** The NSID of the record type. */\n collection: string\n /** The number of records to return. */\n limit?: number\n /** A TID to filter the range of records returned. */\n before?: string\n /** A TID to filter the range of records returned. */\n after?: string\n /** Reverse the order of the returned records? */\n reverse?: boolean\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n records: Record[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Record {\n uri: string\n cid: string\n value: {}\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The DID of the repo. */\n did: string\n /** The NSID of the record type. */\n collection: string\n /** The TID of the record. */\n rkey: string\n /** Validate the record? */\n validate?: boolean\n /** The record to create. */\n record: {}\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n uri: string\n cid: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n inviteCodeRequired?: boolean\n availableUserDomains: string[]\n links?: Links\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Links {\n privacyPolicy?: string\n termsOfService?: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n handle: string\n password: string\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n accessJwt: string\n refreshJwt: string\n handle: string\n did: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n handle: string\n did: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n accessJwt: string\n refreshJwt: string\n handle: string\n did: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n /** A past commit CID. */\n from?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: Uint8Array\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n root: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n}\n\nexport type InputSchema = string | Uint8Array\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/cbor'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n handle: string\n recoveryKey?: string\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n handle: string\n did: string\n declaration: AppBskySystemDeclRef.Main\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class InvalidHandleError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class HandleNotAvailableError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'InvalidHandle') return new InvalidHandleError(e)\n if (e.error === 'HandleNotAvailable') return new HandleNotAvailableError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n actor: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n creator: string\n displayName?: string\n description?: string\n avatar?: string\n banner?: string\n followersCount: number\n followsCount: number\n membersCount: number\n postsCount: number\n myState?: MyState\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface MyState {\n follow?: string\n member?: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n actors: Actor[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Actor {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n description?: string\n avatar?: string\n indexedAt?: string\n myState?: MyState\n [k: string]: unknown\n}\n\nexport interface MyState {\n follow?: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n term: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n users: User[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface User {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n description?: string\n indexedAt?: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n term: string\n limit?: number\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n users: User[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface User {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n did?: string\n displayName?: string\n description?: string\n avatar?: { cid: string; mimeType: string; [k: string]: unknown }\n banner?: { cid: string; mimeType: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n uri: string\n cid: string\n record: {}\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class InvalidBlobError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class BlobTooLargeError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidMimeTypeError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidImageDimensionsError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'InvalidBlob') return new InvalidBlobError(e)\n if (e.error === 'BlobTooLarge') return new BlobTooLargeError(e)\n if (e.error === 'InvalidMimeType') return new InvalidMimeTypeError(e)\n if (e.error === 'InvalidImageDimensions')\n return new InvalidImageDimensionsError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskyActorRef from '../actor/ref'\nimport * as AppBskyEmbedImages from '../embed/images'\nimport * as AppBskyEmbedExternal from '../embed/external'\n\nexport interface QueryParams {\n author: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n feed: FeedItem[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface FeedItem {\n uri: string\n cid: string\n author: AppBskyActorRef.WithInfo\n trendedBy?: AppBskyActorRef.WithInfo\n repostedBy?: AppBskyActorRef.WithInfo\n record: {}\n embed?:\n | AppBskyEmbedImages.Presented\n | AppBskyEmbedExternal.Presented\n | { $type: string; [k: string]: unknown }\n replyCount: number\n repostCount: number\n upvoteCount: number\n downvoteCount: number\n indexedAt: string\n myState?: MyState\n [k: string]: unknown\n}\n\nexport interface MyState {\n repost?: string\n upvote?: string\n downvote?: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskyActorRef from '../actor/ref'\nimport * as AppBskyEmbedImages from '../embed/images'\nimport * as AppBskyEmbedExternal from '../embed/external'\n\nexport interface QueryParams {\n uri: string\n depth?: number\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n thread: Post | NotFoundPost | { $type: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class NotFoundError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'NotFound') return new NotFoundError(e)\n }\n return e\n}\n\nexport interface Post {\n uri: string\n cid: string\n author: AppBskyActorRef.WithInfo\n record: {}\n embed?:\n | AppBskyEmbedImages.Presented\n | AppBskyEmbedExternal.Presented\n | { $type: string; [k: string]: unknown }\n parent?: Post | NotFoundPost | { $type: string; [k: string]: unknown }\n replyCount: number\n replies?: (Post | NotFoundPost | { $type: string; [k: string]: unknown })[]\n repostCount: number\n upvoteCount: number\n downvoteCount: number\n indexedAt: string\n myState?: MyState\n [k: string]: unknown\n}\n\nexport interface NotFoundPost {\n uri: string\n notFound: true\n [k: string]: unknown\n}\n\nexport interface MyState {\n repost?: string\n upvote?: string\n downvote?: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n uri: string\n cid?: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n uri: string\n cid?: string\n cursor?: string\n repostedBy: RepostedBy[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface RepostedBy {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n createdAt?: string\n indexedAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskyActorRef from '../actor/ref'\nimport * as AppBskyEmbedImages from '../embed/images'\nimport * as AppBskyEmbedExternal from '../embed/external'\n\nexport interface QueryParams {\n algorithm?: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n feed: FeedItem[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface FeedItem {\n uri: string\n cid: string\n author: AppBskyActorRef.WithInfo\n trendedBy?: AppBskyActorRef.WithInfo\n repostedBy?: AppBskyActorRef.WithInfo\n record: {}\n embed?:\n | AppBskyEmbedImages.Presented\n | AppBskyEmbedExternal.Presented\n | { $type: string; [k: string]: unknown }\n replyCount: number\n repostCount: number\n upvoteCount: number\n downvoteCount: number\n indexedAt: string\n myState?: MyState\n [k: string]: unknown\n}\n\nexport interface MyState {\n repost?: string\n upvote?: string\n downvote?: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface QueryParams {\n uri: string\n cid?: string\n direction?: 'up' | 'down'\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n uri: string\n cid?: string\n cursor?: string\n votes: Vote[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Vote {\n direction: 'up' | 'down'\n indexedAt: string\n createdAt: string\n actor: AppBskyActorRef.WithInfo\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n subject: ComAtprotoRepoStrongRef.Main\n direction: 'up' | 'down' | 'none'\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n upvote?: string\n downvote?: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface QueryParams {\n author?: string\n subject?: string\n assertion?: string\n confirmed?: boolean\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n assertions: Assertion[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Assertion {\n uri: string\n cid: string\n assertion: string\n confirmation?: Confirmation\n author: AppBskyActorRef.WithInfo\n subject: AppBskyActorRef.WithInfo\n indexedAt: string\n createdAt: string\n [k: string]: unknown\n}\n\nexport interface Confirmation {\n uri: string\n cid: string\n indexedAt: string\n createdAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskyActorRef from '../actor/ref'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n user: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n subject: AppBskyActorRef.WithInfo\n cursor?: string\n followers: Follower[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Follower {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n createdAt?: string\n indexedAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskyActorRef from '../actor/ref'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n user: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n subject: AppBskyActorRef.WithInfo\n cursor?: string\n follows: Follow[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Follow {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n createdAt?: string\n indexedAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskyActorRef from '../actor/ref'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n actor: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n subject: AppBskyActorRef.WithInfo\n cursor?: string\n members: Member[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Member {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n createdAt?: string\n indexedAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskyActorRef from '../actor/ref'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n actor: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n subject: AppBskyActorRef.WithInfo\n cursor?: string\n memberships: Membership[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Membership {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n createdAt?: string\n indexedAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n count: number\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface QueryParams {\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n notifications: Notification[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Notification {\n uri: string\n cid: string\n author: AppBskyActorRef.WithInfo\n /** Expected values are 'vote', 'repost', 'trend', 'follow', 'invite', 'mention' and 'reply'. */\n reason:\n | 'vote'\n | 'repost'\n | 'trend'\n | 'follow'\n | 'invite'\n | 'mention'\n | 'reply'\n | (string & {})\n reasonSubject?: string\n record: {}\n isRead: boolean\n indexedAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n seenAt: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nexport interface Main {\n uri: string\n cid: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nexport interface Record {\n displayName: string\n description?: string\n avatar?: { cid: string; mimeType: string; [k: string]: unknown }\n banner?: { cid: string; mimeType: string; [k: string]: unknown }\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface Main {\n did: string\n declarationCid: string\n [k: string]: unknown\n}\n\nexport interface WithInfo {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nexport interface Main {\n external: External\n [k: string]: unknown\n}\n\nexport interface External {\n uri: string\n title: string\n description: string\n thumb?: { cid: string; mimeType: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport interface Presented {\n external: PresentedExternal\n [k: string]: unknown\n}\n\nexport interface PresentedExternal {\n uri: string\n title: string\n description: string\n thumb?: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nexport interface Main {\n images: Image[]\n [k: string]: unknown\n}\n\nexport interface Image {\n image: { cid: string; mimeType: string; [k: string]: unknown }\n alt: string\n [k: string]: unknown\n}\n\nexport interface Presented {\n images: PresentedImage[]\n [k: string]: unknown\n}\n\nexport interface PresentedImage {\n thumb: string\n fullsize: string\n alt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport * as AppBskyEmbedImages from '../embed/images'\nimport * as AppBskyEmbedExternal from '../embed/external'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface Record {\n text: string\n entities?: Entity[]\n reply?: ReplyRef\n embed?:\n | AppBskyEmbedImages.Main\n | AppBskyEmbedExternal.Main\n | { $type: string; [k: string]: unknown }\n createdAt: string\n [k: string]: unknown\n}\n\nexport interface ReplyRef {\n root: ComAtprotoRepoStrongRef.Main\n parent: ComAtprotoRepoStrongRef.Main\n [k: string]: unknown\n}\n\nexport interface Entity {\n index: TextSlice\n /** Expected values are 'mention', 'hashtag', and 'link'. */\n type: string\n value: string\n [k: string]: unknown\n}\n\nexport interface TextSlice {\n start: number\n end: number\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface Record {\n subject: ComAtprotoRepoStrongRef.Main\n createdAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface Record {\n subject: ComAtprotoRepoStrongRef.Main\n createdAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface Record {\n subject: ComAtprotoRepoStrongRef.Main\n direction: 'up' | 'down'\n createdAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\n/** Assertion type: Creator. Defined for app.bsky.graph.assertions's assertion. */\nexport const MAIN = 'app.bsky.graph.assertCreator#main'\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\n/** Assertion type: Member. Defined for app.bsky.graph.assertions's assertion. */\nexport const MAIN = 'app.bsky.graph.assertMember#main'\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface Record {\n assertion: string\n subject: AppBskyActorRef.Main\n createdAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport * as AppBskyActorRef from '../actor/ref'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface Record {\n originator: AppBskyActorRef.Main\n assertion: ComAtprotoRepoStrongRef.Main\n createdAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface Record {\n subject: AppBskyActorRef.Main\n createdAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\n/** Actor type: Scene. Defined for app.bsky.system.declaration's actorType. */\nexport const MAIN = 'app.bsky.system.actorScene#main'\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\n/** Actor type: User. Defined for app.bsky.system.declaration's actorType. */\nexport const MAIN = 'app.bsky.system.actorUser#main'\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\n/** A reference to a app.bsky.system.declaration record. */\nexport interface Main {\n cid: string\n actorType:\n | 'app.bsky.system.actorUser'\n | 'app.bsky.system.actorScene'\n | (string & {})\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nexport interface Record {\n actorType:\n | 'app.bsky.system.actorUser'\n | 'app.bsky.system.actorScene'\n | (string & {})\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport {\n Client as XrpcClient,\n ServiceClient as XrpcServiceClient,\n} from '@atproto/xrpc'\nimport { schemas } from './lexicons'\nimport * as ComAtprotoAccountCreate from './types/com/atproto/account/create'\nimport * as ComAtprotoAccountCreateInviteCode from './types/com/atproto/account/createInviteCode'\nimport * as ComAtprotoAccountDelete from './types/com/atproto/account/delete'\nimport * as ComAtprotoAccountGet from './types/com/atproto/account/get'\nimport * as ComAtprotoAccountRequestPasswordReset from './types/com/atproto/account/requestPasswordReset'\nimport * as ComAtprotoAccountResetPassword from './types/com/atproto/account/resetPassword'\nimport * as ComAtprotoBlobUpload from './types/com/atproto/blob/upload'\nimport * as ComAtprotoHandleResolve from './types/com/atproto/handle/resolve'\nimport * as ComAtprotoRepoBatchWrite from './types/com/atproto/repo/batchWrite'\nimport * as ComAtprotoRepoCreateRecord from './types/com/atproto/repo/createRecord'\nimport * as ComAtprotoRepoDeleteRecord from './types/com/atproto/repo/deleteRecord'\nimport * as ComAtprotoRepoDescribe from './types/com/atproto/repo/describe'\nimport * as ComAtprotoRepoGetRecord from './types/com/atproto/repo/getRecord'\nimport * as ComAtprotoRepoListRecords from './types/com/atproto/repo/listRecords'\nimport * as ComAtprotoRepoPutRecord from './types/com/atproto/repo/putRecord'\nimport * as ComAtprotoRepoStrongRef from './types/com/atproto/repo/strongRef'\nimport * as ComAtprotoServerGetAccountsConfig from './types/com/atproto/server/getAccountsConfig'\nimport * as ComAtprotoSessionCreate from './types/com/atproto/session/create'\nimport * as ComAtprotoSessionDelete from './types/com/atproto/session/delete'\nimport * as ComAtprotoSessionGet from './types/com/atproto/session/get'\nimport * as ComAtprotoSessionRefresh from './types/com/atproto/session/refresh'\nimport * as ComAtprotoSyncGetRepo from './types/com/atproto/sync/getRepo'\nimport * as ComAtprotoSyncGetRoot from './types/com/atproto/sync/getRoot'\nimport * as ComAtprotoSyncUpdateRepo from './types/com/atproto/sync/updateRepo'\nimport * as AppBskyActorCreateScene from './types/app/bsky/actor/createScene'\nimport * as AppBskyActorGetProfile from './types/app/bsky/actor/getProfile'\nimport * as AppBskyActorGetSuggestions from './types/app/bsky/actor/getSuggestions'\nimport * as AppBskyActorProfile from './types/app/bsky/actor/profile'\nimport * as AppBskyActorRef from './types/app/bsky/actor/ref'\nimport * as AppBskyActorSearch from './types/app/bsky/actor/search'\nimport * as AppBskyActorSearchTypeahead from './types/app/bsky/actor/searchTypeahead'\nimport * as AppBskyActorUpdateProfile from './types/app/bsky/actor/updateProfile'\nimport * as AppBskyEmbedExternal from './types/app/bsky/embed/external'\nimport * as AppBskyEmbedImages from './types/app/bsky/embed/images'\nimport * as AppBskyFeedGetAuthorFeed from './types/app/bsky/feed/getAuthorFeed'\nimport * as AppBskyFeedGetPostThread from './types/app/bsky/feed/getPostThread'\nimport * as AppBskyFeedGetRepostedBy from './types/app/bsky/feed/getRepostedBy'\nimport * as AppBskyFeedGetTimeline from './types/app/bsky/feed/getTimeline'\nimport * as AppBskyFeedGetVotes from './types/app/bsky/feed/getVotes'\nimport * as AppBskyFeedPost from './types/app/bsky/feed/post'\nimport * as AppBskyFeedRepost from './types/app/bsky/feed/repost'\nimport * as AppBskyFeedSetVote from './types/app/bsky/feed/setVote'\nimport * as AppBskyFeedTrend from './types/app/bsky/feed/trend'\nimport * as AppBskyFeedVote from './types/app/bsky/feed/vote'\nimport * as AppBskyGraphAssertCreator from './types/app/bsky/graph/assertCreator'\nimport * as AppBskyGraphAssertMember from './types/app/bsky/graph/assertMember'\nimport * as AppBskyGraphAssertion from './types/app/bsky/graph/assertion'\nimport * as AppBskyGraphConfirmation from './types/app/bsky/graph/confirmation'\nimport * as AppBskyGraphFollow from './types/app/bsky/graph/follow'\nimport * as AppBskyGraphGetAssertions from './types/app/bsky/graph/getAssertions'\nimport * as AppBskyGraphGetFollowers from './types/app/bsky/graph/getFollowers'\nimport * as AppBskyGraphGetFollows from './types/app/bsky/graph/getFollows'\nimport * as AppBskyGraphGetMembers from './types/app/bsky/graph/getMembers'\nimport * as AppBskyGraphGetMemberships from './types/app/bsky/graph/getMemberships'\nimport * as AppBskyNotificationGetCount from './types/app/bsky/notification/getCount'\nimport * as AppBskyNotificationList from './types/app/bsky/notification/list'\nimport * as AppBskyNotificationUpdateSeen from './types/app/bsky/notification/updateSeen'\nimport * as AppBskySystemActorScene from './types/app/bsky/system/actorScene'\nimport * as AppBskySystemActorUser from './types/app/bsky/system/actorUser'\nimport * as AppBskySystemDeclRef from './types/app/bsky/system/declRef'\nimport * as AppBskySystemDeclaration from './types/app/bsky/system/declaration'\n\nexport * as ComAtprotoAccountCreate from './types/com/atproto/account/create'\nexport * as ComAtprotoAccountCreateInviteCode from './types/com/atproto/account/createInviteCode'\nexport * as ComAtprotoAccountDelete from './types/com/atproto/account/delete'\nexport * as ComAtprotoAccountGet from './types/com/atproto/account/get'\nexport * as ComAtprotoAccountRequestPasswordReset from './types/com/atproto/account/requestPasswordReset'\nexport * as ComAtprotoAccountResetPassword from './types/com/atproto/account/resetPassword'\nexport * as ComAtprotoBlobUpload from './types/com/atproto/blob/upload'\nexport * as ComAtprotoHandleResolve from './types/com/atproto/handle/resolve'\nexport * as ComAtprotoRepoBatchWrite from './types/com/atproto/repo/batchWrite'\nexport * as ComAtprotoRepoCreateRecord from './types/com/atproto/repo/createRecord'\nexport * as ComAtprotoRepoDeleteRecord from './types/com/atproto/repo/deleteRecord'\nexport * as ComAtprotoRepoDescribe from './types/com/atproto/repo/describe'\nexport * as ComAtprotoRepoGetRecord from './types/com/atproto/repo/getRecord'\nexport * as ComAtprotoRepoListRecords from './types/com/atproto/repo/listRecords'\nexport * as ComAtprotoRepoPutRecord from './types/com/atproto/repo/putRecord'\nexport * as ComAtprotoRepoStrongRef from './types/com/atproto/repo/strongRef'\nexport * as ComAtprotoServerGetAccountsConfig from './types/com/atproto/server/getAccountsConfig'\nexport * as ComAtprotoSessionCreate from './types/com/atproto/session/create'\nexport * as ComAtprotoSessionDelete from './types/com/atproto/session/delete'\nexport * as ComAtprotoSessionGet from './types/com/atproto/session/get'\nexport * as ComAtprotoSessionRefresh from './types/com/atproto/session/refresh'\nexport * as ComAtprotoSyncGetRepo from './types/com/atproto/sync/getRepo'\nexport * as ComAtprotoSyncGetRoot from './types/com/atproto/sync/getRoot'\nexport * as ComAtprotoSyncUpdateRepo from './types/com/atproto/sync/updateRepo'\nexport * as AppBskyActorCreateScene from './types/app/bsky/actor/createScene'\nexport * as AppBskyActorGetProfile from './types/app/bsky/actor/getProfile'\nexport * as AppBskyActorGetSuggestions from './types/app/bsky/actor/getSuggestions'\nexport * as AppBskyActorProfile from './types/app/bsky/actor/profile'\nexport * as AppBskyActorRef from './types/app/bsky/actor/ref'\nexport * as AppBskyActorSearch from './types/app/bsky/actor/search'\nexport * as AppBskyActorSearchTypeahead from './types/app/bsky/actor/searchTypeahead'\nexport * as AppBskyActorUpdateProfile from './types/app/bsky/actor/updateProfile'\nexport * as AppBskyEmbedExternal from './types/app/bsky/embed/external'\nexport * as AppBskyEmbedImages from './types/app/bsky/embed/images'\nexport * as AppBskyFeedGetAuthorFeed from './types/app/bsky/feed/getAuthorFeed'\nexport * as AppBskyFeedGetPostThread from './types/app/bsky/feed/getPostThread'\nexport * as AppBskyFeedGetRepostedBy from './types/app/bsky/feed/getRepostedBy'\nexport * as AppBskyFeedGetTimeline from './types/app/bsky/feed/getTimeline'\nexport * as AppBskyFeedGetVotes from './types/app/bsky/feed/getVotes'\nexport * as AppBskyFeedPost from './types/app/bsky/feed/post'\nexport * as AppBskyFeedRepost from './types/app/bsky/feed/repost'\nexport * as AppBskyFeedSetVote from './types/app/bsky/feed/setVote'\nexport * as AppBskyFeedTrend from './types/app/bsky/feed/trend'\nexport * as AppBskyFeedVote from './types/app/bsky/feed/vote'\nexport * as AppBskyGraphAssertCreator from './types/app/bsky/graph/assertCreator'\nexport * as AppBskyGraphAssertMember from './types/app/bsky/graph/assertMember'\nexport * as AppBskyGraphAssertion from './types/app/bsky/graph/assertion'\nexport * as AppBskyGraphConfirmation from './types/app/bsky/graph/confirmation'\nexport * as AppBskyGraphFollow from './types/app/bsky/graph/follow'\nexport * as AppBskyGraphGetAssertions from './types/app/bsky/graph/getAssertions'\nexport * as AppBskyGraphGetFollowers from './types/app/bsky/graph/getFollowers'\nexport * as AppBskyGraphGetFollows from './types/app/bsky/graph/getFollows'\nexport * as AppBskyGraphGetMembers from './types/app/bsky/graph/getMembers'\nexport * as AppBskyGraphGetMemberships from './types/app/bsky/graph/getMemberships'\nexport * as AppBskyNotificationGetCount from './types/app/bsky/notification/getCount'\nexport * as AppBskyNotificationList from './types/app/bsky/notification/list'\nexport * as AppBskyNotificationUpdateSeen from './types/app/bsky/notification/updateSeen'\nexport * as AppBskySystemActorScene from './types/app/bsky/system/actorScene'\nexport * as AppBskySystemActorUser from './types/app/bsky/system/actorUser'\nexport * as AppBskySystemDeclRef from './types/app/bsky/system/declRef'\nexport * as AppBskySystemDeclaration from './types/app/bsky/system/declaration'\n\nexport const APP_BSKY_GRAPH = {\n AssertCreator: 'app.bsky.graph.assertCreator',\n AssertMember: 'app.bsky.graph.assertMember',\n}\nexport const APP_BSKY_SYSTEM = {\n ActorScene: 'app.bsky.system.actorScene',\n ActorUser: 'app.bsky.system.actorUser',\n}\n\nexport class Client {\n xrpc: XrpcClient = new XrpcClient()\n\n constructor() {\n this.xrpc.addLexicons(schemas)\n }\n\n service(serviceUri: string | URL): ServiceClient {\n return new ServiceClient(this, this.xrpc.service(serviceUri))\n }\n}\n\nconst defaultInst = new Client()\nexport default defaultInst\n\nexport class ServiceClient {\n _baseClient: Client\n xrpc: XrpcServiceClient\n com: ComNS\n app: AppNS\n\n constructor(baseClient: Client, xrpcService: XrpcServiceClient) {\n this._baseClient = baseClient\n this.xrpc = xrpcService\n this.com = new ComNS(this)\n this.app = new AppNS(this)\n }\n\n setHeader(key: string, value: string): void {\n this.xrpc.setHeader(key, value)\n }\n}\n\nexport class ComNS {\n _service: ServiceClient\n atproto: AtprotoNS\n\n constructor(service: ServiceClient) {\n this._service = service\n this.atproto = new AtprotoNS(service)\n }\n}\n\nexport class AtprotoNS {\n _service: ServiceClient\n account: AccountNS\n blob: BlobNS\n handle: HandleNS\n repo: RepoNS\n server: ServerNS\n session: SessionNS\n sync: SyncNS\n\n constructor(service: ServiceClient) {\n this._service = service\n this.account = new AccountNS(service)\n this.blob = new BlobNS(service)\n this.handle = new HandleNS(service)\n this.repo = new RepoNS(service)\n this.server = new ServerNS(service)\n this.session = new SessionNS(service)\n this.sync = new SyncNS(service)\n }\n}\n\nexport class AccountNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n create(\n data?: ComAtprotoAccountCreate.InputSchema,\n opts?: ComAtprotoAccountCreate.CallOptions,\n ): Promise<ComAtprotoAccountCreate.Response> {\n return this._service.xrpc\n .call('com.atproto.account.create', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountCreate.toKnownErr(e)\n })\n }\n\n createInviteCode(\n data?: ComAtprotoAccountCreateInviteCode.InputSchema,\n opts?: ComAtprotoAccountCreateInviteCode.CallOptions,\n ): Promise<ComAtprotoAccountCreateInviteCode.Response> {\n return this._service.xrpc\n .call('com.atproto.account.createInviteCode', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountCreateInviteCode.toKnownErr(e)\n })\n }\n\n delete(\n data?: ComAtprotoAccountDelete.InputSchema,\n opts?: ComAtprotoAccountDelete.CallOptions,\n ): Promise<ComAtprotoAccountDelete.Response> {\n return this._service.xrpc\n .call('com.atproto.account.delete', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountDelete.toKnownErr(e)\n })\n }\n\n get(\n params?: ComAtprotoAccountGet.QueryParams,\n opts?: ComAtprotoAccountGet.CallOptions,\n ): Promise<ComAtprotoAccountGet.Response> {\n return this._service.xrpc\n .call('com.atproto.account.get', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoAccountGet.toKnownErr(e)\n })\n }\n\n requestPasswordReset(\n data?: ComAtprotoAccountRequestPasswordReset.InputSchema,\n opts?: ComAtprotoAccountRequestPasswordReset.CallOptions,\n ): Promise<ComAtprotoAccountRequestPasswordReset.Response> {\n return this._service.xrpc\n .call('com.atproto.account.requestPasswordReset', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountRequestPasswordReset.toKnownErr(e)\n })\n }\n\n resetPassword(\n data?: ComAtprotoAccountResetPassword.InputSchema,\n opts?: ComAtprotoAccountResetPassword.CallOptions,\n ): Promise<ComAtprotoAccountResetPassword.Response> {\n return this._service.xrpc\n .call('com.atproto.account.resetPassword', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountResetPassword.toKnownErr(e)\n })\n }\n}\n\nexport class BlobNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n upload(\n data?: ComAtprotoBlobUpload.InputSchema,\n opts?: ComAtprotoBlobUpload.CallOptions,\n ): Promise<ComAtprotoBlobUpload.Response> {\n return this._service.xrpc\n .call('com.atproto.blob.upload', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoBlobUpload.toKnownErr(e)\n })\n }\n}\n\nexport class HandleNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n resolve(\n params?: ComAtprotoHandleResolve.QueryParams,\n opts?: ComAtprotoHandleResolve.CallOptions,\n ): Promise<ComAtprotoHandleResolve.Response> {\n return this._service.xrpc\n .call('com.atproto.handle.resolve', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoHandleResolve.toKnownErr(e)\n })\n }\n}\n\nexport class RepoNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n batchWrite(\n data?: ComAtprotoRepoBatchWrite.InputSchema,\n opts?: ComAtprotoRepoBatchWrite.CallOptions,\n ): Promise<ComAtprotoRepoBatchWrite.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.batchWrite', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoBatchWrite.toKnownErr(e)\n })\n }\n\n createRecord(\n data?: ComAtprotoRepoCreateRecord.InputSchema,\n opts?: ComAtprotoRepoCreateRecord.CallOptions,\n ): Promise<ComAtprotoRepoCreateRecord.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.createRecord', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoCreateRecord.toKnownErr(e)\n })\n }\n\n deleteRecord(\n data?: ComAtprotoRepoDeleteRecord.InputSchema,\n opts?: ComAtprotoRepoDeleteRecord.CallOptions,\n ): Promise<ComAtprotoRepoDeleteRecord.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.deleteRecord', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoDeleteRecord.toKnownErr(e)\n })\n }\n\n describe(\n params?: ComAtprotoRepoDescribe.QueryParams,\n opts?: ComAtprotoRepoDescribe.CallOptions,\n ): Promise<ComAtprotoRepoDescribe.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.describe', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoRepoDescribe.toKnownErr(e)\n })\n }\n\n getRecord(\n params?: ComAtprotoRepoGetRecord.QueryParams,\n opts?: ComAtprotoRepoGetRecord.CallOptions,\n ): Promise<ComAtprotoRepoGetRecord.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.getRecord', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoRepoGetRecord.toKnownErr(e)\n })\n }\n\n listRecords(\n params?: ComAtprotoRepoListRecords.QueryParams,\n opts?: ComAtprotoRepoListRecords.CallOptions,\n ): Promise<ComAtprotoRepoListRecords.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.listRecords', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoRepoListRecords.toKnownErr(e)\n })\n }\n\n putRecord(\n data?: ComAtprotoRepoPutRecord.InputSchema,\n opts?: ComAtprotoRepoPutRecord.CallOptions,\n ): Promise<ComAtprotoRepoPutRecord.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.putRecord', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoPutRecord.toKnownErr(e)\n })\n }\n}\n\nexport class ServerNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n getAccountsConfig(\n params?: ComAtprotoServerGetAccountsConfig.QueryParams,\n opts?: ComAtprotoServerGetAccountsConfig.CallOptions,\n ): Promise<ComAtprotoServerGetAccountsConfig.Response> {\n return this._service.xrpc\n .call('com.atproto.server.getAccountsConfig', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoServerGetAccountsConfig.toKnownErr(e)\n })\n }\n}\n\nexport class SessionNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n create(\n data?: ComAtprotoSessionCreate.InputSchema,\n opts?: ComAtprotoSessionCreate.CallOptions,\n ): Promise<ComAtprotoSessionCreate.Response> {\n return this._service.xrpc\n .call('com.atproto.session.create', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoSessionCreate.toKnownErr(e)\n })\n }\n\n delete(\n data?: ComAtprotoSessionDelete.InputSchema,\n opts?: ComAtprotoSessionDelete.CallOptions,\n ): Promise<ComAtprotoSessionDelete.Response> {\n return this._service.xrpc\n .call('com.atproto.session.delete', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoSessionDelete.toKnownErr(e)\n })\n }\n\n get(\n params?: ComAtprotoSessionGet.QueryParams,\n opts?: ComAtprotoSessionGet.CallOptions,\n ): Promise<ComAtprotoSessionGet.Response> {\n return this._service.xrpc\n .call('com.atproto.session.get', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSessionGet.toKnownErr(e)\n })\n }\n\n refresh(\n data?: ComAtprotoSessionRefresh.InputSchema,\n opts?: ComAtprotoSessionRefresh.CallOptions,\n ): Promise<ComAtprotoSessionRefresh.Response> {\n return this._service.xrpc\n .call('com.atproto.session.refresh', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoSessionRefresh.toKnownErr(e)\n })\n }\n}\n\nexport class SyncNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n getRepo(\n params?: ComAtprotoSyncGetRepo.QueryParams,\n opts?: ComAtprotoSyncGetRepo.CallOptions,\n ): Promise<ComAtprotoSyncGetRepo.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.getRepo', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncGetRepo.toKnownErr(e)\n })\n }\n\n getRoot(\n params?: ComAtprotoSyncGetRoot.QueryParams,\n opts?: ComAtprotoSyncGetRoot.CallOptions,\n ): Promise<ComAtprotoSyncGetRoot.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.getRoot', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncGetRoot.toKnownErr(e)\n })\n }\n\n updateRepo(\n data?: ComAtprotoSyncUpdateRepo.InputSchema,\n opts?: ComAtprotoSyncUpdateRepo.CallOptions,\n ): Promise<ComAtprotoSyncUpdateRepo.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.updateRepo', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoSyncUpdateRepo.toKnownErr(e)\n })\n }\n}\n\nexport class AppNS {\n _service: ServiceClient\n bsky: BskyNS\n\n constructor(service: ServiceClient) {\n this._service = service\n this.bsky = new BskyNS(service)\n }\n}\n\nexport class BskyNS {\n _service: ServiceClient\n actor: ActorNS\n embed: EmbedNS\n feed: FeedNS\n graph: GraphNS\n notification: NotificationNS\n system: SystemNS\n\n constructor(service: ServiceClient) {\n this._service = service\n this.actor = new ActorNS(service)\n this.embed = new EmbedNS(service)\n this.feed = new FeedNS(service)\n this.graph = new GraphNS(service)\n this.notification = new NotificationNS(service)\n this.system = new SystemNS(service)\n }\n}\n\nexport class ActorNS {\n _service: ServiceClient\n profile: ProfileRecord\n\n constructor(service: ServiceClient) {\n this._service = service\n this.profile = new ProfileRecord(service)\n }\n\n createScene(\n data?: AppBskyActorCreateScene.InputSchema,\n opts?: AppBskyActorCreateScene.CallOptions,\n ): Promise<AppBskyActorCreateScene.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.createScene', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyActorCreateScene.toKnownErr(e)\n })\n }\n\n getProfile(\n params?: AppBskyActorGetProfile.QueryParams,\n opts?: AppBskyActorGetProfile.CallOptions,\n ): Promise<AppBskyActorGetProfile.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.getProfile', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorGetProfile.toKnownErr(e)\n })\n }\n\n getSuggestions(\n params?: AppBskyActorGetSuggestions.QueryParams,\n opts?: AppBskyActorGetSuggestions.CallOptions,\n ): Promise<AppBskyActorGetSuggestions.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.getSuggestions', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorGetSuggestions.toKnownErr(e)\n })\n }\n\n search(\n params?: AppBskyActorSearch.QueryParams,\n opts?: AppBskyActorSearch.CallOptions,\n ): Promise<AppBskyActorSearch.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.search', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorSearch.toKnownErr(e)\n })\n }\n\n searchTypeahead(\n params?: AppBskyActorSearchTypeahead.QueryParams,\n opts?: AppBskyActorSearchTypeahead.CallOptions,\n ): Promise<AppBskyActorSearchTypeahead.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.searchTypeahead', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorSearchTypeahead.toKnownErr(e)\n })\n }\n\n updateProfile(\n data?: AppBskyActorUpdateProfile.InputSchema,\n opts?: AppBskyActorUpdateProfile.CallOptions,\n ): Promise<AppBskyActorUpdateProfile.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.updateProfile', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyActorUpdateProfile.toKnownErr(e)\n })\n }\n}\n\nexport class ProfileRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyActorProfile.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.actor.profile',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyActorProfile.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.actor.profile',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyActorProfile.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.actor.profile'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.actor.profile', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.actor.profile', ...params },\n { headers },\n )\n }\n}\n\nexport class EmbedNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n}\n\nexport class FeedNS {\n _service: ServiceClient\n post: PostRecord\n repost: RepostRecord\n trend: TrendRecord\n vote: VoteRecord\n\n constructor(service: ServiceClient) {\n this._service = service\n this.post = new PostRecord(service)\n this.repost = new RepostRecord(service)\n this.trend = new TrendRecord(service)\n this.vote = new VoteRecord(service)\n }\n\n getAuthorFeed(\n params?: AppBskyFeedGetAuthorFeed.QueryParams,\n opts?: AppBskyFeedGetAuthorFeed.CallOptions,\n ): Promise<AppBskyFeedGetAuthorFeed.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getAuthorFeed', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetAuthorFeed.toKnownErr(e)\n })\n }\n\n getPostThread(\n params?: AppBskyFeedGetPostThread.QueryParams,\n opts?: AppBskyFeedGetPostThread.CallOptions,\n ): Promise<AppBskyFeedGetPostThread.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getPostThread', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetPostThread.toKnownErr(e)\n })\n }\n\n getRepostedBy(\n params?: AppBskyFeedGetRepostedBy.QueryParams,\n opts?: AppBskyFeedGetRepostedBy.CallOptions,\n ): Promise<AppBskyFeedGetRepostedBy.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getRepostedBy', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetRepostedBy.toKnownErr(e)\n })\n }\n\n getTimeline(\n params?: AppBskyFeedGetTimeline.QueryParams,\n opts?: AppBskyFeedGetTimeline.CallOptions,\n ): Promise<AppBskyFeedGetTimeline.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getTimeline', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetTimeline.toKnownErr(e)\n })\n }\n\n getVotes(\n params?: AppBskyFeedGetVotes.QueryParams,\n opts?: AppBskyFeedGetVotes.CallOptions,\n ): Promise<AppBskyFeedGetVotes.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getVotes', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetVotes.toKnownErr(e)\n })\n }\n\n setVote(\n data?: AppBskyFeedSetVote.InputSchema,\n opts?: AppBskyFeedSetVote.CallOptions,\n ): Promise<AppBskyFeedSetVote.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.setVote', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyFeedSetVote.toKnownErr(e)\n })\n }\n}\n\nexport class PostRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyFeedPost.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.feed.post',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyFeedPost.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.feed.post',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyFeedPost.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.feed.post'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.feed.post', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.feed.post', ...params },\n { headers },\n )\n }\n}\n\nexport class RepostRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyFeedRepost.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.feed.repost',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyFeedRepost.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.feed.repost',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyFeedRepost.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.feed.repost'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.feed.repost', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.feed.repost', ...params },\n { headers },\n )\n }\n}\n\nexport class TrendRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyFeedTrend.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.feed.trend',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyFeedTrend.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.feed.trend',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyFeedTrend.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.feed.trend'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.feed.trend', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.feed.trend', ...params },\n { headers },\n )\n }\n}\n\nexport class VoteRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyFeedVote.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.feed.vote',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyFeedVote.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.feed.vote',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyFeedVote.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.feed.vote'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.feed.vote', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.feed.vote', ...params },\n { headers },\n )\n }\n}\n\nexport class GraphNS {\n _service: ServiceClient\n assertion: AssertionRecord\n confirmation: ConfirmationRecord\n follow: FollowRecord\n\n constructor(service: ServiceClient) {\n this._service = service\n this.assertion = new AssertionRecord(service)\n this.confirmation = new ConfirmationRecord(service)\n this.follow = new FollowRecord(service)\n }\n\n getAssertions(\n params?: AppBskyGraphGetAssertions.QueryParams,\n opts?: AppBskyGraphGetAssertions.CallOptions,\n ): Promise<AppBskyGraphGetAssertions.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getAssertions', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetAssertions.toKnownErr(e)\n })\n }\n\n getFollowers(\n params?: AppBskyGraphGetFollowers.QueryParams,\n opts?: AppBskyGraphGetFollowers.CallOptions,\n ): Promise<AppBskyGraphGetFollowers.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getFollowers', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetFollowers.toKnownErr(e)\n })\n }\n\n getFollows(\n params?: AppBskyGraphGetFollows.QueryParams,\n opts?: AppBskyGraphGetFollows.CallOptions,\n ): Promise<AppBskyGraphGetFollows.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getFollows', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetFollows.toKnownErr(e)\n })\n }\n\n getMembers(\n params?: AppBskyGraphGetMembers.QueryParams,\n opts?: AppBskyGraphGetMembers.CallOptions,\n ): Promise<AppBskyGraphGetMembers.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getMembers', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetMembers.toKnownErr(e)\n })\n }\n\n getMemberships(\n params?: AppBskyGraphGetMemberships.QueryParams,\n opts?: AppBskyGraphGetMemberships.CallOptions,\n ): Promise<AppBskyGraphGetMemberships.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getMemberships', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetMemberships.toKnownErr(e)\n })\n }\n}\n\nexport class AssertionRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyGraphAssertion.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.graph.assertion',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{\n uri: string\n cid: string\n value: AppBskyGraphAssertion.Record\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.graph.assertion',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyGraphAssertion.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.graph.assertion'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.graph.assertion', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.graph.assertion', ...params },\n { headers },\n )\n }\n}\n\nexport class ConfirmationRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyGraphConfirmation.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.graph.confirmation',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{\n uri: string\n cid: string\n value: AppBskyGraphConfirmation.Record\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.graph.confirmation',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyGraphConfirmation.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.graph.confirmation'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.graph.confirmation', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.graph.confirmation', ...params },\n { headers },\n )\n }\n}\n\nexport class FollowRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyGraphFollow.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.graph.follow',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyGraphFollow.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.graph.follow',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyGraphFollow.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.graph.follow'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.graph.follow', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.graph.follow', ...params },\n { headers },\n )\n }\n}\n\nexport class NotificationNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n getCount(\n params?: AppBskyNotificationGetCount.QueryParams,\n opts?: AppBskyNotificationGetCount.CallOptions,\n ): Promise<AppBskyNotificationGetCount.Response> {\n return this._service.xrpc\n .call('app.bsky.notification.getCount', params, undefined, opts)\n .catch((e) => {\n throw AppBskyNotificationGetCount.toKnownErr(e)\n })\n }\n\n list(\n params?: AppBskyNotificationList.QueryParams,\n opts?: AppBskyNotificationList.CallOptions,\n ): Promise<AppBskyNotificationList.Response> {\n return this._service.xrpc\n .call('app.bsky.notification.list', params, undefined, opts)\n .catch((e) => {\n throw AppBskyNotificationList.toKnownErr(e)\n })\n }\n\n updateSeen(\n data?: AppBskyNotificationUpdateSeen.InputSchema,\n opts?: AppBskyNotificationUpdateSeen.CallOptions,\n ): Promise<AppBskyNotificationUpdateSeen.Response> {\n return this._service.xrpc\n .call('app.bsky.notification.updateSeen', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyNotificationUpdateSeen.toKnownErr(e)\n })\n }\n}\n\nexport class SystemNS {\n _service: ServiceClient\n declaration: DeclarationRecord\n\n constructor(service: ServiceClient) {\n this._service = service\n this.declaration = new DeclarationRecord(service)\n }\n}\n\nexport class DeclarationRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskySystemDeclaration.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.system.declaration',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{\n uri: string\n cid: string\n value: AppBskySystemDeclaration.Record\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.system.declaration',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskySystemDeclaration.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.system.declaration'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.system.declaration', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.system.declaration', ...params },\n { headers },\n )\n }\n}\n", "import {\n CallOptions,\n Client as XrpcClient,\n ServiceClient as XrpcServiceClient,\n QueryParams,\n ResponseType,\n XRPCError,\n XRPCResponse,\n} from '@atproto/xrpc'\nimport EventEmitter from 'events'\nimport TypedEmitter from 'typed-emitter'\nimport { Client, ServiceClient } from './client'\nimport * as CreateSession from './client/types/com/atproto/session/create'\nimport * as RefreshSession from './client/types/com/atproto/session/refresh'\nimport * as CreateAccount from './client/types/com/atproto/session/create'\n\nconst CREATE_SESSION = 'com.atproto.session.create'\nconst REFRESH_SESSION = 'com.atproto.session.refresh'\nconst DELETE_SESSION = 'com.atproto.session.delete'\nconst CREATE_ACCOUNT = 'com.atproto.account.create'\n\nexport class SessionClient extends Client {\n service(serviceUri: string | URL): SessionServiceClient {\n const xrpcService = new SessionXrpcServiceClient(this.xrpc, serviceUri)\n return new SessionServiceClient(this, xrpcService)\n }\n}\n\nconst defaultInst = new SessionClient()\nexport default defaultInst\n\nexport class SessionServiceClient extends ServiceClient {\n xrpc: SessionXrpcServiceClient\n sessionManager: SessionManager\n constructor(baseClient: Client, xrpcService: SessionXrpcServiceClient) {\n super(baseClient, xrpcService)\n this.sessionManager = this.xrpc.sessionManager\n }\n}\n\nexport class SessionXrpcServiceClient extends XrpcServiceClient {\n sessionManager = new SessionManager()\n refreshing?: Promise<XRPCResponse>\n\n constructor(baseClient: XrpcClient, serviceUri: string | URL) {\n super(baseClient, serviceUri)\n this.sessionManager.on('session', () => {\n // Maintain access token headers when session changes\n const accessHeaders = this.sessionManager.accessHeaders()\n if (accessHeaders) {\n this.setHeader('authorization', accessHeaders.authorization)\n } else {\n this.unsetHeader('authorization')\n }\n })\n }\n\n async call(\n methodNsid: string,\n params?: QueryParams,\n data?: unknown,\n opts?: CallOptions,\n ) {\n const original = (overrideOpts?: CallOptions) =>\n super.call(methodNsid, params, data, overrideOpts ?? opts)\n\n // If someone is setting credentials manually, pass through as an escape hatch\n if (opts?.headers?.authorization) {\n return await original()\n }\n\n // Manage concurrent refreshes on session refresh\n if (methodNsid === REFRESH_SESSION) {\n return await this.refresh(opts)\n }\n\n // Complete any pending session refresh and then continue onto the original request with fresh credentials\n await this.refreshing\n\n // Setup session on session or account creation\n if (methodNsid === CREATE_SESSION || methodNsid === CREATE_ACCOUNT) {\n const result = await original()\n const { accessJwt, refreshJwt } =\n result.data as CreateSession.OutputSchema & CreateAccount.OutputSchema\n this.sessionManager.set({ accessJwt, refreshJwt })\n return result\n }\n\n // Clear session on session deletion\n if (methodNsid === DELETE_SESSION) {\n const result = await original({\n ...opts,\n headers: {\n ...opts?.headers,\n ...this.sessionManager.refreshHeaders(),\n },\n })\n this.sessionManager.unset()\n return result\n }\n\n // For all other requests, if failed due to an expired token, refresh and retry with fresh credentials\n try {\n return await original()\n } catch (err) {\n if (\n err instanceof XRPCError &&\n err.status === ResponseType.InvalidRequest &&\n err.error === 'ExpiredToken' &&\n this.sessionManager.active()\n ) {\n await this.refresh(opts)\n return await original()\n }\n throw err\n }\n }\n\n // Ensures a single refresh request at a time, deduping concurrent requests.\n async refresh(opts?: CallOptions) {\n this.refreshing ??= this._refresh(opts)\n try {\n return await this.refreshing\n } finally {\n this.refreshing = undefined\n }\n }\n\n private async _refresh(opts?: CallOptions) {\n try {\n const result = await super.call(REFRESH_SESSION, undefined, undefined, {\n ...opts,\n headers: {\n ...opts?.headers,\n ...this.sessionManager.refreshHeaders(),\n },\n })\n const { accessJwt, refreshJwt } =\n result.data as RefreshSession.OutputSchema\n this.sessionManager.set({ accessJwt, refreshJwt })\n return result\n } catch (err) {\n if (\n err instanceof XRPCError &&\n err.status === ResponseType.InvalidRequest &&\n (err.error === 'ExpiredToken' || err.error === 'InvalidToken')\n ) {\n this.sessionManager.unset()\n }\n throw err\n }\n }\n}\n\nexport class SessionManager extends (EventEmitter as new () => TypedEmitter<SessionEvents>) {\n session?: Session\n get() {\n return this.session\n }\n set(session: Session) {\n this.session = session\n this.emit('session', session)\n }\n unset() {\n this.session = undefined\n this.emit('session', undefined)\n }\n active() {\n return !!this.session\n }\n accessHeaders() {\n return (\n this.session && {\n authorization: `Bearer ${this.session.accessJwt}`,\n }\n )\n }\n refreshHeaders() {\n return (\n this.session && {\n authorization: `Bearer ${this.session.refreshJwt}`,\n }\n )\n }\n}\n\nexport type Session = {\n refreshJwt: string\n accessJwt: string\n}\n\ntype SessionEvents = {\n session: (session?: Session) => void\n}\n"], 5 - "mappings": "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", 3 + "sources": ["../src/index.ts", "../../../node_modules/zod/lib/index.mjs", "../../xrpc/src/types.ts", "../../nsid/src/index.ts", "../../lexicon/src/types.ts", "../../lexicon/src/validators/primitives.ts", "../../lexicon/src/validators/blob.ts", "../../lexicon/src/validators/complex.ts", "../../lexicon/src/util.ts", "../../lexicon/src/validators/xrpc.ts", "../../lexicon/src/validation.ts", "../../lexicon/src/lexicons.ts", "../../xrpc/src/util.ts", "../../xrpc/src/client.ts", "../../xrpc/src/index.ts", "../src/client/lexicons.ts", "../src/client/types/com/atproto/account/create.ts", "../src/client/types/com/atproto/account/createInviteCode.ts", "../src/client/types/com/atproto/account/delete.ts", "../src/client/types/com/atproto/account/get.ts", "../src/client/types/com/atproto/account/requestPasswordReset.ts", "../src/client/types/com/atproto/account/resetPassword.ts", "../src/client/types/com/atproto/blob/upload.ts", "../src/client/types/com/atproto/handle/resolve.ts", "../src/client/types/com/atproto/repo/batchWrite.ts", "../src/client/types/com/atproto/repo/createRecord.ts", "../src/client/types/com/atproto/repo/deleteRecord.ts", "../src/client/types/com/atproto/repo/describe.ts", "../src/client/types/com/atproto/repo/getRecord.ts", "../src/client/types/com/atproto/repo/listRecords.ts", "../src/client/types/com/atproto/repo/putRecord.ts", "../src/client/types/com/atproto/server/getAccountsConfig.ts", "../src/client/types/com/atproto/session/create.ts", "../src/client/types/com/atproto/session/delete.ts", "../src/client/types/com/atproto/session/get.ts", "../src/client/types/com/atproto/session/refresh.ts", "../src/client/types/com/atproto/sync/getRepo.ts", "../src/client/types/com/atproto/sync/getRoot.ts", "../src/client/types/com/atproto/sync/updateRepo.ts", "../src/client/types/app/bsky/actor/createScene.ts", "../src/client/types/app/bsky/actor/getProfile.ts", "../src/client/types/app/bsky/actor/getSuggestions.ts", "../src/client/types/app/bsky/actor/search.ts", "../src/client/types/app/bsky/actor/searchTypeahead.ts", "../src/client/types/app/bsky/actor/updateProfile.ts", "../src/client/types/app/bsky/feed/getAuthorFeed.ts", "../src/client/types/app/bsky/feed/getPostThread.ts", "../src/client/types/app/bsky/feed/getRepostedBy.ts", "../src/client/types/app/bsky/feed/getTimeline.ts", "../src/client/types/app/bsky/feed/getVotes.ts", "../src/client/types/app/bsky/feed/setVote.ts", "../src/client/types/app/bsky/graph/getAssertions.ts", "../src/client/types/app/bsky/graph/getFollowers.ts", "../src/client/types/app/bsky/graph/getFollows.ts", "../src/client/types/app/bsky/graph/getMembers.ts", "../src/client/types/app/bsky/graph/getMemberships.ts", "../src/client/types/app/bsky/notification/getCount.ts", "../src/client/types/app/bsky/notification/list.ts", "../src/client/types/app/bsky/notification/updateSeen.ts", "../src/client/types/com/atproto/repo/strongRef.ts", "../src/client/types/app/bsky/actor/profile.ts", "../src/client/types/app/bsky/actor/ref.ts", "../src/client/types/app/bsky/embed/external.ts", "../src/client/types/app/bsky/embed/images.ts", "../src/client/types/app/bsky/feed/feedViewPost.ts", "../src/client/types/app/bsky/feed/post.ts", "../src/client/types/app/bsky/feed/repost.ts", "../src/client/types/app/bsky/feed/trend.ts", "../src/client/types/app/bsky/feed/vote.ts", "../src/client/types/app/bsky/graph/assertCreator.ts", "../src/client/types/app/bsky/graph/assertMember.ts", "../src/client/types/app/bsky/graph/assertion.ts", "../src/client/types/app/bsky/graph/confirmation.ts", "../src/client/types/app/bsky/graph/follow.ts", "../src/client/types/app/bsky/system/actorScene.ts", "../src/client/types/app/bsky/system/actorUser.ts", "../src/client/types/app/bsky/system/declRef.ts", "../src/client/types/app/bsky/system/declaration.ts", "../src/client/index.ts", "../src/session.ts"], 4 + "sourcesContent": ["export * from './client'\nexport { default } from './client'\nexport * from './session'\nexport { default as sessionClient } from './session'\n", "var util;\n(function (util) {\n util.assertEqual = (val) => val;\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nconst ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n\nconst ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nclass ZodError extends Error {\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n get errors() {\n return this.issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be greater than ${issue.inclusive ? `or equal to ` : ``}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be greater than ${issue.inclusive ? `or equal to ` : ``}${new Date(issue.minimum)}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be less than ${issue.inclusive ? `or equal to ` : ``}${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be smaller than ${issue.inclusive ? `or equal to ` : ``}${new Date(issue.maximum)}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\n\nlet overrideErrorMap = errorMap;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message || errorMessage,\n };\n};\nconst EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n syncPairs.push({\n key: await pair.key,\n value: await pair.value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (typeof value.value !== \"undefined\" || pair.alwaysSet) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nconst INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nconst OK = (value) => ({ status: \"valid\", value });\nconst isAborted = (x) => x.status === \"aborted\";\nconst isDirty = (x) => x.status === \"dirty\";\nconst isValid = (x) => x.status === \"valid\";\nconst isAsync = (x) => typeof Promise !== undefined && x instanceof Promise;\n\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\n\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n return this._path.concat(this._key);\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n const error = new ZodError(ctx.common.issues);\n return { success: false, error };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n if (typeof ctx.data === \"undefined\") {\n return { message: required_error !== null && required_error !== void 0 ? required_error : ctx.defaultError };\n }\n return { message: invalid_type_error !== null && invalid_type_error !== void 0 ? invalid_type_error : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this.superRefine = this._refinement;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.default = this.default.bind(this);\n this.describe = this.describe.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n }\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: [], parent: ctx });\n const result = await (isAsync(maybeAsyncResult)\n ? maybeAsyncResult\n : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\"\n ? refinementData(val, ctx)\n : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n optional() {\n return ZodOptional.create(this);\n }\n nullable() {\n return ZodNullable.create(this);\n }\n nullish() {\n return this.optional().nullable();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this);\n }\n or(option) {\n return ZodUnion.create([this, option]);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming);\n }\n transform(transform) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(undefined),\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst uuidRegex = /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n// eslint-disable-next-line\nconst emailRegex = /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\nclass ZodString extends ZodType {\n constructor() {\n super(...arguments);\n this._regex = (regex, validation, message) => this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n /**\n * @deprecated Use z.string().min(1) instead.\n * @see {@link ZodString.min}\n */\n this.nonempty = (message) => this.min(1, errorUtil.errToObj(message));\n this.trim = () => new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n }\n //\n );\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this.min(len, message).max(len, message);\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\");\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all(ctx.data.map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = ctx.data.map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return this.min(len, message).max(len, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////\n/////////////////////////////////////////\n////////// //////////\n////////// ZodObject //////////\n////////// //////////\n/////////////////////////////////////////\n/////////////////////////////////////////\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second,\n };\n };\n})(objectUtil || (objectUtil = {}));\nconst AugmentFactory = (def) => (augmentation) => {\n return new ZodObject({\n ...def,\n shape: () => ({\n ...def.shape(),\n ...augmentation,\n }),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return ZodArray.create(deepPartialify(schema.element));\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n this.augment = AugmentFactory(this._def);\n this.extend = AugmentFactory(this._def);\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever &&\n this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n syncPairs.push({\n key,\n value: await pair.value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n // const mergedShape = objectUtil.mergeShapes(\n // this._def.shape(),\n // merging._def.shape()\n // );\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).map((key) => {\n // only add to shape if key corresponds to an element of the current shape\n if (this.shape[key])\n shape[key] = this.shape[key];\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).map((key) => {\n if (util.objectKeys(mask).indexOf(key) === -1) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n if (mask) {\n util.objectKeys(this.shape).map((key) => {\n if (util.objectKeys(mask).indexOf(key) === -1) {\n newShape[key] = this.shape[key];\n }\n else {\n newShape[key] = this.shape[key].optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n else {\n for (const key in this.shape) {\n const fieldSchema = this.shape[key];\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required() {\n const newShape = {};\n for (const key in this.shape) {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.options.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: this.validDiscriminatorValues,\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get validDiscriminatorValues() {\n return Array.from(this.options.keys());\n }\n get options() {\n return this._def.options;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, types, params) {\n // Get all the valid discriminator values\n const options = new Map();\n try {\n types.forEach((type) => {\n const discriminatorValue = type.shape[discriminator].value;\n options.set(discriminatorValue, type);\n });\n }\n catch (e) {\n throw new Error(\"The discriminator value could not be extracted from all the provided schemas\");\n }\n // Assert that all the discriminator values are unique\n if (options.size !== types.length) {\n throw new Error(\"Some of the discriminator values are not unique\");\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util\n .objectKeys(a)\n .filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date &&\n bType === ZodParsedType.date &&\n +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n type: \"array\",\n });\n status.dirty();\n }\n const items = ctx.data\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nclass ZodMap extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n return OK(async (...args) => {\n const error = new ZodError([]);\n const parsedArgs = await this._def.args\n .parseAsync(args, params)\n .catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await fn(...parsedArgs);\n const parsedReturns = await this._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n return OK((...args) => {\n const parsedArgs = this._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = fn(...parsedArgs.data);\n const parsedReturns = this._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args\n ? args\n : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nclass ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (this._def.values.indexOf(input.data) === -1) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n}\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string &&\n ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (nativeEnumValues.indexOf(input.data) === -1) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise &&\n ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data);\n if (ctx.common.async) {\n return Promise.resolve(processed).then((processed) => {\n return this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n });\n }\n else {\n return this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc\n // effect: RefinementEffect<any>\n ) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n // if (base.status === \"aborted\") return INVALID;\n // if (base.status === \"dirty\") {\n // return { status: \"dirty\", value: base.value };\n // }\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((base) => {\n if (!isValid(base))\n return base;\n // if (base.status === \"aborted\") return INVALID;\n // if (base.status === \"dirty\") {\n // return { status: \"dirty\", value: base.value };\n // }\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nconst BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nconst custom = (check, params = {}, fatal) => {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n if (!check(data)) {\n const p = typeof params === \"function\" ? params(data) : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n ctx.addIssue({ code: \"custom\", ...p2, fatal });\n }\n });\n return ZodAny.create();\n};\nconst late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// new approach that works for abstract classes\n// but required TS 4.4+\n// abstract class Class {\n// constructor(..._: any[]) {}\n// }\n// const instanceOfType = <T extends typeof Class>(\nconst instanceOfType = (cls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params, true);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nconst NEVER = INVALID;\n\nvar mod = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getParsedType: getParsedType,\n ZodParsedType: ZodParsedType,\n defaultErrorMap: errorMap,\n setErrorMap: setErrorMap,\n getErrorMap: getErrorMap,\n makeIssue: makeIssue,\n EMPTY_PATH: EMPTY_PATH,\n addIssueToContext: addIssueToContext,\n ParseStatus: ParseStatus,\n INVALID: INVALID,\n DIRTY: DIRTY,\n OK: OK,\n isAborted: isAborted,\n isDirty: isDirty,\n isValid: isValid,\n isAsync: isAsync,\n ZodType: ZodType,\n ZodString: ZodString,\n ZodNumber: ZodNumber,\n ZodBigInt: ZodBigInt,\n ZodBoolean: ZodBoolean,\n ZodDate: ZodDate,\n ZodUndefined: ZodUndefined,\n ZodNull: ZodNull,\n ZodAny: ZodAny,\n ZodUnknown: ZodUnknown,\n ZodNever: ZodNever,\n ZodVoid: ZodVoid,\n ZodArray: ZodArray,\n get objectUtil () { return objectUtil; },\n ZodObject: ZodObject,\n ZodUnion: ZodUnion,\n ZodDiscriminatedUnion: ZodDiscriminatedUnion,\n ZodIntersection: ZodIntersection,\n ZodTuple: ZodTuple,\n ZodRecord: ZodRecord,\n ZodMap: ZodMap,\n ZodSet: ZodSet,\n ZodFunction: ZodFunction,\n ZodLazy: ZodLazy,\n ZodLiteral: ZodLiteral,\n ZodEnum: ZodEnum,\n ZodNativeEnum: ZodNativeEnum,\n ZodPromise: ZodPromise,\n ZodEffects: ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional: ZodOptional,\n ZodNullable: ZodNullable,\n ZodDefault: ZodDefault,\n ZodNaN: ZodNaN,\n BRAND: BRAND,\n ZodBranded: ZodBranded,\n custom: custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late: late,\n get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; },\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n 'enum': enumType,\n 'function': functionType,\n 'instanceof': instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n 'null': nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean: oboolean,\n onumber: onumber,\n optional: optionalType,\n ostring: ostring,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n transformer: effectsType,\n tuple: tupleType,\n 'undefined': undefinedType,\n union: unionType,\n unknown: unknownType,\n 'void': voidType,\n NEVER: NEVER,\n ZodIssueCode: ZodIssueCode,\n quotelessJson: quotelessJson,\n ZodError: ZodError\n});\n\nexport { BRAND, DIRTY, EMPTY_PATH, INVALID, NEVER, OK, ParseStatus, ZodType as Schema, ZodAny, ZodArray, ZodBigInt, ZodBoolean, ZodBranded, ZodDate, ZodDefault, ZodDiscriminatedUnion, ZodEffects, ZodEnum, ZodError, ZodFirstPartyTypeKind, ZodFunction, ZodIntersection, ZodIssueCode, ZodLazy, ZodLiteral, ZodMap, ZodNaN, ZodNativeEnum, ZodNever, ZodNull, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodParsedType, ZodPromise, ZodRecord, ZodType as ZodSchema, ZodSet, ZodString, ZodEffects as ZodTransformer, ZodTuple, ZodType, ZodUndefined, ZodUnion, ZodUnknown, ZodVoid, addIssueToContext, anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, custom, dateType as date, mod as default, errorMap as defaultErrorMap, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, getErrorMap, getParsedType, instanceOfType as instanceof, intersectionType as intersection, isAborted, isAsync, isDirty, isValid, late, lazyType as lazy, literalType as literal, makeIssue, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, objectUtil, oboolean, onumber, optionalType as optional, ostring, preprocessType as preprocess, promiseType as promise, quotelessJson, recordType as record, setType as set, setErrorMap, strictObjectType as strictObject, stringType as string, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, mod as z };\n", "import { z } from 'zod'\n\nexport type QueryParams = Record<string, any>\nexport type Headers = Record<string, string>\n\nexport interface CallOptions {\n encoding?: string\n headers?: Headers\n}\n\nexport interface FetchHandlerResponse {\n status: number\n headers: Headers\n body: ArrayBuffer | undefined\n}\n\nexport type FetchHandler = (\n httpUri: string,\n httpMethod: string,\n httpHeaders: Headers,\n httpReqBody: any,\n) => Promise<FetchHandlerResponse>\n\nexport const errorResponseBody = z.object({\n error: z.string().optional(),\n message: z.string().optional(),\n})\nexport type ErrorResponseBody = z.infer<typeof errorResponseBody>\n\nexport enum ResponseType {\n Unknown = 1,\n InvalidResponse = 2,\n Success = 200,\n InvalidRequest = 400,\n AuthRequired = 401,\n Forbidden = 403,\n XRPCNotSupported = 404,\n PayloadTooLarge = 413,\n RateLimitExceeded = 429,\n InternalServerError = 500,\n MethodNotImplemented = 501,\n UpstreamFailure = 502,\n NotEnoughResouces = 503,\n UpstreamTimeout = 504,\n}\n\nexport const ResponseTypeNames = {\n [ResponseType.InvalidResponse]: 'InvalidResponse',\n [ResponseType.Success]: 'Success',\n [ResponseType.InvalidRequest]: 'InvalidRequest',\n [ResponseType.AuthRequired]: 'AuthenticationRequired',\n [ResponseType.Forbidden]: 'Forbidden',\n [ResponseType.XRPCNotSupported]: 'XRPCNotSupported',\n [ResponseType.PayloadTooLarge]: 'PayloadTooLarge',\n [ResponseType.RateLimitExceeded]: 'RateLimitExceeded',\n [ResponseType.InternalServerError]: 'InternalServerError',\n [ResponseType.MethodNotImplemented]: 'MethodNotImplemented',\n [ResponseType.UpstreamFailure]: 'UpstreamFailure',\n [ResponseType.NotEnoughResouces]: 'NotEnoughResouces',\n [ResponseType.UpstreamTimeout]: 'UpstreamTimeout',\n}\n\nexport const ResponseTypeStrings = {\n [ResponseType.InvalidResponse]: 'Invalid Response',\n [ResponseType.Success]: 'Success',\n [ResponseType.InvalidRequest]: 'Invalid Request',\n [ResponseType.AuthRequired]: 'Authentication Required',\n [ResponseType.Forbidden]: 'Forbidden',\n [ResponseType.XRPCNotSupported]: 'XRPC Not Supported',\n [ResponseType.PayloadTooLarge]: 'Payload Too Large',\n [ResponseType.RateLimitExceeded]: 'Rate Limit Exceeded',\n [ResponseType.InternalServerError]: 'Internal Server Error',\n [ResponseType.MethodNotImplemented]: 'Method Not Implemented',\n [ResponseType.UpstreamFailure]: 'Upstream Failure',\n [ResponseType.NotEnoughResouces]: 'Not Enough Resouces',\n [ResponseType.UpstreamTimeout]: 'Upstream Timeout',\n}\n\nexport class XRPCResponse {\n success = true\n\n constructor(public data: any, public headers: Headers) {}\n}\n\nexport class XRPCError extends Error {\n success = false\n\n constructor(\n public status: ResponseType,\n public error?: string,\n message?: string,\n ) {\n super(message || error || ResponseTypeStrings[status])\n if (!this.error) {\n this.error = ResponseTypeNames[status]\n }\n }\n}\n", "/*\nGrammar:\n\nalpha = \"a\" / \"b\" / \"c\" / \"d\" / \"e\" / \"f\" / \"g\" / \"h\" / \"i\" / \"j\" / \"k\" / \"l\" / \"m\" / \"n\" / \"o\" / \"p\" / \"q\" / \"r\" / \"s\" / \"t\" / \"u\" / \"v\" / \"w\" / \"x\" / \"y\" / \"z\" / \"A\" / \"B\" / \"C\" / \"D\" / \"E\" / \"F\" / \"G\" / \"H\" / \"I\" / \"J\" / \"K\" / \"L\" / \"M\" / \"N\" / \"O\" / \"P\" / \"Q\" / \"R\" / \"S\" / \"T\" / \"U\" / \"V\" / \"W\" / \"X\" / \"Y\" / \"Z\"\nnumber = \"1\" / \"2\" / \"3\" / \"4\" / \"5\" / \"6\" / \"7\" / \"8\" / \"9\" / \"0\"\ndelim = \".\"\nsegment = alpha *( alpha / number / \"-\" )\nauthority = segment *( delim segment )\nname = segment\nnsid = authority delim name\nnsid-ns = authority delim \"*\"\n\n*/\n\nconst SEGMENT_RE = /^[a-zA-Z]([a-zA-Z0-9-])*$/\n\nexport class NSID {\n segments: string[] = []\n\n static parse(nsid: string): NSID {\n return new NSID(nsid)\n }\n\n static create(authority: string, name: string): NSID {\n const segments = [...authority.split('.').reverse(), name].join('.')\n return new NSID(segments)\n }\n\n static isValid(nsid: string): boolean {\n try {\n NSID.parse(nsid)\n return true\n } catch (e) {\n return false\n }\n }\n\n constructor(nsid: string) {\n const segments = nsid.split('.')\n if (segments.length <= 2) {\n throw new Error(`Invalid NSID: ${nsid}`)\n }\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i]\n if (SEGMENT_RE.test(segment)) {\n continue\n }\n if (i === segments.length - 1 && segment === '*') {\n continue\n }\n throw new Error(`Invalid NSID: invalid character in segment \"${segment}\"`)\n }\n this.segments = segments\n }\n\n get authority() {\n return this.segments\n .slice(0, this.segments.length - 1)\n .reverse()\n .join('.')\n }\n\n get name() {\n return this.segments.at(this.segments.length - 1)\n }\n\n toString() {\n return this.segments.join('.')\n }\n}\n", "import { z } from 'zod'\nimport { NSID } from '@atproto/nsid'\n\n// primitives\n// =\n\nexport const lexBoolean = z.object({\n type: z.literal('boolean'),\n description: z.string().optional(),\n default: z.boolean().optional(),\n const: z.boolean().optional(),\n})\nexport type LexBoolean = z.infer<typeof lexBoolean>\n\nexport const lexNumber = z.object({\n type: z.literal('number'),\n description: z.string().optional(),\n default: z.number().optional(),\n minimum: z.number().optional(),\n maximum: z.number().optional(),\n enum: z.number().array().optional(),\n const: z.number().optional(),\n})\nexport type LexNumber = z.infer<typeof lexNumber>\n\nexport const lexInteger = z.object({\n type: z.literal('integer'),\n description: z.string().optional(),\n default: z.number().int().optional(),\n minimum: z.number().int().optional(),\n maximum: z.number().int().optional(),\n enum: z.number().int().array().optional(),\n const: z.number().int().optional(),\n})\nexport type LexInteger = z.infer<typeof lexInteger>\n\nexport const lexString = z.object({\n type: z.literal('string'),\n description: z.string().optional(),\n default: z.string().optional(),\n minLength: z.number().int().optional(),\n maxLength: z.number().int().optional(),\n enum: z.string().array().optional(),\n const: z.string().optional(),\n knownValues: z.string().array().optional(),\n})\nexport type LexString = z.infer<typeof lexString>\n\nexport const lexDatetime = z.object({\n type: z.literal('datetime'),\n description: z.string().optional(),\n})\nexport type LexDatetime = z.infer<typeof lexDatetime>\n\nexport const lexUnknown = z.object({\n type: z.literal('unknown'),\n description: z.string().optional(),\n})\nexport type LexUnknown = z.infer<typeof lexUnknown>\n\nexport const lexPrimitive = z.union([\n lexBoolean,\n lexNumber,\n lexInteger,\n lexString,\n lexDatetime,\n lexUnknown,\n])\nexport type LexPrimitive = z.infer<typeof lexPrimitive>\n\n// references\n// =\n\nexport const lexRef = z.object({\n type: z.literal('ref'),\n description: z.string().optional(),\n ref: z.string(),\n})\nexport type LexRef = z.infer<typeof lexRef>\n\nexport const lexRefUnion = z.object({\n type: z.literal('union'),\n description: z.string().optional(),\n refs: z.string().array(),\n closed: z.boolean().optional(),\n})\nexport type LexRefUnion = z.infer<typeof lexRefUnion>\n\nexport const lexRefVariant = z.union([lexRef, lexRefUnion])\nexport type LexRefVariant = z.infer<typeof lexRefVariant>\n\n// blobs\n// =\n\nexport const lexBlob = z.object({\n type: z.literal('blob'),\n description: z.string().optional(),\n accept: z.string().array().optional(),\n maxSize: z.number().optional(),\n})\nexport type LexBlob = z.infer<typeof lexBlob>\n\nexport const lexImage = z.object({\n type: z.literal('image'),\n description: z.string().optional(),\n accept: z.string().array().optional(),\n maxSize: z.number().optional(),\n maxWidth: z.number().int().optional(),\n maxHeight: z.number().int().optional(),\n})\nexport type LexImage = z.infer<typeof lexImage>\n\nexport const lexVideo = z.object({\n type: z.literal('video'),\n description: z.string().optional(),\n accept: z.string().array().optional(),\n maxSize: z.number().optional(),\n maxWidth: z.number().int().optional(),\n maxHeight: z.number().int().optional(),\n maxLength: z.number().int().optional(),\n})\nexport type LexVideo = z.infer<typeof lexVideo>\n\nexport const lexAudio = z.object({\n type: z.literal('audio'),\n description: z.string().optional(),\n accept: z.string().array().optional(),\n maxSize: z.number().optional(),\n maxLength: z.number().int().optional(),\n})\nexport type LexAudio = z.infer<typeof lexAudio>\n\nexport const lexBlobVariant = z.union([lexBlob, lexImage, lexVideo, lexAudio])\nexport type LexBlobVariant = z.infer<typeof lexBlobVariant>\n\n// complex types\n// =\n\nexport const lexArray = z.object({\n type: z.literal('array'),\n description: z.string().optional(),\n items: z.union([lexPrimitive, lexBlobVariant, lexRefVariant]),\n minLength: z.number().int().optional(),\n maxLength: z.number().int().optional(),\n})\nexport type LexArray = z.infer<typeof lexArray>\n\nexport const lexToken = z.object({\n type: z.literal('token'),\n description: z.string().optional(),\n})\nexport type LexToken = z.infer<typeof lexToken>\n\nexport const lexObject = z.object({\n type: z.literal('object'),\n description: z.string().optional(),\n required: z.string().array().optional(),\n properties: z\n .record(z.union([lexRefVariant, lexArray, lexBlobVariant, lexPrimitive]))\n .optional(),\n})\nexport type LexObject = z.infer<typeof lexObject>\n\n// xrpc\n// =\n\nexport const lexXrpcParameters = z.object({\n type: z.literal('params'),\n description: z.string().optional(),\n required: z.string().array().optional(),\n properties: z.record(lexPrimitive),\n})\nexport type LexXrpcParameters = z.infer<typeof lexXrpcParameters>\n\nexport const lexXrpcBody = z.object({\n description: z.string().optional(),\n encoding: z.string(),\n schema: z.union([lexRefVariant, lexObject]).optional(),\n})\nexport type LexXrpcBody = z.infer<typeof lexXrpcBody>\n\nexport const lexXrpcError = z.object({\n name: z.string(),\n description: z.string().optional(),\n})\nexport type LexXrpcError = z.infer<typeof lexXrpcError>\n\nexport const lexXrpcQuery = z.object({\n type: z.literal('query'),\n description: z.string().optional(),\n parameters: lexXrpcParameters.optional(),\n output: lexXrpcBody.optional(),\n errors: lexXrpcError.array().optional(),\n})\nexport type LexXrpcQuery = z.infer<typeof lexXrpcQuery>\n\nexport const lexXrpcProcedure = z.object({\n type: z.literal('procedure'),\n description: z.string().optional(),\n parameters: lexXrpcParameters.optional(),\n input: lexXrpcBody.optional(),\n output: lexXrpcBody.optional(),\n errors: lexXrpcError.array().optional(),\n})\nexport type LexXrpcProcedure = z.infer<typeof lexXrpcProcedure>\n\n// database\n// =\n\nexport const lexRecord = z.object({\n type: z.literal('record'),\n description: z.string().optional(),\n key: z.string().optional(),\n record: lexObject,\n})\nexport type LexRecord = z.infer<typeof lexRecord>\n\n// core\n// =\n\nexport const lexUserType = z.union([\n lexRecord,\n\n lexXrpcQuery,\n lexXrpcProcedure,\n\n lexBlob,\n lexImage,\n lexVideo,\n lexAudio,\n\n lexArray,\n lexToken,\n lexObject,\n\n lexBoolean,\n lexNumber,\n lexInteger,\n lexString,\n lexDatetime,\n lexUnknown,\n])\nexport type LexUserType = z.infer<typeof lexUserType>\n\nexport const lexiconDoc = z\n .object({\n lexicon: z.literal(1),\n id: z.string().refine((v: string) => NSID.isValid(v), {\n message: 'Must be a valid NSID',\n }),\n revision: z.number().optional(),\n description: z.string().optional(),\n defs: z.record(lexUserType),\n })\n .superRefine((doc: LexiconDoc, ctx) => {\n for (const defId in doc.defs) {\n const def = doc.defs[defId]\n if (\n defId !== 'main' &&\n (def.type === 'record' ||\n def.type === 'procedure' ||\n def.type === 'query')\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Records, procedures, and queries must be the main definition.`,\n })\n }\n }\n })\nexport type LexiconDoc = z.infer<typeof lexiconDoc>\n\n// helpers\n// =\n\nexport function isValidLexiconDoc(v: unknown): v is LexiconDoc {\n return lexiconDoc.safeParse(v).success\n}\n\nexport function isObj(obj: unknown): obj is Record<string, unknown> {\n return !!obj && typeof obj === 'object'\n}\n\nexport function hasProp<K extends PropertyKey>(\n data: object,\n prop: K,\n): data is Record<K, unknown> {\n return prop in data\n}\n\nexport const discriminatedObject = z.object({ $type: z.string() })\nexport type DiscriminatedObject = z.infer<typeof discriminatedObject>\nexport function isDiscriminatedObject(\n value: unknown,\n): value is DiscriminatedObject {\n return discriminatedObject.safeParse(value).success\n}\n\nexport class LexiconDocMalformedError extends Error {\n constructor(\n message: string,\n public schemaDef: unknown,\n public issues?: z.ZodIssue[],\n ) {\n super(message)\n this.schemaDef = schemaDef\n this.issues = issues\n }\n}\n\nexport interface ValidationResult {\n success: boolean\n error?: ValidationError\n}\n\nexport class ValidationError extends Error {}\nexport class InvalidLexiconError extends Error {}\nexport class LexiconDefNotFoundError extends Error {}\n", "import { Lexicons } from '../lexicons'\nimport {\n LexUserType,\n LexBoolean,\n LexNumber,\n LexInteger,\n LexString,\n LexDatetime,\n ValidationResult,\n ValidationError,\n} from '../types'\n\nexport function validate(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n switch (def.type) {\n case 'boolean':\n return boolean(lexicons, path, def, value)\n case 'number':\n return number(lexicons, path, def, value)\n case 'integer':\n return integer(lexicons, path, def, value)\n case 'string':\n return string(lexicons, path, def, value)\n case 'datetime':\n return datetime(lexicons, path, def, value)\n case 'unknown':\n return unknown(lexicons, path, def, value)\n default:\n return {\n success: false,\n error: new ValidationError(`Unexpected lexicon type: ${def.type}`),\n }\n }\n}\n\nexport function boolean(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexBoolean\n\n // type\n const type = typeof value\n if (type == 'undefined') {\n if (typeof def.default === 'boolean') {\n return { success: true }\n }\n return {\n success: false,\n error: new ValidationError(`${path} must be a boolean`),\n }\n } else if (type !== 'boolean') {\n return {\n success: false,\n error: new ValidationError(`${path} must be a boolean`),\n }\n }\n\n // const\n if (typeof def.const === 'boolean') {\n if (value !== def.const) {\n return {\n success: false,\n error: new ValidationError(`${path} must be ${def.const}`),\n }\n }\n }\n\n return { success: true }\n}\n\nexport function number(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexNumber\n\n // type\n const type = typeof value\n if (type == 'undefined') {\n if (typeof def.default === 'number') {\n return { success: true }\n }\n return {\n success: false,\n error: new ValidationError(`${path} must be a number`),\n }\n } else if (type !== 'number') {\n return {\n success: false,\n error: new ValidationError(`${path} must be a number`),\n }\n }\n\n // const\n if (typeof def.const === 'number') {\n if (value !== def.const) {\n return {\n success: false,\n error: new ValidationError(`${path} must be ${def.const}`),\n }\n }\n }\n\n // enum\n if (Array.isArray(def.enum)) {\n if (!def.enum.includes(value as number)) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must be one of (${def.enum.join('|')})`,\n ),\n }\n }\n }\n\n // maximum\n if (typeof def.maximum === 'number') {\n if ((value as number) > def.maximum) {\n return {\n success: false,\n error: new ValidationError(\n `${path} can not be greater than ${def.maximum}`,\n ),\n }\n }\n }\n\n // minimum\n if (typeof def.minimum === 'number') {\n if ((value as number) < def.minimum) {\n return {\n success: false,\n error: new ValidationError(\n `${path} can not be less than ${def.minimum}`,\n ),\n }\n }\n }\n\n return { success: true }\n}\n\nexport function integer(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexInteger\n\n // run number validation\n const numRes = number(lexicons, path, def, value)\n if (!numRes.success) {\n return numRes\n }\n\n // whole numbers only\n if (!Number.isInteger(value)) {\n return {\n success: false,\n error: new ValidationError(`${path} must be an integer`),\n }\n }\n\n return { success: true }\n}\n\nexport function string(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexString\n\n // type\n const type = typeof value\n if (type == 'undefined') {\n if (typeof def.default === 'string') {\n return { success: true }\n }\n return {\n success: false,\n error: new ValidationError(`${path} must be a string`),\n }\n } else if (type !== 'string') {\n return {\n success: false,\n error: new ValidationError(`${path} must be a string`),\n }\n }\n\n // const\n if (typeof def.const === 'string') {\n if (value !== def.const) {\n return {\n success: false,\n error: new ValidationError(`${path} must be ${def.const}`),\n }\n }\n }\n\n // enum\n if (Array.isArray(def.enum)) {\n if (!def.enum.includes(value as string)) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must be one of (${def.enum.join('|')})`,\n ),\n }\n }\n }\n\n // maxLength\n if (typeof def.maxLength === 'number') {\n if ((value as string).length > def.maxLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be longer than ${def.maxLength} characters`,\n ),\n }\n }\n }\n\n // minLength\n if (typeof def.minLength === 'number') {\n if ((value as string).length < def.minLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be shorter than ${def.minLength} characters`,\n ),\n }\n }\n }\n\n return { success: true }\n}\n\nexport function datetime(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexDatetime\n\n // type\n const type = typeof value\n if (type !== 'string') {\n return {\n success: false,\n error: new ValidationError(`${path} must be a string`),\n }\n }\n\n // valid iso-8601\n {\n try {\n const date = new Date(Date.parse(value as string))\n if (value !== date.toISOString()) {\n throw new ValidationError(\n `${path} must be an iso8601 formatted datetime`,\n )\n }\n } catch {\n throw new ValidationError(`${path} must be an iso8601 formatted datetime`)\n }\n }\n\n return { success: true }\n}\n\nexport function unknown(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n // type\n if (!value || typeof value !== 'object') {\n return {\n success: false,\n error: new ValidationError(`${path} must be an object`),\n }\n }\n\n return { success: true }\n}\n", "import { Lexicons } from '../lexicons'\nimport { LexUserType, ValidationResult, ValidationError } from '../types'\nimport { isObj, hasProp } from '../types'\n\nexport function blob(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n if (!isObj(value)) {\n return {\n success: false,\n error: new ValidationError(`${path} should be an object`),\n }\n }\n if (!hasProp(value, 'cid') || typeof value.cid !== 'string') {\n return {\n success: false,\n error: new ValidationError(`${path}/cid should be a string`),\n }\n }\n if (!hasProp(value, 'mimeType') || typeof value.mimeType !== 'string') {\n return {\n success: false,\n error: new ValidationError(`${path}/mimeType should be a string`),\n }\n }\n return { success: true }\n}\n\nexport function image(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n return blob(lexicons, path, def, value)\n}\n\nexport function video(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n return blob(lexicons, path, def, value)\n}\n\nexport function audio(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n return blob(lexicons, path, def, value)\n}\n", "import { Lexicons } from '../lexicons'\nimport {\n LexArray,\n LexObject,\n LexUserType,\n ValidationResult,\n ValidationError,\n} from '../types'\nimport { validateOneOf } from '../util'\n\nimport * as Primitives from './primitives'\nimport * as Blob from './blob'\n\nexport function validate(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n switch (def.type) {\n case 'boolean':\n return Primitives.boolean(lexicons, path, def, value)\n case 'number':\n return Primitives.number(lexicons, path, def, value)\n case 'integer':\n return Primitives.integer(lexicons, path, def, value)\n case 'string':\n return Primitives.string(lexicons, path, def, value)\n case 'datetime':\n return Primitives.datetime(lexicons, path, def, value)\n case 'unknown':\n return Primitives.unknown(lexicons, path, def, value)\n case 'object':\n return object(lexicons, path, def, value)\n case 'array':\n return array(lexicons, path, def, value)\n case 'blob':\n return Blob.blob(lexicons, path, def, value)\n case 'image':\n return Blob.image(lexicons, path, def, value)\n case 'video':\n return Blob.video(lexicons, path, def, value)\n case 'audio':\n return Blob.audio(lexicons, path, def, value)\n default:\n return {\n success: false,\n error: new ValidationError(`Unexpected lexicon type: ${def.type}`),\n }\n }\n}\n\nexport function array(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexArray\n\n // type\n if (!Array.isArray(value)) {\n return {\n success: false,\n error: new ValidationError(`${path} must be an array`),\n }\n }\n\n // maxLength\n if (typeof def.maxLength === 'number') {\n if ((value as Array<unknown>).length > def.maxLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not have more than ${def.maxLength} elements`,\n ),\n }\n }\n }\n\n // minLength\n if (typeof def.minLength === 'number') {\n if ((value as Array<unknown>).length < def.minLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not have fewer than ${def.minLength} elements`,\n ),\n }\n }\n }\n\n // items\n const itemsDef = def.items\n for (let i = 0; i < (value as Array<unknown>).length; i++) {\n const itemValue = value[i]\n const itemPath = `${path}/${i}`\n const res = validateOneOf(lexicons, itemPath, itemsDef, itemValue)\n if (!res.success) {\n return res\n }\n }\n\n return { success: true }\n}\n\nexport function object(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexObject\n\n // type\n if (!value || typeof value !== 'object') {\n return {\n success: false,\n error: new ValidationError(`${path} must be an object`),\n }\n }\n\n // required\n if (Array.isArray(def.required)) {\n for (const key of def.required) {\n if (!(key in value)) {\n return {\n success: false,\n error: new ValidationError(`${path} must have the property \"${key}\"`),\n }\n }\n }\n }\n\n // properties\n if (typeof def.properties === 'object') {\n for (const key in def.properties) {\n const propValue = value[key]\n if (typeof propValue === 'undefined') {\n continue // skip- if required, will have already failed\n }\n const propDef = def.properties[key]\n const propPath = `${path}/${key}`\n const res = validateOneOf(lexicons, propPath, propDef, propValue)\n if (!res.success) {\n return res\n }\n }\n }\n\n return { success: true }\n}\n", "import { Lexicons } from './lexicons'\nimport * as ComplexValidators from './validators/complex'\nimport {\n LexUserType,\n LexRefVariant,\n ValidationError,\n ValidationResult,\n isDiscriminatedObject,\n} from './types'\n\nexport function toLexUri(str: string, baseUri?: string): string {\n if (str.startsWith('lex:')) {\n return str\n }\n if (str.startsWith('#')) {\n if (!baseUri) {\n throw new Error(`Unable to resolve uri without anchor: ${str}`)\n }\n return `${baseUri}${str}`\n }\n return `lex:${str}`\n}\n\nexport function validateOneOf(\n lexicons: Lexicons,\n path: string,\n def: LexRefVariant | LexUserType,\n value: unknown,\n mustBeObj = false, // this is the only type constraint we need currently (used by xrpc body schema validators)\n): ValidationResult {\n let error\n\n let concreteDefs\n if (def.type === 'union') {\n if (!isDiscriminatedObject(value)) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must be an object which includes the \"$type\" property`,\n ),\n }\n }\n if (!def.refs.includes(toLexUri(value.$type))) {\n if (def.closed) {\n return {\n success: false,\n error: new ValidationError(\n `${path} $type must be one of ${def.refs.join(', ')}`,\n ),\n }\n }\n return { success: true }\n } else {\n concreteDefs = toConcreteTypes(lexicons, {\n type: 'ref',\n ref: value.$type,\n })\n }\n } else {\n concreteDefs = toConcreteTypes(lexicons, def)\n }\n\n for (const concreteDef of concreteDefs) {\n const result = mustBeObj\n ? ComplexValidators.object(lexicons, path, concreteDef, value)\n : ComplexValidators.validate(lexicons, path, concreteDef, value)\n if (result.success) {\n return result\n }\n error ??= result.error\n }\n if (concreteDefs.length > 1) {\n return {\n success: false,\n error: new ValidationError(\n `${path} did not match any of the expected definitions`,\n ),\n }\n }\n return { success: false, error }\n}\n\nexport function assertValidOneOf(\n lexicons: Lexicons,\n path: string,\n def: LexRefVariant | LexUserType,\n value: unknown,\n mustBeObj = false,\n) {\n const res = validateOneOf(lexicons, path, def, value, mustBeObj)\n if (!res.success) {\n throw res.error\n }\n}\n\nexport function toConcreteTypes(\n lexicons: Lexicons,\n def: LexRefVariant | LexUserType,\n): LexUserType[] {\n if (def.type === 'ref') {\n return [lexicons.getDefOrThrow(def.ref)]\n } else if (def.type === 'union') {\n return def.refs.map((ref) => lexicons.getDefOrThrow(ref)).flat()\n } else {\n return [def]\n }\n}\n", "import { Lexicons } from '../lexicons'\nimport { LexXrpcParameters, ValidationResult, ValidationError } from '../types'\n\nimport * as PrimitiveValidators from './primitives'\n\nexport function params(\n lexicons: Lexicons,\n path: string,\n def: LexXrpcParameters,\n value: unknown,\n): ValidationResult {\n def = def as LexXrpcParameters\n\n // type\n if (!value || typeof value !== 'object') {\n // in this case, we just fall back to an object\n value = {}\n }\n\n // required\n if (Array.isArray(def.required)) {\n for (const key of def.required) {\n if (!(key in (value as Record<string, unknown>))) {\n return {\n success: false,\n error: new ValidationError(`${path} must have the property \"${key}\"`),\n }\n }\n }\n }\n\n // properties\n for (const key in def.properties) {\n if (typeof (value as Record<string, unknown>)[key] === 'undefined') {\n continue // skip- if required, will have already failed\n }\n const paramDef = def.properties[key]\n const res = PrimitiveValidators.validate(\n lexicons,\n key,\n paramDef,\n (value as Record<string, unknown>)[key],\n )\n if (!res.success) {\n return res\n }\n }\n\n return { success: true }\n}\n", "import { Lexicons } from './lexicons'\nimport { LexRecord, LexXrpcProcedure, LexXrpcQuery } from './types'\nimport { assertValidOneOf } from './util'\n\nimport * as ComplexValidators from './validators/complex'\nimport * as XrpcValidators from './validators/xrpc'\n\nexport function assertValidRecord(\n lexicons: Lexicons,\n def: LexRecord,\n value: unknown,\n) {\n const res = ComplexValidators.object(lexicons, 'Record', def.record, value)\n if (!res.success) throw res.error\n}\n\nexport function assertValidXrpcParams(\n lexicons: Lexicons,\n def: LexXrpcProcedure | LexXrpcQuery,\n value: unknown,\n) {\n if (def.parameters) {\n const res = XrpcValidators.params(lexicons, 'Params', def.parameters, value)\n if (!res.success) throw res.error\n }\n}\n\nexport function assertValidXrpcInput(\n lexicons: Lexicons,\n def: LexXrpcProcedure,\n value: unknown,\n) {\n if (def.input?.schema) {\n // loop: all input schema definitions\n assertValidOneOf(lexicons, 'Input', def.input.schema, value, true)\n }\n}\n\nexport function assertValidXrpcOutput(\n lexicons: Lexicons,\n def: LexXrpcProcedure | LexXrpcQuery,\n value: unknown,\n) {\n if (def.output?.schema) {\n // loop: all output schema definitions\n assertValidOneOf(lexicons, 'Output', def.output.schema, value, true)\n }\n}\n", "import { ZodError } from 'zod'\nimport {\n LexiconDoc,\n lexiconDoc,\n LexRecord,\n LexXrpcProcedure,\n LexXrpcQuery,\n LexUserType,\n LexiconDocMalformedError,\n LexiconDefNotFoundError,\n InvalidLexiconError,\n ValidationError,\n isObj,\n hasProp,\n} from './types'\nimport {\n assertValidRecord,\n assertValidXrpcParams,\n assertValidXrpcInput,\n assertValidXrpcOutput,\n} from './validation'\nimport { toLexUri } from './util'\n\n/**\n * A collection of compiled lexicons.\n */\nexport class Lexicons {\n docs: Map<string, LexiconDoc> = new Map()\n defs: Map<string, LexUserType> = new Map()\n\n constructor(docs?: unknown[]) {\n if (docs?.length) {\n for (const doc of docs) {\n this.add(doc)\n }\n }\n }\n\n /**\n * Add a lexicon doc.\n */\n add(doc: unknown): void {\n try {\n lexiconDoc.parse(doc)\n } catch (e) {\n if (e instanceof ZodError) {\n throw new LexiconDocMalformedError(\n `Failed to parse schema definition ${\n (doc as Record<string, string>).id\n }`,\n doc,\n e.issues,\n )\n } else {\n throw e\n }\n }\n const validatedDoc = doc as LexiconDoc\n const uri = toLexUri(validatedDoc.id)\n if (this.docs.has(uri)) {\n throw new Error(`${uri} has already been registered`)\n }\n\n // WARNING\n // mutates the object\n // -prf\n resolveRefUris(validatedDoc, uri)\n\n this.docs.set(uri, validatedDoc)\n for (const [defUri, def] of iterDefs(validatedDoc)) {\n this.defs.set(defUri, def)\n }\n }\n\n /**\n * Remove a lexicon doc.\n */\n remove(uri: string) {\n uri = toLexUri(uri)\n const doc = this.docs.get(uri)\n if (!doc) {\n throw new Error(`Unable to remove \"${uri}\": does not exist`)\n }\n for (const [defUri, _def] of iterDefs(doc)) {\n this.defs.delete(defUri)\n }\n this.docs.delete(uri)\n }\n\n /**\n * Get a lexicon doc.\n */\n get(uri: string): LexiconDoc | undefined {\n uri = toLexUri(uri)\n return this.docs.get(uri)\n }\n\n /**\n * Get a definition.\n */\n getDef(uri: string): LexUserType | undefined {\n uri = toLexUri(uri)\n return this.defs.get(uri)\n }\n\n /**\n * Get a def, throw if not found. Throws on not found.\n */\n getDefOrThrow(uri: string, types?: string[]): LexUserType {\n const def = this.getDef(uri)\n if (!def) {\n throw new LexiconDefNotFoundError(`Lexicon not found: ${uri}`)\n }\n if (types && !types.includes(def.type)) {\n throw new InvalidLexiconError(\n `Not a ${types.join(' or ')} lexicon: ${uri}`,\n )\n }\n return def\n }\n\n /**\n * Validate a record and throw on any error.\n */\n assertValidRecord(lexUri: string, value: unknown) {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['record'])\n if (!isObj(value)) {\n throw new ValidationError(`Record must be an object`)\n }\n if (!hasProp(value, '$type') || typeof value.$type !== 'string') {\n throw new ValidationError(`Record/$type must be a string`)\n }\n const $type = (value as Record<string, string>).$type || ''\n if (toLexUri($type) !== lexUri) {\n throw new ValidationError(\n `Invalid $type: must be ${lexUri}, got ${$type}`,\n )\n }\n assertValidRecord(this, def as LexRecord, value)\n }\n\n /**\n * Validate xrpc query params and throw on any error.\n */\n assertValidXrpcParams(lexUri: string, value: unknown) {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['query', 'procedure'])\n assertValidXrpcParams(this, def as LexXrpcProcedure | LexXrpcQuery, value)\n }\n\n /**\n * Validate xrpc input body and throw on any error.\n */\n assertValidXrpcInput(lexUri: string, value: unknown) {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['procedure'])\n assertValidXrpcInput(this, def as LexXrpcProcedure, value)\n }\n\n /**\n * Validate xrpc output body and throw on any error.\n */\n assertValidXrpcOutput(lexUri: string, value: unknown) {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['query', 'procedure'])\n assertValidXrpcOutput(this, def as LexXrpcProcedure | LexXrpcQuery, value)\n }\n}\n\nfunction* iterDefs(doc: LexiconDoc): Generator<[string, LexUserType]> {\n for (const defId in doc.defs) {\n yield [`lex:${doc.id}#${defId}`, doc.defs[defId]]\n if (defId === 'main') {\n yield [`lex:${doc.id}`, doc.defs[defId]]\n }\n }\n}\n\n// WARNING\n// this method mutates objects\n// -prf\nfunction resolveRefUris(obj: any, baseUri: string): any {\n for (const k in obj) {\n if (obj.type === 'ref') {\n obj.ref = toLexUri(obj.ref, baseUri)\n } else if (obj.type === 'union') {\n obj.refs = obj.refs.map((ref) => toLexUri(ref, baseUri))\n } else if (Array.isArray(obj[k])) {\n obj[k] = obj[k].map((item: any) => {\n if (typeof item === 'string') {\n return item.startsWith('#') ? toLexUri(item, baseUri) : item\n } else if (item && typeof item === 'object') {\n return resolveRefUris(item, baseUri)\n }\n return item\n })\n } else if (obj[k] && typeof obj[k] === 'object') {\n obj[k] = resolveRefUris(obj[k], baseUri)\n }\n }\n return obj\n}\n", "import { LexXrpcProcedure, LexXrpcQuery } from '@atproto/lexicon'\nimport {\n CallOptions,\n Headers,\n QueryParams,\n ResponseType,\n XRPCError,\n} from './types'\n\nexport function getMethodSchemaHTTPMethod(\n schema: LexXrpcProcedure | LexXrpcQuery,\n) {\n if (schema.type === 'procedure') {\n return 'post'\n }\n return 'get'\n}\n\nexport function constructMethodCallUri(\n nsid: string,\n schema: LexXrpcProcedure | LexXrpcQuery,\n serviceUri: URL,\n params?: QueryParams,\n): string {\n const uri = new URL(serviceUri)\n uri.pathname = `/xrpc/${nsid}`\n\n // given parameters\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n const paramSchema = schema.parameters?.properties?.[key]\n if (!paramSchema) {\n throw new Error(`Invalid query parameter: ${key}`)\n }\n if (value !== undefined) {\n uri.searchParams.set(key, encodeQueryParam(paramSchema.type, value))\n }\n }\n }\n\n return uri.toString()\n}\n\nexport function encodeQueryParam(\n type: 'string' | 'number' | 'integer' | 'boolean' | 'datetime' | 'unknown',\n value: any,\n): string {\n if (type === 'string' || type === 'unknown') {\n return String(value)\n }\n if (type === 'number') {\n return String(Number(value))\n } else if (type === 'integer') {\n return String(Number(value) | 0)\n } else if (type === 'boolean') {\n return value ? 'true' : 'false'\n } else if (type === 'datetime') {\n if (value instanceof Date) {\n return value.toISOString()\n }\n return String(value)\n }\n throw new Error(`Unsupported query param type: ${type}`)\n}\n\nexport function constructMethodCallHeaders(\n schema: LexXrpcProcedure | LexXrpcQuery,\n data?: any,\n opts?: CallOptions,\n): Headers {\n const headers: Headers = opts?.headers || {}\n if (schema.type === 'procedure') {\n if (opts?.encoding) {\n headers['Content-Type'] = opts.encoding\n }\n if (data && typeof data === 'object') {\n if (!headers['Content-Type']) {\n headers['Content-Type'] = 'application/json'\n }\n }\n }\n return headers\n}\n\nexport function encodeMethodCallBody(\n headers: Headers,\n data?: any,\n): ArrayBuffer | undefined {\n if (!headers['Content-Type'] || typeof data === 'undefined') {\n return undefined\n }\n if (data instanceof ArrayBuffer) {\n return data\n }\n if (headers['Content-Type'].startsWith('text/')) {\n return new TextEncoder().encode(data.toString())\n }\n if (headers['Content-Type'].startsWith('application/json')) {\n return new TextEncoder().encode(JSON.stringify(data))\n }\n return data\n}\n\nexport function httpResponseCodeToEnum(status: number): ResponseType {\n let resCode: ResponseType\n if (status in ResponseType) {\n resCode = status\n } else if (status >= 100 && status < 200) {\n resCode = ResponseType.XRPCNotSupported\n } else if (status >= 200 && status < 300) {\n resCode = ResponseType.Success\n } else if (status >= 300 && status < 400) {\n resCode = ResponseType.XRPCNotSupported\n } else if (status >= 400 && status < 500) {\n resCode = ResponseType.InvalidRequest\n } else {\n resCode = ResponseType.InternalServerError\n }\n return resCode\n}\n\nexport function httpResponseBodyParse(\n mimeType: string | null,\n data: ArrayBuffer | undefined,\n): any {\n if (mimeType) {\n if (mimeType.includes('application/json') && data?.byteLength) {\n try {\n const str = new TextDecoder().decode(data)\n return JSON.parse(str)\n } catch (e) {\n throw new XRPCError(\n ResponseType.InvalidResponse,\n `Failed to parse response body: ${String(e)}`,\n )\n }\n }\n if (mimeType.startsWith('text/') && data?.byteLength) {\n try {\n return new TextDecoder().decode(data)\n } catch (e) {\n throw new XRPCError(\n ResponseType.InvalidResponse,\n `Failed to parse response body: ${String(e)}`,\n )\n }\n }\n }\n return data\n}\n", "import { Lexicons } from '@atproto/lexicon'\nimport {\n getMethodSchemaHTTPMethod,\n constructMethodCallUri,\n constructMethodCallHeaders,\n encodeMethodCallBody,\n httpResponseCodeToEnum,\n httpResponseBodyParse,\n} from './util'\nimport {\n FetchHandler,\n FetchHandlerResponse,\n Headers,\n CallOptions,\n QueryParams,\n ResponseType,\n errorResponseBody,\n ErrorResponseBody,\n XRPCResponse,\n XRPCError,\n} from './types'\n\nexport class Client {\n fetch: FetchHandler = defaultFetchHandler\n lex = new Lexicons()\n\n // method calls\n //\n\n async call(\n serviceUri: string | URL,\n methodNsid: string,\n params?: QueryParams,\n data?: unknown,\n opts?: CallOptions,\n ) {\n return this.service(serviceUri).call(methodNsid, params, data, opts)\n }\n\n service(serviceUri: string | URL) {\n return new ServiceClient(this, serviceUri)\n }\n\n // schemas\n // =\n\n addLexicon(doc: unknown) {\n this.lex.add(doc)\n }\n\n addLexicons(docs: unknown[]) {\n for (const doc of docs) {\n this.addLexicon(doc)\n }\n }\n\n removeLexicon(uri: string) {\n this.lex.remove(uri)\n }\n}\n\nexport class ServiceClient {\n baseClient: Client\n uri: URL\n headers: Record<string, string> = {}\n\n constructor(baseClient: Client, serviceUri: string | URL) {\n this.baseClient = baseClient\n this.uri = typeof serviceUri === 'string' ? new URL(serviceUri) : serviceUri\n }\n\n setHeader(key: string, value: string): void {\n this.headers[key] = value\n }\n\n unsetHeader(key: string): void {\n delete this.headers[key]\n }\n\n async call(\n methodNsid: string,\n params?: QueryParams,\n data?: unknown,\n opts?: CallOptions,\n ) {\n const def = this.baseClient.lex.getDefOrThrow(methodNsid)\n if (!def || (def.type !== 'query' && def.type !== 'procedure')) {\n throw new Error(\n `Invalid lexicon: ${methodNsid}. Must be a query or procedure.`,\n )\n }\n\n const httpMethod = getMethodSchemaHTTPMethod(def)\n const httpUri = constructMethodCallUri(methodNsid, def, this.uri, params)\n const httpHeaders = constructMethodCallHeaders(def, data, {\n headers: {\n ...this.headers,\n ...opts?.headers,\n },\n encoding: opts?.encoding,\n })\n\n const res = await this.baseClient.fetch(\n httpUri,\n httpMethod,\n httpHeaders,\n data,\n )\n\n const resCode = httpResponseCodeToEnum(res.status)\n if (resCode === ResponseType.Success) {\n return new XRPCResponse(res.body, res.headers)\n } else {\n if (res.body && isErrorResponseBody(res.body)) {\n throw new XRPCError(resCode, res.body.error, res.body.message)\n } else {\n throw new XRPCError(resCode)\n }\n }\n }\n}\n\nasync function defaultFetchHandler(\n httpUri: string,\n httpMethod: string,\n httpHeaders: Headers,\n httpReqBody: unknown,\n): Promise<FetchHandlerResponse> {\n try {\n const res = await fetch(httpUri, {\n method: httpMethod,\n headers: httpHeaders,\n body: encodeMethodCallBody(httpHeaders, httpReqBody),\n })\n const resBody = await res.arrayBuffer()\n return {\n status: res.status,\n headers: Object.fromEntries(res.headers.entries()),\n body: httpResponseBodyParse(res.headers.get('content-type'), resBody),\n }\n } catch (e) {\n throw new XRPCError(ResponseType.Unknown, String(e))\n }\n}\n\nfunction isErrorResponseBody(v: unknown): v is ErrorResponseBody {\n return errorResponseBody.safeParse(v).success\n}\n", "export * from './types'\nexport * from './client'\n\nimport { Client } from './client'\nconst defaultInst = new Client()\nexport default defaultInst\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { LexiconDoc, Lexicons } from '@atproto/lexicon'\n\nexport const schemaDict = {\n ComAtprotoAccountCreate: {\n lexicon: 1,\n id: 'com.atproto.account.create',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create an account.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['handle', 'email', 'password'],\n properties: {\n email: {\n type: 'string',\n },\n handle: {\n type: 'string',\n },\n inviteCode: {\n type: 'string',\n },\n password: {\n type: 'string',\n },\n recoveryKey: {\n type: 'string',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['accessJwt', 'refreshJwt', 'handle', 'did'],\n properties: {\n accessJwt: {\n type: 'string',\n },\n refreshJwt: {\n type: 'string',\n },\n handle: {\n type: 'string',\n },\n did: {\n type: 'string',\n },\n },\n },\n },\n errors: [\n {\n name: 'InvalidHandle',\n },\n {\n name: 'InvalidPassword',\n },\n {\n name: 'InvalidInviteCode',\n },\n {\n name: 'HandleNotAvailable',\n },\n ],\n },\n },\n },\n ComAtprotoAccountCreateInviteCode: {\n lexicon: 1,\n id: 'com.atproto.account.createInviteCode',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create an invite code.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['useCount'],\n properties: {\n useCount: {\n type: 'integer',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['code'],\n properties: {\n code: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoAccountDelete: {\n lexicon: 1,\n id: 'com.atproto.account.delete',\n defs: {\n main: {\n type: 'procedure',\n description: 'Delete an account.',\n },\n },\n },\n ComAtprotoAccountGet: {\n lexicon: 1,\n id: 'com.atproto.account.get',\n defs: {\n main: {\n type: 'query',\n description: 'Get information about an account.',\n },\n },\n },\n ComAtprotoAccountRequestPasswordReset: {\n lexicon: 1,\n id: 'com.atproto.account.requestPasswordReset',\n defs: {\n main: {\n type: 'procedure',\n description: 'Initiate a user account password reset via email.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['email'],\n properties: {\n email: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoAccountResetPassword: {\n lexicon: 1,\n id: 'com.atproto.account.resetPassword',\n defs: {\n main: {\n type: 'procedure',\n description: 'Reset a user account password using a token.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['token', 'password'],\n properties: {\n token: {\n type: 'string',\n },\n password: {\n type: 'string',\n },\n },\n },\n },\n errors: [\n {\n name: 'ExpiredToken',\n },\n {\n name: 'InvalidToken',\n },\n ],\n },\n },\n },\n ComAtprotoBlobUpload: {\n lexicon: 1,\n id: 'com.atproto.blob.upload',\n defs: {\n main: {\n type: 'procedure',\n description:\n 'Upload a new blob to be added to repo in a later request.',\n input: {\n encoding: '*/*',\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['cid'],\n properties: {\n cid: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoHandleResolve: {\n lexicon: 1,\n id: 'com.atproto.handle.resolve',\n defs: {\n main: {\n type: 'query',\n description: 'Provides the DID of a repo.',\n parameters: {\n type: 'params',\n properties: {\n handle: {\n type: 'string',\n description:\n \"The handle to resolve. If not supplied, will resolve the host's own handle.\",\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoBatchWrite: {\n lexicon: 1,\n id: 'com.atproto.repo.batchWrite',\n defs: {\n main: {\n type: 'procedure',\n description: 'Apply a batch transaction of creates, puts, and deletes.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did', 'writes'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n validate: {\n type: 'boolean',\n default: true,\n description: 'Validate the records?',\n },\n writes: {\n type: 'array',\n items: {\n type: 'union',\n refs: [\n 'lex:com.atproto.repo.batchWrite#create',\n 'lex:com.atproto.repo.batchWrite#update',\n 'lex:com.atproto.repo.batchWrite#delete',\n ],\n closed: true,\n },\n },\n },\n },\n },\n },\n create: {\n type: 'object',\n required: ['action', 'collection', 'value'],\n properties: {\n action: {\n type: 'string',\n const: 'create',\n },\n collection: {\n type: 'string',\n },\n rkey: {\n type: 'string',\n },\n value: {\n type: 'unknown',\n },\n },\n },\n update: {\n type: 'object',\n required: ['action', 'collection', 'rkey', 'value'],\n properties: {\n action: {\n type: 'string',\n const: 'update',\n },\n collection: {\n type: 'string',\n },\n rkey: {\n type: 'string',\n },\n value: {\n type: 'unknown',\n },\n },\n },\n delete: {\n type: 'object',\n required: ['action', 'collection', 'rkey'],\n properties: {\n action: {\n type: 'string',\n const: 'delete',\n },\n collection: {\n type: 'string',\n },\n rkey: {\n type: 'string',\n },\n },\n },\n },\n },\n ComAtprotoRepoCreateRecord: {\n lexicon: 1,\n id: 'com.atproto.repo.createRecord',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create a new record.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did', 'collection', 'record'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n collection: {\n type: 'string',\n description: 'The NSID of the record collection.',\n },\n validate: {\n type: 'boolean',\n default: true,\n description: 'Validate the record?',\n },\n record: {\n type: 'unknown',\n description: 'The record to create.',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'cid'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoDeleteRecord: {\n lexicon: 1,\n id: 'com.atproto.repo.deleteRecord',\n defs: {\n main: {\n type: 'procedure',\n description: 'Delete a record.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did', 'collection', 'rkey'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n collection: {\n type: 'string',\n description: 'The NSID of the record collection.',\n },\n rkey: {\n type: 'string',\n description: 'The key of the record.',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoDescribe: {\n lexicon: 1,\n id: 'com.atproto.repo.describe',\n defs: {\n main: {\n type: 'query',\n description:\n 'Get information about the repo, including the list of collections.',\n parameters: {\n type: 'params',\n required: ['user'],\n properties: {\n user: {\n type: 'string',\n description: 'The handle or DID of the repo.',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: [\n 'handle',\n 'did',\n 'didDoc',\n 'collections',\n 'handleIsCorrect',\n ],\n properties: {\n handle: {\n type: 'string',\n },\n did: {\n type: 'string',\n },\n didDoc: {\n type: 'unknown',\n },\n collections: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n handleIsCorrect: {\n type: 'boolean',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoGetRecord: {\n lexicon: 1,\n id: 'com.atproto.repo.getRecord',\n defs: {\n main: {\n type: 'query',\n description: 'Fetch a record.',\n parameters: {\n type: 'params',\n required: ['user', 'collection', 'rkey'],\n properties: {\n user: {\n type: 'string',\n description: 'The handle or DID of the repo.',\n },\n collection: {\n type: 'string',\n description: 'The NSID of the collection.',\n },\n rkey: {\n type: 'string',\n description: 'The key of the record.',\n },\n cid: {\n type: 'string',\n description:\n 'The CID of the version of the record. If not specified, then return the most recent version.',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'value'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n value: {\n type: 'unknown',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoListRecords: {\n lexicon: 1,\n id: 'com.atproto.repo.listRecords',\n defs: {\n main: {\n type: 'query',\n description: 'List a range of records in a collection.',\n parameters: {\n type: 'params',\n required: ['user', 'collection'],\n properties: {\n user: {\n type: 'string',\n description: 'The handle or DID of the repo.',\n },\n collection: {\n type: 'string',\n description: 'The NSID of the record type.',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n description: 'The number of records to return.',\n },\n before: {\n type: 'string',\n description: 'A TID to filter the range of records returned.',\n },\n after: {\n type: 'string',\n description: 'A TID to filter the range of records returned.',\n },\n reverse: {\n type: 'boolean',\n description: 'Reverse the order of the returned records?',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['records'],\n properties: {\n cursor: {\n type: 'string',\n },\n records: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.listRecords#record',\n },\n },\n },\n },\n },\n },\n record: {\n type: 'object',\n required: ['uri', 'cid', 'value'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n value: {\n type: 'unknown',\n },\n },\n },\n },\n },\n ComAtprotoRepoPutRecord: {\n lexicon: 1,\n id: 'com.atproto.repo.putRecord',\n defs: {\n main: {\n type: 'procedure',\n description: 'Write a record.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did', 'collection', 'rkey', 'record'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n collection: {\n type: 'string',\n description: 'The NSID of the record type.',\n },\n rkey: {\n type: 'string',\n description: 'The TID of the record.',\n },\n validate: {\n type: 'boolean',\n default: true,\n description: 'Validate the record?',\n },\n record: {\n type: 'unknown',\n description: 'The record to create.',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'cid'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoStrongRef: {\n lexicon: 1,\n id: 'com.atproto.repo.strongRef',\n description: 'A URI with a content-hash fingerprint.',\n defs: {\n main: {\n type: 'object',\n required: ['uri', 'cid'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n },\n },\n },\n },\n ComAtprotoServerGetAccountsConfig: {\n lexicon: 1,\n id: 'com.atproto.server.getAccountsConfig',\n defs: {\n main: {\n type: 'query',\n description:\n \"Get a document describing the service's accounts configuration.\",\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['availableUserDomains'],\n properties: {\n inviteCodeRequired: {\n type: 'boolean',\n },\n availableUserDomains: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n links: {\n type: 'ref',\n ref: 'lex:com.atproto.server.getAccountsConfig#links',\n },\n },\n },\n },\n },\n links: {\n type: 'object',\n properties: {\n privacyPolicy: {\n type: 'string',\n },\n termsOfService: {\n type: 'string',\n },\n },\n },\n },\n },\n ComAtprotoSessionCreate: {\n lexicon: 1,\n id: 'com.atproto.session.create',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create an authentication session.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['handle', 'password'],\n properties: {\n handle: {\n type: 'string',\n },\n password: {\n type: 'string',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['accessJwt', 'refreshJwt', 'handle', 'did'],\n properties: {\n accessJwt: {\n type: 'string',\n },\n refreshJwt: {\n type: 'string',\n },\n handle: {\n type: 'string',\n },\n did: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoSessionDelete: {\n lexicon: 1,\n id: 'com.atproto.session.delete',\n defs: {\n main: {\n type: 'procedure',\n description: 'Delete the current session.',\n },\n },\n },\n ComAtprotoSessionGet: {\n lexicon: 1,\n id: 'com.atproto.session.get',\n defs: {\n main: {\n type: 'query',\n description: 'Get information about the current session.',\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['handle', 'did'],\n properties: {\n handle: {\n type: 'string',\n },\n did: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoSessionRefresh: {\n lexicon: 1,\n id: 'com.atproto.session.refresh',\n defs: {\n main: {\n type: 'procedure',\n description: 'Refresh an authentication session.',\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['accessJwt', 'refreshJwt', 'handle', 'did'],\n properties: {\n accessJwt: {\n type: 'string',\n },\n refreshJwt: {\n type: 'string',\n },\n handle: {\n type: 'string',\n },\n did: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoSyncGetRepo: {\n lexicon: 1,\n id: 'com.atproto.sync.getRepo',\n defs: {\n main: {\n type: 'query',\n description: 'Gets the repo state.',\n parameters: {\n type: 'params',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n from: {\n type: 'string',\n description: 'A past commit CID.',\n },\n },\n },\n output: {\n encoding: 'application/cbor',\n },\n },\n },\n },\n ComAtprotoSyncGetRoot: {\n lexicon: 1,\n id: 'com.atproto.sync.getRoot',\n defs: {\n main: {\n type: 'query',\n description: 'Gets the current root CID of a repo.',\n parameters: {\n type: 'params',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['root'],\n properties: {\n root: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoSyncUpdateRepo: {\n lexicon: 1,\n id: 'com.atproto.sync.updateRepo',\n defs: {\n main: {\n type: 'procedure',\n description: 'Writes commits to a repo.',\n parameters: {\n type: 'params',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n },\n },\n input: {\n encoding: 'application/cbor',\n },\n },\n },\n },\n AppBskyActorCreateScene: {\n lexicon: 1,\n id: 'app.bsky.actor.createScene',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create a scene.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['handle'],\n properties: {\n handle: {\n type: 'string',\n },\n recoveryKey: {\n type: 'string',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['handle', 'did', 'declaration'],\n properties: {\n handle: {\n type: 'string',\n },\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n },\n },\n },\n errors: [\n {\n name: 'InvalidHandle',\n },\n {\n name: 'HandleNotAvailable',\n },\n ],\n },\n },\n },\n AppBskyActorGetProfile: {\n lexicon: 1,\n id: 'app.bsky.actor.getProfile',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n required: ['actor'],\n properties: {\n actor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: [\n 'did',\n 'declaration',\n 'handle',\n 'creator',\n 'followersCount',\n 'followsCount',\n 'membersCount',\n 'postsCount',\n ],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n creator: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n description: {\n type: 'string',\n maxLength: 256,\n },\n avatar: {\n type: 'string',\n },\n banner: {\n type: 'string',\n },\n followersCount: {\n type: 'integer',\n },\n followsCount: {\n type: 'integer',\n },\n membersCount: {\n type: 'integer',\n },\n postsCount: {\n type: 'integer',\n },\n myState: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.getProfile#myState',\n },\n },\n },\n },\n },\n myState: {\n type: 'object',\n properties: {\n follow: {\n type: 'string',\n },\n member: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyActorGetSuggestions: {\n lexicon: 1,\n id: 'app.bsky.actor.getSuggestions',\n defs: {\n main: {\n type: 'query',\n description:\n 'Get a list of actors suggested for following. Used in discovery UIs.',\n parameters: {\n type: 'params',\n properties: {\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['actors'],\n properties: {\n cursor: {\n type: 'string',\n },\n actors: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.getSuggestions#actor',\n },\n },\n },\n },\n },\n },\n actor: {\n type: 'object',\n required: ['did', 'declaration', 'handle'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n description: {\n type: 'string',\n },\n avatar: {\n type: 'string',\n },\n indexedAt: {\n type: 'datetime',\n },\n myState: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.getSuggestions#myState',\n },\n },\n },\n myState: {\n type: 'object',\n properties: {\n follow: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyActorProfile: {\n lexicon: 1,\n id: 'app.bsky.actor.profile',\n defs: {\n main: {\n type: 'record',\n key: 'literal:self',\n record: {\n type: 'object',\n required: ['displayName'],\n properties: {\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n description: {\n type: 'string',\n maxLength: 256,\n },\n avatar: {\n type: 'image',\n accept: ['image/png', 'image/jpeg'],\n maxWidth: 500,\n maxHeight: 500,\n maxSize: 300000,\n },\n banner: {\n type: 'image',\n accept: ['image/png', 'image/jpeg'],\n maxWidth: 1500,\n maxHeight: 500,\n maxSize: 500000,\n },\n },\n },\n },\n },\n },\n AppBskyActorRef: {\n lexicon: 1,\n id: 'app.bsky.actor.ref',\n description: 'A reference to an actor in the network.',\n defs: {\n main: {\n type: 'object',\n required: ['did', 'declarationCid'],\n properties: {\n did: {\n type: 'string',\n },\n declarationCid: {\n type: 'string',\n },\n },\n },\n withInfo: {\n type: 'object',\n required: ['did', 'declaration', 'handle'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyActorSearch: {\n lexicon: 1,\n id: 'app.bsky.actor.search',\n defs: {\n main: {\n type: 'query',\n description: 'Find users matching search criteria.',\n parameters: {\n type: 'params',\n required: ['term'],\n properties: {\n term: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['users'],\n properties: {\n cursor: {\n type: 'string',\n },\n users: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.search#user',\n },\n },\n },\n },\n },\n },\n user: {\n type: 'object',\n required: ['did', 'declaration', 'handle'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n description: {\n type: 'string',\n },\n indexedAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyActorSearchTypeahead: {\n lexicon: 1,\n id: 'app.bsky.actor.searchTypeahead',\n defs: {\n main: {\n type: 'query',\n description: 'Find user suggestions for a search term.',\n parameters: {\n type: 'params',\n required: ['term'],\n properties: {\n term: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['users'],\n properties: {\n users: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.searchTypeahead#user',\n },\n },\n },\n },\n },\n },\n user: {\n type: 'object',\n required: ['did', 'declaration', 'handle'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyActorUpdateProfile: {\n lexicon: 1,\n id: 'app.bsky.actor.updateProfile',\n defs: {\n main: {\n type: 'procedure',\n description: 'Notify server that the user has seen notifications.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n properties: {\n did: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n description: {\n type: 'string',\n maxLength: 256,\n },\n avatar: {\n type: 'image',\n accept: ['image/png', 'image/jpeg'],\n maxWidth: 500,\n maxHeight: 500,\n maxSize: 100000,\n },\n banner: {\n type: 'image',\n accept: ['image/png', 'image/jpeg'],\n maxWidth: 1500,\n maxHeight: 500,\n maxSize: 500000,\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'cid', 'record'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n record: {\n type: 'unknown',\n },\n },\n },\n },\n errors: [\n {\n name: 'InvalidBlob',\n },\n {\n name: 'BlobTooLarge',\n },\n {\n name: 'InvalidMimeType',\n },\n {\n name: 'InvalidImageDimensions',\n },\n ],\n },\n },\n },\n AppBskyEmbedExternal: {\n lexicon: 1,\n id: 'app.bsky.embed.external',\n description:\n 'An representation of some externally linked content, embedded in another form of content',\n defs: {\n main: {\n type: 'object',\n required: ['external'],\n properties: {\n external: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.external#external',\n },\n },\n },\n external: {\n type: 'object',\n required: ['uri', 'title', 'description'],\n properties: {\n uri: {\n type: 'string',\n },\n title: {\n type: 'string',\n },\n description: {\n type: 'string',\n },\n thumb: {\n type: 'image',\n accept: ['image/*'],\n maxWidth: 250,\n maxHeight: 250,\n maxSize: 100000,\n },\n },\n },\n presented: {\n type: 'object',\n required: ['external'],\n properties: {\n external: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.external#presentedExternal',\n },\n },\n },\n presentedExternal: {\n type: 'object',\n required: ['uri', 'title', 'description'],\n properties: {\n uri: {\n type: 'string',\n },\n title: {\n type: 'string',\n },\n description: {\n type: 'string',\n },\n thumb: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyEmbedImages: {\n lexicon: 1,\n id: 'app.bsky.embed.images',\n description: 'A set of images embedded in some other form of content',\n defs: {\n main: {\n type: 'object',\n required: ['images'],\n properties: {\n images: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.images#image',\n },\n maxLength: 4,\n },\n },\n },\n image: {\n type: 'object',\n required: ['image', 'alt'],\n properties: {\n image: {\n type: 'image',\n accept: ['image/*'],\n maxWidth: 500,\n maxHeight: 500,\n maxSize: 300000,\n },\n alt: {\n type: 'string',\n },\n },\n },\n presented: {\n type: 'object',\n required: ['images'],\n properties: {\n images: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.images#presentedImage',\n },\n maxLength: 4,\n },\n },\n },\n presentedImage: {\n type: 'object',\n required: ['thumb', 'fullsize', 'alt'],\n properties: {\n thumb: {\n type: 'string',\n },\n fullsize: {\n type: 'string',\n },\n alt: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyFeedFeedViewPost: {\n lexicon: 1,\n id: 'app.bsky.feed.feedViewPost',\n defs: {\n main: {\n type: 'object',\n required: ['post'],\n properties: {\n post: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#view',\n },\n reply: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.feedViewPost#replyRef',\n },\n reason: {\n type: 'union',\n refs: [\n 'lex:app.bsky.feed.feedViewPost#reasonTrend',\n 'lex:app.bsky.feed.feedViewPost#reasonRepost',\n ],\n },\n },\n },\n replyRef: {\n type: 'object',\n required: ['root', 'parent'],\n properties: {\n root: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#view',\n },\n parent: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#view',\n },\n },\n },\n reasonTrend: {\n type: 'object',\n required: ['by', 'indexedAt'],\n properties: {\n by: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n indexedAt: {\n type: 'datetime',\n },\n },\n },\n reasonRepost: {\n type: 'object',\n required: ['by', 'indexedAt'],\n properties: {\n by: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n indexedAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyFeedGetAuthorFeed: {\n lexicon: 1,\n id: 'app.bsky.feed.getAuthorFeed',\n defs: {\n main: {\n type: 'query',\n description: \"A view of a user's feed.\",\n parameters: {\n type: 'params',\n required: ['author'],\n properties: {\n author: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['feed'],\n properties: {\n cursor: {\n type: 'string',\n },\n feed: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.feedViewPost',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyFeedGetPostThread: {\n lexicon: 1,\n id: 'app.bsky.feed.getPostThread',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n },\n depth: {\n type: 'integer',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['thread'],\n properties: {\n thread: {\n type: 'union',\n refs: [\n 'lex:app.bsky.feed.getPostThread#threadViewPost',\n 'lex:app.bsky.feed.getPostThread#notFoundPost',\n ],\n },\n },\n },\n },\n errors: [\n {\n name: 'NotFound',\n },\n ],\n },\n threadViewPost: {\n type: 'object',\n required: ['post'],\n properties: {\n post: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#view',\n },\n parent: {\n type: 'union',\n refs: [\n 'lex:app.bsky.feed.getPostThread#threadViewPost',\n 'lex:app.bsky.feed.getPostThread#notFoundPost',\n ],\n },\n replies: {\n type: 'array',\n items: {\n type: 'union',\n refs: [\n 'lex:app.bsky.feed.getPostThread#threadViewPost',\n 'lex:app.bsky.feed.getPostThread#notFoundPost',\n ],\n },\n },\n },\n },\n notFoundPost: {\n type: 'object',\n required: ['uri', 'notFound'],\n properties: {\n uri: {\n type: 'string',\n },\n notFound: {\n type: 'boolean',\n const: true,\n },\n },\n },\n },\n },\n AppBskyFeedGetRepostedBy: {\n lexicon: 1,\n id: 'app.bsky.feed.getRepostedBy',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'repostedBy'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n cursor: {\n type: 'string',\n },\n repostedBy: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.getRepostedBy#repostedBy',\n },\n },\n },\n },\n },\n },\n repostedBy: {\n type: 'object',\n required: ['did', 'declaration', 'handle', 'indexedAt'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n createdAt: {\n type: 'datetime',\n },\n indexedAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyFeedGetTimeline: {\n lexicon: 1,\n id: 'app.bsky.feed.getTimeline',\n defs: {\n main: {\n type: 'query',\n description: \"A view of the user's home timeline.\",\n parameters: {\n type: 'params',\n properties: {\n algorithm: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['feed'],\n properties: {\n cursor: {\n type: 'string',\n },\n feed: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.feedViewPost',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyFeedGetVotes: {\n lexicon: 1,\n id: 'app.bsky.feed.getVotes',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n direction: {\n type: 'string',\n enum: ['up', 'down'],\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'votes'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n cursor: {\n type: 'string',\n },\n votes: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.getVotes#vote',\n },\n },\n },\n },\n },\n },\n vote: {\n type: 'object',\n required: ['direction', 'indexedAt', 'createdAt', 'actor'],\n properties: {\n direction: {\n type: 'string',\n enum: ['up', 'down'],\n },\n indexedAt: {\n type: 'datetime',\n },\n createdAt: {\n type: 'datetime',\n },\n actor: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n },\n },\n },\n },\n AppBskyFeedPost: {\n lexicon: 1,\n id: 'app.bsky.feed.post',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['text', 'createdAt'],\n properties: {\n text: {\n type: 'string',\n maxLength: 256,\n },\n entities: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#entity',\n },\n },\n reply: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#replyRef',\n },\n embed: {\n type: 'union',\n refs: [\n 'lex:app.bsky.embed.images',\n 'lex:app.bsky.embed.external',\n ],\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n replyRef: {\n type: 'object',\n required: ['root', 'parent'],\n properties: {\n root: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n parent: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n },\n },\n entity: {\n type: 'object',\n required: ['index', 'type', 'value'],\n properties: {\n index: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#textSlice',\n },\n type: {\n type: 'string',\n description:\n \"Expected values are 'mention', 'hashtag', and 'link'.\",\n },\n value: {\n type: 'string',\n },\n },\n },\n textSlice: {\n type: 'object',\n required: ['start', 'end'],\n properties: {\n start: {\n type: 'integer',\n minimum: 0,\n },\n end: {\n type: 'integer',\n minimum: 0,\n },\n },\n },\n view: {\n type: 'object',\n required: [\n 'uri',\n 'cid',\n 'author',\n 'record',\n 'replyCount',\n 'repostCount',\n 'upvoteCount',\n 'downvoteCount',\n 'indexedAt',\n 'viewer',\n ],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n author: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n record: {\n type: 'unknown',\n },\n embed: {\n type: 'union',\n refs: [\n 'lex:app.bsky.embed.images#presented',\n 'lex:app.bsky.embed.external#presented',\n ],\n },\n replyCount: {\n type: 'integer',\n },\n repostCount: {\n type: 'integer',\n },\n upvoteCount: {\n type: 'integer',\n },\n downvoteCount: {\n type: 'integer',\n },\n indexedAt: {\n type: 'datetime',\n },\n viewer: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#viewerState',\n },\n },\n },\n viewerState: {\n type: 'object',\n properties: {\n repost: {\n type: 'string',\n },\n upvote: {\n type: 'string',\n },\n downvote: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyFeedRepost: {\n lexicon: 1,\n id: 'app.bsky.feed.repost',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['subject', 'createdAt'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyFeedSetVote: {\n lexicon: 1,\n id: 'app.bsky.feed.setVote',\n defs: {\n main: {\n type: 'procedure',\n description: \"Upvote, downvote, or clear the user's vote for a post.\",\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['subject', 'direction'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n direction: {\n type: 'string',\n enum: ['up', 'down', 'none'],\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n properties: {\n upvote: {\n type: 'string',\n },\n downvote: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n AppBskyFeedTrend: {\n lexicon: 1,\n id: 'app.bsky.feed.trend',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['subject', 'createdAt'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyFeedVote: {\n lexicon: 1,\n id: 'app.bsky.feed.vote',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['subject', 'direction', 'createdAt'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n direction: {\n type: 'string',\n enum: ['up', 'down'],\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyGraphAssertCreator: {\n lexicon: 1,\n id: 'app.bsky.graph.assertCreator',\n defs: {\n main: {\n type: 'token',\n description:\n \"Assertion type: Creator. Defined for app.bsky.graph.assertions's assertion.\",\n },\n },\n },\n AppBskyGraphAssertMember: {\n lexicon: 1,\n id: 'app.bsky.graph.assertMember',\n defs: {\n main: {\n type: 'token',\n description:\n \"Assertion type: Member. Defined for app.bsky.graph.assertions's assertion.\",\n },\n },\n },\n AppBskyGraphAssertion: {\n lexicon: 1,\n id: 'app.bsky.graph.assertion',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['assertion', 'subject', 'createdAt'],\n properties: {\n assertion: {\n type: 'string',\n },\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref',\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyGraphConfirmation: {\n lexicon: 1,\n id: 'app.bsky.graph.confirmation',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['originator', 'assertion', 'createdAt'],\n properties: {\n originator: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref',\n },\n assertion: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyGraphFollow: {\n lexicon: 1,\n id: 'app.bsky.graph.follow',\n defs: {\n main: {\n type: 'record',\n description: 'A social follow.',\n key: 'tid',\n record: {\n type: 'object',\n required: ['subject', 'createdAt'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref',\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyGraphGetAssertions: {\n lexicon: 1,\n id: 'app.bsky.graph.getAssertions',\n defs: {\n main: {\n type: 'query',\n description: 'General-purpose query for assertions.',\n parameters: {\n type: 'params',\n properties: {\n author: {\n type: 'string',\n },\n subject: {\n type: 'string',\n },\n assertion: {\n type: 'string',\n },\n confirmed: {\n type: 'boolean',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['assertions'],\n properties: {\n cursor: {\n type: 'string',\n },\n assertions: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.getAssertions#assertion',\n },\n },\n },\n },\n },\n },\n assertion: {\n type: 'object',\n required: [\n 'uri',\n 'cid',\n 'assertion',\n 'author',\n 'subject',\n 'indexedAt',\n 'createdAt',\n ],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n assertion: {\n type: 'string',\n },\n confirmation: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.getAssertions#confirmation',\n },\n author: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n indexedAt: {\n type: 'datetime',\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n confirmation: {\n type: 'object',\n required: ['uri', 'cid', 'indexedAt', 'createdAt'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n indexedAt: {\n type: 'datetime',\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyGraphGetFollowers: {\n lexicon: 1,\n id: 'app.bsky.graph.getFollowers',\n defs: {\n main: {\n type: 'query',\n description: 'Who is following a user?',\n parameters: {\n type: 'params',\n required: ['user'],\n properties: {\n user: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['subject', 'followers'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n cursor: {\n type: 'string',\n },\n followers: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.getFollowers#follower',\n },\n },\n },\n },\n },\n },\n follower: {\n type: 'object',\n required: ['did', 'declaration', 'handle', 'indexedAt'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n createdAt: {\n type: 'datetime',\n },\n indexedAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyGraphGetFollows: {\n lexicon: 1,\n id: 'app.bsky.graph.getFollows',\n defs: {\n main: {\n type: 'query',\n description: 'Who is a user following?',\n parameters: {\n type: 'params',\n required: ['user'],\n properties: {\n user: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['subject', 'follows'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n cursor: {\n type: 'string',\n },\n follows: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.getFollows#follow',\n },\n },\n },\n },\n },\n },\n follow: {\n type: 'object',\n required: ['did', 'declaration', 'handle', 'indexedAt'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n createdAt: {\n type: 'datetime',\n },\n indexedAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyGraphGetMembers: {\n lexicon: 1,\n id: 'app.bsky.graph.getMembers',\n defs: {\n main: {\n type: 'query',\n description: 'Who is a member of the group?',\n parameters: {\n type: 'params',\n required: ['actor'],\n properties: {\n actor: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['subject', 'members'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n cursor: {\n type: 'string',\n },\n members: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.getMembers#member',\n },\n },\n },\n },\n },\n },\n member: {\n type: 'object',\n required: ['did', 'declaration', 'handle', 'indexedAt'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n createdAt: {\n type: 'datetime',\n },\n indexedAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyGraphGetMemberships: {\n lexicon: 1,\n id: 'app.bsky.graph.getMemberships',\n defs: {\n main: {\n type: 'query',\n description: 'Which groups is the actor a member of?',\n parameters: {\n type: 'params',\n required: ['actor'],\n properties: {\n actor: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['subject', 'memberships'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n cursor: {\n type: 'string',\n },\n memberships: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.getMemberships#membership',\n },\n },\n },\n },\n },\n },\n membership: {\n type: 'object',\n required: ['did', 'declaration', 'handle', 'indexedAt'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n createdAt: {\n type: 'datetime',\n },\n indexedAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyNotificationGetCount: {\n lexicon: 1,\n id: 'app.bsky.notification.getCount',\n defs: {\n main: {\n type: 'query',\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['count'],\n properties: {\n count: {\n type: 'integer',\n },\n },\n },\n },\n },\n },\n },\n AppBskyNotificationList: {\n lexicon: 1,\n id: 'app.bsky.notification.list',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n properties: {\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['notifications'],\n properties: {\n cursor: {\n type: 'string',\n },\n notifications: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.notification.list#notification',\n },\n },\n },\n },\n },\n },\n notification: {\n type: 'object',\n required: [\n 'uri',\n 'cid',\n 'author',\n 'reason',\n 'record',\n 'isRead',\n 'indexedAt',\n ],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n author: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n reason: {\n type: 'string',\n description:\n \"Expected values are 'vote', 'repost', 'trend', 'follow', 'invite', 'mention' and 'reply'.\",\n knownValues: [\n 'vote',\n 'repost',\n 'trend',\n 'follow',\n 'invite',\n 'mention',\n 'reply',\n ],\n },\n reasonSubject: {\n type: 'string',\n },\n record: {\n type: 'unknown',\n },\n isRead: {\n type: 'boolean',\n },\n indexedAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyNotificationUpdateSeen: {\n lexicon: 1,\n id: 'app.bsky.notification.updateSeen',\n defs: {\n main: {\n type: 'procedure',\n description: 'Notify server that the user has seen notifications.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['seenAt'],\n properties: {\n seenAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n },\n },\n AppBskySystemActorScene: {\n lexicon: 1,\n id: 'app.bsky.system.actorScene',\n defs: {\n main: {\n type: 'token',\n description:\n \"Actor type: Scene. Defined for app.bsky.system.declaration's actorType.\",\n },\n },\n },\n AppBskySystemActorUser: {\n lexicon: 1,\n id: 'app.bsky.system.actorUser',\n defs: {\n main: {\n type: 'token',\n description:\n \"Actor type: User. Defined for app.bsky.system.declaration's actorType.\",\n },\n },\n },\n AppBskySystemDeclRef: {\n lexicon: 1,\n id: 'app.bsky.system.declRef',\n defs: {\n main: {\n description: 'A reference to a app.bsky.system.declaration record.',\n type: 'object',\n required: ['cid', 'actorType'],\n properties: {\n cid: {\n type: 'string',\n },\n actorType: {\n type: 'string',\n knownValues: [\n 'app.bsky.system.actorUser',\n 'app.bsky.system.actorScene',\n ],\n },\n },\n },\n },\n },\n AppBskySystemDeclaration: {\n lexicon: 1,\n id: 'app.bsky.system.declaration',\n defs: {\n main: {\n description:\n 'Context for an account that is considered intrinsic to it and alters the fundamental understanding of an account of changed. A declaration should be treated as immutable.',\n type: 'record',\n key: 'literal:self',\n record: {\n type: 'object',\n required: ['actorType'],\n properties: {\n actorType: {\n type: 'string',\n knownValues: [\n 'app.bsky.system.actorUser',\n 'app.bsky.system.actorScene',\n ],\n },\n },\n },\n },\n },\n },\n}\nexport const schemas: LexiconDoc[] = Object.values(schemaDict) as LexiconDoc[]\nexport const lexicons: Lexicons = new Lexicons(schemas)\nexport const ids = {\n ComAtprotoAccountCreate: 'com.atproto.account.create',\n ComAtprotoAccountCreateInviteCode: 'com.atproto.account.createInviteCode',\n ComAtprotoAccountDelete: 'com.atproto.account.delete',\n ComAtprotoAccountGet: 'com.atproto.account.get',\n ComAtprotoAccountRequestPasswordReset:\n 'com.atproto.account.requestPasswordReset',\n ComAtprotoAccountResetPassword: 'com.atproto.account.resetPassword',\n ComAtprotoBlobUpload: 'com.atproto.blob.upload',\n ComAtprotoHandleResolve: 'com.atproto.handle.resolve',\n ComAtprotoRepoBatchWrite: 'com.atproto.repo.batchWrite',\n ComAtprotoRepoCreateRecord: 'com.atproto.repo.createRecord',\n ComAtprotoRepoDeleteRecord: 'com.atproto.repo.deleteRecord',\n ComAtprotoRepoDescribe: 'com.atproto.repo.describe',\n ComAtprotoRepoGetRecord: 'com.atproto.repo.getRecord',\n ComAtprotoRepoListRecords: 'com.atproto.repo.listRecords',\n ComAtprotoRepoPutRecord: 'com.atproto.repo.putRecord',\n ComAtprotoRepoStrongRef: 'com.atproto.repo.strongRef',\n ComAtprotoServerGetAccountsConfig: 'com.atproto.server.getAccountsConfig',\n ComAtprotoSessionCreate: 'com.atproto.session.create',\n ComAtprotoSessionDelete: 'com.atproto.session.delete',\n ComAtprotoSessionGet: 'com.atproto.session.get',\n ComAtprotoSessionRefresh: 'com.atproto.session.refresh',\n ComAtprotoSyncGetRepo: 'com.atproto.sync.getRepo',\n ComAtprotoSyncGetRoot: 'com.atproto.sync.getRoot',\n ComAtprotoSyncUpdateRepo: 'com.atproto.sync.updateRepo',\n AppBskyActorCreateScene: 'app.bsky.actor.createScene',\n AppBskyActorGetProfile: 'app.bsky.actor.getProfile',\n AppBskyActorGetSuggestions: 'app.bsky.actor.getSuggestions',\n AppBskyActorProfile: 'app.bsky.actor.profile',\n AppBskyActorRef: 'app.bsky.actor.ref',\n AppBskyActorSearch: 'app.bsky.actor.search',\n AppBskyActorSearchTypeahead: 'app.bsky.actor.searchTypeahead',\n AppBskyActorUpdateProfile: 'app.bsky.actor.updateProfile',\n AppBskyEmbedExternal: 'app.bsky.embed.external',\n AppBskyEmbedImages: 'app.bsky.embed.images',\n AppBskyFeedFeedViewPost: 'app.bsky.feed.feedViewPost',\n AppBskyFeedGetAuthorFeed: 'app.bsky.feed.getAuthorFeed',\n AppBskyFeedGetPostThread: 'app.bsky.feed.getPostThread',\n AppBskyFeedGetRepostedBy: 'app.bsky.feed.getRepostedBy',\n AppBskyFeedGetTimeline: 'app.bsky.feed.getTimeline',\n AppBskyFeedGetVotes: 'app.bsky.feed.getVotes',\n AppBskyFeedPost: 'app.bsky.feed.post',\n AppBskyFeedRepost: 'app.bsky.feed.repost',\n AppBskyFeedSetVote: 'app.bsky.feed.setVote',\n AppBskyFeedTrend: 'app.bsky.feed.trend',\n AppBskyFeedVote: 'app.bsky.feed.vote',\n AppBskyGraphAssertCreator: 'app.bsky.graph.assertCreator',\n AppBskyGraphAssertMember: 'app.bsky.graph.assertMember',\n AppBskyGraphAssertion: 'app.bsky.graph.assertion',\n AppBskyGraphConfirmation: 'app.bsky.graph.confirmation',\n AppBskyGraphFollow: 'app.bsky.graph.follow',\n AppBskyGraphGetAssertions: 'app.bsky.graph.getAssertions',\n AppBskyGraphGetFollowers: 'app.bsky.graph.getFollowers',\n AppBskyGraphGetFollows: 'app.bsky.graph.getFollows',\n AppBskyGraphGetMembers: 'app.bsky.graph.getMembers',\n AppBskyGraphGetMemberships: 'app.bsky.graph.getMemberships',\n AppBskyNotificationGetCount: 'app.bsky.notification.getCount',\n AppBskyNotificationList: 'app.bsky.notification.list',\n AppBskyNotificationUpdateSeen: 'app.bsky.notification.updateSeen',\n AppBskySystemActorScene: 'app.bsky.system.actorScene',\n AppBskySystemActorUser: 'app.bsky.system.actorUser',\n AppBskySystemDeclRef: 'app.bsky.system.declRef',\n AppBskySystemDeclaration: 'app.bsky.system.declaration',\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n email: string\n handle: string\n inviteCode?: string\n password: string\n recoveryKey?: string\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n accessJwt: string\n refreshJwt: string\n handle: string\n did: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class InvalidHandleError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidPasswordError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidInviteCodeError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class HandleNotAvailableError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'InvalidHandle') return new InvalidHandleError(e)\n if (e.error === 'InvalidPassword') return new InvalidPasswordError(e)\n if (e.error === 'InvalidInviteCode') return new InvalidInviteCodeError(e)\n if (e.error === 'HandleNotAvailable') return new HandleNotAvailableError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n useCount: number\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n code: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n email: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n token: string\n password: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport class ExpiredTokenError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidTokenError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'ExpiredToken') return new ExpiredTokenError(e)\n if (e.error === 'InvalidToken') return new InvalidTokenError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport type InputSchema = string | Uint8Array\n\nexport interface OutputSchema {\n cid: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: string\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {\n /** The handle to resolve. If not supplied, will resolve the host's own handle. */\n handle?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n did: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The DID of the repo. */\n did: string\n /** Validate the records? */\n validate?: boolean\n writes: (Create | Update | Delete)[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Create {\n action: 'create'\n collection: string\n rkey?: string\n value: {}\n [k: string]: unknown\n}\n\nexport interface Update {\n action: 'update'\n collection: string\n rkey: string\n value: {}\n [k: string]: unknown\n}\n\nexport interface Delete {\n action: 'delete'\n collection: string\n rkey: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The DID of the repo. */\n did: string\n /** The NSID of the record collection. */\n collection: string\n /** Validate the record? */\n validate?: boolean\n /** The record to create. */\n record: {}\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n uri: string\n cid: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The DID of the repo. */\n did: string\n /** The NSID of the record collection. */\n collection: string\n /** The key of the record. */\n rkey: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {\n /** The handle or DID of the repo. */\n user: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n handle: string\n did: string\n didDoc: {}\n collections: string[]\n handleIsCorrect: boolean\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {\n /** The handle or DID of the repo. */\n user: string\n /** The NSID of the collection. */\n collection: string\n /** The key of the record. */\n rkey: string\n /** The CID of the version of the record. If not specified, then return the most recent version. */\n cid?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n uri: string\n cid?: string\n value: {}\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {\n /** The handle or DID of the repo. */\n user: string\n /** The NSID of the record type. */\n collection: string\n /** The number of records to return. */\n limit?: number\n /** A TID to filter the range of records returned. */\n before?: string\n /** A TID to filter the range of records returned. */\n after?: string\n /** Reverse the order of the returned records? */\n reverse?: boolean\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n records: Record[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Record {\n uri: string\n cid: string\n value: {}\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The DID of the repo. */\n did: string\n /** The NSID of the record type. */\n collection: string\n /** The TID of the record. */\n rkey: string\n /** Validate the record? */\n validate?: boolean\n /** The record to create. */\n record: {}\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n uri: string\n cid: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n inviteCodeRequired?: boolean\n availableUserDomains: string[]\n links?: Links\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Links {\n privacyPolicy?: string\n termsOfService?: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n handle: string\n password: string\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n accessJwt: string\n refreshJwt: string\n handle: string\n did: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n handle: string\n did: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n accessJwt: string\n refreshJwt: string\n handle: string\n did: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n /** A past commit CID. */\n from?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: Uint8Array\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n root: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n}\n\nexport type InputSchema = string | Uint8Array\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/cbor'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n handle: string\n recoveryKey?: string\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n handle: string\n did: string\n declaration: AppBskySystemDeclRef.Main\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class InvalidHandleError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class HandleNotAvailableError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'InvalidHandle') return new InvalidHandleError(e)\n if (e.error === 'HandleNotAvailable') return new HandleNotAvailableError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n actor: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n creator: string\n displayName?: string\n description?: string\n avatar?: string\n banner?: string\n followersCount: number\n followsCount: number\n membersCount: number\n postsCount: number\n myState?: MyState\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface MyState {\n follow?: string\n member?: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n actors: Actor[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Actor {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n description?: string\n avatar?: string\n indexedAt?: string\n myState?: MyState\n [k: string]: unknown\n}\n\nexport interface MyState {\n follow?: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n term: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n users: User[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface User {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n description?: string\n indexedAt?: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n term: string\n limit?: number\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n users: User[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface User {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n did?: string\n displayName?: string\n description?: string\n avatar?: { cid: string; mimeType: string; [k: string]: unknown }\n banner?: { cid: string; mimeType: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n uri: string\n cid: string\n record: {}\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class InvalidBlobError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class BlobTooLargeError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidMimeTypeError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidImageDimensionsError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'InvalidBlob') return new InvalidBlobError(e)\n if (e.error === 'BlobTooLarge') return new BlobTooLargeError(e)\n if (e.error === 'InvalidMimeType') return new InvalidMimeTypeError(e)\n if (e.error === 'InvalidImageDimensions')\n return new InvalidImageDimensionsError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskyFeedFeedViewPost from './feedViewPost'\n\nexport interface QueryParams {\n author: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n feed: AppBskyFeedFeedViewPost.Main[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskyFeedPost from './post'\n\nexport interface QueryParams {\n uri: string\n depth?: number\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n thread:\n | ThreadViewPost\n | NotFoundPost\n | { $type: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class NotFoundError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'NotFound') return new NotFoundError(e)\n }\n return e\n}\n\nexport interface ThreadViewPost {\n post: AppBskyFeedPost.View\n parent?:\n | ThreadViewPost\n | NotFoundPost\n | { $type: string; [k: string]: unknown }\n replies?: (\n | ThreadViewPost\n | NotFoundPost\n | { $type: string; [k: string]: unknown }\n )[]\n [k: string]: unknown\n}\n\nexport interface NotFoundPost {\n uri: string\n notFound: true\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n uri: string\n cid?: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n uri: string\n cid?: string\n cursor?: string\n repostedBy: RepostedBy[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface RepostedBy {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n createdAt?: string\n indexedAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskyFeedFeedViewPost from './feedViewPost'\n\nexport interface QueryParams {\n algorithm?: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n feed: AppBskyFeedFeedViewPost.Main[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface QueryParams {\n uri: string\n cid?: string\n direction?: 'up' | 'down'\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n uri: string\n cid?: string\n cursor?: string\n votes: Vote[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Vote {\n direction: 'up' | 'down'\n indexedAt: string\n createdAt: string\n actor: AppBskyActorRef.WithInfo\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n subject: ComAtprotoRepoStrongRef.Main\n direction: 'up' | 'down' | 'none'\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n upvote?: string\n downvote?: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface QueryParams {\n author?: string\n subject?: string\n assertion?: string\n confirmed?: boolean\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n assertions: Assertion[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Assertion {\n uri: string\n cid: string\n assertion: string\n confirmation?: Confirmation\n author: AppBskyActorRef.WithInfo\n subject: AppBskyActorRef.WithInfo\n indexedAt: string\n createdAt: string\n [k: string]: unknown\n}\n\nexport interface Confirmation {\n uri: string\n cid: string\n indexedAt: string\n createdAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskyActorRef from '../actor/ref'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n user: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n subject: AppBskyActorRef.WithInfo\n cursor?: string\n followers: Follower[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Follower {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n createdAt?: string\n indexedAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskyActorRef from '../actor/ref'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n user: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n subject: AppBskyActorRef.WithInfo\n cursor?: string\n follows: Follow[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Follow {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n createdAt?: string\n indexedAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskyActorRef from '../actor/ref'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n actor: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n subject: AppBskyActorRef.WithInfo\n cursor?: string\n members: Member[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Member {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n createdAt?: string\n indexedAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskyActorRef from '../actor/ref'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n actor: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n subject: AppBskyActorRef.WithInfo\n cursor?: string\n memberships: Membership[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Membership {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n createdAt?: string\n indexedAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n count: number\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface QueryParams {\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n notifications: Notification[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Notification {\n uri: string\n cid: string\n author: AppBskyActorRef.WithInfo\n /** Expected values are 'vote', 'repost', 'trend', 'follow', 'invite', 'mention' and 'reply'. */\n reason:\n | 'vote'\n | 'repost'\n | 'trend'\n | 'follow'\n | 'invite'\n | 'mention'\n | 'reply'\n | (string & {})\n reasonSubject?: string\n record: {}\n isRead: boolean\n indexedAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n seenAt: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nexport interface Main {\n uri: string\n cid: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nexport interface Record {\n displayName: string\n description?: string\n avatar?: { cid: string; mimeType: string; [k: string]: unknown }\n banner?: { cid: string; mimeType: string; [k: string]: unknown }\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface Main {\n did: string\n declarationCid: string\n [k: string]: unknown\n}\n\nexport interface WithInfo {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nexport interface Main {\n external: External\n [k: string]: unknown\n}\n\nexport interface External {\n uri: string\n title: string\n description: string\n thumb?: { cid: string; mimeType: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport interface Presented {\n external: PresentedExternal\n [k: string]: unknown\n}\n\nexport interface PresentedExternal {\n uri: string\n title: string\n description: string\n thumb?: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nexport interface Main {\n images: Image[]\n [k: string]: unknown\n}\n\nexport interface Image {\n image: { cid: string; mimeType: string; [k: string]: unknown }\n alt: string\n [k: string]: unknown\n}\n\nexport interface Presented {\n images: PresentedImage[]\n [k: string]: unknown\n}\n\nexport interface PresentedImage {\n thumb: string\n fullsize: string\n alt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport * as AppBskyFeedPost from './post'\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface Main {\n post: AppBskyFeedPost.View\n reply?: ReplyRef\n reason?: ReasonTrend | ReasonRepost | { $type: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport interface ReplyRef {\n root: AppBskyFeedPost.View\n parent: AppBskyFeedPost.View\n [k: string]: unknown\n}\n\nexport interface ReasonTrend {\n by: AppBskyActorRef.WithInfo\n indexedAt: string\n [k: string]: unknown\n}\n\nexport interface ReasonRepost {\n by: AppBskyActorRef.WithInfo\n indexedAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport * as AppBskyEmbedImages from '../embed/images'\nimport * as AppBskyEmbedExternal from '../embed/external'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface Record {\n text: string\n entities?: Entity[]\n reply?: ReplyRef\n embed?:\n | AppBskyEmbedImages.Main\n | AppBskyEmbedExternal.Main\n | { $type: string; [k: string]: unknown }\n createdAt: string\n [k: string]: unknown\n}\n\nexport interface ReplyRef {\n root: ComAtprotoRepoStrongRef.Main\n parent: ComAtprotoRepoStrongRef.Main\n [k: string]: unknown\n}\n\nexport interface Entity {\n index: TextSlice\n /** Expected values are 'mention', 'hashtag', and 'link'. */\n type: string\n value: string\n [k: string]: unknown\n}\n\nexport interface TextSlice {\n start: number\n end: number\n [k: string]: unknown\n}\n\nexport interface View {\n uri: string\n cid: string\n author: AppBskyActorRef.WithInfo\n record: {}\n embed?:\n | AppBskyEmbedImages.Presented\n | AppBskyEmbedExternal.Presented\n | { $type: string; [k: string]: unknown }\n replyCount: number\n repostCount: number\n upvoteCount: number\n downvoteCount: number\n indexedAt: string\n viewer: ViewerState\n [k: string]: unknown\n}\n\nexport interface ViewerState {\n repost?: string\n upvote?: string\n downvote?: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface Record {\n subject: ComAtprotoRepoStrongRef.Main\n createdAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface Record {\n subject: ComAtprotoRepoStrongRef.Main\n createdAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface Record {\n subject: ComAtprotoRepoStrongRef.Main\n direction: 'up' | 'down'\n createdAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\n/** Assertion type: Creator. Defined for app.bsky.graph.assertions's assertion. */\nexport const MAIN = 'app.bsky.graph.assertCreator#main'\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\n/** Assertion type: Member. Defined for app.bsky.graph.assertions's assertion. */\nexport const MAIN = 'app.bsky.graph.assertMember#main'\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface Record {\n assertion: string\n subject: AppBskyActorRef.Main\n createdAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport * as AppBskyActorRef from '../actor/ref'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface Record {\n originator: AppBskyActorRef.Main\n assertion: ComAtprotoRepoStrongRef.Main\n createdAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface Record {\n subject: AppBskyActorRef.Main\n createdAt: string\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\n/** Actor type: Scene. Defined for app.bsky.system.declaration's actorType. */\nexport const MAIN = 'app.bsky.system.actorScene#main'\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\n/** Actor type: User. Defined for app.bsky.system.declaration's actorType. */\nexport const MAIN = 'app.bsky.system.actorUser#main'\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\n/** A reference to a app.bsky.system.declaration record. */\nexport interface Main {\n cid: string\n actorType:\n | 'app.bsky.system.actorUser'\n | 'app.bsky.system.actorScene'\n | (string & {})\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nexport interface Record {\n actorType:\n | 'app.bsky.system.actorUser'\n | 'app.bsky.system.actorScene'\n | (string & {})\n [k: string]: unknown\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport {\n Client as XrpcClient,\n ServiceClient as XrpcServiceClient,\n} from '@atproto/xrpc'\nimport { schemas } from './lexicons'\nimport * as ComAtprotoAccountCreate from './types/com/atproto/account/create'\nimport * as ComAtprotoAccountCreateInviteCode from './types/com/atproto/account/createInviteCode'\nimport * as ComAtprotoAccountDelete from './types/com/atproto/account/delete'\nimport * as ComAtprotoAccountGet from './types/com/atproto/account/get'\nimport * as ComAtprotoAccountRequestPasswordReset from './types/com/atproto/account/requestPasswordReset'\nimport * as ComAtprotoAccountResetPassword from './types/com/atproto/account/resetPassword'\nimport * as ComAtprotoBlobUpload from './types/com/atproto/blob/upload'\nimport * as ComAtprotoHandleResolve from './types/com/atproto/handle/resolve'\nimport * as ComAtprotoRepoBatchWrite from './types/com/atproto/repo/batchWrite'\nimport * as ComAtprotoRepoCreateRecord from './types/com/atproto/repo/createRecord'\nimport * as ComAtprotoRepoDeleteRecord from './types/com/atproto/repo/deleteRecord'\nimport * as ComAtprotoRepoDescribe from './types/com/atproto/repo/describe'\nimport * as ComAtprotoRepoGetRecord from './types/com/atproto/repo/getRecord'\nimport * as ComAtprotoRepoListRecords from './types/com/atproto/repo/listRecords'\nimport * as ComAtprotoRepoPutRecord from './types/com/atproto/repo/putRecord'\nimport * as ComAtprotoRepoStrongRef from './types/com/atproto/repo/strongRef'\nimport * as ComAtprotoServerGetAccountsConfig from './types/com/atproto/server/getAccountsConfig'\nimport * as ComAtprotoSessionCreate from './types/com/atproto/session/create'\nimport * as ComAtprotoSessionDelete from './types/com/atproto/session/delete'\nimport * as ComAtprotoSessionGet from './types/com/atproto/session/get'\nimport * as ComAtprotoSessionRefresh from './types/com/atproto/session/refresh'\nimport * as ComAtprotoSyncGetRepo from './types/com/atproto/sync/getRepo'\nimport * as ComAtprotoSyncGetRoot from './types/com/atproto/sync/getRoot'\nimport * as ComAtprotoSyncUpdateRepo from './types/com/atproto/sync/updateRepo'\nimport * as AppBskyActorCreateScene from './types/app/bsky/actor/createScene'\nimport * as AppBskyActorGetProfile from './types/app/bsky/actor/getProfile'\nimport * as AppBskyActorGetSuggestions from './types/app/bsky/actor/getSuggestions'\nimport * as AppBskyActorProfile from './types/app/bsky/actor/profile'\nimport * as AppBskyActorRef from './types/app/bsky/actor/ref'\nimport * as AppBskyActorSearch from './types/app/bsky/actor/search'\nimport * as AppBskyActorSearchTypeahead from './types/app/bsky/actor/searchTypeahead'\nimport * as AppBskyActorUpdateProfile from './types/app/bsky/actor/updateProfile'\nimport * as AppBskyEmbedExternal from './types/app/bsky/embed/external'\nimport * as AppBskyEmbedImages from './types/app/bsky/embed/images'\nimport * as AppBskyFeedFeedViewPost from './types/app/bsky/feed/feedViewPost'\nimport * as AppBskyFeedGetAuthorFeed from './types/app/bsky/feed/getAuthorFeed'\nimport * as AppBskyFeedGetPostThread from './types/app/bsky/feed/getPostThread'\nimport * as AppBskyFeedGetRepostedBy from './types/app/bsky/feed/getRepostedBy'\nimport * as AppBskyFeedGetTimeline from './types/app/bsky/feed/getTimeline'\nimport * as AppBskyFeedGetVotes from './types/app/bsky/feed/getVotes'\nimport * as AppBskyFeedPost from './types/app/bsky/feed/post'\nimport * as AppBskyFeedRepost from './types/app/bsky/feed/repost'\nimport * as AppBskyFeedSetVote from './types/app/bsky/feed/setVote'\nimport * as AppBskyFeedTrend from './types/app/bsky/feed/trend'\nimport * as AppBskyFeedVote from './types/app/bsky/feed/vote'\nimport * as AppBskyGraphAssertCreator from './types/app/bsky/graph/assertCreator'\nimport * as AppBskyGraphAssertMember from './types/app/bsky/graph/assertMember'\nimport * as AppBskyGraphAssertion from './types/app/bsky/graph/assertion'\nimport * as AppBskyGraphConfirmation from './types/app/bsky/graph/confirmation'\nimport * as AppBskyGraphFollow from './types/app/bsky/graph/follow'\nimport * as AppBskyGraphGetAssertions from './types/app/bsky/graph/getAssertions'\nimport * as AppBskyGraphGetFollowers from './types/app/bsky/graph/getFollowers'\nimport * as AppBskyGraphGetFollows from './types/app/bsky/graph/getFollows'\nimport * as AppBskyGraphGetMembers from './types/app/bsky/graph/getMembers'\nimport * as AppBskyGraphGetMemberships from './types/app/bsky/graph/getMemberships'\nimport * as AppBskyNotificationGetCount from './types/app/bsky/notification/getCount'\nimport * as AppBskyNotificationList from './types/app/bsky/notification/list'\nimport * as AppBskyNotificationUpdateSeen from './types/app/bsky/notification/updateSeen'\nimport * as AppBskySystemActorScene from './types/app/bsky/system/actorScene'\nimport * as AppBskySystemActorUser from './types/app/bsky/system/actorUser'\nimport * as AppBskySystemDeclRef from './types/app/bsky/system/declRef'\nimport * as AppBskySystemDeclaration from './types/app/bsky/system/declaration'\n\nexport * as ComAtprotoAccountCreate from './types/com/atproto/account/create'\nexport * as ComAtprotoAccountCreateInviteCode from './types/com/atproto/account/createInviteCode'\nexport * as ComAtprotoAccountDelete from './types/com/atproto/account/delete'\nexport * as ComAtprotoAccountGet from './types/com/atproto/account/get'\nexport * as ComAtprotoAccountRequestPasswordReset from './types/com/atproto/account/requestPasswordReset'\nexport * as ComAtprotoAccountResetPassword from './types/com/atproto/account/resetPassword'\nexport * as ComAtprotoBlobUpload from './types/com/atproto/blob/upload'\nexport * as ComAtprotoHandleResolve from './types/com/atproto/handle/resolve'\nexport * as ComAtprotoRepoBatchWrite from './types/com/atproto/repo/batchWrite'\nexport * as ComAtprotoRepoCreateRecord from './types/com/atproto/repo/createRecord'\nexport * as ComAtprotoRepoDeleteRecord from './types/com/atproto/repo/deleteRecord'\nexport * as ComAtprotoRepoDescribe from './types/com/atproto/repo/describe'\nexport * as ComAtprotoRepoGetRecord from './types/com/atproto/repo/getRecord'\nexport * as ComAtprotoRepoListRecords from './types/com/atproto/repo/listRecords'\nexport * as ComAtprotoRepoPutRecord from './types/com/atproto/repo/putRecord'\nexport * as ComAtprotoRepoStrongRef from './types/com/atproto/repo/strongRef'\nexport * as ComAtprotoServerGetAccountsConfig from './types/com/atproto/server/getAccountsConfig'\nexport * as ComAtprotoSessionCreate from './types/com/atproto/session/create'\nexport * as ComAtprotoSessionDelete from './types/com/atproto/session/delete'\nexport * as ComAtprotoSessionGet from './types/com/atproto/session/get'\nexport * as ComAtprotoSessionRefresh from './types/com/atproto/session/refresh'\nexport * as ComAtprotoSyncGetRepo from './types/com/atproto/sync/getRepo'\nexport * as ComAtprotoSyncGetRoot from './types/com/atproto/sync/getRoot'\nexport * as ComAtprotoSyncUpdateRepo from './types/com/atproto/sync/updateRepo'\nexport * as AppBskyActorCreateScene from './types/app/bsky/actor/createScene'\nexport * as AppBskyActorGetProfile from './types/app/bsky/actor/getProfile'\nexport * as AppBskyActorGetSuggestions from './types/app/bsky/actor/getSuggestions'\nexport * as AppBskyActorProfile from './types/app/bsky/actor/profile'\nexport * as AppBskyActorRef from './types/app/bsky/actor/ref'\nexport * as AppBskyActorSearch from './types/app/bsky/actor/search'\nexport * as AppBskyActorSearchTypeahead from './types/app/bsky/actor/searchTypeahead'\nexport * as AppBskyActorUpdateProfile from './types/app/bsky/actor/updateProfile'\nexport * as AppBskyEmbedExternal from './types/app/bsky/embed/external'\nexport * as AppBskyEmbedImages from './types/app/bsky/embed/images'\nexport * as AppBskyFeedFeedViewPost from './types/app/bsky/feed/feedViewPost'\nexport * as AppBskyFeedGetAuthorFeed from './types/app/bsky/feed/getAuthorFeed'\nexport * as AppBskyFeedGetPostThread from './types/app/bsky/feed/getPostThread'\nexport * as AppBskyFeedGetRepostedBy from './types/app/bsky/feed/getRepostedBy'\nexport * as AppBskyFeedGetTimeline from './types/app/bsky/feed/getTimeline'\nexport * as AppBskyFeedGetVotes from './types/app/bsky/feed/getVotes'\nexport * as AppBskyFeedPost from './types/app/bsky/feed/post'\nexport * as AppBskyFeedRepost from './types/app/bsky/feed/repost'\nexport * as AppBskyFeedSetVote from './types/app/bsky/feed/setVote'\nexport * as AppBskyFeedTrend from './types/app/bsky/feed/trend'\nexport * as AppBskyFeedVote from './types/app/bsky/feed/vote'\nexport * as AppBskyGraphAssertCreator from './types/app/bsky/graph/assertCreator'\nexport * as AppBskyGraphAssertMember from './types/app/bsky/graph/assertMember'\nexport * as AppBskyGraphAssertion from './types/app/bsky/graph/assertion'\nexport * as AppBskyGraphConfirmation from './types/app/bsky/graph/confirmation'\nexport * as AppBskyGraphFollow from './types/app/bsky/graph/follow'\nexport * as AppBskyGraphGetAssertions from './types/app/bsky/graph/getAssertions'\nexport * as AppBskyGraphGetFollowers from './types/app/bsky/graph/getFollowers'\nexport * as AppBskyGraphGetFollows from './types/app/bsky/graph/getFollows'\nexport * as AppBskyGraphGetMembers from './types/app/bsky/graph/getMembers'\nexport * as AppBskyGraphGetMemberships from './types/app/bsky/graph/getMemberships'\nexport * as AppBskyNotificationGetCount from './types/app/bsky/notification/getCount'\nexport * as AppBskyNotificationList from './types/app/bsky/notification/list'\nexport * as AppBskyNotificationUpdateSeen from './types/app/bsky/notification/updateSeen'\nexport * as AppBskySystemActorScene from './types/app/bsky/system/actorScene'\nexport * as AppBskySystemActorUser from './types/app/bsky/system/actorUser'\nexport * as AppBskySystemDeclRef from './types/app/bsky/system/declRef'\nexport * as AppBskySystemDeclaration from './types/app/bsky/system/declaration'\n\nexport const APP_BSKY_GRAPH = {\n AssertCreator: 'app.bsky.graph.assertCreator',\n AssertMember: 'app.bsky.graph.assertMember',\n}\nexport const APP_BSKY_SYSTEM = {\n ActorScene: 'app.bsky.system.actorScene',\n ActorUser: 'app.bsky.system.actorUser',\n}\n\nexport class Client {\n xrpc: XrpcClient = new XrpcClient()\n\n constructor() {\n this.xrpc.addLexicons(schemas)\n }\n\n service(serviceUri: string | URL): ServiceClient {\n return new ServiceClient(this, this.xrpc.service(serviceUri))\n }\n}\n\nconst defaultInst = new Client()\nexport default defaultInst\n\nexport class ServiceClient {\n _baseClient: Client\n xrpc: XrpcServiceClient\n com: ComNS\n app: AppNS\n\n constructor(baseClient: Client, xrpcService: XrpcServiceClient) {\n this._baseClient = baseClient\n this.xrpc = xrpcService\n this.com = new ComNS(this)\n this.app = new AppNS(this)\n }\n\n setHeader(key: string, value: string): void {\n this.xrpc.setHeader(key, value)\n }\n}\n\nexport class ComNS {\n _service: ServiceClient\n atproto: AtprotoNS\n\n constructor(service: ServiceClient) {\n this._service = service\n this.atproto = new AtprotoNS(service)\n }\n}\n\nexport class AtprotoNS {\n _service: ServiceClient\n account: AccountNS\n blob: BlobNS\n handle: HandleNS\n repo: RepoNS\n server: ServerNS\n session: SessionNS\n sync: SyncNS\n\n constructor(service: ServiceClient) {\n this._service = service\n this.account = new AccountNS(service)\n this.blob = new BlobNS(service)\n this.handle = new HandleNS(service)\n this.repo = new RepoNS(service)\n this.server = new ServerNS(service)\n this.session = new SessionNS(service)\n this.sync = new SyncNS(service)\n }\n}\n\nexport class AccountNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n create(\n data?: ComAtprotoAccountCreate.InputSchema,\n opts?: ComAtprotoAccountCreate.CallOptions,\n ): Promise<ComAtprotoAccountCreate.Response> {\n return this._service.xrpc\n .call('com.atproto.account.create', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountCreate.toKnownErr(e)\n })\n }\n\n createInviteCode(\n data?: ComAtprotoAccountCreateInviteCode.InputSchema,\n opts?: ComAtprotoAccountCreateInviteCode.CallOptions,\n ): Promise<ComAtprotoAccountCreateInviteCode.Response> {\n return this._service.xrpc\n .call('com.atproto.account.createInviteCode', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountCreateInviteCode.toKnownErr(e)\n })\n }\n\n delete(\n data?: ComAtprotoAccountDelete.InputSchema,\n opts?: ComAtprotoAccountDelete.CallOptions,\n ): Promise<ComAtprotoAccountDelete.Response> {\n return this._service.xrpc\n .call('com.atproto.account.delete', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountDelete.toKnownErr(e)\n })\n }\n\n get(\n params?: ComAtprotoAccountGet.QueryParams,\n opts?: ComAtprotoAccountGet.CallOptions,\n ): Promise<ComAtprotoAccountGet.Response> {\n return this._service.xrpc\n .call('com.atproto.account.get', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoAccountGet.toKnownErr(e)\n })\n }\n\n requestPasswordReset(\n data?: ComAtprotoAccountRequestPasswordReset.InputSchema,\n opts?: ComAtprotoAccountRequestPasswordReset.CallOptions,\n ): Promise<ComAtprotoAccountRequestPasswordReset.Response> {\n return this._service.xrpc\n .call('com.atproto.account.requestPasswordReset', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountRequestPasswordReset.toKnownErr(e)\n })\n }\n\n resetPassword(\n data?: ComAtprotoAccountResetPassword.InputSchema,\n opts?: ComAtprotoAccountResetPassword.CallOptions,\n ): Promise<ComAtprotoAccountResetPassword.Response> {\n return this._service.xrpc\n .call('com.atproto.account.resetPassword', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountResetPassword.toKnownErr(e)\n })\n }\n}\n\nexport class BlobNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n upload(\n data?: ComAtprotoBlobUpload.InputSchema,\n opts?: ComAtprotoBlobUpload.CallOptions,\n ): Promise<ComAtprotoBlobUpload.Response> {\n return this._service.xrpc\n .call('com.atproto.blob.upload', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoBlobUpload.toKnownErr(e)\n })\n }\n}\n\nexport class HandleNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n resolve(\n params?: ComAtprotoHandleResolve.QueryParams,\n opts?: ComAtprotoHandleResolve.CallOptions,\n ): Promise<ComAtprotoHandleResolve.Response> {\n return this._service.xrpc\n .call('com.atproto.handle.resolve', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoHandleResolve.toKnownErr(e)\n })\n }\n}\n\nexport class RepoNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n batchWrite(\n data?: ComAtprotoRepoBatchWrite.InputSchema,\n opts?: ComAtprotoRepoBatchWrite.CallOptions,\n ): Promise<ComAtprotoRepoBatchWrite.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.batchWrite', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoBatchWrite.toKnownErr(e)\n })\n }\n\n createRecord(\n data?: ComAtprotoRepoCreateRecord.InputSchema,\n opts?: ComAtprotoRepoCreateRecord.CallOptions,\n ): Promise<ComAtprotoRepoCreateRecord.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.createRecord', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoCreateRecord.toKnownErr(e)\n })\n }\n\n deleteRecord(\n data?: ComAtprotoRepoDeleteRecord.InputSchema,\n opts?: ComAtprotoRepoDeleteRecord.CallOptions,\n ): Promise<ComAtprotoRepoDeleteRecord.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.deleteRecord', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoDeleteRecord.toKnownErr(e)\n })\n }\n\n describe(\n params?: ComAtprotoRepoDescribe.QueryParams,\n opts?: ComAtprotoRepoDescribe.CallOptions,\n ): Promise<ComAtprotoRepoDescribe.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.describe', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoRepoDescribe.toKnownErr(e)\n })\n }\n\n getRecord(\n params?: ComAtprotoRepoGetRecord.QueryParams,\n opts?: ComAtprotoRepoGetRecord.CallOptions,\n ): Promise<ComAtprotoRepoGetRecord.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.getRecord', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoRepoGetRecord.toKnownErr(e)\n })\n }\n\n listRecords(\n params?: ComAtprotoRepoListRecords.QueryParams,\n opts?: ComAtprotoRepoListRecords.CallOptions,\n ): Promise<ComAtprotoRepoListRecords.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.listRecords', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoRepoListRecords.toKnownErr(e)\n })\n }\n\n putRecord(\n data?: ComAtprotoRepoPutRecord.InputSchema,\n opts?: ComAtprotoRepoPutRecord.CallOptions,\n ): Promise<ComAtprotoRepoPutRecord.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.putRecord', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoPutRecord.toKnownErr(e)\n })\n }\n}\n\nexport class ServerNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n getAccountsConfig(\n params?: ComAtprotoServerGetAccountsConfig.QueryParams,\n opts?: ComAtprotoServerGetAccountsConfig.CallOptions,\n ): Promise<ComAtprotoServerGetAccountsConfig.Response> {\n return this._service.xrpc\n .call('com.atproto.server.getAccountsConfig', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoServerGetAccountsConfig.toKnownErr(e)\n })\n }\n}\n\nexport class SessionNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n create(\n data?: ComAtprotoSessionCreate.InputSchema,\n opts?: ComAtprotoSessionCreate.CallOptions,\n ): Promise<ComAtprotoSessionCreate.Response> {\n return this._service.xrpc\n .call('com.atproto.session.create', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoSessionCreate.toKnownErr(e)\n })\n }\n\n delete(\n data?: ComAtprotoSessionDelete.InputSchema,\n opts?: ComAtprotoSessionDelete.CallOptions,\n ): Promise<ComAtprotoSessionDelete.Response> {\n return this._service.xrpc\n .call('com.atproto.session.delete', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoSessionDelete.toKnownErr(e)\n })\n }\n\n get(\n params?: ComAtprotoSessionGet.QueryParams,\n opts?: ComAtprotoSessionGet.CallOptions,\n ): Promise<ComAtprotoSessionGet.Response> {\n return this._service.xrpc\n .call('com.atproto.session.get', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSessionGet.toKnownErr(e)\n })\n }\n\n refresh(\n data?: ComAtprotoSessionRefresh.InputSchema,\n opts?: ComAtprotoSessionRefresh.CallOptions,\n ): Promise<ComAtprotoSessionRefresh.Response> {\n return this._service.xrpc\n .call('com.atproto.session.refresh', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoSessionRefresh.toKnownErr(e)\n })\n }\n}\n\nexport class SyncNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n getRepo(\n params?: ComAtprotoSyncGetRepo.QueryParams,\n opts?: ComAtprotoSyncGetRepo.CallOptions,\n ): Promise<ComAtprotoSyncGetRepo.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.getRepo', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncGetRepo.toKnownErr(e)\n })\n }\n\n getRoot(\n params?: ComAtprotoSyncGetRoot.QueryParams,\n opts?: ComAtprotoSyncGetRoot.CallOptions,\n ): Promise<ComAtprotoSyncGetRoot.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.getRoot', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncGetRoot.toKnownErr(e)\n })\n }\n\n updateRepo(\n data?: ComAtprotoSyncUpdateRepo.InputSchema,\n opts?: ComAtprotoSyncUpdateRepo.CallOptions,\n ): Promise<ComAtprotoSyncUpdateRepo.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.updateRepo', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoSyncUpdateRepo.toKnownErr(e)\n })\n }\n}\n\nexport class AppNS {\n _service: ServiceClient\n bsky: BskyNS\n\n constructor(service: ServiceClient) {\n this._service = service\n this.bsky = new BskyNS(service)\n }\n}\n\nexport class BskyNS {\n _service: ServiceClient\n actor: ActorNS\n embed: EmbedNS\n feed: FeedNS\n graph: GraphNS\n notification: NotificationNS\n system: SystemNS\n\n constructor(service: ServiceClient) {\n this._service = service\n this.actor = new ActorNS(service)\n this.embed = new EmbedNS(service)\n this.feed = new FeedNS(service)\n this.graph = new GraphNS(service)\n this.notification = new NotificationNS(service)\n this.system = new SystemNS(service)\n }\n}\n\nexport class ActorNS {\n _service: ServiceClient\n profile: ProfileRecord\n\n constructor(service: ServiceClient) {\n this._service = service\n this.profile = new ProfileRecord(service)\n }\n\n createScene(\n data?: AppBskyActorCreateScene.InputSchema,\n opts?: AppBskyActorCreateScene.CallOptions,\n ): Promise<AppBskyActorCreateScene.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.createScene', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyActorCreateScene.toKnownErr(e)\n })\n }\n\n getProfile(\n params?: AppBskyActorGetProfile.QueryParams,\n opts?: AppBskyActorGetProfile.CallOptions,\n ): Promise<AppBskyActorGetProfile.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.getProfile', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorGetProfile.toKnownErr(e)\n })\n }\n\n getSuggestions(\n params?: AppBskyActorGetSuggestions.QueryParams,\n opts?: AppBskyActorGetSuggestions.CallOptions,\n ): Promise<AppBskyActorGetSuggestions.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.getSuggestions', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorGetSuggestions.toKnownErr(e)\n })\n }\n\n search(\n params?: AppBskyActorSearch.QueryParams,\n opts?: AppBskyActorSearch.CallOptions,\n ): Promise<AppBskyActorSearch.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.search', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorSearch.toKnownErr(e)\n })\n }\n\n searchTypeahead(\n params?: AppBskyActorSearchTypeahead.QueryParams,\n opts?: AppBskyActorSearchTypeahead.CallOptions,\n ): Promise<AppBskyActorSearchTypeahead.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.searchTypeahead', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorSearchTypeahead.toKnownErr(e)\n })\n }\n\n updateProfile(\n data?: AppBskyActorUpdateProfile.InputSchema,\n opts?: AppBskyActorUpdateProfile.CallOptions,\n ): Promise<AppBskyActorUpdateProfile.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.updateProfile', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyActorUpdateProfile.toKnownErr(e)\n })\n }\n}\n\nexport class ProfileRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyActorProfile.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.actor.profile',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyActorProfile.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.actor.profile',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyActorProfile.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.actor.profile'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.actor.profile', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.actor.profile', ...params },\n { headers },\n )\n }\n}\n\nexport class EmbedNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n}\n\nexport class FeedNS {\n _service: ServiceClient\n post: PostRecord\n repost: RepostRecord\n trend: TrendRecord\n vote: VoteRecord\n\n constructor(service: ServiceClient) {\n this._service = service\n this.post = new PostRecord(service)\n this.repost = new RepostRecord(service)\n this.trend = new TrendRecord(service)\n this.vote = new VoteRecord(service)\n }\n\n getAuthorFeed(\n params?: AppBskyFeedGetAuthorFeed.QueryParams,\n opts?: AppBskyFeedGetAuthorFeed.CallOptions,\n ): Promise<AppBskyFeedGetAuthorFeed.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getAuthorFeed', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetAuthorFeed.toKnownErr(e)\n })\n }\n\n getPostThread(\n params?: AppBskyFeedGetPostThread.QueryParams,\n opts?: AppBskyFeedGetPostThread.CallOptions,\n ): Promise<AppBskyFeedGetPostThread.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getPostThread', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetPostThread.toKnownErr(e)\n })\n }\n\n getRepostedBy(\n params?: AppBskyFeedGetRepostedBy.QueryParams,\n opts?: AppBskyFeedGetRepostedBy.CallOptions,\n ): Promise<AppBskyFeedGetRepostedBy.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getRepostedBy', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetRepostedBy.toKnownErr(e)\n })\n }\n\n getTimeline(\n params?: AppBskyFeedGetTimeline.QueryParams,\n opts?: AppBskyFeedGetTimeline.CallOptions,\n ): Promise<AppBskyFeedGetTimeline.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getTimeline', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetTimeline.toKnownErr(e)\n })\n }\n\n getVotes(\n params?: AppBskyFeedGetVotes.QueryParams,\n opts?: AppBskyFeedGetVotes.CallOptions,\n ): Promise<AppBskyFeedGetVotes.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getVotes', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetVotes.toKnownErr(e)\n })\n }\n\n setVote(\n data?: AppBskyFeedSetVote.InputSchema,\n opts?: AppBskyFeedSetVote.CallOptions,\n ): Promise<AppBskyFeedSetVote.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.setVote', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyFeedSetVote.toKnownErr(e)\n })\n }\n}\n\nexport class PostRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyFeedPost.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.feed.post',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyFeedPost.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.feed.post',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyFeedPost.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.feed.post'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.feed.post', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.feed.post', ...params },\n { headers },\n )\n }\n}\n\nexport class RepostRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyFeedRepost.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.feed.repost',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyFeedRepost.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.feed.repost',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyFeedRepost.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.feed.repost'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.feed.repost', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.feed.repost', ...params },\n { headers },\n )\n }\n}\n\nexport class TrendRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyFeedTrend.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.feed.trend',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyFeedTrend.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.feed.trend',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyFeedTrend.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.feed.trend'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.feed.trend', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.feed.trend', ...params },\n { headers },\n )\n }\n}\n\nexport class VoteRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyFeedVote.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.feed.vote',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyFeedVote.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.feed.vote',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyFeedVote.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.feed.vote'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.feed.vote', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.feed.vote', ...params },\n { headers },\n )\n }\n}\n\nexport class GraphNS {\n _service: ServiceClient\n assertion: AssertionRecord\n confirmation: ConfirmationRecord\n follow: FollowRecord\n\n constructor(service: ServiceClient) {\n this._service = service\n this.assertion = new AssertionRecord(service)\n this.confirmation = new ConfirmationRecord(service)\n this.follow = new FollowRecord(service)\n }\n\n getAssertions(\n params?: AppBskyGraphGetAssertions.QueryParams,\n opts?: AppBskyGraphGetAssertions.CallOptions,\n ): Promise<AppBskyGraphGetAssertions.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getAssertions', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetAssertions.toKnownErr(e)\n })\n }\n\n getFollowers(\n params?: AppBskyGraphGetFollowers.QueryParams,\n opts?: AppBskyGraphGetFollowers.CallOptions,\n ): Promise<AppBskyGraphGetFollowers.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getFollowers', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetFollowers.toKnownErr(e)\n })\n }\n\n getFollows(\n params?: AppBskyGraphGetFollows.QueryParams,\n opts?: AppBskyGraphGetFollows.CallOptions,\n ): Promise<AppBskyGraphGetFollows.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getFollows', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetFollows.toKnownErr(e)\n })\n }\n\n getMembers(\n params?: AppBskyGraphGetMembers.QueryParams,\n opts?: AppBskyGraphGetMembers.CallOptions,\n ): Promise<AppBskyGraphGetMembers.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getMembers', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetMembers.toKnownErr(e)\n })\n }\n\n getMemberships(\n params?: AppBskyGraphGetMemberships.QueryParams,\n opts?: AppBskyGraphGetMemberships.CallOptions,\n ): Promise<AppBskyGraphGetMemberships.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getMemberships', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetMemberships.toKnownErr(e)\n })\n }\n}\n\nexport class AssertionRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyGraphAssertion.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.graph.assertion',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{\n uri: string\n cid: string\n value: AppBskyGraphAssertion.Record\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.graph.assertion',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyGraphAssertion.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.graph.assertion'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.graph.assertion', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.graph.assertion', ...params },\n { headers },\n )\n }\n}\n\nexport class ConfirmationRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyGraphConfirmation.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.graph.confirmation',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{\n uri: string\n cid: string\n value: AppBskyGraphConfirmation.Record\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.graph.confirmation',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyGraphConfirmation.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.graph.confirmation'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.graph.confirmation', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.graph.confirmation', ...params },\n { headers },\n )\n }\n}\n\nexport class FollowRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyGraphFollow.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.graph.follow',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyGraphFollow.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.graph.follow',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyGraphFollow.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.graph.follow'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.graph.follow', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.graph.follow', ...params },\n { headers },\n )\n }\n}\n\nexport class NotificationNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n getCount(\n params?: AppBskyNotificationGetCount.QueryParams,\n opts?: AppBskyNotificationGetCount.CallOptions,\n ): Promise<AppBskyNotificationGetCount.Response> {\n return this._service.xrpc\n .call('app.bsky.notification.getCount', params, undefined, opts)\n .catch((e) => {\n throw AppBskyNotificationGetCount.toKnownErr(e)\n })\n }\n\n list(\n params?: AppBskyNotificationList.QueryParams,\n opts?: AppBskyNotificationList.CallOptions,\n ): Promise<AppBskyNotificationList.Response> {\n return this._service.xrpc\n .call('app.bsky.notification.list', params, undefined, opts)\n .catch((e) => {\n throw AppBskyNotificationList.toKnownErr(e)\n })\n }\n\n updateSeen(\n data?: AppBskyNotificationUpdateSeen.InputSchema,\n opts?: AppBskyNotificationUpdateSeen.CallOptions,\n ): Promise<AppBskyNotificationUpdateSeen.Response> {\n return this._service.xrpc\n .call('app.bsky.notification.updateSeen', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyNotificationUpdateSeen.toKnownErr(e)\n })\n }\n}\n\nexport class SystemNS {\n _service: ServiceClient\n declaration: DeclarationRecord\n\n constructor(service: ServiceClient) {\n this._service = service\n this.declaration = new DeclarationRecord(service)\n }\n}\n\nexport class DeclarationRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskySystemDeclaration.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.system.declaration',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{\n uri: string\n cid: string\n value: AppBskySystemDeclaration.Record\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.system.declaration',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskySystemDeclaration.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.system.declaration'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.system.declaration', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.system.declaration', ...params },\n { headers },\n )\n }\n}\n", "import {\n CallOptions,\n Client as XrpcClient,\n ServiceClient as XrpcServiceClient,\n QueryParams,\n ResponseType,\n XRPCError,\n XRPCResponse,\n} from '@atproto/xrpc'\nimport EventEmitter from 'events'\nimport TypedEmitter from 'typed-emitter'\nimport { Client, ServiceClient } from './client'\nimport * as CreateSession from './client/types/com/atproto/session/create'\nimport * as RefreshSession from './client/types/com/atproto/session/refresh'\nimport * as CreateAccount from './client/types/com/atproto/session/create'\n\nconst CREATE_SESSION = 'com.atproto.session.create'\nconst REFRESH_SESSION = 'com.atproto.session.refresh'\nconst DELETE_SESSION = 'com.atproto.session.delete'\nconst CREATE_ACCOUNT = 'com.atproto.account.create'\n\nexport class SessionClient extends Client {\n service(serviceUri: string | URL): SessionServiceClient {\n const xrpcService = new SessionXrpcServiceClient(this.xrpc, serviceUri)\n return new SessionServiceClient(this, xrpcService)\n }\n}\n\nconst defaultInst = new SessionClient()\nexport default defaultInst\n\nexport class SessionServiceClient extends ServiceClient {\n xrpc: SessionXrpcServiceClient\n sessionManager: SessionManager\n constructor(baseClient: Client, xrpcService: SessionXrpcServiceClient) {\n super(baseClient, xrpcService)\n this.sessionManager = this.xrpc.sessionManager\n }\n}\n\nexport class SessionXrpcServiceClient extends XrpcServiceClient {\n sessionManager = new SessionManager()\n refreshing?: Promise<XRPCResponse>\n\n constructor(baseClient: XrpcClient, serviceUri: string | URL) {\n super(baseClient, serviceUri)\n this.sessionManager.on('session', () => {\n // Maintain access token headers when session changes\n const accessHeaders = this.sessionManager.accessHeaders()\n if (accessHeaders) {\n this.setHeader('authorization', accessHeaders.authorization)\n } else {\n this.unsetHeader('authorization')\n }\n })\n }\n\n async call(\n methodNsid: string,\n params?: QueryParams,\n data?: unknown,\n opts?: CallOptions,\n ) {\n const original = (overrideOpts?: CallOptions) =>\n super.call(methodNsid, params, data, overrideOpts ?? opts)\n\n // If someone is setting credentials manually, pass through as an escape hatch\n if (opts?.headers?.authorization) {\n return await original()\n }\n\n // Manage concurrent refreshes on session refresh\n if (methodNsid === REFRESH_SESSION) {\n return await this.refresh(opts)\n }\n\n // Complete any pending session refresh and then continue onto the original request with fresh credentials\n await this.refreshing\n\n // Setup session on session or account creation\n if (methodNsid === CREATE_SESSION || methodNsid === CREATE_ACCOUNT) {\n const result = await original()\n const { accessJwt, refreshJwt } =\n result.data as CreateSession.OutputSchema & CreateAccount.OutputSchema\n this.sessionManager.set({ accessJwt, refreshJwt })\n return result\n }\n\n // Clear session on session deletion\n if (methodNsid === DELETE_SESSION) {\n const result = await original({\n ...opts,\n headers: {\n ...opts?.headers,\n ...this.sessionManager.refreshHeaders(),\n },\n })\n this.sessionManager.unset()\n return result\n }\n\n // For all other requests, if failed due to an expired token, refresh and retry with fresh credentials\n try {\n return await original()\n } catch (err) {\n if (\n err instanceof XRPCError &&\n err.status === ResponseType.InvalidRequest &&\n err.error === 'ExpiredToken' &&\n this.sessionManager.active()\n ) {\n await this.refresh(opts)\n return await original()\n }\n throw err\n }\n }\n\n // Ensures a single refresh request at a time, deduping concurrent requests.\n async refresh(opts?: CallOptions) {\n this.refreshing ??= this._refresh(opts)\n try {\n return await this.refreshing\n } finally {\n this.refreshing = undefined\n }\n }\n\n private async _refresh(opts?: CallOptions) {\n try {\n const result = await super.call(REFRESH_SESSION, undefined, undefined, {\n ...opts,\n headers: {\n ...opts?.headers,\n ...this.sessionManager.refreshHeaders(),\n },\n })\n const { accessJwt, refreshJwt } =\n result.data as RefreshSession.OutputSchema\n this.sessionManager.set({ accessJwt, refreshJwt })\n return result\n } catch (err) {\n if (\n err instanceof XRPCError &&\n err.status === ResponseType.InvalidRequest &&\n (err.error === 'ExpiredToken' || err.error === 'InvalidToken')\n ) {\n this.sessionManager.unset()\n }\n throw err\n }\n }\n}\n\nexport class SessionManager extends (EventEmitter as new () => TypedEmitter<SessionEvents>) {\n session?: Session\n get() {\n return this.session\n }\n set(session: Session) {\n this.session = session\n this.emit('session', session)\n }\n unset() {\n this.session = undefined\n this.emit('session', undefined)\n }\n active() {\n return !!this.session\n }\n accessHeaders() {\n return (\n this.session && {\n authorization: `Bearer ${this.session.accessJwt}`,\n }\n )\n }\n refreshHeaders() {\n return (\n this.session && {\n authorization: `Bearer ${this.session.refreshJwt}`,\n }\n )\n }\n}\n\nexport type Session = {\n refreshJwt: string\n accessJwt: string\n}\n\ntype SessionEvents = {\n session: (session?: Session) => void\n}\n"], 5 + "mappings": "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", 6 6 "names": ["Client", "create_exports", "delete_exports", "get_exports", "ServiceClient", "util", "object", "array", "params", "errorUtil", "errorMap", "ctx", "result", "objectUtil", "issues", "schemas", "elements", "processed", "ZodFirstPartyTypeKind", "ResponseType", "lexicons", "lexicons", "validate", "lexicons", "lexicons", "validate", "lexicons", "lexicons", "params", "params", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "create_exports", "toKnownErr", "toKnownErr", "delete_exports", "toKnownErr", "toKnownErr", "get_exports", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "HandleNotAvailableError", "InvalidHandleError", "toKnownErr", "InvalidHandleError", "HandleNotAvailableError", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "MAIN", "MAIN", "MAIN", "Client", "ServiceClient", "defaultInst", "toKnownErr", "params", "Client", "defaultInst", "ServiceClient", "params", "EventEmitter"] 7 7 }
+1
src/third-party/api/src/client/index.d.ts
··· 85 85 export * as AppBskyActorUpdateProfile from './types/app/bsky/actor/updateProfile'; 86 86 export * as AppBskyEmbedExternal from './types/app/bsky/embed/external'; 87 87 export * as AppBskyEmbedImages from './types/app/bsky/embed/images'; 88 + export * as AppBskyFeedFeedViewPost from './types/app/bsky/feed/feedViewPost'; 88 89 export * as AppBskyFeedGetAuthorFeed from './types/app/bsky/feed/getAuthorFeed'; 89 90 export * as AppBskyFeedGetPostThread from './types/app/bsky/feed/getPostThread'; 90 91 export * as AppBskyFeedGetRepostedBy from './types/app/bsky/feed/getRepostedBy';
+123 -176
src/third-party/api/src/client/lexicons.d.ts
··· 1504 1504 }; 1505 1505 }; 1506 1506 }; 1507 + AppBskyFeedFeedViewPost: { 1508 + lexicon: number; 1509 + id: string; 1510 + defs: { 1511 + main: { 1512 + type: string; 1513 + required: string[]; 1514 + properties: { 1515 + post: { 1516 + type: string; 1517 + ref: string; 1518 + }; 1519 + reply: { 1520 + type: string; 1521 + ref: string; 1522 + }; 1523 + reason: { 1524 + type: string; 1525 + refs: string[]; 1526 + }; 1527 + }; 1528 + }; 1529 + replyRef: { 1530 + type: string; 1531 + required: string[]; 1532 + properties: { 1533 + root: { 1534 + type: string; 1535 + ref: string; 1536 + }; 1537 + parent: { 1538 + type: string; 1539 + ref: string; 1540 + }; 1541 + }; 1542 + }; 1543 + reasonTrend: { 1544 + type: string; 1545 + required: string[]; 1546 + properties: { 1547 + by: { 1548 + type: string; 1549 + ref: string; 1550 + }; 1551 + indexedAt: { 1552 + type: string; 1553 + }; 1554 + }; 1555 + }; 1556 + reasonRepost: { 1557 + type: string; 1558 + required: string[]; 1559 + properties: { 1560 + by: { 1561 + type: string; 1562 + ref: string; 1563 + }; 1564 + indexedAt: { 1565 + type: string; 1566 + }; 1567 + }; 1568 + }; 1569 + }; 1570 + }; 1507 1571 AppBskyFeedGetAuthorFeed: { 1508 1572 lexicon: number; 1509 1573 id: string; ··· 1549 1613 }; 1550 1614 }; 1551 1615 }; 1552 - feedItem: { 1553 - type: string; 1554 - required: string[]; 1555 - properties: { 1556 - uri: { 1557 - type: string; 1558 - }; 1559 - cid: { 1560 - type: string; 1561 - }; 1562 - author: { 1563 - type: string; 1564 - ref: string; 1565 - }; 1566 - trendedBy: { 1567 - type: string; 1568 - ref: string; 1569 - }; 1570 - repostedBy: { 1571 - type: string; 1572 - ref: string; 1573 - }; 1574 - record: { 1575 - type: string; 1576 - }; 1577 - embed: { 1578 - type: string; 1579 - refs: string[]; 1580 - }; 1581 - replyCount: { 1582 - type: string; 1583 - }; 1584 - repostCount: { 1585 - type: string; 1586 - }; 1587 - upvoteCount: { 1588 - type: string; 1589 - }; 1590 - downvoteCount: { 1591 - type: string; 1592 - }; 1593 - indexedAt: { 1594 - type: string; 1595 - }; 1596 - myState: { 1597 - type: string; 1598 - ref: string; 1599 - }; 1600 - }; 1601 - }; 1602 - myState: { 1603 - type: string; 1604 - properties: { 1605 - repost: { 1606 - type: string; 1607 - }; 1608 - upvote: { 1609 - type: string; 1610 - }; 1611 - downvote: { 1612 - type: string; 1613 - }; 1614 - }; 1615 - }; 1616 1616 }; 1617 1617 }; 1618 1618 AppBskyFeedGetPostThread: { ··· 1650 1650 name: string; 1651 1651 }[]; 1652 1652 }; 1653 - post: { 1653 + threadViewPost: { 1654 1654 type: string; 1655 1655 required: string[]; 1656 1656 properties: { 1657 - uri: { 1658 - type: string; 1659 - }; 1660 - cid: { 1661 - type: string; 1662 - }; 1663 - author: { 1657 + post: { 1664 1658 type: string; 1665 1659 ref: string; 1666 1660 }; 1667 - record: { 1668 - type: string; 1669 - }; 1670 - embed: { 1671 - type: string; 1672 - refs: string[]; 1673 - }; 1674 1661 parent: { 1675 1662 type: string; 1676 1663 refs: string[]; 1677 1664 }; 1678 - replyCount: { 1679 - type: string; 1680 - }; 1681 1665 replies: { 1682 1666 type: string; 1683 1667 items: { ··· 1685 1669 refs: string[]; 1686 1670 }; 1687 1671 }; 1688 - repostCount: { 1689 - type: string; 1690 - }; 1691 - upvoteCount: { 1692 - type: string; 1693 - }; 1694 - downvoteCount: { 1695 - type: string; 1696 - }; 1697 - indexedAt: { 1698 - type: string; 1699 - }; 1700 - myState: { 1701 - type: string; 1702 - ref: string; 1703 - }; 1704 1672 }; 1705 1673 }; 1706 1674 notFoundPost: { ··· 1713 1681 notFound: { 1714 1682 type: string; 1715 1683 const: boolean; 1716 - }; 1717 - }; 1718 - }; 1719 - myState: { 1720 - type: string; 1721 - properties: { 1722 - repost: { 1723 - type: string; 1724 - }; 1725 - upvote: { 1726 - type: string; 1727 - }; 1728 - downvote: { 1729 - type: string; 1730 1684 }; 1731 1685 }; 1732 1686 }; ··· 1860 1814 }; 1861 1815 }; 1862 1816 }; 1863 - feedItem: { 1864 - type: string; 1865 - required: string[]; 1866 - properties: { 1867 - uri: { 1868 - type: string; 1869 - }; 1870 - cid: { 1871 - type: string; 1872 - }; 1873 - author: { 1874 - type: string; 1875 - ref: string; 1876 - }; 1877 - trendedBy: { 1878 - type: string; 1879 - ref: string; 1880 - }; 1881 - repostedBy: { 1882 - type: string; 1883 - ref: string; 1884 - }; 1885 - record: { 1886 - type: string; 1887 - }; 1888 - embed: { 1889 - type: string; 1890 - refs: string[]; 1891 - }; 1892 - replyCount: { 1893 - type: string; 1894 - }; 1895 - repostCount: { 1896 - type: string; 1897 - }; 1898 - upvoteCount: { 1899 - type: string; 1900 - }; 1901 - downvoteCount: { 1902 - type: string; 1903 - }; 1904 - indexedAt: { 1905 - type: string; 1906 - }; 1907 - myState: { 1908 - type: string; 1909 - ref: string; 1910 - }; 1911 - }; 1912 - }; 1913 - myState: { 1914 - type: string; 1915 - properties: { 1916 - repost: { 1917 - type: string; 1918 - }; 1919 - upvote: { 1920 - type: string; 1921 - }; 1922 - downvote: { 1923 - type: string; 1924 - }; 1925 - }; 1926 - }; 1927 1817 }; 1928 1818 }; 1929 1819 AppBskyFeedGetVotes: { ··· 2083 1973 end: { 2084 1974 type: string; 2085 1975 minimum: number; 1976 + }; 1977 + }; 1978 + }; 1979 + view: { 1980 + type: string; 1981 + required: string[]; 1982 + properties: { 1983 + uri: { 1984 + type: string; 1985 + }; 1986 + cid: { 1987 + type: string; 1988 + }; 1989 + author: { 1990 + type: string; 1991 + ref: string; 1992 + }; 1993 + record: { 1994 + type: string; 1995 + }; 1996 + embed: { 1997 + type: string; 1998 + refs: string[]; 1999 + }; 2000 + replyCount: { 2001 + type: string; 2002 + }; 2003 + repostCount: { 2004 + type: string; 2005 + }; 2006 + upvoteCount: { 2007 + type: string; 2008 + }; 2009 + downvoteCount: { 2010 + type: string; 2011 + }; 2012 + indexedAt: { 2013 + type: string; 2014 + }; 2015 + viewer: { 2016 + type: string; 2017 + ref: string; 2018 + }; 2019 + }; 2020 + }; 2021 + viewerState: { 2022 + type: string; 2023 + properties: { 2024 + repost: { 2025 + type: string; 2026 + }; 2027 + upvote: { 2028 + type: string; 2029 + }; 2030 + downvote: { 2031 + type: string; 2086 2032 }; 2087 2033 }; 2088 2034 }; ··· 2933 2879 AppBskyActorUpdateProfile: string; 2934 2880 AppBskyEmbedExternal: string; 2935 2881 AppBskyEmbedImages: string; 2882 + AppBskyFeedFeedViewPost: string; 2936 2883 AppBskyFeedGetAuthorFeed: string; 2937 2884 AppBskyFeedGetPostThread: string; 2938 2885 AppBskyFeedGetRepostedBy: string;
+26
src/third-party/api/src/client/types/app/bsky/feed/feedViewPost.d.ts
··· 1 + import * as AppBskyFeedPost from './post'; 2 + import * as AppBskyActorRef from '../actor/ref'; 3 + export interface Main { 4 + post: AppBskyFeedPost.View; 5 + reply?: ReplyRef; 6 + reason?: ReasonTrend | ReasonRepost | { 7 + $type: string; 8 + [k: string]: unknown; 9 + }; 10 + [k: string]: unknown; 11 + } 12 + export interface ReplyRef { 13 + root: AppBskyFeedPost.View; 14 + parent: AppBskyFeedPost.View; 15 + [k: string]: unknown; 16 + } 17 + export interface ReasonTrend { 18 + by: AppBskyActorRef.WithInfo; 19 + indexedAt: string; 20 + [k: string]: unknown; 21 + } 22 + export interface ReasonRepost { 23 + by: AppBskyActorRef.WithInfo; 24 + indexedAt: string; 25 + [k: string]: unknown; 26 + }
+2 -29
src/third-party/api/src/client/types/app/bsky/feed/getAuthorFeed.d.ts
··· 1 1 import { Headers } from '@atproto/xrpc'; 2 - import * as AppBskyActorRef from '../actor/ref'; 3 - import * as AppBskyEmbedImages from '../embed/images'; 4 - import * as AppBskyEmbedExternal from '../embed/external'; 2 + import * as AppBskyFeedFeedViewPost from './feedViewPost'; 5 3 export interface QueryParams { 6 4 author: string; 7 5 limit?: number; ··· 10 8 export declare type InputSchema = undefined; 11 9 export interface OutputSchema { 12 10 cursor?: string; 13 - feed: FeedItem[]; 11 + feed: AppBskyFeedFeedViewPost.Main[]; 14 12 [k: string]: unknown; 15 13 } 16 14 export interface CallOptions { ··· 22 20 data: OutputSchema; 23 21 } 24 22 export declare function toKnownErr(e: any): any; 25 - export interface FeedItem { 26 - uri: string; 27 - cid: string; 28 - author: AppBskyActorRef.WithInfo; 29 - trendedBy?: AppBskyActorRef.WithInfo; 30 - repostedBy?: AppBskyActorRef.WithInfo; 31 - record: {}; 32 - embed?: AppBskyEmbedImages.Presented | AppBskyEmbedExternal.Presented | { 33 - $type: string; 34 - [k: string]: unknown; 35 - }; 36 - replyCount: number; 37 - repostCount: number; 38 - upvoteCount: number; 39 - downvoteCount: number; 40 - indexedAt: string; 41 - myState?: MyState; 42 - [k: string]: unknown; 43 - } 44 - export interface MyState { 45 - repost?: string; 46 - upvote?: string; 47 - downvote?: string; 48 - [k: string]: unknown; 49 - }
+6 -27
src/third-party/api/src/client/types/app/bsky/feed/getPostThread.d.ts
··· 1 1 import { Headers, XRPCError } from '@atproto/xrpc'; 2 - import * as AppBskyActorRef from '../actor/ref'; 3 - import * as AppBskyEmbedImages from '../embed/images'; 4 - import * as AppBskyEmbedExternal from '../embed/external'; 2 + import * as AppBskyFeedPost from './post'; 5 3 export interface QueryParams { 6 4 uri: string; 7 5 depth?: number; 8 6 } 9 7 export declare type InputSchema = undefined; 10 8 export interface OutputSchema { 11 - thread: Post | NotFoundPost | { 9 + thread: ThreadViewPost | NotFoundPost | { 12 10 $type: string; 13 11 [k: string]: unknown; 14 12 }; ··· 26 24 constructor(src: XRPCError); 27 25 } 28 26 export declare function toKnownErr(e: any): any; 29 - export interface Post { 30 - uri: string; 31 - cid: string; 32 - author: AppBskyActorRef.WithInfo; 33 - record: {}; 34 - embed?: AppBskyEmbedImages.Presented | AppBskyEmbedExternal.Presented | { 27 + export interface ThreadViewPost { 28 + post: AppBskyFeedPost.View; 29 + parent?: ThreadViewPost | NotFoundPost | { 35 30 $type: string; 36 31 [k: string]: unknown; 37 32 }; 38 - parent?: Post | NotFoundPost | { 39 - $type: string; 40 - [k: string]: unknown; 41 - }; 42 - replyCount: number; 43 - replies?: (Post | NotFoundPost | { 33 + replies?: (ThreadViewPost | NotFoundPost | { 44 34 $type: string; 45 35 [k: string]: unknown; 46 36 })[]; 47 - repostCount: number; 48 - upvoteCount: number; 49 - downvoteCount: number; 50 - indexedAt: string; 51 - myState?: MyState; 52 37 [k: string]: unknown; 53 38 } 54 39 export interface NotFoundPost { ··· 56 41 notFound: true; 57 42 [k: string]: unknown; 58 43 } 59 - export interface MyState { 60 - repost?: string; 61 - upvote?: string; 62 - downvote?: string; 63 - [k: string]: unknown; 64 - }
+2 -29
src/third-party/api/src/client/types/app/bsky/feed/getTimeline.d.ts
··· 1 1 import { Headers } from '@atproto/xrpc'; 2 - import * as AppBskyActorRef from '../actor/ref'; 3 - import * as AppBskyEmbedImages from '../embed/images'; 4 - import * as AppBskyEmbedExternal from '../embed/external'; 2 + import * as AppBskyFeedFeedViewPost from './feedViewPost'; 5 3 export interface QueryParams { 6 4 algorithm?: string; 7 5 limit?: number; ··· 10 8 export declare type InputSchema = undefined; 11 9 export interface OutputSchema { 12 10 cursor?: string; 13 - feed: FeedItem[]; 11 + feed: AppBskyFeedFeedViewPost.Main[]; 14 12 [k: string]: unknown; 15 13 } 16 14 export interface CallOptions { ··· 22 20 data: OutputSchema; 23 21 } 24 22 export declare function toKnownErr(e: any): any; 25 - export interface FeedItem { 26 - uri: string; 27 - cid: string; 28 - author: AppBskyActorRef.WithInfo; 29 - trendedBy?: AppBskyActorRef.WithInfo; 30 - repostedBy?: AppBskyActorRef.WithInfo; 31 - record: {}; 32 - embed?: AppBskyEmbedImages.Presented | AppBskyEmbedExternal.Presented | { 33 - $type: string; 34 - [k: string]: unknown; 35 - }; 36 - replyCount: number; 37 - repostCount: number; 38 - upvoteCount: number; 39 - downvoteCount: number; 40 - indexedAt: string; 41 - myState?: MyState; 42 - [k: string]: unknown; 43 - } 44 - export interface MyState { 45 - repost?: string; 46 - upvote?: string; 47 - downvote?: string; 48 - [k: string]: unknown; 49 - }
+24
src/third-party/api/src/client/types/app/bsky/feed/post.d.ts
··· 1 1 import * as AppBskyEmbedImages from '../embed/images'; 2 2 import * as AppBskyEmbedExternal from '../embed/external'; 3 3 import * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'; 4 + import * as AppBskyActorRef from '../actor/ref'; 4 5 export interface Record { 5 6 text: string; 6 7 entities?: Entity[]; ··· 28 29 end: number; 29 30 [k: string]: unknown; 30 31 } 32 + export interface View { 33 + uri: string; 34 + cid: string; 35 + author: AppBskyActorRef.WithInfo; 36 + record: {}; 37 + embed?: AppBskyEmbedImages.Presented | AppBskyEmbedExternal.Presented | { 38 + $type: string; 39 + [k: string]: unknown; 40 + }; 41 + replyCount: number; 42 + repostCount: number; 43 + upvoteCount: number; 44 + downvoteCount: number; 45 + indexedAt: string; 46 + viewer: ViewerState; 47 + [k: string]: unknown; 48 + } 49 + export interface ViewerState { 50 + repost?: string; 51 + upvote?: string; 52 + downvote?: string; 53 + [k: string]: unknown; 54 + }
+1 -1
src/third-party/api/tsconfig.build.tsbuildinfo
··· 1 - {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/zod/lib/helpers/typealiases.d.ts","../../../node_modules/zod/lib/helpers/util.d.ts","../../../node_modules/zod/lib/zoderror.d.ts","../../../node_modules/zod/lib/locales/en.d.ts","../../../node_modules/zod/lib/errors.d.ts","../../../node_modules/zod/lib/helpers/parseutil.d.ts","../../../node_modules/zod/lib/helpers/enumutil.d.ts","../../../node_modules/zod/lib/helpers/errorutil.d.ts","../../../node_modules/zod/lib/helpers/partialutil.d.ts","../../../node_modules/zod/lib/types.d.ts","../../../node_modules/zod/lib/external.d.ts","../../../node_modules/zod/lib/index.d.ts","../../../node_modules/zod/index.d.ts","../../xrpc/src/types.ts","../../nsid/src/index.ts","../../lexicon/src/types.ts","../../lexicon/src/validators/primitives.ts","../../lexicon/src/validators/blob.ts","../../lexicon/src/validators/complex.ts","../../lexicon/src/util.ts","../../lexicon/src/validators/xrpc.ts","../../lexicon/src/validation.ts","../../lexicon/src/lexicons.ts","../../lexicon/src/index.ts","../../xrpc/src/util.ts","../../xrpc/src/client.ts","../../xrpc/src/index.ts","../src/client/lexicons.ts","../src/client/types/com/atproto/account/create.ts","../src/client/types/com/atproto/account/createinvitecode.ts","../src/client/types/com/atproto/account/delete.ts","../src/client/types/com/atproto/account/get.ts","../src/client/types/com/atproto/account/requestpasswordreset.ts","../src/client/types/com/atproto/account/resetpassword.ts","../src/client/types/com/atproto/blob/upload.ts","../src/client/types/com/atproto/handle/resolve.ts","../src/client/types/com/atproto/repo/batchwrite.ts","../src/client/types/com/atproto/repo/createrecord.ts","../src/client/types/com/atproto/repo/deleterecord.ts","../src/client/types/com/atproto/repo/describe.ts","../src/client/types/com/atproto/repo/getrecord.ts","../src/client/types/com/atproto/repo/listrecords.ts","../src/client/types/com/atproto/repo/putrecord.ts","../src/client/types/com/atproto/repo/strongref.ts","../src/client/types/com/atproto/server/getaccountsconfig.ts","../src/client/types/com/atproto/session/create.ts","../src/client/types/com/atproto/session/delete.ts","../src/client/types/com/atproto/session/get.ts","../src/client/types/com/atproto/session/refresh.ts","../src/client/types/com/atproto/sync/getrepo.ts","../src/client/types/com/atproto/sync/getroot.ts","../src/client/types/com/atproto/sync/updaterepo.ts","../src/client/types/app/bsky/system/declref.ts","../src/client/types/app/bsky/actor/createscene.ts","../src/client/types/app/bsky/actor/getprofile.ts","../src/client/types/app/bsky/actor/getsuggestions.ts","../src/client/types/app/bsky/actor/profile.ts","../src/client/types/app/bsky/actor/ref.ts","../src/client/types/app/bsky/actor/search.ts","../src/client/types/app/bsky/actor/searchtypeahead.ts","../src/client/types/app/bsky/actor/updateprofile.ts","../src/client/types/app/bsky/embed/external.ts","../src/client/types/app/bsky/embed/images.ts","../src/client/types/app/bsky/feed/getauthorfeed.ts","../src/client/types/app/bsky/feed/getpostthread.ts","../src/client/types/app/bsky/feed/getrepostedby.ts","../src/client/types/app/bsky/feed/gettimeline.ts","../src/client/types/app/bsky/feed/getvotes.ts","../src/client/types/app/bsky/feed/post.ts","../src/client/types/app/bsky/feed/repost.ts","../src/client/types/app/bsky/feed/setvote.ts","../src/client/types/app/bsky/feed/trend.ts","../src/client/types/app/bsky/feed/vote.ts","../src/client/types/app/bsky/graph/assertcreator.ts","../src/client/types/app/bsky/graph/assertmember.ts","../src/client/types/app/bsky/graph/assertion.ts","../src/client/types/app/bsky/graph/confirmation.ts","../src/client/types/app/bsky/graph/follow.ts","../src/client/types/app/bsky/graph/getassertions.ts","../src/client/types/app/bsky/graph/getfollowers.ts","../src/client/types/app/bsky/graph/getfollows.ts","../src/client/types/app/bsky/graph/getmembers.ts","../src/client/types/app/bsky/graph/getmemberships.ts","../src/client/types/app/bsky/notification/getcount.ts","../src/client/types/app/bsky/notification/list.ts","../src/client/types/app/bsky/notification/updateseen.ts","../src/client/types/app/bsky/system/actorscene.ts","../src/client/types/app/bsky/system/actoruser.ts","../src/client/types/app/bsky/system/declaration.ts","../src/client/index.ts","../../../node_modules/typed-emitter/index.d.ts","../src/session.ts","../src/index.ts","../../../node_modules/@babel/types/lib/index.d.ts","../../../node_modules/@types/babel__generator/index.d.ts","../../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../../node_modules/@types/babel__template/index.d.ts","../../../node_modules/@types/babel__traverse/index.d.ts","../../../node_modules/@types/babel__core/index.d.ts","../../../node_modules/@types/node/ts4.8/assert.d.ts","../../../node_modules/@types/node/ts4.8/assert/strict.d.ts","../../../node_modules/@types/node/ts4.8/globals.d.ts","../../../node_modules/@types/node/ts4.8/async_hooks.d.ts","../../../node_modules/@types/node/ts4.8/buffer.d.ts","../../../node_modules/@types/node/ts4.8/child_process.d.ts","../../../node_modules/@types/node/ts4.8/cluster.d.ts","../../../node_modules/@types/node/ts4.8/console.d.ts","../../../node_modules/@types/node/ts4.8/constants.d.ts","../../../node_modules/@types/node/ts4.8/crypto.d.ts","../../../node_modules/@types/node/ts4.8/dgram.d.ts","../../../node_modules/@types/node/ts4.8/diagnostics_channel.d.ts","../../../node_modules/@types/node/ts4.8/dns.d.ts","../../../node_modules/@types/node/ts4.8/dns/promises.d.ts","../../../node_modules/@types/node/ts4.8/domain.d.ts","../../../node_modules/@types/node/ts4.8/dom-events.d.ts","../../../node_modules/@types/node/ts4.8/events.d.ts","../../../node_modules/@types/node/ts4.8/fs.d.ts","../../../node_modules/@types/node/ts4.8/fs/promises.d.ts","../../../node_modules/@types/node/ts4.8/http.d.ts","../../../node_modules/@types/node/ts4.8/http2.d.ts","../../../node_modules/@types/node/ts4.8/https.d.ts","../../../node_modules/@types/node/ts4.8/inspector.d.ts","../../../node_modules/@types/node/ts4.8/module.d.ts","../../../node_modules/@types/node/ts4.8/net.d.ts","../../../node_modules/@types/node/ts4.8/os.d.ts","../../../node_modules/@types/node/ts4.8/path.d.ts","../../../node_modules/@types/node/ts4.8/perf_hooks.d.ts","../../../node_modules/@types/node/ts4.8/process.d.ts","../../../node_modules/@types/node/ts4.8/punycode.d.ts","../../../node_modules/@types/node/ts4.8/querystring.d.ts","../../../node_modules/@types/node/ts4.8/readline.d.ts","../../../node_modules/@types/node/ts4.8/readline/promises.d.ts","../../../node_modules/@types/node/ts4.8/repl.d.ts","../../../node_modules/@types/node/ts4.8/stream.d.ts","../../../node_modules/@types/node/ts4.8/stream/promises.d.ts","../../../node_modules/@types/node/ts4.8/stream/consumers.d.ts","../../../node_modules/@types/node/ts4.8/stream/web.d.ts","../../../node_modules/@types/node/ts4.8/string_decoder.d.ts","../../../node_modules/@types/node/ts4.8/test.d.ts","../../../node_modules/@types/node/ts4.8/timers.d.ts","../../../node_modules/@types/node/ts4.8/timers/promises.d.ts","../../../node_modules/@types/node/ts4.8/tls.d.ts","../../../node_modules/@types/node/ts4.8/trace_events.d.ts","../../../node_modules/@types/node/ts4.8/tty.d.ts","../../../node_modules/@types/node/ts4.8/url.d.ts","../../../node_modules/@types/node/ts4.8/util.d.ts","../../../node_modules/@types/node/ts4.8/v8.d.ts","../../../node_modules/@types/node/ts4.8/vm.d.ts","../../../node_modules/@types/node/ts4.8/wasi.d.ts","../../../node_modules/@types/node/ts4.8/worker_threads.d.ts","../../../node_modules/@types/node/ts4.8/zlib.d.ts","../../../node_modules/@types/node/ts4.8/globals.global.d.ts","../../../node_modules/@types/node/ts4.8/index.d.ts","../../../node_modules/@types/bn.js/index.d.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/cors/index.d.ts","../../../node_modules/@types/elliptic/index.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/mime/mime.d.ts","../../../node_modules/@types/mime/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../../node_modules/@types/graceful-fs/index.d.ts","../../../node_modules/@types/http-errors/index.d.ts","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/istanbul-lib-report/index.d.ts","../../../node_modules/@types/istanbul-reports/index.d.ts","../../../node_modules/@jest/expect-utils/build/index.d.ts","../../../node_modules/chalk/index.d.ts","../../../node_modules/@sinclair/typebox/typebox.d.ts","../../../node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/expect/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/jsonwebtoken/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/nodemailer/lib/dkim/index.d.ts","../../../node_modules/@types/nodemailer/lib/mailer/mail-message.d.ts","../../../node_modules/@types/nodemailer/lib/xoauth2/index.d.ts","../../../node_modules/@types/nodemailer/lib/mailer/index.d.ts","../../../node_modules/@types/nodemailer/lib/mime-node/index.d.ts","../../../node_modules/@types/nodemailer/lib/smtp-connection/index.d.ts","../../../node_modules/@types/nodemailer/lib/shared/index.d.ts","../../../node_modules/@types/nodemailer/lib/json-transport/index.d.ts","../../../node_modules/@types/nodemailer/lib/sendmail-transport/index.d.ts","../../../node_modules/@types/nodemailer/lib/ses-transport/index.d.ts","../../../node_modules/@types/nodemailer/lib/smtp-pool/index.d.ts","../../../node_modules/@types/nodemailer/lib/smtp-transport/index.d.ts","../../../node_modules/@types/nodemailer/lib/stream-transport/index.d.ts","../../../node_modules/@types/nodemailer/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/pg-types/index.d.ts","../../../node_modules/pg-protocol/dist/messages.d.ts","../../../node_modules/pg-protocol/dist/serializer.d.ts","../../../node_modules/pg-protocol/dist/parser.d.ts","../../../node_modules/pg-protocol/dist/index.d.ts","../../../node_modules/@types/pg/index.d.ts","../../../node_modules/@types/prettier/index.d.ts","../../../node_modules/@types/sharp/index.d.ts","../../../node_modules/@types/stack-utils/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/util.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"9b087de7268e4efc5f215347a62656663933d63c0b1d7b624913240367b999ea","affectsGlobalScope":true},{"version":"3260e3386d9535b804205bdddb5618a9a27735bd22927f48ad54363abcd23d45","affectsGlobalScope":true},{"version":"adb09ec0a64fc17dbbc4a228b3b18aa5f01db3440a6b0cbb02354df58674d584","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"9afae14803f3b7343ed6d193173008715c1fa3421a353a818c805244ed737a84","bb98c05ae5cb9bd7cb7ad76fe517251a661787a6f24337b842f47faf393f79c7","a93bf95f7009c90e7d1edb092560d4052e3ebbe9b9ad2d796bcd95dc4306825c","8485b6da53ec35637d072e516631d25dae53984500de70a6989058f24354666f","ebe80346928736532e4a822154eb77f57ef3389dbe2b3ba4e571366a15448ef2","c2cb3c8ff388781258ea9ddbcd8a947f751bddd6886e1d3b3ea09ddaa895df80","f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","014b34d4c2ef27191fdf3feabb6557ec92127f813910725b6e79ed9a49e466b6","72efc3e8cee3cb13144cb63bb8aacf28f918439a2ff222de89e0e5d7ba9c7170","b61efb129c7011068cb4ccbbd86d5741ac82653476b09f46d3d06dd99b5b687e","2b7961486503fa279a4f1a52928d8c31fc6558c335b750878721467210552dd7","d1f62988c7e8e8650f7ed39520a766648155abbf75dd89f60e24f069433301d4","5568d7c32e5cf5f35e092649f4e5e168c3114c800b1d7545b7ae5e0415704802","156b9be8718e5157c84f4ca2163a48f9a8334e4477b945694c882ab89fd3382d","14e6f51486f4234e46f1b2c09c852989754de877fda7b2afdd709627e24b9882","207dbf55dfe32ef1298e5945f196911bb7fb75a2ebd15e3606c65535ad8f474d","3d20a183069527c92a7d6cb79ca521fa4f8cc9d36b56cb269db4088c220d0ac9","4c8aa3b64e4973c8d22231943bc8ebbecdc3c2d8c6aaac829151c3dbc0bfc7c8","4f5e1e2785adc88653b1888a315532329a4b615a09a422c2bc1cb2f49df33740","906dd0e8fa586117f9ed4dd86573c68b1a1080adc63221429f8b29975d357714","2861e0a8090f7ebd61dd1fa9970b04a5a2afe911ab4baca19cdc21a8e6ed9b28","0966a4236c1616d428cf4615cffb6fcd8bc16c0f4852a8146610ec3cb48af913","8859c7be12542da46ae05d00f5e9eccd8aba56ad687852b3565bf40e94a5924e","b4e1ab9692322413a0095065c5a5e8a4f433e2b082d02635b82fae7e17a8fc6a","eb978dd055b9ce273d159e691fd0e5245724e93fe1bf6f6a7ac52b2a2c5afcde","c951a82134ce7545a7469d0b34c7cf61a968a2fd180c7b0761e09ffddc769996","dc8bd2d3fdede21907b93d1b962354779cdae08f83205f4507b639f0f69a29a2",{"version":"7294eb2fcd1945640042da3b8f719f5f7c8dceb5aa1342a8899f545f7eb295f1","signature":"359f999ae6c2cddbfe483d9b474a84a2e4bcba1244656b05c5c14a8a5e54d22e"},{"version":"38e89ed53adbb64433e74157c093654332b19aa74220b4a8f2c04b29d9b0bdd5","signature":"6d2bba1860095de82f4f2bd67ceb6c0eb2d8ec739581a30c3009b956d1037901"},{"version":"e0b3ad55cffaa95991cce4e3bc78384e7733e2477b217d2cd24da31e87291f8a","signature":"f160348d30169b0c2499990fe76d8e15cfbb6e8463be2b1869c53d133b936dfc"},{"version":"363b51b18cfdf213b990a45ffe6225793cd370ed38b54b42ba057f37cd8c4c34","signature":"5d999925e847ad23c8657074fda9a5559113c4156c89e668322505a243907449"},{"version":"b29740c6188e84ebd81cc27caa59b19fbfef6983f9cdcb14c7796eb8d57d8908","signature":"5abb501b865b7f33f9846da9aadef7b964a35bcf68276524e249096c23460b43"},{"version":"fd5349347ac67bffb31bec34ea44364bd0ffb1780e2728de74b216178daafb34","signature":"eedbd1cfb0884d3b46a133fe9243c1b9d0c4037b96fed382c749a0dd415098d8"},{"version":"ede18a50b3ce627b4d31dccb014ef4ddb8d0293ec29d74cfd00273b51682a1ee","signature":"954595352af7c28235d5ead40be59503033fdb672a062865a5421a448c031154"},{"version":"a56480018a76569b89126619673dbeccaba23bb5beb553ef955c16794ce9bbdc","signature":"5e5c401c9d312b37378e4b1cf43651143acdc0ae835e70a5439e186ca4f8c20e"},{"version":"a883472081fb34e9f38b67c5cb1c284c86da101b263fa480886be177b2340d53","signature":"fe06006d74387cf01b9686789ef46b8c3ddefbac667fa8c1999a55da295c0873"},{"version":"014b809041f801ef09e11460852ddb8e60daa804549f9ce62863cfe3223dced7","signature":"b96c5dcf2c7dc76fe56927605f29eeb09b08fb36b7c983c130a13d933ae83247"},{"version":"a17e7bb60c8a7763103e26dd51ec843aacee5e9d0d7b43d7e66e2cc2e47a0421","signature":"ba3c01853dde109bd23af1426806cffe120dad5e728f7db115342e78bf02d805"},{"version":"537944d7ee8932a8686eec85604841faa82fed688f145bac775f968824464f97","signature":"030488d5760d79dfc46d733b07c6fdfbc773bfc9c5290cf8bd1fcd9b9ef20c7a"},{"version":"bc46ec4bc7954727837ad4aebc6500bd15b6ba5ecfa68ddc989b779f36e0a3b5","signature":"c2449b4b23ca7fffd902e7e0dbc6fd1e493fc622e34e73e9b7f64bb8195bf4bd"},{"version":"8fef4039a121e04b88f69cb30287ee57d8acad5dd2571e13dc3b9de61cbcbc26","signature":"4b0a859871faf72ea6f481019c0384a2a1b3d1caf4462779f2b12556d76a550a"},{"version":"1eb0698de47ff6530a18610f2030c22743fc7d7f4299ce1189abe25f13606926","signature":"5b55701ecc7431d1af6729f10fe493ef5eb38ede59e5d82dd7cabdc50a083a9c"},{"version":"3e98c53fb0813dd664ab24754f8ea50b67bf027caf78d9bbe76a66f9e47e6d37","signature":"e16edd7b5e640457f4959a47b837833089df0baa2b0d91b6f604b3eda7145b4f"},{"version":"b4376fb73ecd3ad0449eb55bbaf44a58115edf5664c5c4f53fa830c211dc022d","signature":"b90ee86a7b55f699519c13b7e50d7b3cce5756bf62b3da0b0a9238ed83b93d04"},{"version":"e7cf20ea84b54af49e025925fe485f9419d97dcfccb7ece55d89860660dc54cc","signature":"9e9f9b5ad0922a7f172eaa2e0444d5298670e80e6b092bdd1f7a4d9abe12391a"},{"version":"a14722fb5c2adb2c338d7155c5e70bd3290bc3935a740ce1b291700915559be5","signature":"24dcb20e81830d1e14dcbfb4f54097a6201ac850e5e3d32ad98f8ec2e366acad"},{"version":"363b51b18cfdf213b990a45ffe6225793cd370ed38b54b42ba057f37cd8c4c34","signature":"5d999925e847ad23c8657074fda9a5559113c4156c89e668322505a243907449"},{"version":"81d363282ea148ae7b5b68bb0f7bc10f56f8c043c74ae1538b19f831816670b1","signature":"afda0409fddfcda8a53326dc8c5c79c4ff26218402529a4858f6141a31303960"},{"version":"fc25931907a5b86b4a58c9c8dcd1bf0e40afb8cda0a3da07389ea04462398766","signature":"ac5c1191c3d4470d58db7c0ed081b2f638f6b7cc91df7b670ff3317987e4326f"},{"version":"676d32222d79f25153430eca53541ff6ab411f36b2b46e3ce26d6d642e8aaa8f","signature":"9dea0e20ae109cffb6ed9c1f6c80f27731d59075092ee73e390a08402bc575c1"},{"version":"e7cf7858020dd7939dbc9351690a5c9dbcf0f7e455a576ae0fe94bc9f2e45c73","signature":"d2fb24212524dceaae883198dab7e0c31ddf30ea61ca0d326b7c87df6e12b51f"},{"version":"321dda8e00109f534c0336c94eefc2dafc4b78e12c5c09b4c8e1dfc430dc3233","signature":"04942cf19474c37c7b3300e4a916889fe64de4ecf14673000eab7f0980025e93"},{"version":"e485a6d2b76553f36a4012b9a6d965dd9a957f07daa5ccd7fc86adabc6224c38","signature":"3043f46820ae3d97134378e2cbbea4795b8b8af9faf1d93c6e3863de25604760"},{"version":"1e661c5647265cf361ca057dd9bcc749bf9e7580b1b7925972e2bd7f78ef0484","signature":"22a8f90c30ac847439de1e1bf7a7d082838ca007f19f3f64c70f3e3050c41818"},{"version":"c373b6c53f49131399afd6edb7d1d7fb4b67ab6389cb64959669b81065ada0b7","signature":"486af43b7fcc52d41a0417ecd2af092427e92576a9838b2c492d2aeebec4b46e"},{"version":"1ff96ed2ba881c32e79206c6351120e5982b3c3b101a4b3db5d669f5ee875880","signature":"9285a11d74282bc87cc42eb49bc568a7ae64c01976847c695fbbcb010e04f095"},{"version":"09075588e1e3a93a522ee983e4e1f33df636a21da6184b34281b04a4bee42031","signature":"1848cbb2fe093dfd3b6943863a908640c775386918cc553c4efd157a6e76d611"},{"version":"f0514756f04f3f3029aa1d045f49759d547674c09991b4d2e903f8bb1141d673","signature":"e3c2ec59f8043229f0833b26ba5505a4f6376fa7f79d8bf648a62b22dddf4012"},{"version":"e8d059fb2fc4dd11a0db213f7b8c333f6606b096b312fba7bb1ba813a6558d8a","signature":"b486316cd620151cd230197a3ea21cf02c1ab34b3bfa57bfa36df03764643f9a"},{"version":"e4070b2e6dec09370be84f436d0ecc3d96c7e76b5a829c3119d7290c957a3b43","signature":"d67837989e43a17172fd6b2c8d35e0f4ec113b93b4e38c7d9e043583bb243a2e"},{"version":"69d54a3222a5b70aa832987c6a0f93e5e607deaf16e966f7eaf4e1a1478bfac2","signature":"61b7f1a8a4b263a377c98eed16662ae2bef8f477d1b0c3b2a77879dcf2662d77"},{"version":"415fb80aa72396e3ac46476733be00fe3dc77ab04856661e185c81433db2d01a","signature":"9d608e34e7f154e44e1ea22d061751a4701f1e6886e41ac65f6fe656023a99d6"},{"version":"1ae77f627681b422090f8bdc04b5b4ab09f3aded0dbf06c5f48f0047f5d5706a","signature":"70bf61441a5592f1e4f288044cf33e83db99cd5c739a76530a540c1406756a00"},{"version":"e091c7067e8459c4d90e14de625e68d25e19383975a4bb7c8f418b69b52ba7a7","signature":"6a66281805139f900a044291fc239eeade14e5e8d7dcdacda736d383eab14263"},{"version":"d8670897229144990827f4e656b299fd29a4a7ea5b4b49cbb02fb14322f3c683","signature":"513ce5b29b450f07fa2c16813fd178071dddb3efb9d5f010fface1acb8baf6cb"},{"version":"a87129855a6898b5ca3cc4f46697be40be1900e642694bcdc59dbedcf05dfd5c","signature":"c2ed7248f573304683b5de07eff2e57415d264ee7bd14f5f3d398915a26c6167"},{"version":"446ae79053a44e0bfe8cc91aa8222bab7a98999a972d38c6649d6ac4542a5bb7","signature":"ea9d929b79ba6ff87a4be58f796c06a735a593922a2d8540bdc3db1a72e51532"},{"version":"2f133be0f7197273001fdcb24563b2951ef9b1694a9b7489013f7af9f47c38b5","signature":"4145d8b6a1abd1fd7dbf3ad2fcc70120e555cf029c4fa6d8477e30753aae7266"},{"version":"e03af237b917b23f415ae0b0e67efe75ce0d96d2eee428865dbb6e3c48d3657f","signature":"5bfb2e84c84073e5acad98723996d33afc00ad1551aaebd9e1b373f176a073b9"},{"version":"2e762ce2704dabbed305b7182da56c419dba3bd8a65f0f52d8a25b99d3673137","signature":"af9da8a546b60b31496ed251ae53cc72bc3d41f7b47694393dfa65a51280f908"},{"version":"e69c0b65fdfcc284bddc62aa4b514f21c574cc903f52b93bc9a36b23d8d86228","signature":"498f51f807f57d06b29b47c30ed131aa8dc67cdc6d3efd5fae63cc93b591c444"},{"version":"2e762ce2704dabbed305b7182da56c419dba3bd8a65f0f52d8a25b99d3673137","signature":"af9da8a546b60b31496ed251ae53cc72bc3d41f7b47694393dfa65a51280f908"},{"version":"411020f596b80e58fe37f7b627c1332a97741ba57420a3109f538f8a05ca4ca8","signature":"855d6732b5d77e501a6367ff9726b6fc02e5a36ec31181dd8ae165567a7a38b4"},{"version":"efff7ade1541a8a2eb0ba4ef4e37e41a26e0c984f1b01cd14983dff11f6da5b5","signature":"2c20cc7238cbd19319210cf5855138d104e9e3ba267c3d20aeaf279a9af47c42"},{"version":"81ad8984e9880613c4e057d65176597acd7e4ff0610f6b44d20d1ab97b53e1d1","signature":"3013de7e95be2b01e5f8d187e8de22c5313a47030eb26d17897153b1101405a5"},{"version":"c939aed41531096d26a08cf3cca5ecf3c05c24b030af84e1cb1ba0307c119ce9","signature":"43b644698d12b39f153baa6ad3a180e44ba7c54269fab60b52bd549fddc15476"},{"version":"ad21ca8687e59e302bd87273c4b9d0e180cfe18499e2f6b9421725764549d960","signature":"a22e4cd16c8f73a978225092138442f1879da5672da984ea40ce35f0e06a427e"},{"version":"4e81e21175876dd5159ac6d43f4ca7b457f11170decf2dc539efacb2fad0d72a","signature":"6e557f2433a75d20ba296fccaecd20796e7a66ce88ac4620c587ba909ac2eb1f"},{"version":"67355ca6d610f664bdb24743b9cc6d35547ed1e7c2adbe53f46a1a1e2238505b","signature":"bedf23c1c94c3a4bfdb5249f78d29242762285f4adfddbbcda52f098b4d025cf"},{"version":"8a21f93651233b29efd855bb3abdd924e722208f1717753a6dcaf2420cdda46b","signature":"d87f08972ad9cc5f7bd9277308741f225722d74a1a49c93778951a07ef1edc49"},{"version":"88585e1d70cd4f0fac0f0bf3108c7fa33eb0ed482debd437bc13d751b2cbf902","signature":"cf9023853abdc876cdbe234c35bee87f8fcfe1975af839c77f987676a5070c14"},{"version":"02f008f69fdef4a2b1eff41907acb6dffadaf2e3707f2fc1839d83177cd0757c","signature":"adeb007dd90e76a73f4b070139a964cdb3159560e6f359c53791ec8dfff73b5e"},{"version":"2e868b4f7b6ff80207152a12025136a1b654144af15097c26fd261eb940f805c","signature":"7cdaa38ab075300328647b62916089b9380c010e04d20b9d66671d99564dd286"},{"version":"ac67ccaa9e21896d07dba6e76075a6e56e5a773b6b0241231daaccf029132aad","signature":"209e9e58dd4eb70a91262c65d4be7b544d825fafbcdc9dd3dbadb4cae334c82c"},{"version":"38d77c1e4d11780dbc03ff0b6b3fab908fd94747cdd70a93c8cf16a8e823554c","signature":"5035b339f67ec94577421c650110c612b192e40ab6e3c7c24cfdd5e0d7695f72"},{"version":"421b1a5f751b0135df9e0ae4f8fbadda26b0a28bbd02e402669844959b49f132","signature":"5fb0f9a1e35016120a2bfb2735b12de00912f399949e8e8f8813d2faecd98a0f"},{"version":"115d9bfdd156fa6b2d9affe5cd8feb81344b9aa19481a3f5bde1b8008a114299","signature":"719eaa179d953b043795fd6fc3e97cc51bda454e8bad55fcb31e58a1ba03ae10"},{"version":"3226a1b3524f1c07d8379f9d9b445943f36131e5fbde8d777b7cb2cef3f56a82","signature":"0df8815fca8b165f461723833493def462844cf11722ef1cced82e52b3b8d881"},{"version":"8d41619dda215df9b5cb439c19f7e7d810f0fb2712ba43f3c11ba175b80311f0","signature":"1892494c78bbe8c8c4bb08d7eb71e945c8a6a740a7790da48d0c2d4123713750"},{"version":"135622a374c7cec12844fcddc3ed429d8f37451c23bc124f0a7266ee93ae1481","signature":"a8a07fe6adab23e8db791954bc5048a0f874a822c418f66bafefcf416ef149e2"},"6c27d4b5ba01295ef334456d9af4366aca789f228eee70fcb874b903a59b0e5b",{"version":"d2917c1370f3d1859c884ba3726d63c14fa3086a0c8671d311b08810e557dd22","signature":"18f168653a953e3bf0ed315e79413969de4c6fcff7add51c8b2005eda2a07cb2"},{"version":"a0f41c123f2d733f503fa755bb2d029aa461364ba103b87f27685ff447835d34","signature":"914fc0941912b62e2f6a03a59ab61b2eae9d4c5a9d5f2728ad47a5b5021b5d6f"},"c561efdf5ba0b62619745d4761fe2d9756f23db972e039367d15922fed67fd2f","cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","7ec238b220ea991b6643e24191b1f552a65956d5f6de4c6144e700b9985265d8","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","dae3d1adc67ac3dbd1cd471889301339ec439837b5df565982345be20c8fca9a","5426e62886b7be7806312d31a00e8f7dccd6fe63ba9bbefe99ee2eab29cc48a3","7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"02873d070f9cb79f50833fbf4a9a27ac578a2edf8ddb8421eba1b37faba83bfb","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"c0db280fa6b09d7b8d6720a19a47f485956a41ee0e6914f1b704033eb69c6058","affectsGlobalScope":true},"0c0cee62cb619aed81133b904f644515ba3064487002a7da83fd8aa07b1b4abd","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","afcc1c426b76db7ec80e563d4fb0ba9e6bcc6e63c2d7e9342e649dc56d26347f","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","d903fafe96674bc0b2ac38a5be4a8fc07b14c2548d1cdb165a80ea24c44c0c54","b01a80007e448d035a16c74b5c95a5405b2e81b12fabcf18b75aa9eb9ef28990","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","dbe5aa5a5dd8bd1c6a8d11b1310c3f0cdabaacc78a37b394a8c7b14faeb5fb84","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"d4ac44f01d42f541631c5fc88d0ed8efac29a3a3ad9a745d9fd58f8b61ed132e","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","3163f47436da41706c6e2b3c1511f3b7cce9f9f3905b2f3e01246c48b4ba7d14","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","213fc4f2b172d8beb74b77d7c1b41488d67348066d185e4263470cbb010cd6e8",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"f7db71191aa7aac5d6bc927ed6e7075c2763d22c7238227ec0c63c8cf5cb6a8b","affectsGlobalScope":true},"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"652ee9c5103e89102d87bc20d167a02a0e3e5e53665674466c8cfea8a9e418c7","01f7828047b5c6703d3c601473618b448f5506a88fcac852638b0715c3abf4eb","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","6fbd58e4015b9ae31ea977d4d549eb24a1102cc798b57ec5d70868b542c06612","b8a427b9fe88504a6fb092e21adfe272d144394a2ced7f9e4adc3de7efa6e216","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"ae3fe461989bbd951344efc1f1fe932360ce7392e6126bdb225a82a1bbaf15ee","affectsGlobalScope":true},"5b9ecf7da4d71cf3832dbb8336150fa924631811f488ad4690c2dfec2b4fb1d7","951c85f75aac041dddbedfedf565886a7b494e29ec1532e2a9b4a6180560b50e","f47887b61c6cf2f48746980390d6cb5b8013518951d912cfb37fe748071942be","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","f463d61cf39c3a6a5f96cdf7adfdb72a0b1d663f7b5d5b6dd042adba835430c2","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","763e521cf114b80e0dd0e21ca49b9f8ae62e8999555a5e7bade8ce36b33001c2","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","3e6bbb0883148627ca0854a9f62d820aaf1a0f1842f5568176721fef156b8f23","ffcc5500e77223169833fc6eb59b3a507944a1f89574e0a1276b0ea7fc22c4a4","22f13de9e2fe5f0f4724797abd3d34a1cdd6e47ef81fc4933fea3b8bf4ad524b","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2","f72f8428f3c1caa22e9c247d046603b85b442c0dae7b77a7a0bc092c18867cb7",{"version":"195f63105abc03e72b6a176e3e34dfb5ac932b55db378fdc7874b1617e24b465","affectsGlobalScope":true},"f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","bb4ed283cfb3db7ec1d4bb79c37f5e96d39b340f1f4de995c4b0b836c8d5fa05","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05","bb654d426b82e0846cd4bd7de91d637039ecdfd63c94447373490178f80846fe","db90f54098b237753ac9c846e39cd49aa538dcad07a2e1c68a138f3c0f8e621d","92ad68795c32309fb43576cacb38bd2677deeed38f5730dcd4a8c5e65463ae15","4b16417aab5a4b276fd4a7db95120a8c7b4d49a6d68ddfe075e9f46dcbf22f00","eecb2ea10a1500dcc6bdeff14be1fb43806f63a9b8562e16e1b4fc8baa8dfa8d","221a6ab66d611349faaf80af49c7a34d95623787610fd153fed4da0811abdcae","f3d84d6f83cf131e4db335dc8100898adbeb01dd4cf4e2fe695ab220eac98be4","6521aaade4e1d23cbc4b665083b004aeaca23f3347ba2422f88d1828968a0056","e79130cf2ba010f2b79747bf43b086252ad041b130768331a1144c0a86185877","e9709ed827c40789c669736fc78e2ab603605e8e81325d1e6d7a5eb451810dd0","dafce7a7b279977940b6b4b50017625e4f922f73094433d2875994bdc0b27e87","6fc76efbb61d3336833ef44ff3f37552667f26c2a73b368f3b4b259f19f2c234","479496e5bb48f2f5e981ef646665bc09fd9ab080e86e9ea882ca4369411604af","6c559dee3c6251c261b67df08e01d4cbc89cbd7a63300150c636705733cebfff","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","f60e3e3060207ac982da13363181fd7ee4beecc19a7c569f0d6bb034331066c2","17230b34bb564a3a2e36f9d3985372ccab4ad1722df2c43f7c5c2b553f68e5db","87ed0f84f0691d5c724b23159db96342e6b04ac69201b02c65936f4281ce1fbe","13868c5792808236b17dfe2803eafce911ea4d09d3b2fda95391891a494f988f","0dfe35191a04e8f9dc7caeb9f52f2ee07402736563d12cbccd15fb5f31ac877f","fa5c2d3fcd8e227e180815df0a0903ed4b116400452af8a75ac5b68e5e1de9da","93c4fc5b5237c09bc9ed65cb8f0dc1d89034406ab40500b89701341994897142","9adb78bae51a473d33f40da9bdb50c0e491d1cc7a5db776665853effa0cd3374","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","28288f5e5f8b7b895ed2abe6359c1da3e0d14a64b5aef985071285671f347c01"],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"emitDeclarationOnly":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"jsx":1,"module":1,"noImplicitAny":false,"outDir":"./","removeComments":true,"skipLibCheck":true,"sourceMap":true,"strict":true,"strictPropertyInitialization":false,"target":7},"fileIdsList":[[150,202],[202],[202,229],[150,151,152,153,154,202],[150,152,202],[202,209],[175,202,209,211],[175,202,209],[175,202],[202,210],[172,175,202,209,215,216],[202,212,216,217,220],[173,202,209],[202,224],[202,225],[202,231,234],[202,218],[202,219],[156,202],[159,202],[160,165,193,202],[161,172,173,180,190,201,202],[161,162,172,180,202],[163,202],[164,165,173,181,202],[165,190,198,202],[166,168,172,180,202],[167,202],[168,169,202],[172,202],[170,172,202],[172,173,174,190,201,202],[172,173,174,187,190,193,202],[202,206],[175,180,190,201,202],[172,173,175,176,180,190,198,201,202],[175,177,190,198,201,202],[156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208],[172,178,202],[179,201,202],[168,172,180,190,202],[181,202],[182,202],[159,183,202],[184,200,202,206],[185,202],[186,202],[172,187,188,202],[187,189,202,204],[160,172,190,191,192,193,202],[160,190,192,202],[190,191,202],[193,202],[194,202],[172,196,197,202],[196,197,202],[165,180,190,198,202],[199,202],[180,200,202],[160,175,186,201,202],[165,202],[190,202,203],[202,204],[202,205],[160,165,172,174,183,190,201,202,204,206],[190,202,207],[202,209,241,243,247,248,249,250,251,252],[190,202,209],[172,202,209,241,243,244,246,253],[172,180,190,201,202,209,240,241,242,244,245,246,253],[190,202,209,243,244],[190,202,209,243,245],[202,209,241,243,244,246,253],[190,202,209,245],[172,180,190,198,202,209,242,244,246],[172,202,209,241,243,244,245,246,253],[172,190,202,209,241,242,243,244,245,246,253],[172,190,202,209,241,243,244,246,253],[175,190,202,209,246],[172,190,198,202,209,256,257,260,261],[175,202,209,219],[202,265],[202,227,233],[202,231],[202,228,232],[202,209,257,258,259],[190,202,209,257],[202,230],[68,202],[59,60,202],[57,58,59,61,62,66,202],[58,59,202],[67,202],[59,202],[57,58,59,62,63,64,65,202],[57,58,68,202],[83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,202],[80,202],[83,109,202],[109,202],[83,202],[83,114,118,119,202],[83,114,202],[100,118,119,202],[100,202],[83,100,202],[114,202],[100,114,202],[83,109,114,202],[146,148,202],[83,102,105,146,147,172,202],[72,79,202],[69,72,76,78,202],[69,71,202],[72,75,79,202],[72,75,76,77,79,202],[72,73,74,76,79,202],[72,73,79,202],[70,80,81,202],[70,82,202],[69,202],[70,80,202],[150],[229],[150,151,152,153,154],[150,152],[267],[211,267,268],[267,268],[268],[210],[215,216,267,268,269],[212,216,217,220],[267,270],[224],[225],[231,234],[218],[219],[241,243,247,248,249,250,251,252,267],[267,271],[241,243,244,246,253,267,269],[240,241,242,244,245,246,253,267,269,271,272,273],[243,244,267,271],[243,245,267,271],[241,243,244,246,253,267],[245,267,271],[242,244,246,267,269,271,272,274],[241,243,244,245,246,253,267,269],[241,242,243,244,245,246,253,267,269,271],[241,243,244,246,253,267,269,271],[246,267,268,271],[256,257,260,261,267,269,271,274],[219,267,268],[265],[227,233],[231],[228,232],[257,258,259,267],[257,267,271],[230],[68],[59,60],[57,58,59,61,62,66],[58,59],[67],[59],[57,58,59,62,63,64,65],[57,58,68],[83,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145],[80],[83,109],[109],[83],[83,114,118,119],[83,114],[100,118,119],[100],[83,100],[114],[100,114],[83,109,114],[146,148],[83,146,147],[72,79],[69,72,76,78,275],[69,71,275],[72,75,79,275],[72,75,76,77,79,275],[72,73,74,76,79,275],[72,73,79],[70,80,81],[70,82],[69],[70,80,275]],"referencedMap":[[152,1],[150,2],[227,2],[230,3],[229,2],[155,4],[151,1],[153,5],[154,1],[210,6],[212,7],[211,8],[213,9],[214,10],[217,11],[221,12],[222,13],[223,2],[224,2],[225,14],[226,15],[235,16],[236,2],[237,6],[219,17],[218,18],[238,2],[239,2],[156,19],[157,19],[159,20],[160,21],[161,22],[162,23],[163,24],[164,25],[165,26],[166,27],[167,28],[168,29],[169,29],[171,30],[170,31],[172,30],[173,32],[174,33],[158,34],[208,2],[175,35],[176,36],[177,37],[209,38],[178,39],[179,40],[180,41],[181,42],[182,43],[183,44],[184,45],[185,46],[186,47],[187,48],[188,48],[189,49],[190,50],[192,51],[191,52],[193,53],[194,54],[195,2],[196,55],[197,56],[198,57],[199,58],[200,59],[201,60],[202,61],[203,62],[204,63],[205,64],[206,65],[207,66],[253,67],[240,68],[247,69],[243,70],[241,71],[244,72],[248,73],[249,69],[246,74],[245,75],[250,76],[251,77],[252,78],[242,79],[254,2],[255,2],[261,80],[262,2],[216,2],[215,2],[220,81],[263,68],[264,2],[265,2],[266,82],[228,2],[234,83],[232,84],[233,85],[260,86],[257,6],[259,87],[258,6],[256,2],[231,88],[147,2],[11,2],[12,2],[15,2],[14,2],[2,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[3,2],[4,2],[27,2],[24,2],[25,2],[26,2],[28,2],[29,2],[30,2],[5,2],[31,2],[32,2],[33,2],[34,2],[6,2],[35,2],[36,2],[37,2],[38,2],[7,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[8,2],[49,2],[46,2],[47,2],[48,2],[50,2],[9,2],[51,2],[52,2],[53,2],[54,2],[55,2],[1,2],[10,2],[56,2],[13,2],[69,89],[61,90],[67,91],[63,2],[64,2],[62,92],[65,89],[57,2],[58,2],[68,93],[60,94],[66,95],[59,96],[146,97],[84,98],[110,99],[111,99],[112,99],[113,2],[114,100],[115,99],[116,99],[117,101],[118,2],[119,2],[120,102],[121,102],[122,99],[123,102],[124,103],[125,104],[126,105],[127,106],[128,105],[129,105],[130,2],[132,107],[131,2],[133,108],[134,107],[135,103],[136,109],[137,109],[138,109],[139,109],[140,101],[141,103],[142,101],[143,2],[144,2],[145,2],[109,2],[85,101],[86,101],[87,101],[88,101],[89,101],[90,101],[91,101],[92,101],[93,101],[94,101],[95,101],[96,101],[97,101],[98,101],[99,101],[100,2],[101,101],[102,101],[103,101],[104,101],[105,101],[106,101],[107,101],[108,101],[149,110],[148,111],[80,112],[79,113],[72,114],[76,115],[78,116],[74,112],[75,117],[73,112],[77,118],[71,2],[82,119],[83,120],[70,121],[81,122]],"exportedModulesMap":[[152,123],[230,124],[155,125],[151,123],[153,126],[154,123],[210,127],[212,128],[211,129],[213,130],[214,131],[217,132],[221,133],[222,134],[225,135],[226,136],[235,137],[237,127],[219,138],[218,139],[156,19],[157,19],[159,20],[160,21],[161,22],[162,23],[163,24],[164,25],[165,26],[166,27],[167,28],[168,29],[169,29],[171,30],[170,31],[172,30],[173,32],[174,33],[158,34],[208,2],[175,35],[176,36],[177,37],[209,38],[178,39],[179,40],[180,41],[181,42],[182,43],[183,44],[184,45],[185,46],[186,47],[187,48],[188,48],[189,49],[190,50],[192,51],[191,52],[193,53],[194,54],[195,2],[196,55],[197,56],[198,57],[199,58],[200,59],[201,60],[202,61],[203,62],[204,63],[205,64],[206,65],[207,66],[253,140],[240,141],[247,142],[243,143],[241,144],[244,145],[248,146],[249,142],[246,147],[245,148],[250,149],[251,150],[252,151],[242,152],[261,153],[220,154],[263,68],[266,155],[234,156],[232,157],[233,158],[260,159],[257,127],[259,160],[258,127],[231,161],[69,162],[61,163],[67,164],[62,165],[65,162],[68,166],[60,167],[66,168],[59,169],[146,170],[84,171],[110,172],[111,172],[112,172],[114,173],[115,172],[116,172],[117,174],[120,175],[121,175],[122,172],[123,175],[124,176],[125,177],[126,178],[127,179],[128,178],[129,178],[132,180],[133,181],[134,180],[135,176],[136,182],[137,182],[138,182],[139,182],[140,174],[141,176],[142,174],[85,174],[86,174],[87,174],[88,174],[89,174],[90,174],[91,174],[92,174],[93,174],[94,174],[95,174],[96,174],[97,174],[98,174],[99,174],[101,174],[102,174],[103,174],[104,174],[105,174],[106,174],[107,174],[108,174],[149,183],[148,184],[80,185],[79,186],[72,187],[76,188],[78,189],[74,185],[75,190],[73,185],[77,191],[82,192],[83,193],[70,194],[81,195]],"semanticDiagnosticsPerFile":[152,150,227,230,229,155,151,153,154,210,212,211,213,214,217,221,222,223,224,225,226,235,236,237,219,218,238,239,156,157,159,160,161,162,163,164,165,166,167,168,169,171,170,172,173,174,158,208,175,176,177,209,178,179,180,181,182,183,184,185,186,187,188,189,190,192,191,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,253,240,247,243,241,244,248,249,246,245,250,251,252,242,254,255,261,262,216,215,220,263,264,265,266,228,234,232,233,260,257,259,258,256,231,147,11,12,15,14,2,16,17,18,19,20,21,22,23,3,4,27,24,25,26,28,29,30,5,31,32,33,34,6,35,36,37,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,54,55,1,10,56,13,69,61,67,63,64,62,65,57,58,68,60,66,59,146,84,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,132,131,133,134,135,136,137,138,139,140,141,142,143,144,145,109,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,149,148,80,79,72,76,78,74,75,73,77,71,82,83,70,81],"latestChangedDtsFile":"./src/client/types/app/bsky/embed/external.d.ts"},"version":"4.8.4"} 1 + {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/zod/lib/helpers/typealiases.d.ts","../../../node_modules/zod/lib/helpers/util.d.ts","../../../node_modules/zod/lib/zoderror.d.ts","../../../node_modules/zod/lib/locales/en.d.ts","../../../node_modules/zod/lib/errors.d.ts","../../../node_modules/zod/lib/helpers/parseutil.d.ts","../../../node_modules/zod/lib/helpers/enumutil.d.ts","../../../node_modules/zod/lib/helpers/errorutil.d.ts","../../../node_modules/zod/lib/helpers/partialutil.d.ts","../../../node_modules/zod/lib/types.d.ts","../../../node_modules/zod/lib/external.d.ts","../../../node_modules/zod/lib/index.d.ts","../../../node_modules/zod/index.d.ts","../../xrpc/src/types.ts","../../nsid/src/index.ts","../../lexicon/src/types.ts","../../lexicon/src/validators/primitives.ts","../../lexicon/src/validators/blob.ts","../../lexicon/src/validators/complex.ts","../../lexicon/src/util.ts","../../lexicon/src/validators/xrpc.ts","../../lexicon/src/validation.ts","../../lexicon/src/lexicons.ts","../../lexicon/src/index.ts","../../xrpc/src/util.ts","../../xrpc/src/client.ts","../../xrpc/src/index.ts","../src/client/lexicons.ts","../src/client/types/com/atproto/account/create.ts","../src/client/types/com/atproto/account/createinvitecode.ts","../src/client/types/com/atproto/account/delete.ts","../src/client/types/com/atproto/account/get.ts","../src/client/types/com/atproto/account/requestpasswordreset.ts","../src/client/types/com/atproto/account/resetpassword.ts","../src/client/types/com/atproto/blob/upload.ts","../src/client/types/com/atproto/handle/resolve.ts","../src/client/types/com/atproto/repo/batchwrite.ts","../src/client/types/com/atproto/repo/createrecord.ts","../src/client/types/com/atproto/repo/deleterecord.ts","../src/client/types/com/atproto/repo/describe.ts","../src/client/types/com/atproto/repo/getrecord.ts","../src/client/types/com/atproto/repo/listrecords.ts","../src/client/types/com/atproto/repo/putrecord.ts","../src/client/types/com/atproto/repo/strongref.ts","../src/client/types/com/atproto/server/getaccountsconfig.ts","../src/client/types/com/atproto/session/create.ts","../src/client/types/com/atproto/session/delete.ts","../src/client/types/com/atproto/session/get.ts","../src/client/types/com/atproto/session/refresh.ts","../src/client/types/com/atproto/sync/getrepo.ts","../src/client/types/com/atproto/sync/getroot.ts","../src/client/types/com/atproto/sync/updaterepo.ts","../src/client/types/app/bsky/system/declref.ts","../src/client/types/app/bsky/actor/createscene.ts","../src/client/types/app/bsky/actor/getprofile.ts","../src/client/types/app/bsky/actor/getsuggestions.ts","../src/client/types/app/bsky/actor/profile.ts","../src/client/types/app/bsky/actor/ref.ts","../src/client/types/app/bsky/actor/search.ts","../src/client/types/app/bsky/actor/searchtypeahead.ts","../src/client/types/app/bsky/actor/updateprofile.ts","../src/client/types/app/bsky/embed/external.ts","../src/client/types/app/bsky/embed/images.ts","../src/client/types/app/bsky/feed/post.ts","../src/client/types/app/bsky/feed/feedviewpost.ts","../src/client/types/app/bsky/feed/getauthorfeed.ts","../src/client/types/app/bsky/feed/getpostthread.ts","../src/client/types/app/bsky/feed/getrepostedby.ts","../src/client/types/app/bsky/feed/gettimeline.ts","../src/client/types/app/bsky/feed/getvotes.ts","../src/client/types/app/bsky/feed/repost.ts","../src/client/types/app/bsky/feed/setvote.ts","../src/client/types/app/bsky/feed/trend.ts","../src/client/types/app/bsky/feed/vote.ts","../src/client/types/app/bsky/graph/assertcreator.ts","../src/client/types/app/bsky/graph/assertmember.ts","../src/client/types/app/bsky/graph/assertion.ts","../src/client/types/app/bsky/graph/confirmation.ts","../src/client/types/app/bsky/graph/follow.ts","../src/client/types/app/bsky/graph/getassertions.ts","../src/client/types/app/bsky/graph/getfollowers.ts","../src/client/types/app/bsky/graph/getfollows.ts","../src/client/types/app/bsky/graph/getmembers.ts","../src/client/types/app/bsky/graph/getmemberships.ts","../src/client/types/app/bsky/notification/getcount.ts","../src/client/types/app/bsky/notification/list.ts","../src/client/types/app/bsky/notification/updateseen.ts","../src/client/types/app/bsky/system/actorscene.ts","../src/client/types/app/bsky/system/actoruser.ts","../src/client/types/app/bsky/system/declaration.ts","../src/client/index.ts","../../../node_modules/typed-emitter/index.d.ts","../src/session.ts","../src/index.ts","../../../node_modules/@babel/types/lib/index.d.ts","../../../node_modules/@types/babel__generator/index.d.ts","../../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../../node_modules/@types/babel__template/index.d.ts","../../../node_modules/@types/babel__traverse/index.d.ts","../../../node_modules/@types/babel__core/index.d.ts","../../../node_modules/@types/node/ts4.8/assert.d.ts","../../../node_modules/@types/node/ts4.8/assert/strict.d.ts","../../../node_modules/@types/node/ts4.8/globals.d.ts","../../../node_modules/@types/node/ts4.8/async_hooks.d.ts","../../../node_modules/@types/node/ts4.8/buffer.d.ts","../../../node_modules/@types/node/ts4.8/child_process.d.ts","../../../node_modules/@types/node/ts4.8/cluster.d.ts","../../../node_modules/@types/node/ts4.8/console.d.ts","../../../node_modules/@types/node/ts4.8/constants.d.ts","../../../node_modules/@types/node/ts4.8/crypto.d.ts","../../../node_modules/@types/node/ts4.8/dgram.d.ts","../../../node_modules/@types/node/ts4.8/diagnostics_channel.d.ts","../../../node_modules/@types/node/ts4.8/dns.d.ts","../../../node_modules/@types/node/ts4.8/dns/promises.d.ts","../../../node_modules/@types/node/ts4.8/domain.d.ts","../../../node_modules/@types/node/ts4.8/dom-events.d.ts","../../../node_modules/@types/node/ts4.8/events.d.ts","../../../node_modules/@types/node/ts4.8/fs.d.ts","../../../node_modules/@types/node/ts4.8/fs/promises.d.ts","../../../node_modules/@types/node/ts4.8/http.d.ts","../../../node_modules/@types/node/ts4.8/http2.d.ts","../../../node_modules/@types/node/ts4.8/https.d.ts","../../../node_modules/@types/node/ts4.8/inspector.d.ts","../../../node_modules/@types/node/ts4.8/module.d.ts","../../../node_modules/@types/node/ts4.8/net.d.ts","../../../node_modules/@types/node/ts4.8/os.d.ts","../../../node_modules/@types/node/ts4.8/path.d.ts","../../../node_modules/@types/node/ts4.8/perf_hooks.d.ts","../../../node_modules/@types/node/ts4.8/process.d.ts","../../../node_modules/@types/node/ts4.8/punycode.d.ts","../../../node_modules/@types/node/ts4.8/querystring.d.ts","../../../node_modules/@types/node/ts4.8/readline.d.ts","../../../node_modules/@types/node/ts4.8/readline/promises.d.ts","../../../node_modules/@types/node/ts4.8/repl.d.ts","../../../node_modules/@types/node/ts4.8/stream.d.ts","../../../node_modules/@types/node/ts4.8/stream/promises.d.ts","../../../node_modules/@types/node/ts4.8/stream/consumers.d.ts","../../../node_modules/@types/node/ts4.8/stream/web.d.ts","../../../node_modules/@types/node/ts4.8/string_decoder.d.ts","../../../node_modules/@types/node/ts4.8/test.d.ts","../../../node_modules/@types/node/ts4.8/timers.d.ts","../../../node_modules/@types/node/ts4.8/timers/promises.d.ts","../../../node_modules/@types/node/ts4.8/tls.d.ts","../../../node_modules/@types/node/ts4.8/trace_events.d.ts","../../../node_modules/@types/node/ts4.8/tty.d.ts","../../../node_modules/@types/node/ts4.8/url.d.ts","../../../node_modules/@types/node/ts4.8/util.d.ts","../../../node_modules/@types/node/ts4.8/v8.d.ts","../../../node_modules/@types/node/ts4.8/vm.d.ts","../../../node_modules/@types/node/ts4.8/wasi.d.ts","../../../node_modules/@types/node/ts4.8/worker_threads.d.ts","../../../node_modules/@types/node/ts4.8/zlib.d.ts","../../../node_modules/@types/node/ts4.8/globals.global.d.ts","../../../node_modules/@types/node/ts4.8/index.d.ts","../../../node_modules/@types/bn.js/index.d.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/cors/index.d.ts","../../../node_modules/@types/elliptic/index.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/mime/mime.d.ts","../../../node_modules/@types/mime/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../../node_modules/@types/graceful-fs/index.d.ts","../../../node_modules/@types/http-errors/index.d.ts","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/istanbul-lib-report/index.d.ts","../../../node_modules/@types/istanbul-reports/index.d.ts","../../../node_modules/@jest/expect-utils/build/index.d.ts","../../../node_modules/chalk/index.d.ts","../../../node_modules/@sinclair/typebox/typebox.d.ts","../../../node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/expect/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/jsonwebtoken/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/nodemailer/lib/dkim/index.d.ts","../../../node_modules/@types/nodemailer/lib/mailer/mail-message.d.ts","../../../node_modules/@types/nodemailer/lib/xoauth2/index.d.ts","../../../node_modules/@types/nodemailer/lib/mailer/index.d.ts","../../../node_modules/@types/nodemailer/lib/mime-node/index.d.ts","../../../node_modules/@types/nodemailer/lib/smtp-connection/index.d.ts","../../../node_modules/@types/nodemailer/lib/shared/index.d.ts","../../../node_modules/@types/nodemailer/lib/json-transport/index.d.ts","../../../node_modules/@types/nodemailer/lib/sendmail-transport/index.d.ts","../../../node_modules/@types/nodemailer/lib/ses-transport/index.d.ts","../../../node_modules/@types/nodemailer/lib/smtp-pool/index.d.ts","../../../node_modules/@types/nodemailer/lib/smtp-transport/index.d.ts","../../../node_modules/@types/nodemailer/lib/stream-transport/index.d.ts","../../../node_modules/@types/nodemailer/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/pg-types/index.d.ts","../../../node_modules/pg-protocol/dist/messages.d.ts","../../../node_modules/pg-protocol/dist/serializer.d.ts","../../../node_modules/pg-protocol/dist/parser.d.ts","../../../node_modules/pg-protocol/dist/index.d.ts","../../../node_modules/@types/pg/index.d.ts","../../../node_modules/@types/prettier/index.d.ts","../../../node_modules/@types/sharp/index.d.ts","../../../node_modules/@types/stack-utils/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/util.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"9b087de7268e4efc5f215347a62656663933d63c0b1d7b624913240367b999ea","affectsGlobalScope":true},{"version":"3260e3386d9535b804205bdddb5618a9a27735bd22927f48ad54363abcd23d45","affectsGlobalScope":true},{"version":"adb09ec0a64fc17dbbc4a228b3b18aa5f01db3440a6b0cbb02354df58674d584","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"9afae14803f3b7343ed6d193173008715c1fa3421a353a818c805244ed737a84","bb98c05ae5cb9bd7cb7ad76fe517251a661787a6f24337b842f47faf393f79c7","a93bf95f7009c90e7d1edb092560d4052e3ebbe9b9ad2d796bcd95dc4306825c","8485b6da53ec35637d072e516631d25dae53984500de70a6989058f24354666f","ebe80346928736532e4a822154eb77f57ef3389dbe2b3ba4e571366a15448ef2","c2cb3c8ff388781258ea9ddbcd8a947f751bddd6886e1d3b3ea09ddaa895df80","f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","014b34d4c2ef27191fdf3feabb6557ec92127f813910725b6e79ed9a49e466b6","72efc3e8cee3cb13144cb63bb8aacf28f918439a2ff222de89e0e5d7ba9c7170","b61efb129c7011068cb4ccbbd86d5741ac82653476b09f46d3d06dd99b5b687e","2b7961486503fa279a4f1a52928d8c31fc6558c335b750878721467210552dd7","d1f62988c7e8e8650f7ed39520a766648155abbf75dd89f60e24f069433301d4","5568d7c32e5cf5f35e092649f4e5e168c3114c800b1d7545b7ae5e0415704802","156b9be8718e5157c84f4ca2163a48f9a8334e4477b945694c882ab89fd3382d","14e6f51486f4234e46f1b2c09c852989754de877fda7b2afdd709627e24b9882","207dbf55dfe32ef1298e5945f196911bb7fb75a2ebd15e3606c65535ad8f474d","3d20a183069527c92a7d6cb79ca521fa4f8cc9d36b56cb269db4088c220d0ac9","4c8aa3b64e4973c8d22231943bc8ebbecdc3c2d8c6aaac829151c3dbc0bfc7c8","4f5e1e2785adc88653b1888a315532329a4b615a09a422c2bc1cb2f49df33740","906dd0e8fa586117f9ed4dd86573c68b1a1080adc63221429f8b29975d357714","2861e0a8090f7ebd61dd1fa9970b04a5a2afe911ab4baca19cdc21a8e6ed9b28","0966a4236c1616d428cf4615cffb6fcd8bc16c0f4852a8146610ec3cb48af913","8859c7be12542da46ae05d00f5e9eccd8aba56ad687852b3565bf40e94a5924e","b4e1ab9692322413a0095065c5a5e8a4f433e2b082d02635b82fae7e17a8fc6a","eb978dd055b9ce273d159e691fd0e5245724e93fe1bf6f6a7ac52b2a2c5afcde","c951a82134ce7545a7469d0b34c7cf61a968a2fd180c7b0761e09ffddc769996","dc8bd2d3fdede21907b93d1b962354779cdae08f83205f4507b639f0f69a29a2",{"version":"56d66270100dcf3d0167d52cb85b90d5859b86266c6dce364d3bbf5069a208ef","signature":"60d5974d05acd8039a46d95c56b81f6337b157e4312aae568e92c7efc3d46169"},{"version":"38e89ed53adbb64433e74157c093654332b19aa74220b4a8f2c04b29d9b0bdd5","signature":"6d2bba1860095de82f4f2bd67ceb6c0eb2d8ec739581a30c3009b956d1037901"},{"version":"e0b3ad55cffaa95991cce4e3bc78384e7733e2477b217d2cd24da31e87291f8a","signature":"f160348d30169b0c2499990fe76d8e15cfbb6e8463be2b1869c53d133b936dfc"},{"version":"363b51b18cfdf213b990a45ffe6225793cd370ed38b54b42ba057f37cd8c4c34","signature":"5d999925e847ad23c8657074fda9a5559113c4156c89e668322505a243907449"},{"version":"b29740c6188e84ebd81cc27caa59b19fbfef6983f9cdcb14c7796eb8d57d8908","signature":"5abb501b865b7f33f9846da9aadef7b964a35bcf68276524e249096c23460b43"},{"version":"fd5349347ac67bffb31bec34ea44364bd0ffb1780e2728de74b216178daafb34","signature":"eedbd1cfb0884d3b46a133fe9243c1b9d0c4037b96fed382c749a0dd415098d8"},{"version":"ede18a50b3ce627b4d31dccb014ef4ddb8d0293ec29d74cfd00273b51682a1ee","signature":"954595352af7c28235d5ead40be59503033fdb672a062865a5421a448c031154"},{"version":"a56480018a76569b89126619673dbeccaba23bb5beb553ef955c16794ce9bbdc","signature":"5e5c401c9d312b37378e4b1cf43651143acdc0ae835e70a5439e186ca4f8c20e"},{"version":"a883472081fb34e9f38b67c5cb1c284c86da101b263fa480886be177b2340d53","signature":"fe06006d74387cf01b9686789ef46b8c3ddefbac667fa8c1999a55da295c0873"},{"version":"014b809041f801ef09e11460852ddb8e60daa804549f9ce62863cfe3223dced7","signature":"b96c5dcf2c7dc76fe56927605f29eeb09b08fb36b7c983c130a13d933ae83247"},{"version":"a17e7bb60c8a7763103e26dd51ec843aacee5e9d0d7b43d7e66e2cc2e47a0421","signature":"ba3c01853dde109bd23af1426806cffe120dad5e728f7db115342e78bf02d805"},{"version":"537944d7ee8932a8686eec85604841faa82fed688f145bac775f968824464f97","signature":"030488d5760d79dfc46d733b07c6fdfbc773bfc9c5290cf8bd1fcd9b9ef20c7a"},{"version":"bc46ec4bc7954727837ad4aebc6500bd15b6ba5ecfa68ddc989b779f36e0a3b5","signature":"c2449b4b23ca7fffd902e7e0dbc6fd1e493fc622e34e73e9b7f64bb8195bf4bd"},{"version":"8fef4039a121e04b88f69cb30287ee57d8acad5dd2571e13dc3b9de61cbcbc26","signature":"4b0a859871faf72ea6f481019c0384a2a1b3d1caf4462779f2b12556d76a550a"},{"version":"1eb0698de47ff6530a18610f2030c22743fc7d7f4299ce1189abe25f13606926","signature":"5b55701ecc7431d1af6729f10fe493ef5eb38ede59e5d82dd7cabdc50a083a9c"},{"version":"3e98c53fb0813dd664ab24754f8ea50b67bf027caf78d9bbe76a66f9e47e6d37","signature":"e16edd7b5e640457f4959a47b837833089df0baa2b0d91b6f604b3eda7145b4f"},{"version":"b4376fb73ecd3ad0449eb55bbaf44a58115edf5664c5c4f53fa830c211dc022d","signature":"b90ee86a7b55f699519c13b7e50d7b3cce5756bf62b3da0b0a9238ed83b93d04"},{"version":"e7cf20ea84b54af49e025925fe485f9419d97dcfccb7ece55d89860660dc54cc","signature":"9e9f9b5ad0922a7f172eaa2e0444d5298670e80e6b092bdd1f7a4d9abe12391a"},{"version":"a14722fb5c2adb2c338d7155c5e70bd3290bc3935a740ce1b291700915559be5","signature":"24dcb20e81830d1e14dcbfb4f54097a6201ac850e5e3d32ad98f8ec2e366acad"},{"version":"363b51b18cfdf213b990a45ffe6225793cd370ed38b54b42ba057f37cd8c4c34","signature":"5d999925e847ad23c8657074fda9a5559113c4156c89e668322505a243907449"},{"version":"81d363282ea148ae7b5b68bb0f7bc10f56f8c043c74ae1538b19f831816670b1","signature":"afda0409fddfcda8a53326dc8c5c79c4ff26218402529a4858f6141a31303960"},{"version":"fc25931907a5b86b4a58c9c8dcd1bf0e40afb8cda0a3da07389ea04462398766","signature":"ac5c1191c3d4470d58db7c0ed081b2f638f6b7cc91df7b670ff3317987e4326f"},{"version":"676d32222d79f25153430eca53541ff6ab411f36b2b46e3ce26d6d642e8aaa8f","signature":"9dea0e20ae109cffb6ed9c1f6c80f27731d59075092ee73e390a08402bc575c1"},{"version":"e7cf7858020dd7939dbc9351690a5c9dbcf0f7e455a576ae0fe94bc9f2e45c73","signature":"d2fb24212524dceaae883198dab7e0c31ddf30ea61ca0d326b7c87df6e12b51f"},{"version":"321dda8e00109f534c0336c94eefc2dafc4b78e12c5c09b4c8e1dfc430dc3233","signature":"04942cf19474c37c7b3300e4a916889fe64de4ecf14673000eab7f0980025e93"},{"version":"e485a6d2b76553f36a4012b9a6d965dd9a957f07daa5ccd7fc86adabc6224c38","signature":"3043f46820ae3d97134378e2cbbea4795b8b8af9faf1d93c6e3863de25604760"},{"version":"1e661c5647265cf361ca057dd9bcc749bf9e7580b1b7925972e2bd7f78ef0484","signature":"22a8f90c30ac847439de1e1bf7a7d082838ca007f19f3f64c70f3e3050c41818"},{"version":"c373b6c53f49131399afd6edb7d1d7fb4b67ab6389cb64959669b81065ada0b7","signature":"486af43b7fcc52d41a0417ecd2af092427e92576a9838b2c492d2aeebec4b46e"},{"version":"1ff96ed2ba881c32e79206c6351120e5982b3c3b101a4b3db5d669f5ee875880","signature":"9285a11d74282bc87cc42eb49bc568a7ae64c01976847c695fbbcb010e04f095"},{"version":"09075588e1e3a93a522ee983e4e1f33df636a21da6184b34281b04a4bee42031","signature":"1848cbb2fe093dfd3b6943863a908640c775386918cc553c4efd157a6e76d611"},{"version":"f0514756f04f3f3029aa1d045f49759d547674c09991b4d2e903f8bb1141d673","signature":"e3c2ec59f8043229f0833b26ba5505a4f6376fa7f79d8bf648a62b22dddf4012"},{"version":"e8d059fb2fc4dd11a0db213f7b8c333f6606b096b312fba7bb1ba813a6558d8a","signature":"b486316cd620151cd230197a3ea21cf02c1ab34b3bfa57bfa36df03764643f9a"},{"version":"e4070b2e6dec09370be84f436d0ecc3d96c7e76b5a829c3119d7290c957a3b43","signature":"d67837989e43a17172fd6b2c8d35e0f4ec113b93b4e38c7d9e043583bb243a2e"},{"version":"69d54a3222a5b70aa832987c6a0f93e5e607deaf16e966f7eaf4e1a1478bfac2","signature":"61b7f1a8a4b263a377c98eed16662ae2bef8f477d1b0c3b2a77879dcf2662d77"},{"version":"415fb80aa72396e3ac46476733be00fe3dc77ab04856661e185c81433db2d01a","signature":"9d608e34e7f154e44e1ea22d061751a4701f1e6886e41ac65f6fe656023a99d6"},{"version":"1ae77f627681b422090f8bdc04b5b4ab09f3aded0dbf06c5f48f0047f5d5706a","signature":"70bf61441a5592f1e4f288044cf33e83db99cd5c739a76530a540c1406756a00"},{"version":"053219eefb0777709957ec370824d1570951988125a07fac068e569c45053918","signature":"a2f2de49faf40170bff259d79db0f78e98f00cd7c820e49be15e75a1b987ee28"},{"version":"dac0fcd011902b2cbf13f94df85cd0fff3ecf00f7974f045b9258de26926f686","signature":"1aaad7c6a640476477479547e60203ce4180412aafa7cbc56e5dd68b8f6057aa"},{"version":"7771445b331dbd63e01d3e2ff0a413ce01c75beb2deec7f9b088bf2c2f9b19f5","signature":"3fdf7288d9ed9d9f29fccae42c33729fb5efcbb18c15271b78423f2b61a0b170"},{"version":"deef5760367fe27e6ba2e0e6274c2e4aa71a6a8723977057d9293f44c321c114","signature":"e27ec2713f828636d35729e44fd9cc4985833d569553e2b2a3cf01101acd4ec9"},{"version":"a87129855a6898b5ca3cc4f46697be40be1900e642694bcdc59dbedcf05dfd5c","signature":"c2ed7248f573304683b5de07eff2e57415d264ee7bd14f5f3d398915a26c6167"},{"version":"e9ac903a51f3dc918e05e301d7507aff2509c2db8e29d85fd73a756b3b0412ac","signature":"1ed78972624bafbf10bb1f81ba4cc63bf36bb156f351046d5d407fa055b75dce"},{"version":"2f133be0f7197273001fdcb24563b2951ef9b1694a9b7489013f7af9f47c38b5","signature":"4145d8b6a1abd1fd7dbf3ad2fcc70120e555cf029c4fa6d8477e30753aae7266"},{"version":"2e762ce2704dabbed305b7182da56c419dba3bd8a65f0f52d8a25b99d3673137","signature":"af9da8a546b60b31496ed251ae53cc72bc3d41f7b47694393dfa65a51280f908"},{"version":"e69c0b65fdfcc284bddc62aa4b514f21c574cc903f52b93bc9a36b23d8d86228","signature":"498f51f807f57d06b29b47c30ed131aa8dc67cdc6d3efd5fae63cc93b591c444"},{"version":"2e762ce2704dabbed305b7182da56c419dba3bd8a65f0f52d8a25b99d3673137","signature":"af9da8a546b60b31496ed251ae53cc72bc3d41f7b47694393dfa65a51280f908"},{"version":"411020f596b80e58fe37f7b627c1332a97741ba57420a3109f538f8a05ca4ca8","signature":"855d6732b5d77e501a6367ff9726b6fc02e5a36ec31181dd8ae165567a7a38b4"},{"version":"efff7ade1541a8a2eb0ba4ef4e37e41a26e0c984f1b01cd14983dff11f6da5b5","signature":"2c20cc7238cbd19319210cf5855138d104e9e3ba267c3d20aeaf279a9af47c42"},{"version":"81ad8984e9880613c4e057d65176597acd7e4ff0610f6b44d20d1ab97b53e1d1","signature":"3013de7e95be2b01e5f8d187e8de22c5313a47030eb26d17897153b1101405a5"},{"version":"c939aed41531096d26a08cf3cca5ecf3c05c24b030af84e1cb1ba0307c119ce9","signature":"43b644698d12b39f153baa6ad3a180e44ba7c54269fab60b52bd549fddc15476"},{"version":"ad21ca8687e59e302bd87273c4b9d0e180cfe18499e2f6b9421725764549d960","signature":"a22e4cd16c8f73a978225092138442f1879da5672da984ea40ce35f0e06a427e"},{"version":"4e81e21175876dd5159ac6d43f4ca7b457f11170decf2dc539efacb2fad0d72a","signature":"6e557f2433a75d20ba296fccaecd20796e7a66ce88ac4620c587ba909ac2eb1f"},{"version":"67355ca6d610f664bdb24743b9cc6d35547ed1e7c2adbe53f46a1a1e2238505b","signature":"bedf23c1c94c3a4bfdb5249f78d29242762285f4adfddbbcda52f098b4d025cf"},{"version":"8a21f93651233b29efd855bb3abdd924e722208f1717753a6dcaf2420cdda46b","signature":"d87f08972ad9cc5f7bd9277308741f225722d74a1a49c93778951a07ef1edc49"},{"version":"88585e1d70cd4f0fac0f0bf3108c7fa33eb0ed482debd437bc13d751b2cbf902","signature":"cf9023853abdc876cdbe234c35bee87f8fcfe1975af839c77f987676a5070c14"},{"version":"02f008f69fdef4a2b1eff41907acb6dffadaf2e3707f2fc1839d83177cd0757c","signature":"adeb007dd90e76a73f4b070139a964cdb3159560e6f359c53791ec8dfff73b5e"},{"version":"2e868b4f7b6ff80207152a12025136a1b654144af15097c26fd261eb940f805c","signature":"7cdaa38ab075300328647b62916089b9380c010e04d20b9d66671d99564dd286"},{"version":"ac67ccaa9e21896d07dba6e76075a6e56e5a773b6b0241231daaccf029132aad","signature":"209e9e58dd4eb70a91262c65d4be7b544d825fafbcdc9dd3dbadb4cae334c82c"},{"version":"38d77c1e4d11780dbc03ff0b6b3fab908fd94747cdd70a93c8cf16a8e823554c","signature":"5035b339f67ec94577421c650110c612b192e40ab6e3c7c24cfdd5e0d7695f72"},{"version":"421b1a5f751b0135df9e0ae4f8fbadda26b0a28bbd02e402669844959b49f132","signature":"5fb0f9a1e35016120a2bfb2735b12de00912f399949e8e8f8813d2faecd98a0f"},{"version":"115d9bfdd156fa6b2d9affe5cd8feb81344b9aa19481a3f5bde1b8008a114299","signature":"719eaa179d953b043795fd6fc3e97cc51bda454e8bad55fcb31e58a1ba03ae10"},{"version":"3226a1b3524f1c07d8379f9d9b445943f36131e5fbde8d777b7cb2cef3f56a82","signature":"0df8815fca8b165f461723833493def462844cf11722ef1cced82e52b3b8d881"},{"version":"8d41619dda215df9b5cb439c19f7e7d810f0fb2712ba43f3c11ba175b80311f0","signature":"1892494c78bbe8c8c4bb08d7eb71e945c8a6a740a7790da48d0c2d4123713750"},{"version":"42d3c38255abea91c99f21da2e3063e5a0731a4af69b79e8cc2f8dfa050bac51","signature":"c9b56f9184f07672a8c8aa49825d76830b4ca78537cf5ac8e158e23dd64df234"},"6c27d4b5ba01295ef334456d9af4366aca789f228eee70fcb874b903a59b0e5b",{"version":"d2917c1370f3d1859c884ba3726d63c14fa3086a0c8671d311b08810e557dd22","signature":"18f168653a953e3bf0ed315e79413969de4c6fcff7add51c8b2005eda2a07cb2"},{"version":"a0f41c123f2d733f503fa755bb2d029aa461364ba103b87f27685ff447835d34","signature":"914fc0941912b62e2f6a03a59ab61b2eae9d4c5a9d5f2728ad47a5b5021b5d6f"},"c561efdf5ba0b62619745d4761fe2d9756f23db972e039367d15922fed67fd2f","cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","7ec238b220ea991b6643e24191b1f552a65956d5f6de4c6144e700b9985265d8","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","dae3d1adc67ac3dbd1cd471889301339ec439837b5df565982345be20c8fca9a","5426e62886b7be7806312d31a00e8f7dccd6fe63ba9bbefe99ee2eab29cc48a3","7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"02873d070f9cb79f50833fbf4a9a27ac578a2edf8ddb8421eba1b37faba83bfb","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"c0db280fa6b09d7b8d6720a19a47f485956a41ee0e6914f1b704033eb69c6058","affectsGlobalScope":true},"0c0cee62cb619aed81133b904f644515ba3064487002a7da83fd8aa07b1b4abd","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","afcc1c426b76db7ec80e563d4fb0ba9e6bcc6e63c2d7e9342e649dc56d26347f","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","d903fafe96674bc0b2ac38a5be4a8fc07b14c2548d1cdb165a80ea24c44c0c54","b01a80007e448d035a16c74b5c95a5405b2e81b12fabcf18b75aa9eb9ef28990","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","dbe5aa5a5dd8bd1c6a8d11b1310c3f0cdabaacc78a37b394a8c7b14faeb5fb84","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"d4ac44f01d42f541631c5fc88d0ed8efac29a3a3ad9a745d9fd58f8b61ed132e","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","3163f47436da41706c6e2b3c1511f3b7cce9f9f3905b2f3e01246c48b4ba7d14","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","213fc4f2b172d8beb74b77d7c1b41488d67348066d185e4263470cbb010cd6e8",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"f7db71191aa7aac5d6bc927ed6e7075c2763d22c7238227ec0c63c8cf5cb6a8b","affectsGlobalScope":true},"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"652ee9c5103e89102d87bc20d167a02a0e3e5e53665674466c8cfea8a9e418c7","01f7828047b5c6703d3c601473618b448f5506a88fcac852638b0715c3abf4eb","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","6fbd58e4015b9ae31ea977d4d549eb24a1102cc798b57ec5d70868b542c06612","b8a427b9fe88504a6fb092e21adfe272d144394a2ced7f9e4adc3de7efa6e216","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"ae3fe461989bbd951344efc1f1fe932360ce7392e6126bdb225a82a1bbaf15ee","affectsGlobalScope":true},"5b9ecf7da4d71cf3832dbb8336150fa924631811f488ad4690c2dfec2b4fb1d7","951c85f75aac041dddbedfedf565886a7b494e29ec1532e2a9b4a6180560b50e","f47887b61c6cf2f48746980390d6cb5b8013518951d912cfb37fe748071942be","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","f463d61cf39c3a6a5f96cdf7adfdb72a0b1d663f7b5d5b6dd042adba835430c2","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","763e521cf114b80e0dd0e21ca49b9f8ae62e8999555a5e7bade8ce36b33001c2","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","3e6bbb0883148627ca0854a9f62d820aaf1a0f1842f5568176721fef156b8f23","ffcc5500e77223169833fc6eb59b3a507944a1f89574e0a1276b0ea7fc22c4a4","22f13de9e2fe5f0f4724797abd3d34a1cdd6e47ef81fc4933fea3b8bf4ad524b","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2","f72f8428f3c1caa22e9c247d046603b85b442c0dae7b77a7a0bc092c18867cb7",{"version":"195f63105abc03e72b6a176e3e34dfb5ac932b55db378fdc7874b1617e24b465","affectsGlobalScope":true},"f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","bb4ed283cfb3db7ec1d4bb79c37f5e96d39b340f1f4de995c4b0b836c8d5fa05","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05","bb654d426b82e0846cd4bd7de91d637039ecdfd63c94447373490178f80846fe","db90f54098b237753ac9c846e39cd49aa538dcad07a2e1c68a138f3c0f8e621d","92ad68795c32309fb43576cacb38bd2677deeed38f5730dcd4a8c5e65463ae15","4b16417aab5a4b276fd4a7db95120a8c7b4d49a6d68ddfe075e9f46dcbf22f00","eecb2ea10a1500dcc6bdeff14be1fb43806f63a9b8562e16e1b4fc8baa8dfa8d","221a6ab66d611349faaf80af49c7a34d95623787610fd153fed4da0811abdcae","f3d84d6f83cf131e4db335dc8100898adbeb01dd4cf4e2fe695ab220eac98be4","6521aaade4e1d23cbc4b665083b004aeaca23f3347ba2422f88d1828968a0056","e79130cf2ba010f2b79747bf43b086252ad041b130768331a1144c0a86185877","e9709ed827c40789c669736fc78e2ab603605e8e81325d1e6d7a5eb451810dd0","dafce7a7b279977940b6b4b50017625e4f922f73094433d2875994bdc0b27e87","6fc76efbb61d3336833ef44ff3f37552667f26c2a73b368f3b4b259f19f2c234","479496e5bb48f2f5e981ef646665bc09fd9ab080e86e9ea882ca4369411604af","6c559dee3c6251c261b67df08e01d4cbc89cbd7a63300150c636705733cebfff","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","f60e3e3060207ac982da13363181fd7ee4beecc19a7c569f0d6bb034331066c2","17230b34bb564a3a2e36f9d3985372ccab4ad1722df2c43f7c5c2b553f68e5db","87ed0f84f0691d5c724b23159db96342e6b04ac69201b02c65936f4281ce1fbe","13868c5792808236b17dfe2803eafce911ea4d09d3b2fda95391891a494f988f","0dfe35191a04e8f9dc7caeb9f52f2ee07402736563d12cbccd15fb5f31ac877f","fa5c2d3fcd8e227e180815df0a0903ed4b116400452af8a75ac5b68e5e1de9da","93c4fc5b5237c09bc9ed65cb8f0dc1d89034406ab40500b89701341994897142","9adb78bae51a473d33f40da9bdb50c0e491d1cc7a5db776665853effa0cd3374","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","28288f5e5f8b7b895ed2abe6359c1da3e0d14a64b5aef985071285671f347c01"],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"emitDeclarationOnly":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"jsx":1,"module":1,"noImplicitAny":false,"outDir":"./","removeComments":true,"skipLibCheck":true,"sourceMap":true,"strict":true,"strictPropertyInitialization":false,"target":7},"fileIdsList":[[151,203],[203],[203,230],[151,152,153,154,155,203],[151,153,203],[203,210],[176,203,210,212],[176,203,210],[176,203],[203,211],[173,176,203,210,216,217],[203,213,217,218,221],[174,203,210],[203,225],[203,226],[203,232,235],[203,219],[203,220],[157,203],[160,203],[161,166,194,203],[162,173,174,181,191,202,203],[162,163,173,181,203],[164,203],[165,166,174,182,203],[166,191,199,203],[167,169,173,181,203],[168,203],[169,170,203],[173,203],[171,173,203],[173,174,175,191,202,203],[173,174,175,188,191,194,203],[203,207],[176,181,191,202,203],[173,174,176,177,181,191,199,202,203],[176,178,191,199,202,203],[157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209],[173,179,203],[180,202,203],[169,173,181,191,203],[182,203],[183,203],[160,184,203],[185,201,203,207],[186,203],[187,203],[173,188,189,203],[188,190,203,205],[161,173,191,192,193,194,203],[161,191,193,203],[191,192,203],[194,203],[195,203],[173,197,198,203],[197,198,203],[166,181,191,199,203],[200,203],[181,201,203],[161,176,187,202,203],[166,203],[191,203,204],[203,205],[203,206],[161,166,173,175,184,191,202,203,205,207],[191,203,208],[203,210,242,244,248,249,250,251,252,253],[191,203,210],[173,203,210,242,244,245,247,254],[173,181,191,202,203,210,241,242,243,245,246,247,254],[191,203,210,244,245],[191,203,210,244,246],[203,210,242,244,245,247,254],[191,203,210,246],[173,181,191,199,203,210,243,245,247],[173,203,210,242,244,245,246,247,254],[173,191,203,210,242,243,244,245,246,247,254],[173,191,203,210,242,244,245,247,254],[176,191,203,210,247],[173,191,199,203,210,257,258,261,262],[176,203,210,220],[203,266],[203,228,234],[203,232],[203,229,233],[203,210,258,259,260],[191,203,210,258],[203,231],[68,203],[59,60,203],[57,58,59,61,62,66,203],[58,59,203],[67,203],[59,203],[57,58,59,62,63,64,65,203],[57,58,68,203],[83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,203],[80,203],[83,109,203],[109,203],[83,203],[114,120,203],[83,121,203],[83,120,203],[83,114,203],[100,114,118,119,203],[100,203],[83,100,203],[114,203],[100,114,203],[83,109,114,203],[147,149,203],[83,102,105,147,148,173,203],[72,79,203],[69,72,76,78,203],[69,71,203],[72,75,79,203],[72,75,76,77,79,203],[72,73,74,76,79,203],[72,73,79,203],[70,80,81,203],[70,82,203],[69,203],[70,80,203],[151],[230],[151,152,153,154,155],[151,153],[268],[212,268,269],[268,269],[269],[211],[216,217,268,269,270],[213,217,218,221],[268,271],[225],[226],[232,235],[219],[220],[242,244,248,249,250,251,252,253,268],[268,272],[242,244,245,247,254,268,270],[241,242,243,245,246,247,254,268,270,272,273,274],[244,245,268,272],[244,246,268,272],[242,244,245,247,254,268],[246,268,272],[243,245,247,268,270,272,273,275],[242,244,245,246,247,254,268,270],[242,243,244,245,246,247,254,268,270,272],[242,244,245,247,254,268,270,272],[247,268,269,272],[257,258,261,262,268,270,272,275],[220,268,269],[266],[228,234],[232],[229,233],[258,259,260,268],[258,268,272],[231],[68],[59,60],[57,58,59,61,62,66],[58,59],[67],[59],[57,58,59,62,63,64,65],[57,58,68],[83,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146],[80],[83,109],[109],[83],[114,120],[83,121],[83,120],[83,114],[100,114,118,119],[100],[83,100],[114],[100,114],[83,109,114],[147,149],[83,147,148],[72,79],[69,72,76,78,276],[69,71,276],[72,75,79,276],[72,75,76,77,79,276],[72,73,74,76,79,276],[72,73,79],[70,80,81],[70,82],[69],[70,80,276]],"referencedMap":[[153,1],[151,2],[228,2],[231,3],[230,2],[156,4],[152,1],[154,5],[155,1],[211,6],[213,7],[212,8],[214,9],[215,10],[218,11],[222,12],[223,13],[224,2],[225,2],[226,14],[227,15],[236,16],[237,2],[238,6],[220,17],[219,18],[239,2],[240,2],[157,19],[158,19],[160,20],[161,21],[162,22],[163,23],[164,24],[165,25],[166,26],[167,27],[168,28],[169,29],[170,29],[172,30],[171,31],[173,30],[174,32],[175,33],[159,34],[209,2],[176,35],[177,36],[178,37],[210,38],[179,39],[180,40],[181,41],[182,42],[183,43],[184,44],[185,45],[186,46],[187,47],[188,48],[189,48],[190,49],[191,50],[193,51],[192,52],[194,53],[195,54],[196,2],[197,55],[198,56],[199,57],[200,58],[201,59],[202,60],[203,61],[204,62],[205,63],[206,64],[207,65],[208,66],[254,67],[241,68],[248,69],[244,70],[242,71],[245,72],[249,73],[250,69],[247,74],[246,75],[251,76],[252,77],[253,78],[243,79],[255,2],[256,2],[262,80],[263,2],[217,2],[216,2],[221,81],[264,68],[265,2],[266,2],[267,82],[229,2],[235,83],[233,84],[234,85],[261,86],[258,6],[260,87],[259,6],[257,2],[232,88],[148,2],[11,2],[12,2],[15,2],[14,2],[2,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[3,2],[4,2],[27,2],[24,2],[25,2],[26,2],[28,2],[29,2],[30,2],[5,2],[31,2],[32,2],[33,2],[34,2],[6,2],[35,2],[36,2],[37,2],[38,2],[7,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[8,2],[49,2],[46,2],[47,2],[48,2],[50,2],[9,2],[51,2],[52,2],[53,2],[54,2],[55,2],[1,2],[10,2],[56,2],[13,2],[69,89],[61,90],[67,91],[63,2],[64,2],[62,92],[65,89],[57,2],[58,2],[68,93],[60,94],[66,95],[59,96],[147,97],[84,98],[110,99],[111,99],[112,99],[113,2],[114,100],[115,99],[116,99],[117,101],[118,2],[119,2],[121,102],[122,103],[123,104],[124,99],[125,103],[126,105],[120,106],[127,107],[128,108],[129,107],[130,107],[131,2],[133,109],[132,2],[134,110],[135,109],[136,105],[137,111],[138,111],[139,111],[140,111],[141,101],[142,105],[143,101],[144,2],[145,2],[146,2],[109,2],[85,101],[86,101],[87,101],[88,101],[89,101],[90,101],[91,101],[92,101],[93,101],[94,101],[95,101],[96,101],[97,101],[98,101],[99,101],[100,2],[101,101],[102,101],[103,101],[104,101],[105,101],[106,101],[107,101],[108,101],[150,112],[149,113],[80,114],[79,115],[72,116],[76,117],[78,118],[74,114],[75,119],[73,114],[77,120],[71,2],[82,121],[83,122],[70,123],[81,124]],"exportedModulesMap":[[153,125],[231,126],[156,127],[152,125],[154,128],[155,125],[211,129],[213,130],[212,131],[214,132],[215,133],[218,134],[222,135],[223,136],[226,137],[227,138],[236,139],[238,129],[220,140],[219,141],[157,19],[158,19],[160,20],[161,21],[162,22],[163,23],[164,24],[165,25],[166,26],[167,27],[168,28],[169,29],[170,29],[172,30],[171,31],[173,30],[174,32],[175,33],[159,34],[209,2],[176,35],[177,36],[178,37],[210,38],[179,39],[180,40],[181,41],[182,42],[183,43],[184,44],[185,45],[186,46],[187,47],[188,48],[189,48],[190,49],[191,50],[193,51],[192,52],[194,53],[195,54],[196,2],[197,55],[198,56],[199,57],[200,58],[201,59],[202,60],[203,61],[204,62],[205,63],[206,64],[207,65],[208,66],[254,142],[241,143],[248,144],[244,145],[242,146],[245,147],[249,148],[250,144],[247,149],[246,150],[251,151],[252,152],[253,153],[243,154],[262,155],[221,156],[264,68],[267,157],[235,158],[233,159],[234,160],[261,161],[258,129],[260,162],[259,129],[232,163],[69,164],[61,165],[67,166],[62,167],[65,164],[68,168],[60,169],[66,170],[59,171],[147,172],[84,173],[110,174],[111,174],[112,174],[114,175],[115,174],[116,174],[117,176],[121,177],[122,178],[123,179],[124,174],[125,178],[126,180],[120,181],[127,182],[128,183],[129,182],[130,182],[133,184],[134,185],[135,184],[136,180],[137,186],[138,186],[139,186],[140,186],[141,176],[142,180],[143,176],[85,176],[86,176],[87,176],[88,176],[89,176],[90,176],[91,176],[92,176],[93,176],[94,176],[95,176],[96,176],[97,176],[98,176],[99,176],[101,176],[102,176],[103,176],[104,176],[105,176],[106,176],[107,176],[108,176],[150,187],[149,188],[80,189],[79,190],[72,191],[76,192],[78,193],[74,189],[75,194],[73,189],[77,195],[82,196],[83,197],[70,198],[81,199]],"semanticDiagnosticsPerFile":[153,151,228,231,230,156,152,154,155,211,213,212,214,215,218,222,223,224,225,226,227,236,237,238,220,219,239,240,157,158,160,161,162,163,164,165,166,167,168,169,170,172,171,173,174,175,159,209,176,177,178,210,179,180,181,182,183,184,185,186,187,188,189,190,191,193,192,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,254,241,248,244,242,245,249,250,247,246,251,252,253,243,255,256,262,263,217,216,221,264,265,266,267,229,235,233,234,261,258,260,259,257,232,148,11,12,15,14,2,16,17,18,19,20,21,22,23,3,4,27,24,25,26,28,29,30,5,31,32,33,34,6,35,36,37,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,54,55,1,10,56,13,69,61,67,63,64,62,65,57,58,68,60,66,59,147,84,110,111,112,113,114,115,116,117,118,119,121,122,123,124,125,126,120,127,128,129,130,131,133,132,134,135,136,137,138,139,140,141,142,143,144,145,146,109,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,150,149,80,79,72,76,78,74,75,73,77,71,82,83,70,81],"latestChangedDtsFile":"./src/client/index.d.ts"},"version":"4.8.4"}
+3 -1
src/view/com/notifications/FeedItem.tsx
··· 213 213 if (additionalPost.error) { 214 214 return <ErrorMessage message={additionalPost.error} /> 215 215 } 216 - return <Text style={[s.gray5]}>{additionalPost.thread?.record.text}</Text> 216 + return ( 217 + <Text style={[s.gray5]}>{additionalPost.thread?.post.record.text}</Text> 218 + ) 217 219 } 218 220 219 221 const styles = StyleSheet.create({
+12 -5
src/view/com/post-thread/PostThread.tsx
··· 1 1 import React, {useRef} from 'react' 2 2 import {observer} from 'mobx-react-lite' 3 - import {ActivityIndicator, FlatList, Text, View} from 'react-native' 3 + import {ActivityIndicator, FlatList, View} from 'react-native' 4 4 import { 5 5 PostThreadViewModel, 6 6 PostThreadViewPostModel, 7 7 } from '../../../state/models/post-thread-view' 8 - import {useStores} from '../../../state' 9 8 import {PostThreadItem} from './PostThreadItem' 10 9 import {ErrorMessage} from '../util/ErrorMessage' 11 10 ··· 93 92 isAscending = false, 94 93 ): Generator<PostThreadViewPostModel, void> { 95 94 if (post.parent) { 96 - yield* flattenThread(post.parent, true) 95 + if ('notFound' in post.parent && post.parent.notFound) { 96 + // TODO render not found 97 + } else { 98 + yield* flattenThread(post.parent as PostThreadViewPostModel, true) 99 + } 97 100 } 98 101 yield post 99 102 if (post.replies?.length) { 100 103 for (const reply of post.replies) { 101 - yield* flattenThread(reply) 104 + if ('notFound' in reply && reply.notFound) { 105 + // TODO render not found 106 + } else { 107 + yield* flattenThread(reply as PostThreadViewPostModel) 108 + } 102 109 } 103 - } else if (!isAscending && !post.parent && post.replyCount > 0) { 110 + } else if (!isAscending && !post.parent && post.post.replyCount > 0) { 104 111 post._hasMore = true 105 112 } 106 113 }
+50 -50
src/view/com/post-thread/PostThreadItem.tsx
··· 32 32 }) { 33 33 const store = useStores() 34 34 const [deleted, setDeleted] = useState(false) 35 - const record = item.record as unknown as PostType.Record 36 - const hasEngagement = item.upvoteCount || item.repostCount 35 + const record = item.post.record as unknown as PostType.Record 36 + const hasEngagement = item.post.upvoteCount || item.post.repostCount 37 37 38 38 const itemHref = useMemo(() => { 39 - const urip = new AtUri(item.uri) 40 - return `/profile/${item.author.handle}/post/${urip.rkey}` 41 - }, [item.uri, item.author.handle]) 42 - const itemTitle = `Post by ${item.author.handle}` 43 - const authorHref = `/profile/${item.author.handle}` 44 - const authorTitle = item.author.handle 39 + const urip = new AtUri(item.post.uri) 40 + return `/profile/${item.post.author.handle}/post/${urip.rkey}` 41 + }, [item.post.uri, item.post.author.handle]) 42 + const itemTitle = `Post by ${item.post.author.handle}` 43 + const authorHref = `/profile/${item.post.author.handle}` 44 + const authorTitle = item.post.author.handle 45 45 const upvotesHref = useMemo(() => { 46 - const urip = new AtUri(item.uri) 47 - return `/profile/${item.author.handle}/post/${urip.rkey}/upvoted-by` 48 - }, [item.uri, item.author.handle]) 46 + const urip = new AtUri(item.post.uri) 47 + return `/profile/${item.post.author.handle}/post/${urip.rkey}/upvoted-by` 48 + }, [item.post.uri, item.post.author.handle]) 49 49 const upvotesTitle = 'Upvotes on this post' 50 50 const repostsHref = useMemo(() => { 51 - const urip = new AtUri(item.uri) 52 - return `/profile/${item.author.handle}/post/${urip.rkey}/reposted-by` 53 - }, [item.uri, item.author.handle]) 51 + const urip = new AtUri(item.post.uri) 52 + return `/profile/${item.post.author.handle}/post/${urip.rkey}/reposted-by` 53 + }, [item.post.uri, item.post.author.handle]) 54 54 const repostsTitle = 'Reposts of this post' 55 55 56 56 const onPressReply = () => { 57 57 store.shell.openComposer({ 58 58 replyTo: { 59 - uri: item.uri, 60 - cid: item.cid, 61 - text: item.record.text as string, 59 + uri: item.post.uri, 60 + cid: item.post.cid, 61 + text: record.text as string, 62 62 author: { 63 - handle: item.author.handle, 64 - displayName: item.author.displayName, 65 - avatar: item.author.avatar, 63 + handle: item.post.author.handle, 64 + displayName: item.post.author.displayName, 65 + avatar: item.post.author.avatar, 66 66 }, 67 67 }, 68 68 onPost: onPostReply, ··· 113 113 <Link href={authorHref} title={authorTitle}> 114 114 <UserAvatar 115 115 size={50} 116 - displayName={item.author.displayName} 117 - handle={item.author.handle} 118 - avatar={item.author.avatar} 116 + displayName={item.post.author.displayName} 117 + handle={item.post.author.handle} 118 + avatar={item.post.author.avatar} 119 119 /> 120 120 </Link> 121 121 </View> ··· 126 126 href={authorHref} 127 127 title={authorTitle}> 128 128 <Text style={[s.f16, s.bold, s.black]} numberOfLines={1}> 129 - {item.author.displayName || item.author.handle} 129 + {item.post.author.displayName || item.post.author.handle} 130 130 </Text> 131 131 </Link> 132 132 <Text style={[styles.metaItem, s.f15, s.gray5]}> 133 - &middot; {ago(item.indexedAt)} 133 + &middot; {ago(item.post.indexedAt)} 134 134 </Text> 135 135 <View style={s.flex1} /> 136 136 <PostDropdownBtn 137 137 style={styles.metaItem} 138 138 itemHref={itemHref} 139 139 itemTitle={itemTitle} 140 - isAuthor={item.author.did === store.me.did} 140 + isAuthor={item.post.author.did === store.me.did} 141 141 onCopyPostText={onCopyPostText} 142 142 onDeletePost={onDeletePost}> 143 143 <FontAwesomeIcon ··· 153 153 href={authorHref} 154 154 title={authorTitle}> 155 155 <Text style={[s.f15, s.gray5]} numberOfLines={1}> 156 - @{item.author.handle} 156 + @{item.post.author.handle} 157 157 </Text> 158 158 </Link> 159 159 </View> ··· 173 173 /> 174 174 </View> 175 175 ) : undefined} 176 - <PostEmbeds embed={item.embed} style={s.mb10} /> 176 + <PostEmbeds embed={item.post.embed} style={s.mb10} /> 177 177 {item._isHighlightedPost && hasEngagement ? ( 178 178 <View style={styles.expandedInfo}> 179 - {item.repostCount ? ( 179 + {item.post.repostCount ? ( 180 180 <Link 181 181 style={styles.expandedInfoItem} 182 182 href={repostsHref} 183 183 title={repostsTitle}> 184 184 <Text style={[s.gray5, s.semiBold, s.f17]}> 185 185 <Text style={[s.bold, s.black, s.f17]}> 186 - {item.repostCount} 186 + {item.post.repostCount} 187 187 </Text>{' '} 188 - {pluralize(item.repostCount, 'repost')} 188 + {pluralize(item.post.repostCount, 'repost')} 189 189 </Text> 190 190 </Link> 191 191 ) : ( 192 192 <></> 193 193 )} 194 - {item.upvoteCount ? ( 194 + {item.post.upvoteCount ? ( 195 195 <Link 196 196 style={styles.expandedInfoItem} 197 197 href={upvotesHref} 198 198 title={upvotesTitle}> 199 199 <Text style={[s.gray5, s.semiBold, s.f17]}> 200 200 <Text style={[s.bold, s.black, s.f17]}> 201 - {item.upvoteCount} 201 + {item.post.upvoteCount} 202 202 </Text>{' '} 203 - {pluralize(item.upvoteCount, 'upvote')} 203 + {pluralize(item.post.upvoteCount, 'upvote')} 204 204 </Text> 205 205 </Link> 206 206 ) : ( ··· 213 213 <View style={[s.pl10, s.pb5]}> 214 214 <PostCtrls 215 215 big 216 - isReposted={!!item.myState.repost} 217 - isUpvoted={!!item.myState.upvote} 216 + isReposted={!!item.post.viewer.repost} 217 + isUpvoted={!!item.post.viewer.upvote} 218 218 onPressReply={onPressReply} 219 219 onPressToggleRepost={onPressToggleRepost} 220 220 onPressToggleUpvote={onPressToggleUpvote} ··· 234 234 return ( 235 235 <> 236 236 <Link style={styles.outer} href={itemHref} title={itemTitle} noFeedback> 237 - {!item.replyingTo && item.record.reply && ( 237 + {!item.replyingTo && record.reply && ( 238 238 <View style={styles.parentReplyLine} /> 239 239 )} 240 240 {item.replies?.length !== 0 && <View style={styles.childReplyLine} />} ··· 259 259 <Link href={authorHref} title={authorTitle}> 260 260 <UserAvatar 261 261 size={50} 262 - displayName={item.author.displayName} 263 - handle={item.author.handle} 264 - avatar={item.author.avatar} 262 + displayName={item.post.author.displayName} 263 + handle={item.post.author.handle} 264 + avatar={item.post.author.avatar} 265 265 /> 266 266 </Link> 267 267 </View> ··· 270 270 itemHref={itemHref} 271 271 itemTitle={itemTitle} 272 272 authorHref={authorHref} 273 - authorHandle={item.author.handle} 274 - authorDisplayName={item.author.displayName} 275 - timestamp={item.indexedAt} 276 - isAuthor={item.author.did === store.me.did} 273 + authorHandle={item.post.author.handle} 274 + authorDisplayName={item.post.author.displayName} 275 + timestamp={item.post.indexedAt} 276 + isAuthor={item.post.author.did === store.me.did} 277 277 onCopyPostText={onCopyPostText} 278 278 onDeletePost={onDeletePost} 279 279 /> ··· 288 288 ) : ( 289 289 <View style={{height: 5}} /> 290 290 )} 291 - <PostEmbeds embed={item.embed} style={{marginBottom: 10}} /> 291 + <PostEmbeds embed={item.post.embed} style={{marginBottom: 10}} /> 292 292 <PostCtrls 293 - replyCount={item.replyCount} 294 - repostCount={item.repostCount} 295 - upvoteCount={item.upvoteCount} 296 - isReposted={!!item.myState.repost} 297 - isUpvoted={!!item.myState.upvote} 293 + replyCount={item.post.replyCount} 294 + repostCount={item.post.repostCount} 295 + upvoteCount={item.post.upvoteCount} 296 + isReposted={!!item.post.viewer.repost} 297 + isUpvoted={!!item.post.viewer.upvote} 298 298 onPressReply={onPressReply} 299 299 onPressToggleRepost={onPressToggleRepost} 300 300 onPressToggleUpvote={onPressToggleUpvote}
+25 -25
src/view/com/post/Post.tsx
··· 77 77 // loaded 78 78 // = 79 79 const item = view.thread 80 - const record = view.thread?.record as unknown as PostType.Record 80 + const record = view.thread?.post.record as unknown as PostType.Record 81 81 82 - const itemUrip = new AtUri(item.uri) 83 - const itemHref = `/profile/${item.author.handle}/post/${itemUrip.rkey}` 84 - const itemTitle = `Post by ${item.author.handle}` 85 - const authorHref = `/profile/${item.author.handle}` 86 - const authorTitle = item.author.handle 82 + const itemUrip = new AtUri(item.post.uri) 83 + const itemHref = `/profile/${item.post.author.handle}/post/${itemUrip.rkey}` 84 + const itemTitle = `Post by ${item.post.author.handle}` 85 + const authorHref = `/profile/${item.post.author.handle}` 86 + const authorTitle = item.post.author.handle 87 87 let replyAuthorDid = '' 88 88 let replyHref = '' 89 89 if (record.reply) { ··· 94 94 const onPressReply = () => { 95 95 store.shell.openComposer({ 96 96 replyTo: { 97 - uri: item.uri, 98 - cid: item.cid, 99 - text: item.record.text as string, 97 + uri: item.post.uri, 98 + cid: item.post.cid, 99 + text: record.text as string, 100 100 author: { 101 - handle: item.author.handle, 102 - displayName: item.author.displayName, 103 - avatar: item.author.avatar, 101 + handle: item.post.author.handle, 102 + displayName: item.post.author.displayName, 103 + avatar: item.post.author.avatar, 104 104 }, 105 105 }, 106 106 }) ··· 144 144 <Link href={authorHref} title={authorTitle}> 145 145 <UserAvatar 146 146 size={52} 147 - displayName={item.author.displayName} 148 - handle={item.author.handle} 149 - avatar={item.author.avatar} 147 + displayName={item.post.author.displayName} 148 + handle={item.post.author.handle} 149 + avatar={item.post.author.avatar} 150 150 /> 151 151 </Link> 152 152 </View> ··· 155 155 itemHref={itemHref} 156 156 itemTitle={itemTitle} 157 157 authorHref={authorHref} 158 - authorHandle={item.author.handle} 159 - authorDisplayName={item.author.displayName} 160 - timestamp={item.indexedAt} 161 - isAuthor={item.author.did === store.me.did} 158 + authorHandle={item.post.author.handle} 159 + authorDisplayName={item.post.author.displayName} 160 + timestamp={item.post.indexedAt} 161 + isAuthor={item.post.author.did === store.me.did} 162 162 onCopyPostText={onCopyPostText} 163 163 onDeletePost={onDeletePost} 164 164 /> ··· 186 186 ) : ( 187 187 <View style={{height: 5}} /> 188 188 )} 189 - <PostEmbeds embed={item.embed} style={{marginBottom: 10}} /> 189 + <PostEmbeds embed={item.post.embed} style={{marginBottom: 10}} /> 190 190 <PostCtrls 191 - replyCount={item.replyCount} 192 - repostCount={item.repostCount} 193 - upvoteCount={item.upvoteCount} 194 - isReposted={!!item.myState.repost} 195 - isUpvoted={!!item.myState.upvote} 191 + replyCount={item.post.replyCount} 192 + repostCount={item.post.repostCount} 193 + upvoteCount={item.post.upvoteCount} 194 + isReposted={!!item.post.viewer.repost} 195 + isUpvoted={!!item.post.viewer.upvote} 196 196 onPressReply={onPressReply} 197 197 onPressToggleRepost={onPressToggleRepost} 198 198 onPressToggleUpvote={onPressToggleUpvote}
+58 -57
src/view/com/posts/FeedItem.tsx
··· 10 10 import {Link} from '../util/Link' 11 11 import {Text} from '../util/Text' 12 12 import {UserInfoText} from '../util/UserInfoText' 13 - import {Post} from '../post/Post' 14 13 import {PostMeta} from '../util/PostMeta' 15 14 import {PostCtrls} from '../util/PostCtrls' 16 15 import {PostEmbeds} from '../util/PostEmbeds' ··· 20 19 import {s, colors} from '../../lib/styles' 21 20 import {useStores} from '../../../state' 22 21 23 - const TOP_REPLY_LINE_LENGTH = 8 24 - 25 22 export const FeedItem = observer(function FeedItem({ 26 23 item, 24 + showReplyLine, 27 25 }: { 28 26 item: FeedItemModel 27 + showReplyLine?: boolean 29 28 }) { 30 29 const store = useStores() 31 30 const [deleted, setDeleted] = useState(false) 32 - const record = item.record as unknown as PostType.Record 31 + const record = item.post.record as unknown as PostType.Record 33 32 const itemHref = useMemo(() => { 34 - const urip = new AtUri(item.uri) 35 - return `/profile/${item.author.handle}/post/${urip.rkey}` 36 - }, [item.uri, item.author.handle]) 37 - const itemTitle = `Post by ${item.author.handle}` 38 - const authorHref = `/profile/${item.author.handle}` 33 + const urip = new AtUri(item.post.uri) 34 + return `/profile/${item.post.author.handle}/post/${urip.rkey}` 35 + }, [item.post.uri, item.post.author.handle]) 36 + const itemTitle = `Post by ${item.post.author.handle}` 37 + const authorHref = `/profile/${item.post.author.handle}` 39 38 const replyAuthorDid = useMemo(() => { 40 39 if (!record.reply) return '' 41 40 const urip = new AtUri(record.reply.parent?.uri || record.reply.root.uri) ··· 50 49 const onPressReply = () => { 51 50 store.shell.openComposer({ 52 51 replyTo: { 53 - uri: item.uri, 54 - cid: item.cid, 55 - text: item.record.text as string, 52 + uri: item.post.uri, 53 + cid: item.post.cid, 54 + text: record.text as string, 56 55 author: { 57 - handle: item.author.handle, 58 - displayName: item.author.displayName, 59 - avatar: item.author.avatar, 56 + handle: item.post.author.handle, 57 + displayName: item.post.author.displayName, 58 + avatar: item.post.author.avatar, 60 59 }, 61 60 }, 62 61 }) ··· 92 91 return <View /> 93 92 } 94 93 95 - const isChild = 96 - item._isThreadChild || 97 - (!item.repostedBy && !item.trendedBy && item.additionalParentPost?.thread) 94 + const isChild = item._isThreadChild || (!item.reason && item.reply) 95 + const isSmallTop = isChild && item._isThreadChild 96 + const isNoTop = isChild && !item._isThreadChild 98 97 const outerStyles = [ 99 98 styles.outer, 100 - isChild 101 - ? item._isThreadChild 102 - ? styles.outerSmallTop 103 - : styles.outerNoTop 104 - : undefined, 99 + isSmallTop ? styles.outerSmallTop : undefined, 100 + isNoTop ? styles.outerNoTop : undefined, 105 101 item._isThreadParent ? styles.outerNoBottom : undefined, 106 102 ] 107 103 return ( 108 104 <> 109 - {isChild && item.additionalParentPost?.thread ? ( 110 - <Post 111 - uri={item.additionalParentPost.thread.uri} 112 - initView={item.additionalParentPost} 113 - showReplyLine 114 - style={{marginTop: 2}} 115 - /> 105 + {isChild && !item._isThreadChild && item.replyParent ? ( 106 + <View style={{marginTop: 2}}> 107 + <FeedItem item={item.replyParent} showReplyLine /> 108 + </View> 116 109 ) : undefined} 117 110 <Link style={outerStyles} href={itemHref} title={itemTitle} noFeedback> 118 - {isChild && <View style={[styles.topReplyLine]} />} 119 - {item._isThreadParent && <View style={[styles.bottomReplyLine]} />} 120 - {item.repostedBy && ( 111 + {item._isThreadChild && <View style={[styles.topReplyLine]} />} 112 + {(showReplyLine || item._isThreadParent) && ( 113 + <View 114 + style={[styles.bottomReplyLine, isNoTop ? {top: 64} : undefined]} 115 + /> 116 + )} 117 + {item.reasonRepost && ( 121 118 <Link 122 119 style={styles.includeReason} 123 - href={`/profile/${item.repostedBy.handle}`} 124 - title={item.repostedBy.displayName || item.repostedBy.handle}> 120 + href={`/profile/${item.reasonRepost.by.handle}`} 121 + title={ 122 + item.reasonRepost.by.displayName || item.reasonRepost.by.handle 123 + }> 125 124 <FontAwesomeIcon icon="retweet" style={styles.includeReasonIcon} /> 126 125 <Text style={[s.gray4, s.bold, s.f13]}> 127 126 Reposted by{' '} 128 - {item.repostedBy.displayName || item.repostedBy.handle} 127 + {item.reasonRepost.by.displayName || item.reasonRepost.by.handle} 129 128 </Text> 130 129 </Link> 131 130 )} 132 - {item.trendedBy && ( 131 + {item.reasonTrend && ( 133 132 <Link 134 133 style={styles.includeReason} 135 - href={`/profile/${item.trendedBy.handle}`} 136 - title={item.trendedBy.displayName || item.trendedBy.handle}> 134 + href={`/profile/${item.reasonTrend.by.handle}`} 135 + title={ 136 + item.reasonTrend.by.displayName || item.reasonTrend.by.handle 137 + }> 137 138 <FontAwesomeIcon 138 139 icon="arrow-trend-up" 139 140 style={styles.includeReasonIcon} 140 141 /> 141 142 <Text style={[s.gray4, s.bold, s.f13]}> 142 143 Trending with{' '} 143 - {item.trendedBy.displayName || item.trendedBy.handle} 144 + {item.reasonTrend.by.displayName || item.reasonTrend.by.handle} 144 145 </Text> 145 146 </Link> 146 147 )} 147 148 <View style={styles.layout}> 148 149 <View style={styles.layoutAvi}> 149 - <Link href={authorHref} title={item.author.handle}> 150 + <Link href={authorHref} title={item.post.author.handle}> 150 151 <UserAvatar 151 152 size={52} 152 - displayName={item.author.displayName} 153 - handle={item.author.handle} 154 - avatar={item.author.avatar} 153 + displayName={item.post.author.displayName} 154 + handle={item.post.author.handle} 155 + avatar={item.post.author.avatar} 155 156 /> 156 157 </Link> 157 158 </View> ··· 160 161 itemHref={itemHref} 161 162 itemTitle={itemTitle} 162 163 authorHref={authorHref} 163 - authorHandle={item.author.handle} 164 - authorDisplayName={item.author.displayName} 165 - timestamp={item.indexedAt} 166 - isAuthor={item.author.did === store.me.did} 164 + authorHandle={item.post.author.handle} 165 + authorDisplayName={item.post.author.displayName} 166 + timestamp={item.post.indexedAt} 167 + isAuthor={item.post.author.did === store.me.did} 167 168 onCopyPostText={onCopyPostText} 168 169 onDeletePost={onDeletePost} 169 170 /> ··· 195 196 ) : ( 196 197 <View style={{height: 5}} /> 197 198 )} 198 - <PostEmbeds embed={item.embed} style={styles.postEmbeds} /> 199 + <PostEmbeds embed={item.post.embed} style={styles.postEmbeds} /> 199 200 <PostCtrls 200 - replyCount={item.replyCount} 201 - repostCount={item.repostCount} 202 - upvoteCount={item.upvoteCount} 203 - isReposted={!!item.myState.repost} 204 - isUpvoted={!!item.myState.upvote} 201 + replyCount={item.post.replyCount} 202 + repostCount={item.post.repostCount} 203 + upvoteCount={item.post.upvoteCount} 204 + isReposted={!!item.post.viewer.repost} 205 + isUpvoted={!!item.post.viewer.upvote} 205 206 onPressReply={onPressReply} 206 207 onPressToggleRepost={onPressToggleRepost} 207 208 onPressToggleUpvote={onPressToggleUpvote} ··· 266 267 topReplyLine: { 267 268 position: 'absolute', 268 269 left: 34, 269 - top: -1 * TOP_REPLY_LINE_LENGTH, 270 - height: TOP_REPLY_LINE_LENGTH, 270 + top: 0, 271 + height: 6, 271 272 borderLeftWidth: 2, 272 273 borderLeftColor: colors.gray2, 273 274 }, 274 275 bottomReplyLine: { 275 276 position: 'absolute', 276 277 left: 34, 277 - top: 60, 278 + top: 72, 278 279 bottom: 0, 279 280 borderLeftWidth: 2, 280 281 borderLeftColor: colors.gray2,