···99 "dev": {
1010 "dependencies": ["dev:db", "dev:api", "dev:ingest"]
1111 },
1212- "codegen": "deno run -A jsr:@atp/lex-gen@^0.1.0-alpha.2 server -o ./lex -i ./lexicons",
1212+ "codegen": "deno run -A ../atp/lex-gen/mod.ts server -o ./lex -i ./lexicons",
1313 "start": "deno run -A main.ts",
1414 "docker-dev": "docker compose -f compose.dev.yaml up --build --watch"
1515 },
+280
lex/index.ts
···5555import type * as ToolsOzoneModerationSearchRepos from "./types/tools/ozone/moderation/searchRepos.ts";
5656import type * as ToolsOzoneModerationGetAccountTimeline from "./types/tools/ozone/moderation/getAccountTimeline.ts";
5757import type * as ToolsOzoneModerationGetRepos from "./types/tools/ozone/moderation/getRepos.ts";
5858+import type * as AppBskyDraftCreateDraft from "./types/app/bsky/draft/createDraft.ts";
5959+import type * as AppBskyDraftUpdateDraft from "./types/app/bsky/draft/updateDraft.ts";
6060+import type * as AppBskyDraftGetDrafts from "./types/app/bsky/draft/getDrafts.ts";
6161+import type * as AppBskyDraftDeleteDraft from "./types/app/bsky/draft/deleteDraft.ts";
5862import type * as AppBskyVideoUploadVideo from "./types/app/bsky/video/uploadVideo.ts";
5963import type * as AppBskyVideoGetJobStatus from "./types/app/bsky/video/getJobStatus.ts";
6064import type * as AppBskyVideoGetUploadLimits from "./types/app/bsky/video/getUploadLimits.ts";
6565+import type * as AppBskyContactSendNotification from "./types/app/bsky/contact/sendNotification.ts";
6666+import type * as AppBskyContactGetSyncStatus from "./types/app/bsky/contact/getSyncStatus.ts";
6767+import type * as AppBskyContactStartPhoneVerification from "./types/app/bsky/contact/startPhoneVerification.ts";
6868+import type * as AppBskyContactGetMatches from "./types/app/bsky/contact/getMatches.ts";
6969+import type * as AppBskyContactImportContacts from "./types/app/bsky/contact/importContacts.ts";
7070+import type * as AppBskyContactDismissMatch from "./types/app/bsky/contact/dismissMatch.ts";
7171+import type * as AppBskyContactRemoveData from "./types/app/bsky/contact/removeData.ts";
7272+import type * as AppBskyContactVerifyPhone from "./types/app/bsky/contact/verifyPhone.ts";
6173import type * as AppBskyBookmarkDeleteBookmark from "./types/app/bsky/bookmark/deleteBookmark.ts";
6274import type * as AppBskyBookmarkGetBookmarks from "./types/app/bsky/bookmark/getBookmarks.ts";
6375import type * as AppBskyBookmarkCreateBookmark from "./types/app/bsky/bookmark/createBookmark.ts";
···7385import type * as AppBskyNotificationGetUnreadCount from "./types/app/bsky/notification/getUnreadCount.ts";
7486import type * as AppBskyUnspeccedGetSuggestedFeedsSkeleton from "./types/app/bsky/unspecced/getSuggestedFeedsSkeleton.ts";
7587import type * as AppBskyUnspeccedSearchStarterPacksSkeleton from "./types/app/bsky/unspecced/searchStarterPacksSkeleton.ts";
8888+import type * as AppBskyUnspeccedGetSuggestedUsersForExplore from "./types/app/bsky/unspecced/getSuggestedUsersForExplore.ts";
7689import type * as AppBskyUnspeccedGetOnboardingSuggestedStarterPacksSkeleton from "./types/app/bsky/unspecced/getOnboardingSuggestedStarterPacksSkeleton.ts";
9090+import type * as AppBskyUnspeccedGetSuggestedUsersForExploreSkeleton from "./types/app/bsky/unspecced/getSuggestedUsersForExploreSkeleton.ts";
7791import type * as AppBskyUnspeccedGetSuggestedUsers from "./types/app/bsky/unspecced/getSuggestedUsers.ts";
7892import type * as AppBskyUnspeccedGetPostThreadOtherV2 from "./types/app/bsky/unspecced/getPostThreadOtherV2.ts";
7993import type * as AppBskyUnspeccedGetSuggestedStarterPacks from "./types/app/bsky/unspecced/getSuggestedStarterPacks.ts";
···8599import type * as AppBskyUnspeccedSearchActorsSkeleton from "./types/app/bsky/unspecced/searchActorsSkeleton.ts";
86100import type * as AppBskyUnspeccedGetSuggestionsSkeleton from "./types/app/bsky/unspecced/getSuggestionsSkeleton.ts";
87101import type * as AppBskyUnspeccedSearchPostsSkeleton from "./types/app/bsky/unspecced/searchPostsSkeleton.ts";
102102+import type * as AppBskyUnspeccedGetOnboardingSuggestedUsersSkeleton from "./types/app/bsky/unspecced/getOnboardingSuggestedUsersSkeleton.ts";
103103+import type * as AppBskyUnspeccedGetSuggestedUsersForDiscoverSkeleton from "./types/app/bsky/unspecced/getSuggestedUsersForDiscoverSkeleton.ts";
104104+import type * as AppBskyUnspeccedGetSuggestedUsersForDiscover from "./types/app/bsky/unspecced/getSuggestedUsersForDiscover.ts";
88105import type * as AppBskyUnspeccedGetAgeAssuranceState from "./types/app/bsky/unspecced/getAgeAssuranceState.ts";
89106import type * as AppBskyUnspeccedGetPopularFeedGenerators from "./types/app/bsky/unspecced/getPopularFeedGenerators.ts";
107107+import type * as AppBskyUnspeccedGetSuggestedOnboardingUsers from "./types/app/bsky/unspecced/getSuggestedOnboardingUsers.ts";
108108+import type * as AppBskyUnspeccedGetSuggestedUsersForSeeMore from "./types/app/bsky/unspecced/getSuggestedUsersForSeeMore.ts";
90109import type * as AppBskyUnspeccedInitAgeAssurance from "./types/app/bsky/unspecced/initAgeAssurance.ts";
91110import type * as AppBskyUnspeccedGetTrendingTopics from "./types/app/bsky/unspecced/getTrendingTopics.ts";
92111import type * as AppBskyUnspeccedGetTaggedSuggestions from "./types/app/bsky/unspecced/getTaggedSuggestions.ts";
112112+import type * as AppBskyUnspeccedGetSuggestedUsersForSeeMoreSkeleton from "./types/app/bsky/unspecced/getSuggestedUsersForSeeMoreSkeleton.ts";
93113import type * as AppBskyUnspeccedGetSuggestedFeeds from "./types/app/bsky/unspecced/getSuggestedFeeds.ts";
94114import type * as AppBskyUnspeccedGetTrendsSkeleton from "./types/app/bsky/unspecced/getTrendsSkeleton.ts";
95115import type * as AppBskyUnspeccedGetConfig from "./types/app/bsky/unspecced/getConfig.ts";
···1119113911201140export class AppBskyNS {
11211141 _server: Server;
11421142+ draft: AppBskyDraftNS;
11221143 video: AppBskyVideoNS;
11441144+ contact: AppBskyContactNS;
11231145 bookmark: AppBskyBookmarkNS;
11241146 embed: AppBskyEmbedNS;
11251147 notification: AppBskyNotificationNS;
···1133115511341156 constructor(server: Server) {
11351157 this._server = server;
11581158+ this.draft = new AppBskyDraftNS(server);
11361159 this.video = new AppBskyVideoNS(server);
11601160+ this.contact = new AppBskyContactNS(server);
11371161 this.bookmark = new AppBskyBookmarkNS(server);
11381162 this.embed = new AppBskyEmbedNS(server);
11391163 this.notification = new AppBskyNotificationNS(server);
···11471171 }
11481172}
1149117311741174+export class AppBskyDraftNS {
11751175+ _server: Server;
11761176+11771177+ constructor(server: Server) {
11781178+ this._server = server;
11791179+ }
11801180+11811181+ createDraft<A extends Auth = void>(
11821182+ cfg: MethodConfigOrHandler<
11831183+ A,
11841184+ AppBskyDraftCreateDraft.QueryParams,
11851185+ AppBskyDraftCreateDraft.HandlerInput,
11861186+ AppBskyDraftCreateDraft.HandlerOutput
11871187+ >,
11881188+ ) {
11891189+ const nsid = "app.bsky.draft.createDraft"; // @ts-ignore - dynamically generated
11901190+ return this._server.xrpc.method(nsid, cfg);
11911191+ }
11921192+11931193+ updateDraft<A extends Auth = void>(
11941194+ cfg: MethodConfigOrHandler<
11951195+ A,
11961196+ AppBskyDraftUpdateDraft.QueryParams,
11971197+ AppBskyDraftUpdateDraft.HandlerInput,
11981198+ AppBskyDraftUpdateDraft.HandlerOutput
11991199+ >,
12001200+ ) {
12011201+ const nsid = "app.bsky.draft.updateDraft"; // @ts-ignore - dynamically generated
12021202+ return this._server.xrpc.method(nsid, cfg);
12031203+ }
12041204+12051205+ getDrafts<A extends Auth = void>(
12061206+ cfg: MethodConfigOrHandler<
12071207+ A,
12081208+ AppBskyDraftGetDrafts.QueryParams,
12091209+ AppBskyDraftGetDrafts.HandlerInput,
12101210+ AppBskyDraftGetDrafts.HandlerOutput
12111211+ >,
12121212+ ) {
12131213+ const nsid = "app.bsky.draft.getDrafts"; // @ts-ignore - dynamically generated
12141214+ return this._server.xrpc.method(nsid, cfg);
12151215+ }
12161216+12171217+ deleteDraft<A extends Auth = void>(
12181218+ cfg: MethodConfigOrHandler<
12191219+ A,
12201220+ AppBskyDraftDeleteDraft.QueryParams,
12211221+ AppBskyDraftDeleteDraft.HandlerInput,
12221222+ AppBskyDraftDeleteDraft.HandlerOutput
12231223+ >,
12241224+ ) {
12251225+ const nsid = "app.bsky.draft.deleteDraft"; // @ts-ignore - dynamically generated
12261226+ return this._server.xrpc.method(nsid, cfg);
12271227+ }
12281228+}
12291229+11501230export class AppBskyVideoNS {
11511231 _server: Server;
11521232···11911271 }
11921272}
1193127312741274+export class AppBskyContactNS {
12751275+ _server: Server;
12761276+12771277+ constructor(server: Server) {
12781278+ this._server = server;
12791279+ }
12801280+12811281+ sendNotification<A extends Auth = void>(
12821282+ cfg: MethodConfigOrHandler<
12831283+ A,
12841284+ AppBskyContactSendNotification.QueryParams,
12851285+ AppBskyContactSendNotification.HandlerInput,
12861286+ AppBskyContactSendNotification.HandlerOutput
12871287+ >,
12881288+ ) {
12891289+ const nsid = "app.bsky.contact.sendNotification"; // @ts-ignore - dynamically generated
12901290+ return this._server.xrpc.method(nsid, cfg);
12911291+ }
12921292+12931293+ getSyncStatus<A extends Auth = void>(
12941294+ cfg: MethodConfigOrHandler<
12951295+ A,
12961296+ AppBskyContactGetSyncStatus.QueryParams,
12971297+ AppBskyContactGetSyncStatus.HandlerInput,
12981298+ AppBskyContactGetSyncStatus.HandlerOutput
12991299+ >,
13001300+ ) {
13011301+ const nsid = "app.bsky.contact.getSyncStatus"; // @ts-ignore - dynamically generated
13021302+ return this._server.xrpc.method(nsid, cfg);
13031303+ }
13041304+13051305+ startPhoneVerification<A extends Auth = void>(
13061306+ cfg: MethodConfigOrHandler<
13071307+ A,
13081308+ AppBskyContactStartPhoneVerification.QueryParams,
13091309+ AppBskyContactStartPhoneVerification.HandlerInput,
13101310+ AppBskyContactStartPhoneVerification.HandlerOutput
13111311+ >,
13121312+ ) {
13131313+ const nsid = "app.bsky.contact.startPhoneVerification"; // @ts-ignore - dynamically generated
13141314+ return this._server.xrpc.method(nsid, cfg);
13151315+ }
13161316+13171317+ getMatches<A extends Auth = void>(
13181318+ cfg: MethodConfigOrHandler<
13191319+ A,
13201320+ AppBskyContactGetMatches.QueryParams,
13211321+ AppBskyContactGetMatches.HandlerInput,
13221322+ AppBskyContactGetMatches.HandlerOutput
13231323+ >,
13241324+ ) {
13251325+ const nsid = "app.bsky.contact.getMatches"; // @ts-ignore - dynamically generated
13261326+ return this._server.xrpc.method(nsid, cfg);
13271327+ }
13281328+13291329+ importContacts<A extends Auth = void>(
13301330+ cfg: MethodConfigOrHandler<
13311331+ A,
13321332+ AppBskyContactImportContacts.QueryParams,
13331333+ AppBskyContactImportContacts.HandlerInput,
13341334+ AppBskyContactImportContacts.HandlerOutput
13351335+ >,
13361336+ ) {
13371337+ const nsid = "app.bsky.contact.importContacts"; // @ts-ignore - dynamically generated
13381338+ return this._server.xrpc.method(nsid, cfg);
13391339+ }
13401340+13411341+ dismissMatch<A extends Auth = void>(
13421342+ cfg: MethodConfigOrHandler<
13431343+ A,
13441344+ AppBskyContactDismissMatch.QueryParams,
13451345+ AppBskyContactDismissMatch.HandlerInput,
13461346+ AppBskyContactDismissMatch.HandlerOutput
13471347+ >,
13481348+ ) {
13491349+ const nsid = "app.bsky.contact.dismissMatch"; // @ts-ignore - dynamically generated
13501350+ return this._server.xrpc.method(nsid, cfg);
13511351+ }
13521352+13531353+ removeData<A extends Auth = void>(
13541354+ cfg: MethodConfigOrHandler<
13551355+ A,
13561356+ AppBskyContactRemoveData.QueryParams,
13571357+ AppBskyContactRemoveData.HandlerInput,
13581358+ AppBskyContactRemoveData.HandlerOutput
13591359+ >,
13601360+ ) {
13611361+ const nsid = "app.bsky.contact.removeData"; // @ts-ignore - dynamically generated
13621362+ return this._server.xrpc.method(nsid, cfg);
13631363+ }
13641364+13651365+ verifyPhone<A extends Auth = void>(
13661366+ cfg: MethodConfigOrHandler<
13671367+ A,
13681368+ AppBskyContactVerifyPhone.QueryParams,
13691369+ AppBskyContactVerifyPhone.HandlerInput,
13701370+ AppBskyContactVerifyPhone.HandlerOutput
13711371+ >,
13721372+ ) {
13731373+ const nsid = "app.bsky.contact.verifyPhone"; // @ts-ignore - dynamically generated
13741374+ return this._server.xrpc.method(nsid, cfg);
13751375+ }
13761376+}
13771377+11941378export class AppBskyBookmarkNS {
11951379 _server: Server;
11961380···14021586 return this._server.xrpc.method(nsid, cfg);
14031587 }
1404158815891589+ getSuggestedUsersForExplore<A extends Auth = void>(
15901590+ cfg: MethodConfigOrHandler<
15911591+ A,
15921592+ AppBskyUnspeccedGetSuggestedUsersForExplore.QueryParams,
15931593+ AppBskyUnspeccedGetSuggestedUsersForExplore.HandlerInput,
15941594+ AppBskyUnspeccedGetSuggestedUsersForExplore.HandlerOutput
15951595+ >,
15961596+ ) {
15971597+ const nsid = "app.bsky.unspecced.getSuggestedUsersForExplore"; // @ts-ignore - dynamically generated
15981598+ return this._server.xrpc.method(nsid, cfg);
15991599+ }
16001600+14051601 getOnboardingSuggestedStarterPacksSkeleton<A extends Auth = void>(
14061602 cfg: MethodConfigOrHandler<
14071603 A,
···14121608 ) {
14131609 const nsid =
14141610 "app.bsky.unspecced.getOnboardingSuggestedStarterPacksSkeleton"; // @ts-ignore - dynamically generated
16111611+ return this._server.xrpc.method(nsid, cfg);
16121612+ }
16131613+16141614+ getSuggestedUsersForExploreSkeleton<A extends Auth = void>(
16151615+ cfg: MethodConfigOrHandler<
16161616+ A,
16171617+ AppBskyUnspeccedGetSuggestedUsersForExploreSkeleton.QueryParams,
16181618+ AppBskyUnspeccedGetSuggestedUsersForExploreSkeleton.HandlerInput,
16191619+ AppBskyUnspeccedGetSuggestedUsersForExploreSkeleton.HandlerOutput
16201620+ >,
16211621+ ) {
16221622+ const nsid = "app.bsky.unspecced.getSuggestedUsersForExploreSkeleton"; // @ts-ignore - dynamically generated
14151623 return this._server.xrpc.method(nsid, cfg);
14161624 }
14171625···15471755 return this._server.xrpc.method(nsid, cfg);
15481756 }
1549175717581758+ getOnboardingSuggestedUsersSkeleton<A extends Auth = void>(
17591759+ cfg: MethodConfigOrHandler<
17601760+ A,
17611761+ AppBskyUnspeccedGetOnboardingSuggestedUsersSkeleton.QueryParams,
17621762+ AppBskyUnspeccedGetOnboardingSuggestedUsersSkeleton.HandlerInput,
17631763+ AppBskyUnspeccedGetOnboardingSuggestedUsersSkeleton.HandlerOutput
17641764+ >,
17651765+ ) {
17661766+ const nsid = "app.bsky.unspecced.getOnboardingSuggestedUsersSkeleton"; // @ts-ignore - dynamically generated
17671767+ return this._server.xrpc.method(nsid, cfg);
17681768+ }
17691769+17701770+ getSuggestedUsersForDiscoverSkeleton<A extends Auth = void>(
17711771+ cfg: MethodConfigOrHandler<
17721772+ A,
17731773+ AppBskyUnspeccedGetSuggestedUsersForDiscoverSkeleton.QueryParams,
17741774+ AppBskyUnspeccedGetSuggestedUsersForDiscoverSkeleton.HandlerInput,
17751775+ AppBskyUnspeccedGetSuggestedUsersForDiscoverSkeleton.HandlerOutput
17761776+ >,
17771777+ ) {
17781778+ const nsid = "app.bsky.unspecced.getSuggestedUsersForDiscoverSkeleton"; // @ts-ignore - dynamically generated
17791779+ return this._server.xrpc.method(nsid, cfg);
17801780+ }
17811781+17821782+ getSuggestedUsersForDiscover<A extends Auth = void>(
17831783+ cfg: MethodConfigOrHandler<
17841784+ A,
17851785+ AppBskyUnspeccedGetSuggestedUsersForDiscover.QueryParams,
17861786+ AppBskyUnspeccedGetSuggestedUsersForDiscover.HandlerInput,
17871787+ AppBskyUnspeccedGetSuggestedUsersForDiscover.HandlerOutput
17881788+ >,
17891789+ ) {
17901790+ const nsid = "app.bsky.unspecced.getSuggestedUsersForDiscover"; // @ts-ignore - dynamically generated
17911791+ return this._server.xrpc.method(nsid, cfg);
17921792+ }
17931793+15501794 getAgeAssuranceState<A extends Auth = void>(
15511795 cfg: MethodConfigOrHandler<
15521796 A,
···15711815 return this._server.xrpc.method(nsid, cfg);
15721816 }
1573181718181818+ getSuggestedOnboardingUsers<A extends Auth = void>(
18191819+ cfg: MethodConfigOrHandler<
18201820+ A,
18211821+ AppBskyUnspeccedGetSuggestedOnboardingUsers.QueryParams,
18221822+ AppBskyUnspeccedGetSuggestedOnboardingUsers.HandlerInput,
18231823+ AppBskyUnspeccedGetSuggestedOnboardingUsers.HandlerOutput
18241824+ >,
18251825+ ) {
18261826+ const nsid = "app.bsky.unspecced.getSuggestedOnboardingUsers"; // @ts-ignore - dynamically generated
18271827+ return this._server.xrpc.method(nsid, cfg);
18281828+ }
18291829+18301830+ getSuggestedUsersForSeeMore<A extends Auth = void>(
18311831+ cfg: MethodConfigOrHandler<
18321832+ A,
18331833+ AppBskyUnspeccedGetSuggestedUsersForSeeMore.QueryParams,
18341834+ AppBskyUnspeccedGetSuggestedUsersForSeeMore.HandlerInput,
18351835+ AppBskyUnspeccedGetSuggestedUsersForSeeMore.HandlerOutput
18361836+ >,
18371837+ ) {
18381838+ const nsid = "app.bsky.unspecced.getSuggestedUsersForSeeMore"; // @ts-ignore - dynamically generated
18391839+ return this._server.xrpc.method(nsid, cfg);
18401840+ }
18411841+15741842 initAgeAssurance<A extends Auth = void>(
15751843 cfg: MethodConfigOrHandler<
15761844 A,
···16041872 >,
16051873 ) {
16061874 const nsid = "app.bsky.unspecced.getTaggedSuggestions"; // @ts-ignore - dynamically generated
18751875+ return this._server.xrpc.method(nsid, cfg);
18761876+ }
18771877+18781878+ getSuggestedUsersForSeeMoreSkeleton<A extends Auth = void>(
18791879+ cfg: MethodConfigOrHandler<
18801880+ A,
18811881+ AppBskyUnspeccedGetSuggestedUsersForSeeMoreSkeleton.QueryParams,
18821882+ AppBskyUnspeccedGetSuggestedUsersForSeeMoreSkeleton.HandlerInput,
18831883+ AppBskyUnspeccedGetSuggestedUsersForSeeMoreSkeleton.HandlerOutput
18841884+ >,
18851885+ ) {
18861886+ const nsid = "app.bsky.unspecced.getSuggestedUsersForSeeMoreSkeleton"; // @ts-ignore - dynamically generated
16071887 return this._server.xrpc.method(nsid, cfg);
16081888 }
16091889
+2083-13
lex/lexicons.ts
···31123112 "lex:tools.ozone.moderation.defs#modEventPriorityScore",
31133113 "lex:tools.ozone.moderation.defs#ageAssuranceEvent",
31143114 "lex:tools.ozone.moderation.defs#ageAssuranceOverrideEvent",
31153115+ "lex:tools.ozone.moderation.defs#ageAssurancePurgeEvent",
31153116 "lex:tools.ozone.moderation.defs#revokeAccountCredentialsEvent",
31163117 "lex:tools.ozone.moderation.defs#scheduleTakedownEvent",
31173118 "lex:tools.ozone.moderation.defs#cancelScheduledTakedownEvent",
···31893190 "lex:tools.ozone.moderation.defs#modEventPriorityScore",
31903191 "lex:tools.ozone.moderation.defs#ageAssuranceEvent",
31913192 "lex:tools.ozone.moderation.defs#ageAssuranceOverrideEvent",
31933193+ "lex:tools.ozone.moderation.defs#ageAssurancePurgeEvent",
31923194 "lex:tools.ozone.moderation.defs#revokeAccountCredentialsEvent",
31933195 "lex:tools.ozone.moderation.defs#scheduleTakedownEvent",
31943196 "lex:tools.ozone.moderation.defs#cancelScheduledTakedownEvent",
···37933795 },
37943796 "comment": {
37953797 "type": "string",
37983798+ "minLength": 1,
37963799 "description": "Comment describing the reason for the override.",
37973800 },
37983801 },
37993802 },
38033803+ "ageAssurancePurgeEvent": {
38043804+ "type": "object",
38053805+ "description":
38063806+ "Purges all age assurance events for the subject. Only works on DID subjects. Moderator-only.",
38073807+ "required": [
38083808+ "comment",
38093809+ ],
38103810+ "properties": {
38113811+ "comment": {
38123812+ "type": "string",
38133813+ "minLength": 1,
38143814+ "description": "Comment describing the reason for the purge.",
38153815+ },
38163816+ },
38173817+ },
38003818 "revokeAccountCredentialsEvent": {
38013819 "type": "object",
38023820 "description":
···38063824 ],
38073825 "properties": {
38083826 "comment": {
38273827+ "minLength": 1,
38093828 "type": "string",
38103829 "description": "Comment describing the reason for the revocation.",
38113830 },
···52665285 "lex:tools.ozone.moderation.defs#modEventPriorityScore",
52675286 "lex:tools.ozone.moderation.defs#ageAssuranceEvent",
52685287 "lex:tools.ozone.moderation.defs#ageAssuranceOverrideEvent",
52885288+ "lex:tools.ozone.moderation.defs#ageAssurancePurgeEvent",
52695289 "lex:tools.ozone.moderation.defs#revokeAccountCredentialsEvent",
52705290 "lex:tools.ozone.moderation.defs#scheduleTakedownEvent",
52715291 "lex:tools.ozone.moderation.defs#cancelScheduledTakedownEvent",
···55445564 },
55455565 },
55465566 },
55675567+ "AppBskyDraftDefs": {
55685568+ "lexicon": 1,
55695569+ "id": "app.bsky.draft.defs",
55705570+ "defs": {
55715571+ "draftWithId": {
55725572+ "description":
55735573+ "A draft with an identifier, used to store drafts in private storage (stash).",
55745574+ "type": "object",
55755575+ "required": [
55765576+ "id",
55775577+ "draft",
55785578+ ],
55795579+ "properties": {
55805580+ "id": {
55815581+ "description": "A TID to be used as a draft identifier.",
55825582+ "type": "string",
55835583+ "format": "tid",
55845584+ },
55855585+ "draft": {
55865586+ "type": "ref",
55875587+ "ref": "lex:app.bsky.draft.defs#draft",
55885588+ },
55895589+ },
55905590+ },
55915591+ "draft": {
55925592+ "description": "A draft containing an array of draft posts.",
55935593+ "type": "object",
55945594+ "required": [
55955595+ "posts",
55965596+ ],
55975597+ "properties": {
55985598+ "deviceId": {
55995599+ "type": "string",
56005600+ "description":
56015601+ "UUIDv4 identifier of the device that created this draft.",
56025602+ "maxLength": 100,
56035603+ },
56045604+ "deviceName": {
56055605+ "type": "string",
56065606+ "description":
56075607+ "The device and/or platform on which the draft was created.",
56085608+ "maxLength": 100,
56095609+ },
56105610+ "posts": {
56115611+ "description": "Array of draft posts that compose this draft.",
56125612+ "type": "array",
56135613+ "minLength": 1,
56145614+ "maxLength": 100,
56155615+ "items": {
56165616+ "type": "ref",
56175617+ "ref": "lex:app.bsky.draft.defs#draftPost",
56185618+ },
56195619+ },
56205620+ "langs": {
56215621+ "type": "array",
56225622+ "description":
56235623+ "Indicates human language of posts primary text content.",
56245624+ "maxLength": 3,
56255625+ "items": {
56265626+ "type": "string",
56275627+ "format": "language",
56285628+ },
56295629+ },
56305630+ "postgateEmbeddingRules": {
56315631+ "description":
56325632+ "Embedding rules for the postgates to be created when this draft is published.",
56335633+ "type": "array",
56345634+ "maxLength": 5,
56355635+ "items": {
56365636+ "type": "union",
56375637+ "refs": [
56385638+ "lex:app.bsky.feed.postgate#disableRule",
56395639+ ],
56405640+ },
56415641+ },
56425642+ "threadgateAllow": {
56435643+ "description":
56445644+ "Allow-rules for the threadgate to be created when this draft is published.",
56455645+ "type": "array",
56465646+ "maxLength": 5,
56475647+ "items": {
56485648+ "type": "union",
56495649+ "refs": [
56505650+ "lex:app.bsky.feed.threadgate#mentionRule",
56515651+ "lex:app.bsky.feed.threadgate#followerRule",
56525652+ "lex:app.bsky.feed.threadgate#followingRule",
56535653+ "lex:app.bsky.feed.threadgate#listRule",
56545654+ ],
56555655+ },
56565656+ },
56575657+ },
56585658+ },
56595659+ "draftPost": {
56605660+ "description": "One of the posts that compose a draft.",
56615661+ "type": "object",
56625662+ "required": [
56635663+ "text",
56645664+ ],
56655665+ "properties": {
56665666+ "text": {
56675667+ "type": "string",
56685668+ "maxLength": 10000,
56695669+ "maxGraphemes": 1000,
56705670+ "description":
56715671+ "The primary post content. It has a higher limit than post contents to allow storing a larger text that can later be refined into smaller posts.",
56725672+ },
56735673+ "labels": {
56745674+ "type": "union",
56755675+ "description":
56765676+ "Self-label values for this post. Effectively content warnings.",
56775677+ "refs": [
56785678+ "lex:com.atproto.label.defs#selfLabels",
56795679+ ],
56805680+ },
56815681+ "embedImages": {
56825682+ "type": "array",
56835683+ "items": {
56845684+ "type": "ref",
56855685+ "ref": "lex:app.bsky.draft.defs#draftEmbedImage",
56865686+ },
56875687+ "maxLength": 4,
56885688+ },
56895689+ "embedVideos": {
56905690+ "type": "array",
56915691+ "items": {
56925692+ "type": "ref",
56935693+ "ref": "lex:app.bsky.draft.defs#draftEmbedVideo",
56945694+ },
56955695+ "maxLength": 1,
56965696+ },
56975697+ "embedExternals": {
56985698+ "type": "array",
56995699+ "items": {
57005700+ "type": "ref",
57015701+ "ref": "lex:app.bsky.draft.defs#draftEmbedExternal",
57025702+ },
57035703+ "maxLength": 1,
57045704+ },
57055705+ "embedRecords": {
57065706+ "type": "array",
57075707+ "items": {
57085708+ "type": "ref",
57095709+ "ref": "lex:app.bsky.draft.defs#draftEmbedRecord",
57105710+ },
57115711+ "maxLength": 1,
57125712+ },
57135713+ },
57145714+ },
57155715+ "draftView": {
57165716+ "description": "View to present drafts data to users.",
57175717+ "type": "object",
57185718+ "required": [
57195719+ "id",
57205720+ "draft",
57215721+ "createdAt",
57225722+ "updatedAt",
57235723+ ],
57245724+ "properties": {
57255725+ "id": {
57265726+ "description": "A TID to be used as a draft identifier.",
57275727+ "type": "string",
57285728+ "format": "tid",
57295729+ },
57305730+ "draft": {
57315731+ "type": "ref",
57325732+ "ref": "lex:app.bsky.draft.defs#draft",
57335733+ },
57345734+ "createdAt": {
57355735+ "description": "The time the draft was created.",
57365736+ "type": "string",
57375737+ "format": "datetime",
57385738+ },
57395739+ "updatedAt": {
57405740+ "description": "The time the draft was last updated.",
57415741+ "type": "string",
57425742+ "format": "datetime",
57435743+ },
57445744+ },
57455745+ },
57465746+ "draftEmbedLocalRef": {
57475747+ "type": "object",
57485748+ "required": [
57495749+ "path",
57505750+ ],
57515751+ "properties": {
57525752+ "path": {
57535753+ "type": "string",
57545754+ "description":
57555755+ "Local, on-device ref to file to be embedded. Embeds are currently device-bound for drafts.",
57565756+ "minLength": 1,
57575757+ "maxLength": 1024,
57585758+ },
57595759+ },
57605760+ },
57615761+ "draftEmbedCaption": {
57625762+ "type": "object",
57635763+ "required": [
57645764+ "lang",
57655765+ "content",
57665766+ ],
57675767+ "properties": {
57685768+ "lang": {
57695769+ "type": "string",
57705770+ "format": "language",
57715771+ },
57725772+ "content": {
57735773+ "type": "string",
57745774+ "maxLength": 10000,
57755775+ },
57765776+ },
57775777+ },
57785778+ "draftEmbedImage": {
57795779+ "type": "object",
57805780+ "required": [
57815781+ "localRef",
57825782+ ],
57835783+ "properties": {
57845784+ "localRef": {
57855785+ "type": "ref",
57865786+ "ref": "lex:app.bsky.draft.defs#draftEmbedLocalRef",
57875787+ },
57885788+ "alt": {
57895789+ "type": "string",
57905790+ "maxGraphemes": 2000,
57915791+ },
57925792+ },
57935793+ },
57945794+ "draftEmbedVideo": {
57955795+ "type": "object",
57965796+ "required": [
57975797+ "localRef",
57985798+ ],
57995799+ "properties": {
58005800+ "localRef": {
58015801+ "type": "ref",
58025802+ "ref": "lex:app.bsky.draft.defs#draftEmbedLocalRef",
58035803+ },
58045804+ "alt": {
58055805+ "type": "string",
58065806+ "maxGraphemes": 2000,
58075807+ },
58085808+ "captions": {
58095809+ "type": "array",
58105810+ "items": {
58115811+ "type": "ref",
58125812+ "ref": "lex:app.bsky.draft.defs#draftEmbedCaption",
58135813+ },
58145814+ "maxLength": 20,
58155815+ },
58165816+ },
58175817+ },
58185818+ "draftEmbedExternal": {
58195819+ "type": "object",
58205820+ "required": [
58215821+ "uri",
58225822+ ],
58235823+ "properties": {
58245824+ "uri": {
58255825+ "type": "string",
58265826+ "format": "uri",
58275827+ },
58285828+ },
58295829+ },
58305830+ "draftEmbedRecord": {
58315831+ "type": "object",
58325832+ "required": [
58335833+ "record",
58345834+ ],
58355835+ "properties": {
58365836+ "record": {
58375837+ "type": "ref",
58385838+ "ref": "lex:com.atproto.repo.strongRef",
58395839+ },
58405840+ },
58415841+ },
58425842+ },
58435843+ },
58445844+ "AppBskyDraftCreateDraft": {
58455845+ "lexicon": 1,
58465846+ "id": "app.bsky.draft.createDraft",
58475847+ "defs": {
58485848+ "main": {
58495849+ "type": "procedure",
58505850+ "description":
58515851+ "Inserts a draft using private storage (stash). An upper limit of drafts might be enforced. Requires authentication.",
58525852+ "input": {
58535853+ "encoding": "application/json",
58545854+ "schema": {
58555855+ "type": "object",
58565856+ "required": [
58575857+ "draft",
58585858+ ],
58595859+ "properties": {
58605860+ "draft": {
58615861+ "type": "ref",
58625862+ "ref": "lex:app.bsky.draft.defs#draft",
58635863+ },
58645864+ },
58655865+ },
58665866+ },
58675867+ "output": {
58685868+ "encoding": "application/json",
58695869+ "schema": {
58705870+ "type": "object",
58715871+ "required": [
58725872+ "id",
58735873+ ],
58745874+ "properties": {
58755875+ "id": {
58765876+ "type": "string",
58775877+ "description": "The ID of the created draft.",
58785878+ },
58795879+ },
58805880+ },
58815881+ },
58825882+ "errors": [
58835883+ {
58845884+ "name": "DraftLimitReached",
58855885+ "description":
58865886+ "Trying to insert a new draft when the limit was already reached.",
58875887+ },
58885888+ ],
58895889+ },
58905890+ },
58915891+ },
58925892+ "AppBskyDraftUpdateDraft": {
58935893+ "lexicon": 1,
58945894+ "id": "app.bsky.draft.updateDraft",
58955895+ "defs": {
58965896+ "main": {
58975897+ "type": "procedure",
58985898+ "description":
58995899+ "Updates a draft using private storage (stash). If the draft ID points to a non-existing ID, the update will be silently ignored. This is done because updates don't enforce draft limit, so it accepts all writes, but will ignore invalid ones. Requires authentication.",
59005900+ "input": {
59015901+ "encoding": "application/json",
59025902+ "schema": {
59035903+ "type": "object",
59045904+ "required": [
59055905+ "draft",
59065906+ ],
59075907+ "properties": {
59085908+ "draft": {
59095909+ "type": "ref",
59105910+ "ref": "lex:app.bsky.draft.defs#draftWithId",
59115911+ },
59125912+ },
59135913+ },
59145914+ },
59155915+ },
59165916+ },
59175917+ },
59185918+ "AppBskyDraftGetDrafts": {
59195919+ "lexicon": 1,
59205920+ "id": "app.bsky.draft.getDrafts",
59215921+ "defs": {
59225922+ "main": {
59235923+ "type": "query",
59245924+ "description": "Gets views of user drafts. Requires authentication.",
59255925+ "parameters": {
59265926+ "type": "params",
59275927+ "properties": {
59285928+ "limit": {
59295929+ "type": "integer",
59305930+ "minimum": 1,
59315931+ "maximum": 100,
59325932+ "default": 50,
59335933+ },
59345934+ "cursor": {
59355935+ "type": "string",
59365936+ },
59375937+ },
59385938+ },
59395939+ "output": {
59405940+ "encoding": "application/json",
59415941+ "schema": {
59425942+ "type": "object",
59435943+ "required": [
59445944+ "drafts",
59455945+ ],
59465946+ "properties": {
59475947+ "cursor": {
59485948+ "type": "string",
59495949+ },
59505950+ "drafts": {
59515951+ "type": "array",
59525952+ "items": {
59535953+ "type": "ref",
59545954+ "ref": "lex:app.bsky.draft.defs#draftView",
59555955+ },
59565956+ },
59575957+ },
59585958+ },
59595959+ },
59605960+ },
59615961+ },
59625962+ },
59635963+ "AppBskyDraftDeleteDraft": {
59645964+ "lexicon": 1,
59655965+ "id": "app.bsky.draft.deleteDraft",
59665966+ "defs": {
59675967+ "main": {
59685968+ "type": "procedure",
59695969+ "description": "Deletes a draft by ID. Requires authentication.",
59705970+ "input": {
59715971+ "encoding": "application/json",
59725972+ "schema": {
59735973+ "type": "object",
59745974+ "required": [
59755975+ "id",
59765976+ ],
59775977+ "properties": {
59785978+ "id": {
59795979+ "type": "string",
59805980+ "format": "tid",
59815981+ },
59825982+ },
59835983+ },
59845984+ },
59855985+ },
59865986+ },
59875987+ },
59885988+ "AppBskyAuthManageLabelerService": {
59895989+ "lexicon": 1,
59905990+ "id": "app.bsky.authManageLabelerService",
59915991+ "defs": {
59925992+ "main": {
59935993+ "type": "permission-set",
59945994+ "title": "Manage Hosted Labeling Service",
59955995+ "title:lang": {},
59965996+ "detail": "Configure labeler declaration records.",
59975997+ "detail:lang": {},
59985998+ "permissions": [
59995999+ {
60006000+ "type": "permission",
60016001+ "resource": "repo",
60026002+ "action": [
60036003+ "create",
60046004+ "update",
60056005+ "delete",
60066006+ ],
60076007+ "collection": [
60086008+ "app.bsky.labeler.service",
60096009+ ],
60106010+ },
60116011+ ],
60126012+ },
60136013+ },
60146014+ },
55476015 "AppBskyVideoUploadVideo": {
55486016 "lexicon": 1,
55496017 "id": "app.bsky.video.uploadVideo",
···56916159 },
56926160 },
56936161 },
61626162+ "AppBskyContactDefs": {
61636163+ "lexicon": 1,
61646164+ "id": "app.bsky.contact.defs",
61656165+ "defs": {
61666166+ "matchAndContactIndex": {
61676167+ "description":
61686168+ "Associates a profile with the positional index of the contact import input in the call to `app.bsky.contact.importContacts`, so clients can know which phone caused a particular match.",
61696169+ "type": "object",
61706170+ "required": [
61716171+ "match",
61726172+ "contactIndex",
61736173+ ],
61746174+ "properties": {
61756175+ "match": {
61766176+ "description": "Profile of the matched user.",
61776177+ "type": "ref",
61786178+ "ref": "lex:app.bsky.actor.defs#profileView",
61796179+ },
61806180+ "contactIndex": {
61816181+ "description":
61826182+ "The index of this match in the import contact input.",
61836183+ "type": "integer",
61846184+ "minimum": 0,
61856185+ "maximum": 999,
61866186+ },
61876187+ },
61886188+ },
61896189+ "syncStatus": {
61906190+ "type": "object",
61916191+ "required": [
61926192+ "syncedAt",
61936193+ "matchesCount",
61946194+ ],
61956195+ "properties": {
61966196+ "syncedAt": {
61976197+ "description": "Last date when contacts where imported.",
61986198+ "type": "string",
61996199+ "format": "datetime",
62006200+ },
62016201+ "matchesCount": {
62026202+ "description":
62036203+ "Number of existing contact matches resulting of the user imports and of their imported contacts having imported the user. Matches stop being counted when the user either follows the matched contact or dismisses the match.",
62046204+ "type": "integer",
62056205+ "minimum": 0,
62066206+ },
62076207+ },
62086208+ },
62096209+ "notification": {
62106210+ "description":
62116211+ "A stash object to be sent via bsync representing a notification to be created.",
62126212+ "type": "object",
62136213+ "required": [
62146214+ "from",
62156215+ "to",
62166216+ ],
62176217+ "properties": {
62186218+ "from": {
62196219+ "description": "The DID of who this notification comes from.",
62206220+ "type": "string",
62216221+ "format": "did",
62226222+ },
62236223+ "to": {
62246224+ "description": "The DID of who this notification should go to.",
62256225+ "type": "string",
62266226+ "format": "did",
62276227+ },
62286228+ },
62296229+ },
62306230+ },
62316231+ },
62326232+ "AppBskyContactSendNotification": {
62336233+ "lexicon": 1,
62346234+ "id": "app.bsky.contact.sendNotification",
62356235+ "defs": {
62366236+ "main": {
62376237+ "type": "procedure",
62386238+ "description":
62396239+ "System endpoint to send notifications related to contact imports. Requires role authentication.",
62406240+ "input": {
62416241+ "encoding": "application/json",
62426242+ "schema": {
62436243+ "type": "object",
62446244+ "required": [
62456245+ "from",
62466246+ "to",
62476247+ ],
62486248+ "properties": {
62496249+ "from": {
62506250+ "description": "The DID of who this notification comes from.",
62516251+ "type": "string",
62526252+ "format": "did",
62536253+ },
62546254+ "to": {
62556255+ "description": "The DID of who this notification should go to.",
62566256+ "type": "string",
62576257+ "format": "did",
62586258+ },
62596259+ },
62606260+ },
62616261+ },
62626262+ "output": {
62636263+ "encoding": "application/json",
62646264+ "schema": {
62656265+ "type": "object",
62666266+ "properties": {},
62676267+ },
62686268+ },
62696269+ },
62706270+ },
62716271+ },
62726272+ "AppBskyContactGetSyncStatus": {
62736273+ "lexicon": 1,
62746274+ "id": "app.bsky.contact.getSyncStatus",
62756275+ "defs": {
62766276+ "main": {
62776277+ "type": "query",
62786278+ "description":
62796279+ "Gets the user's current contact import status. Requires authentication.",
62806280+ "parameters": {
62816281+ "type": "params",
62826282+ "properties": {},
62836283+ },
62846284+ "output": {
62856285+ "encoding": "application/json",
62866286+ "schema": {
62876287+ "type": "object",
62886288+ "properties": {
62896289+ "syncStatus": {
62906290+ "description":
62916291+ "If present, indicates the user has imported their contacts. If not present, indicates the user never used the feature or called `app.bsky.contact.removeData` and didn't import again since.",
62926292+ "type": "ref",
62936293+ "ref": "lex:app.bsky.contact.defs#syncStatus",
62946294+ },
62956295+ },
62966296+ },
62976297+ },
62986298+ "errors": [
62996299+ {
63006300+ "name": "InvalidDid",
63016301+ },
63026302+ {
63036303+ "name": "InternalError",
63046304+ },
63056305+ ],
63066306+ },
63076307+ },
63086308+ },
63096309+ "AppBskyContactStartPhoneVerification": {
63106310+ "lexicon": 1,
63116311+ "id": "app.bsky.contact.startPhoneVerification",
63126312+ "defs": {
63136313+ "main": {
63146314+ "type": "procedure",
63156315+ "description":
63166316+ "Starts a phone verification flow. The phone passed will receive a code via SMS that should be passed to `app.bsky.contact.verifyPhone`. Requires authentication.",
63176317+ "input": {
63186318+ "encoding": "application/json",
63196319+ "schema": {
63206320+ "type": "object",
63216321+ "required": [
63226322+ "phone",
63236323+ ],
63246324+ "properties": {
63256325+ "phone": {
63266326+ "description": "The phone number to receive the code via SMS.",
63276327+ "type": "string",
63286328+ },
63296329+ },
63306330+ },
63316331+ },
63326332+ "output": {
63336333+ "encoding": "application/json",
63346334+ "schema": {
63356335+ "type": "object",
63366336+ "properties": {},
63376337+ },
63386338+ },
63396339+ "errors": [
63406340+ {
63416341+ "name": "RateLimitExceeded",
63426342+ },
63436343+ {
63446344+ "name": "InvalidDid",
63456345+ },
63466346+ {
63476347+ "name": "InvalidPhone",
63486348+ },
63496349+ {
63506350+ "name": "InternalError",
63516351+ },
63526352+ ],
63536353+ },
63546354+ },
63556355+ },
63566356+ "AppBskyContactGetMatches": {
63576357+ "lexicon": 1,
63586358+ "id": "app.bsky.contact.getMatches",
63596359+ "defs": {
63606360+ "main": {
63616361+ "type": "query",
63626362+ "description":
63636363+ "Returns the matched contacts (contacts that were mutually imported). Excludes dismissed matches. Requires authentication.",
63646364+ "parameters": {
63656365+ "type": "params",
63666366+ "properties": {
63676367+ "limit": {
63686368+ "type": "integer",
63696369+ "minimum": 1,
63706370+ "maximum": 100,
63716371+ "default": 50,
63726372+ },
63736373+ "cursor": {
63746374+ "type": "string",
63756375+ },
63766376+ },
63776377+ },
63786378+ "output": {
63796379+ "encoding": "application/json",
63806380+ "schema": {
63816381+ "type": "object",
63826382+ "required": [
63836383+ "matches",
63846384+ ],
63856385+ "properties": {
63866386+ "cursor": {
63876387+ "type": "string",
63886388+ },
63896389+ "matches": {
63906390+ "type": "array",
63916391+ "items": {
63926392+ "type": "ref",
63936393+ "ref": "lex:app.bsky.actor.defs#profileView",
63946394+ },
63956395+ },
63966396+ },
63976397+ },
63986398+ },
63996399+ "errors": [
64006400+ {
64016401+ "name": "InvalidDid",
64026402+ },
64036403+ {
64046404+ "name": "InvalidLimit",
64056405+ },
64066406+ {
64076407+ "name": "InvalidCursor",
64086408+ },
64096409+ {
64106410+ "name": "InternalError",
64116411+ },
64126412+ ],
64136413+ },
64146414+ },
64156415+ },
64166416+ "AppBskyContactImportContacts": {
64176417+ "lexicon": 1,
64186418+ "id": "app.bsky.contact.importContacts",
64196419+ "defs": {
64206420+ "main": {
64216421+ "type": "procedure",
64226422+ "description":
64236423+ "Import contacts for securely matching with other users. This follows the protocol explained in https://docs.bsky.app/blog/contact-import-rfc. Requires authentication.",
64246424+ "input": {
64256425+ "encoding": "application/json",
64266426+ "schema": {
64276427+ "type": "object",
64286428+ "required": [
64296429+ "token",
64306430+ "contacts",
64316431+ ],
64326432+ "properties": {
64336433+ "token": {
64346434+ "description":
64356435+ "JWT to authenticate the call. Use the JWT received as a response to the call to `app.bsky.contact.verifyPhone`.",
64366436+ "type": "string",
64376437+ },
64386438+ "contacts": {
64396439+ "description":
64406440+ "List of phone numbers in global E.164 format (e.g., '+12125550123'). Phone numbers that cannot be normalized into a valid phone number will be discarded. Should not repeat the 'phone' input used in `app.bsky.contact.verifyPhone`.",
64416441+ "type": "array",
64426442+ "items": {
64436443+ "type": "string",
64446444+ },
64456445+ "minLength": 1,
64466446+ "maxLength": 1000,
64476447+ },
64486448+ },
64496449+ },
64506450+ },
64516451+ "output": {
64526452+ "encoding": "application/json",
64536453+ "schema": {
64546454+ "type": "object",
64556455+ "required": [
64566456+ "matchesAndContactIndexes",
64576457+ ],
64586458+ "properties": {
64596459+ "matchesAndContactIndexes": {
64606460+ "description":
64616461+ "The users that matched during import and their indexes on the input contacts, so the client can correlate with its local list.",
64626462+ "type": "array",
64636463+ "items": {
64646464+ "type": "ref",
64656465+ "ref": "lex:app.bsky.contact.defs#matchAndContactIndex",
64666466+ },
64676467+ },
64686468+ },
64696469+ },
64706470+ },
64716471+ "errors": [
64726472+ {
64736473+ "name": "InvalidDid",
64746474+ },
64756475+ {
64766476+ "name": "InvalidContacts",
64776477+ },
64786478+ {
64796479+ "name": "TooManyContacts",
64806480+ },
64816481+ {
64826482+ "name": "InvalidToken",
64836483+ },
64846484+ {
64856485+ "name": "InternalError",
64866486+ },
64876487+ ],
64886488+ },
64896489+ },
64906490+ },
64916491+ "AppBskyContactDismissMatch": {
64926492+ "lexicon": 1,
64936493+ "id": "app.bsky.contact.dismissMatch",
64946494+ "defs": {
64956495+ "main": {
64966496+ "type": "procedure",
64976497+ "description":
64986498+ "Removes a match that was found via contact import. It shouldn't appear again if the same contact is re-imported. Requires authentication.",
64996499+ "input": {
65006500+ "encoding": "application/json",
65016501+ "schema": {
65026502+ "type": "object",
65036503+ "required": [
65046504+ "subject",
65056505+ ],
65066506+ "properties": {
65076507+ "subject": {
65086508+ "description": "The subject's DID to dismiss the match with.",
65096509+ "type": "string",
65106510+ "format": "did",
65116511+ },
65126512+ },
65136513+ },
65146514+ },
65156515+ "output": {
65166516+ "encoding": "application/json",
65176517+ "schema": {
65186518+ "type": "object",
65196519+ "properties": {},
65206520+ },
65216521+ },
65226522+ "errors": [
65236523+ {
65246524+ "name": "InvalidDid",
65256525+ },
65266526+ {
65276527+ "name": "InternalError",
65286528+ },
65296529+ ],
65306530+ },
65316531+ },
65326532+ },
65336533+ "AppBskyContactRemoveData": {
65346534+ "lexicon": 1,
65356535+ "id": "app.bsky.contact.removeData",
65366536+ "defs": {
65376537+ "main": {
65386538+ "type": "procedure",
65396539+ "description":
65406540+ "Removes all stored hashes used for contact matching, existing matches, and sync status. Requires authentication.",
65416541+ "input": {
65426542+ "encoding": "application/json",
65436543+ "schema": {
65446544+ "type": "object",
65456545+ "properties": {},
65466546+ },
65476547+ },
65486548+ "output": {
65496549+ "encoding": "application/json",
65506550+ "schema": {
65516551+ "type": "object",
65526552+ "properties": {},
65536553+ },
65546554+ },
65556555+ "errors": [
65566556+ {
65576557+ "name": "InvalidDid",
65586558+ },
65596559+ {
65606560+ "name": "InternalError",
65616561+ },
65626562+ ],
65636563+ },
65646564+ },
65656565+ },
65666566+ "AppBskyContactVerifyPhone": {
65676567+ "lexicon": 1,
65686568+ "id": "app.bsky.contact.verifyPhone",
65696569+ "defs": {
65706570+ "main": {
65716571+ "type": "procedure",
65726572+ "description":
65736573+ "Verifies control over a phone number with a code received via SMS and starts a contact import session. Requires authentication.",
65746574+ "input": {
65756575+ "encoding": "application/json",
65766576+ "schema": {
65776577+ "type": "object",
65786578+ "required": [
65796579+ "phone",
65806580+ "code",
65816581+ ],
65826582+ "properties": {
65836583+ "phone": {
65846584+ "description":
65856585+ "The phone number to verify. Should be the same as the one passed to `app.bsky.contact.startPhoneVerification`.",
65866586+ "type": "string",
65876587+ },
65886588+ "code": {
65896589+ "description":
65906590+ "The code received via SMS as a result of the call to `app.bsky.contact.startPhoneVerification`.",
65916591+ "type": "string",
65926592+ },
65936593+ },
65946594+ },
65956595+ },
65966596+ "output": {
65976597+ "encoding": "application/json",
65986598+ "schema": {
65996599+ "type": "object",
66006600+ "required": [
66016601+ "token",
66026602+ ],
66036603+ "properties": {
66046604+ "token": {
66056605+ "description":
66066606+ "JWT to be used in a call to `app.bsky.contact.importContacts`. It is only valid for a single call.",
66076607+ "type": "string",
66086608+ },
66096609+ },
66106610+ },
66116611+ },
66126612+ "errors": [
66136613+ {
66146614+ "name": "RateLimitExceeded",
66156615+ },
66166616+ {
66176617+ "name": "InvalidDid",
66186618+ },
66196619+ {
66206620+ "name": "InvalidPhone",
66216621+ },
66226622+ {
66236623+ "name": "InvalidCode",
66246624+ },
66256625+ {
66266626+ "name": "InternalError",
66276627+ },
66286628+ ],
66296629+ },
66306630+ },
66316631+ },
66326632+ "AppBskyAuthManageNotifications": {
66336633+ "lexicon": 1,
66346634+ "id": "app.bsky.authManageNotifications",
66356635+ "defs": {
66366636+ "main": {
66376637+ "type": "permission-set",
66386638+ "title": "Manage Bluesky Notifications",
66396639+ "title:lang": {},
66406640+ "detail": "View and configure notifications for the Bluesky app.",
66416641+ "detail:lang": {},
66426642+ "permissions": [
66436643+ {
66446644+ "type": "permission",
66456645+ "resource": "rpc",
66466646+ "inheritAud": true,
66476647+ "lxm": [
66486648+ "app.bsky.notification.getPreferences",
66496649+ "app.bsky.notification.getUnreadCount",
66506650+ "app.bsky.notification.listActivitySubscriptions",
66516651+ "app.bsky.notification.listNotifications",
66526652+ "app.bsky.notification.putActivitySubscription",
66536653+ "app.bsky.notification.putPreferences",
66546654+ "app.bsky.notification.putPreferencesV2",
66556655+ "app.bsky.notification.registerPush",
66566656+ "app.bsky.notification.unregisterPush",
66576657+ "app.bsky.notification.updateSeen",
66586658+ ],
66596659+ },
66606660+ ],
66616661+ },
66626662+ },
66636663+ },
56946664 "AppBskyBookmarkDefs": {
56956665 "lexicon": 1,
56966666 "id": "app.bsky.bookmark.defs",
···60717041 "properties": {
60727042 "image": {
60737043 "type": "blob",
70447044+ "description":
70457045+ "The raw image file. May be up to 2 MB, formerly limited to 1 MB.",
60747046 "accept": [
60757047 "image/*",
60767048 ],
60776077- "maxSize": 1000000,
70497049+ "maxSize": 2000000,
60787050 },
60797051 "alt": {
60807052 "type": "string",
···62247196 "aspectRatio": {
62257197 "type": "ref",
62267198 "ref": "lex:app.bsky.embed.defs#aspectRatio",
71997199+ },
72007200+ "presentation": {
72017201+ "type": "string",
72027202+ "description":
72037203+ "A hint to the client about how to present the video.",
72047204+ "knownValues": [
72057205+ "default",
72067206+ "gif",
72077207+ ],
62277208 },
62287209 },
62297210 },
···62757256 "type": "ref",
62767257 "ref": "lex:app.bsky.embed.defs#aspectRatio",
62777258 },
72597259+ "presentation": {
72607260+ "type": "string",
72617261+ "description":
72627262+ "A hint to the client about how to present the video.",
72637263+ "knownValues": [
72647264+ "default",
72657265+ "gif",
72667266+ ],
72677267+ },
62787268 },
62797269 },
62807270 },
···63627352 },
63637353 },
63647354 },
73557355+ "AppBskyAuthDeleteContent": {
73567356+ "lexicon": 1,
73577357+ "id": "app.bsky.authDeleteContent",
73587358+ "defs": {
73597359+ "main": {
73607360+ "type": "permission-set",
73617361+ "title": "Delete Bluesky Content",
73627362+ "title:lang": {},
73637363+ "detail": "Clean up public account history: posts, reposts, and likes.",
73647364+ "detail:lang": {},
73657365+ "permissions": [
73667366+ {
73677367+ "type": "permission",
73687368+ "resource": "repo",
73697369+ "action": [
73707370+ "delete",
73717371+ ],
73727372+ "collection": [
73737373+ "app.bsky.feed.like",
73747374+ "app.bsky.feed.post",
73757375+ "app.bsky.feed.postgate",
73767376+ "app.bsky.feed.repost",
73777377+ "app.bsky.feed.threadgate",
73787378+ ],
73797379+ },
73807380+ ],
73817381+ },
73827382+ },
73837383+ },
73847384+ "AppBskyAuthCreatePosts": {
73857385+ "lexicon": 1,
73867386+ "id": "app.bsky.authCreatePosts",
73877387+ "defs": {
73887388+ "main": {
73897389+ "type": "permission-set",
73907390+ "title": "Create Bluesky Posts",
73917391+ "title:lang": {},
73927392+ "detail": "Can not update or delete posts.",
73937393+ "detail:lang": {},
73947394+ "permissions": [
73957395+ {
73967396+ "type": "permission",
73977397+ "resource": "rpc",
73987398+ "inheritAud": true,
73997399+ "lxm": [
74007400+ "app.bsky.video.uploadVideo",
74017401+ "app.bsky.video.getJobStatus",
74027402+ "app.bsky.video.getUploadLimits",
74037403+ ],
74047404+ },
74057405+ {
74067406+ "type": "permission",
74077407+ "resource": "repo",
74087408+ "action": [
74097409+ "create",
74107410+ ],
74117411+ "collection": [
74127412+ "app.bsky.feed.post",
74137413+ "app.bsky.feed.postgate",
74147414+ "app.bsky.feed.threadgate",
74157415+ ],
74167416+ },
74177417+ ],
74187418+ },
74197419+ },
74207420+ },
63657421 "AppBskyNotificationDefs": {
63667422 "lexicon": 1,
63677423 "id": "app.bsky.notification.defs",
···70278083 "like-via-repost",
70288084 "repost-via-repost",
70298085 "subscribed-post",
80868086+ "contact-match",
70308087 ],
70318088 },
70328089 "reasonSubject": {
···72068263 "name": "BadQueryString",
72078264 },
72088265 ],
82668266+ },
82678267+ },
82688268+ },
82698269+ "AppBskyUnspeccedGetSuggestedUsersForExplore": {
82708270+ "lexicon": 1,
82718271+ "id": "app.bsky.unspecced.getSuggestedUsersForExplore",
82728272+ "defs": {
82738273+ "main": {
82748274+ "type": "query",
82758275+ "description": "Get a list of suggested users for the Explore page",
82768276+ "parameters": {
82778277+ "type": "params",
82788278+ "properties": {
82798279+ "category": {
82808280+ "type": "string",
82818281+ "description": "Category of users to get suggestions for.",
82828282+ },
82838283+ "limit": {
82848284+ "type": "integer",
82858285+ "minimum": 1,
82868286+ "maximum": 50,
82878287+ "default": 25,
82888288+ },
82898289+ },
82908290+ },
82918291+ "output": {
82928292+ "encoding": "application/json",
82938293+ "schema": {
82948294+ "type": "object",
82958295+ "required": [
82968296+ "actors",
82978297+ ],
82988298+ "properties": {
82998299+ "actors": {
83008300+ "type": "array",
83018301+ "items": {
83028302+ "type": "ref",
83038303+ "ref": "lex:app.bsky.actor.defs#profileView",
83048304+ },
83058305+ },
83068306+ "recIdStr": {
83078307+ "type": "string",
83088308+ "description":
83098309+ "Snowflake for this recommendation, use when submitting recommendation events.",
83108310+ },
83118311+ },
83128312+ },
83138313+ },
72098314 },
72108315 },
72118316 },
···75458650 },
75468651 },
75478652 },
86538653+ "AppBskyUnspeccedGetSuggestedUsersForExploreSkeleton": {
86548654+ "lexicon": 1,
86558655+ "id": "app.bsky.unspecced.getSuggestedUsersForExploreSkeleton",
86568656+ "defs": {
86578657+ "main": {
86588658+ "type": "query",
86598659+ "description":
86608660+ "Get a skeleton of suggested users for the Explore page. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedUsersForExplore",
86618661+ "parameters": {
86628662+ "type": "params",
86638663+ "properties": {
86648664+ "viewer": {
86658665+ "type": "string",
86668666+ "format": "did",
86678667+ "description":
86688668+ "DID of the account making the request (not included for public/unauthenticated queries).",
86698669+ },
86708670+ "category": {
86718671+ "type": "string",
86728672+ "description": "Category of users to get suggestions for.",
86738673+ },
86748674+ "limit": {
86758675+ "type": "integer",
86768676+ "minimum": 1,
86778677+ "maximum": 50,
86788678+ "default": 25,
86798679+ },
86808680+ },
86818681+ },
86828682+ "output": {
86838683+ "encoding": "application/json",
86848684+ "schema": {
86858685+ "type": "object",
86868686+ "required": [
86878687+ "dids",
86888688+ ],
86898689+ "properties": {
86908690+ "dids": {
86918691+ "type": "array",
86928692+ "items": {
86938693+ "type": "string",
86948694+ "format": "did",
86958695+ },
86968696+ },
86978697+ "recIdStr": {
86988698+ "type": "string",
86998699+ "description":
87008700+ "Snowflake for this recommendation, use when submitting recommendation events.",
87018701+ },
87028702+ },
87038703+ },
87048704+ },
87058705+ },
87068706+ },
87078707+ },
75488708 "AppBskyUnspeccedGetSuggestedUsers": {
75498709 "lexicon": 1,
75508710 "id": "app.bsky.unspecced.getSuggestedUsers",
···75818741 "type": "ref",
75828742 "ref": "lex:app.bsky.actor.defs#profileView",
75838743 },
87448744+ },
87458745+ "recId": {
87468746+ "type": "string",
87478747+ "description": "DEPRECATED: use recIdStr instead.",
87488748+ },
87498749+ "recIdStr": {
87508750+ "type": "string",
87518751+ "description":
87528752+ "Snowflake for this recommendation, use when submitting recommendation events.",
75848753 },
75858754 },
75868755 },
···78278996 "format": "did",
78288997 },
78298998 },
89998999+ "recId": {
90009000+ "type": "string",
90019001+ "description": "DEPRECATED: use recIdStr instead.",
90029002+ },
90039003+ "recIdStr": {
90049004+ "type": "string",
90059005+ "description":
90069006+ "Snowflake for this recommendation, use when submitting recommendation events.",
90079007+ },
78309008 },
78319009 },
78329010 },
···81229300 },
81239301 "recId": {
81249302 "type": "integer",
93039303+ "description": "DEPRECATED: use recIdStr instead.",
93049304+ },
93059305+ "recIdStr": {
93069306+ "type": "string",
81259307 "description":
81269308 "Snowflake for this recommendation, use when submitting recommendation events.",
81279309 },
···82609442 },
82619443 },
82629444 },
94459445+ "AppBskyUnspeccedGetOnboardingSuggestedUsersSkeleton": {
94469446+ "lexicon": 1,
94479447+ "id": "app.bsky.unspecced.getOnboardingSuggestedUsersSkeleton",
94489448+ "defs": {
94499449+ "main": {
94509450+ "type": "query",
94519451+ "description":
94529452+ "Get a skeleton of suggested users for onboarding. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedOnboardingUsers",
94539453+ "parameters": {
94549454+ "type": "params",
94559455+ "properties": {
94569456+ "viewer": {
94579457+ "type": "string",
94589458+ "format": "did",
94599459+ "description":
94609460+ "DID of the account making the request (not included for public/unauthenticated queries).",
94619461+ },
94629462+ "category": {
94639463+ "type": "string",
94649464+ "description": "Category of users to get suggestions for.",
94659465+ },
94669466+ "limit": {
94679467+ "type": "integer",
94689468+ "minimum": 1,
94699469+ "maximum": 50,
94709470+ "default": 25,
94719471+ },
94729472+ },
94739473+ },
94749474+ "output": {
94759475+ "encoding": "application/json",
94769476+ "schema": {
94779477+ "type": "object",
94789478+ "required": [
94799479+ "dids",
94809480+ ],
94819481+ "properties": {
94829482+ "dids": {
94839483+ "type": "array",
94849484+ "items": {
94859485+ "type": "string",
94869486+ "format": "did",
94879487+ },
94889488+ },
94899489+ "recId": {
94909490+ "type": "string",
94919491+ "description": "DEPRECATED: use recIdStr instead.",
94929492+ },
94939493+ "recIdStr": {
94949494+ "type": "string",
94959495+ "description":
94969496+ "Snowflake for this recommendation, use when submitting recommendation events.",
94979497+ },
94989498+ },
94999499+ },
95009500+ },
95019501+ },
95029502+ },
95039503+ },
95049504+ "AppBskyUnspeccedGetSuggestedUsersForDiscoverSkeleton": {
95059505+ "lexicon": 1,
95069506+ "id": "app.bsky.unspecced.getSuggestedUsersForDiscoverSkeleton",
95079507+ "defs": {
95089508+ "main": {
95099509+ "type": "query",
95109510+ "description":
95119511+ "Get a skeleton of suggested users for the Discover page. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedUsersForDiscover",
95129512+ "parameters": {
95139513+ "type": "params",
95149514+ "properties": {
95159515+ "viewer": {
95169516+ "type": "string",
95179517+ "format": "did",
95189518+ "description":
95199519+ "DID of the account making the request (not included for public/unauthenticated queries).",
95209520+ },
95219521+ "limit": {
95229522+ "type": "integer",
95239523+ "minimum": 1,
95249524+ "maximum": 50,
95259525+ "default": 25,
95269526+ },
95279527+ },
95289528+ },
95299529+ "output": {
95309530+ "encoding": "application/json",
95319531+ "schema": {
95329532+ "type": "object",
95339533+ "required": [
95349534+ "dids",
95359535+ ],
95369536+ "properties": {
95379537+ "dids": {
95389538+ "type": "array",
95399539+ "items": {
95409540+ "type": "string",
95419541+ "format": "did",
95429542+ },
95439543+ },
95449544+ "recIdStr": {
95459545+ "type": "string",
95469546+ "description":
95479547+ "Snowflake for this recommendation, use when submitting recommendation events.",
95489548+ },
95499549+ },
95509550+ },
95519551+ },
95529552+ },
95539553+ },
95549554+ },
95559555+ "AppBskyUnspeccedGetSuggestedUsersForDiscover": {
95569556+ "lexicon": 1,
95579557+ "id": "app.bsky.unspecced.getSuggestedUsersForDiscover",
95589558+ "defs": {
95599559+ "main": {
95609560+ "type": "query",
95619561+ "description": "Get a list of suggested users for the Discover page",
95629562+ "parameters": {
95639563+ "type": "params",
95649564+ "properties": {
95659565+ "limit": {
95669566+ "type": "integer",
95679567+ "minimum": 1,
95689568+ "maximum": 50,
95699569+ "default": 25,
95709570+ },
95719571+ },
95729572+ },
95739573+ "output": {
95749574+ "encoding": "application/json",
95759575+ "schema": {
95769576+ "type": "object",
95779577+ "required": [
95789578+ "actors",
95799579+ ],
95809580+ "properties": {
95819581+ "actors": {
95829582+ "type": "array",
95839583+ "items": {
95849584+ "type": "ref",
95859585+ "ref": "lex:app.bsky.actor.defs#profileView",
95869586+ },
95879587+ },
95889588+ "recIdStr": {
95899589+ "type": "string",
95909590+ "description":
95919591+ "Snowflake for this recommendation, use when submitting recommendation events.",
95929592+ },
95939593+ },
95949594+ },
95959595+ },
95969596+ },
95979597+ },
95989598+ },
82639599 "AppBskyUnspeccedGetAgeAssuranceState": {
82649600 "lexicon": 1,
82659601 "id": "app.bsky.unspecced.getAgeAssuranceState",
···83269662 },
83279663 },
83289664 },
96659665+ "AppBskyUnspeccedGetSuggestedOnboardingUsers": {
96669666+ "lexicon": 1,
96679667+ "id": "app.bsky.unspecced.getSuggestedOnboardingUsers",
96689668+ "defs": {
96699669+ "main": {
96709670+ "type": "query",
96719671+ "description": "Get a list of suggested users for onboarding",
96729672+ "parameters": {
96739673+ "type": "params",
96749674+ "properties": {
96759675+ "category": {
96769676+ "type": "string",
96779677+ "description": "Category of users to get suggestions for.",
96789678+ },
96799679+ "limit": {
96809680+ "type": "integer",
96819681+ "minimum": 1,
96829682+ "maximum": 50,
96839683+ "default": 25,
96849684+ },
96859685+ },
96869686+ },
96879687+ "output": {
96889688+ "encoding": "application/json",
96899689+ "schema": {
96909690+ "type": "object",
96919691+ "required": [
96929692+ "actors",
96939693+ ],
96949694+ "properties": {
96959695+ "actors": {
96969696+ "type": "array",
96979697+ "items": {
96989698+ "type": "ref",
96999699+ "ref": "lex:app.bsky.actor.defs#profileView",
97009700+ },
97019701+ },
97029702+ "recId": {
97039703+ "type": "string",
97049704+ "description": "DEPRECATED: use recIdStr instead.",
97059705+ },
97069706+ "recIdStr": {
97079707+ "type": "string",
97089708+ "description":
97099709+ "Snowflake for this recommendation, use when submitting recommendation events.",
97109710+ },
97119711+ },
97129712+ },
97139713+ },
97149714+ },
97159715+ },
97169716+ },
97179717+ "AppBskyUnspeccedGetSuggestedUsersForSeeMore": {
97189718+ "lexicon": 1,
97199719+ "id": "app.bsky.unspecced.getSuggestedUsersForSeeMore",
97209720+ "defs": {
97219721+ "main": {
97229722+ "type": "query",
97239723+ "description": "Get a list of suggested users for the See More page",
97249724+ "parameters": {
97259725+ "type": "params",
97269726+ "properties": {
97279727+ "category": {
97289728+ "type": "string",
97299729+ "description": "Category of users to get suggestions for.",
97309730+ },
97319731+ "limit": {
97329732+ "type": "integer",
97339733+ "minimum": 1,
97349734+ "maximum": 50,
97359735+ "default": 25,
97369736+ },
97379737+ },
97389738+ },
97399739+ "output": {
97409740+ "encoding": "application/json",
97419741+ "schema": {
97429742+ "type": "object",
97439743+ "required": [
97449744+ "actors",
97459745+ ],
97469746+ "properties": {
97479747+ "actors": {
97489748+ "type": "array",
97499749+ "items": {
97509750+ "type": "ref",
97519751+ "ref": "lex:app.bsky.actor.defs#profileView",
97529752+ },
97539753+ },
97549754+ "recIdStr": {
97559755+ "type": "string",
97569756+ "description":
97579757+ "Snowflake for this recommendation, use when submitting recommendation events.",
97589758+ },
97599759+ },
97609760+ },
97619761+ },
97629762+ },
97639763+ },
97649764+ },
83299765 "AppBskyUnspeccedInitAgeAssurance": {
83309766 "lexicon": 1,
83319767 "id": "app.bsky.unspecced.initAgeAssurance",
···84949930 },
84959931 },
84969932 },
99339933+ "AppBskyUnspeccedGetSuggestedUsersForSeeMoreSkeleton": {
99349934+ "lexicon": 1,
99359935+ "id": "app.bsky.unspecced.getSuggestedUsersForSeeMoreSkeleton",
99369936+ "defs": {
99379937+ "main": {
99389938+ "type": "query",
99399939+ "description":
99409940+ "Get a skeleton of suggested users for the See More page. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedUsersForSeeMore",
99419941+ "parameters": {
99429942+ "type": "params",
99439943+ "properties": {
99449944+ "viewer": {
99459945+ "type": "string",
99469946+ "format": "did",
99479947+ "description":
99489948+ "DID of the account making the request (not included for public/unauthenticated queries).",
99499949+ },
99509950+ "category": {
99519951+ "type": "string",
99529952+ "description": "Category of users to get suggestions for.",
99539953+ },
99549954+ "limit": {
99559955+ "type": "integer",
99569956+ "minimum": 1,
99579957+ "maximum": 50,
99589958+ "default": 25,
99599959+ },
99609960+ },
99619961+ },
99629962+ "output": {
99639963+ "encoding": "application/json",
99649964+ "schema": {
99659965+ "type": "object",
99669966+ "required": [
99679967+ "dids",
99689968+ ],
99699969+ "properties": {
99709970+ "dids": {
99719971+ "type": "array",
99729972+ "items": {
99739973+ "type": "string",
99749974+ "format": "did",
99759975+ },
99769976+ },
99779977+ "recIdStr": {
99789978+ "type": "string",
99799979+ "description":
99809980+ "Snowflake for this recommendation, use when submitting recommendation events.",
99819981+ },
99829982+ },
99839983+ },
99849984+ },
99859985+ },
99869986+ },
99879987+ },
84979988 "AppBskyUnspeccedGetSuggestedFeeds": {
84989989 "lexicon": 1,
84999990 "id": "app.bsky.unspecced.getSuggestedFeeds",
···870610197 "ref": "lex:app.bsky.actor.defs#profileView",
870710198 },
870810199 },
1020010200+ "recIdStr": {
1020110201+ "type": "string",
1020210202+ "description":
1020310203+ "Snowflake for this recommendation, use when submitting recommendation events.",
1020410204+ },
870910205 "isFallback": {
871010206 "type": "boolean",
871110207 "description":
87128712- "If true, response has fallen-back to generic results, and is not scoped using relativeToDid",
1020810208+ "DEPRECATED, unused. Previously: if true, response has fallen-back to generic results, and is not scoped using relativeToDid",
871310209 "default": false,
871410210 },
871510211 "recId": {
871610212 "type": "integer",
87178717- "description":
87188718- "Snowflake for this recommendation, use when submitting recommendation events.",
1021310213+ "description": "DEPRECATED: use recIdStr instead.",
871910214 },
872010215 },
872110216 },
···919210687 "format": "at-uri",
919310688 "description":
919410689 "if the actor is followed by this DID, contains the AT-URI of the follow record",
1069010690+ },
1069110691+ "blocking": {
1069210692+ "type": "string",
1069310693+ "format": "at-uri",
1069410694+ "description":
1069510695+ "if the actor blocks this DID, this is the AT-URI of the block record",
1069610696+ },
1069710697+ "blockedBy": {
1069810698+ "type": "string",
1069910699+ "format": "at-uri",
1070010700+ "description":
1070110701+ "if the actor is blocked by this DID, contains the AT-URI of the block record",
1070210702+ },
1070310703+ "blockingByList": {
1070410704+ "type": "string",
1070510705+ "format": "at-uri",
1070610706+ "description":
1070710707+ "if the actor blocks this DID via a block list, this is the AT-URI of the listblock record",
1070810708+ },
1070910709+ "blockedByList": {
1071010710+ "type": "string",
1071110711+ "format": "at-uri",
1071210712+ "description":
1071310713+ "if the actor is blocked by this DID via a block list, contains the AT-URI of the listblock record",
919510714 },
919610715 },
919710716 },
···1037411893 },
1037511894 },
1037611895 },
1189611896+ "AppBskyAuthFullApp": {
1189711897+ "lexicon": 1,
1189811898+ "id": "app.bsky.authFullApp",
1189911899+ "defs": {
1190011900+ "main": {
1190111901+ "type": "permission-set",
1190211902+ "title": "Full Bluesky Social App Permissions",
1190311903+ "title:lang": {},
1190411904+ "detail":
1190511905+ "Manage all public content and interactions, private preferences and subscriptions, and other Bluesky-specific app features and data.",
1190611906+ "detail:lang": {},
1190711907+ "permissions": [
1190811908+ {
1190911909+ "type": "permission",
1191011910+ "resource": "rpc",
1191111911+ "inheritAud": true,
1191211912+ "lxm": [
1191311913+ "app.bsky.actor.getPreferences",
1191411914+ "app.bsky.actor.getProfile",
1191511915+ "app.bsky.actor.getProfiles",
1191611916+ "app.bsky.actor.getSuggestions",
1191711917+ "app.bsky.actor.putPreferences",
1191811918+ "app.bsky.actor.searchActors",
1191911919+ "app.bsky.actor.searchActorsTypeahead",
1192011920+ "app.bsky.bookmark.createBookmark",
1192111921+ "app.bsky.bookmark.deleteBookmark",
1192211922+ "app.bsky.bookmark.getBookmarks",
1192311923+ "app.bsky.contact.dismissMatch",
1192411924+ "app.bsky.contact.getMatches",
1192511925+ "app.bsky.contact.getSyncStatus",
1192611926+ "app.bsky.contact.importContacts",
1192711927+ "app.bsky.contact.removeData",
1192811928+ "app.bsky.contact.startPhoneVerification",
1192911929+ "app.bsky.contact.verifyPhone",
1193011930+ "app.bsky.feed.describeFeedGenerator",
1193111931+ "app.bsky.feed.getActorFeeds",
1193211932+ "app.bsky.feed.getActorLikes",
1193311933+ "app.bsky.feed.getAuthorFeed",
1193411934+ "app.bsky.feed.getFeed",
1193511935+ "app.bsky.feed.getFeedGenerator",
1193611936+ "app.bsky.feed.getFeedGenerators",
1193711937+ "app.bsky.feed.getFeedSkeleton",
1193811938+ "app.bsky.feed.getLikes",
1193911939+ "app.bsky.feed.getListFeed",
1194011940+ "app.bsky.feed.getPostThread",
1194111941+ "app.bsky.feed.getPosts",
1194211942+ "app.bsky.feed.getQuotes",
1194311943+ "app.bsky.feed.getRepostedBy",
1194411944+ "app.bsky.feed.getSuggestedFeeds",
1194511945+ "app.bsky.feed.getTimeline",
1194611946+ "app.bsky.feed.searchPosts",
1194711947+ "app.bsky.feed.sendInteractions",
1194811948+ "app.bsky.graph.getActorStarterPacks",
1194911949+ "app.bsky.graph.getBlocks",
1195011950+ "app.bsky.graph.getFollowers",
1195111951+ "app.bsky.graph.getFollows",
1195211952+ "app.bsky.graph.getKnownFollowers",
1195311953+ "app.bsky.graph.getList",
1195411954+ "app.bsky.graph.getListBlocks",
1195511955+ "app.bsky.graph.getListMutes",
1195611956+ "app.bsky.graph.getLists",
1195711957+ "app.bsky.graph.getListsWithMembership",
1195811958+ "app.bsky.graph.getMutes",
1195911959+ "app.bsky.graph.getRelationships",
1196011960+ "app.bsky.graph.getStarterPack",
1196111961+ "app.bsky.graph.getStarterPacks",
1196211962+ "app.bsky.graph.getStarterPacksWithMembership",
1196311963+ "app.bsky.graph.getSuggestedFollowsByActor",
1196411964+ "app.bsky.graph.muteActor",
1196511965+ "app.bsky.graph.muteActorList",
1196611966+ "app.bsky.graph.muteThread",
1196711967+ "app.bsky.graph.searchStarterPacks",
1196811968+ "app.bsky.graph.unmuteActor",
1196911969+ "app.bsky.graph.unmuteActorList",
1197011970+ "app.bsky.graph.unmuteThread",
1197111971+ "app.bsky.labeler.getServices",
1197211972+ "app.bsky.notification.getPreferences",
1197311973+ "app.bsky.notification.getUnreadCount",
1197411974+ "app.bsky.notification.listActivitySubscriptions",
1197511975+ "app.bsky.notification.listNotifications",
1197611976+ "app.bsky.notification.putActivitySubscription",
1197711977+ "app.bsky.notification.putPreferences",
1197811978+ "app.bsky.notification.putPreferencesV2",
1197911979+ "app.bsky.notification.registerPush",
1198011980+ "app.bsky.notification.unregisterPush",
1198111981+ "app.bsky.notification.updateSeen",
1198211982+ "app.bsky.unspecced.getAgeAssuranceState",
1198311983+ "app.bsky.unspecced.getConfig",
1198411984+ "app.bsky.unspecced.getOnboardingSuggestedStarterPacks",
1198511985+ "app.bsky.unspecced.getPopularFeedGenerators",
1198611986+ "app.bsky.unspecced.getPostThreadOtherV2",
1198711987+ "app.bsky.unspecced.getPostThreadV2",
1198811988+ "app.bsky.unspecced.getSuggestedFeeds",
1198911989+ "app.bsky.unspecced.getSuggestedFeedsSkeleton",
1199011990+ "app.bsky.unspecced.getSuggestedStarterPacks",
1199111991+ "app.bsky.unspecced.getSuggestedStarterPacksSkeleton",
1199211992+ "app.bsky.unspecced.getSuggestedUsers",
1199311993+ "app.bsky.unspecced.getSuggestedUsersSkeleton",
1199411994+ "app.bsky.unspecced.getSuggestionsSkeleton",
1199511995+ "app.bsky.unspecced.getTaggedSuggestions",
1199611996+ "app.bsky.unspecced.getTrendingTopics",
1199711997+ "app.bsky.unspecced.getTrends",
1199811998+ "app.bsky.unspecced.getTrendsSkeleton",
1199911999+ "app.bsky.unspecced.initAgeAssurance",
1200012000+ "app.bsky.unspecced.searchActorsSkeleton",
1200112001+ "app.bsky.unspecced.searchPostsSkeleton",
1200212002+ "app.bsky.unspecced.searchStarterPacksSkeleton",
1200312003+ "app.bsky.video.getJobStatus",
1200412004+ "app.bsky.video.getUploadLimits",
1200512005+ "app.bsky.video.uploadVideo",
1200612006+ ],
1200712007+ },
1200812008+ {
1200912009+ "type": "permission",
1201012010+ "resource": "repo",
1201112011+ "action": [
1201212012+ "create",
1201312013+ "update",
1201412014+ "delete",
1201512015+ ],
1201612016+ "collection": [
1201712017+ "app.bsky.actor.profile",
1201812018+ "app.bsky.actor.status",
1201912019+ "app.bsky.feed.like",
1202012020+ "app.bsky.feed.post",
1202112021+ "app.bsky.feed.postgate",
1202212022+ "app.bsky.feed.repost",
1202312023+ "app.bsky.feed.threadgate",
1202412024+ "app.bsky.graph.block",
1202512025+ "app.bsky.graph.follow",
1202612026+ "app.bsky.graph.list",
1202712027+ "app.bsky.graph.listblock",
1202812028+ "app.bsky.graph.listitem",
1202912029+ "app.bsky.graph.starterpack",
1203012030+ "app.bsky.notification.declaration",
1203112031+ ],
1203212032+ },
1203312033+ ],
1203412034+ },
1203512035+ },
1203612036+ },
1203712037+ "AppBskyAuthManageModeration": {
1203812038+ "lexicon": 1,
1203912039+ "id": "app.bsky.authManageModeration",
1204012040+ "defs": {
1204112041+ "main": {
1204212042+ "type": "permission-set",
1204312043+ "title": "Manage Personal Moderation",
1204412044+ "title:lang": {},
1204512045+ "detail":
1204612046+ "Control over blocks, mutes, mod lists, mod services, and preferences.",
1204712047+ "detail:lang": {},
1204812048+ "permissions": [
1204912049+ {
1205012050+ "type": "permission",
1205112051+ "resource": "rpc",
1205212052+ "inheritAud": true,
1205312053+ "lxm": [
1205412054+ "app.bsky.actor.getPreferences",
1205512055+ "app.bsky.actor.putPreferences",
1205612056+ "app.bsky.graph.muteActor",
1205712057+ "app.bsky.graph.muteActorList",
1205812058+ "app.bsky.graph.muteThread",
1205912059+ "app.bsky.graph.unmuteActor",
1206012060+ "app.bsky.graph.unmuteActorList",
1206112061+ "app.bsky.graph.unmuteThread",
1206212062+ ],
1206312063+ },
1206412064+ {
1206512065+ "type": "permission",
1206612066+ "resource": "repo",
1206712067+ "action": [
1206812068+ "create",
1206912069+ "update",
1207012070+ "delete",
1207112071+ ],
1207212072+ "collection": [
1207312073+ "app.bsky.graph.block",
1207412074+ "app.bsky.graph.listblock",
1207512075+ ],
1207612076+ },
1207712077+ ],
1207812078+ },
1207912079+ },
1208012080+ },
1037712081 "AppBskyFeedGenerator": {
1037812082 "lexicon": 1,
1037912083 "id": "app.bsky.feed.generator",
···1046412168 "interactions",
1046512169 ],
1046612170 "properties": {
1217112171+ "feed": {
1217212172+ "type": "string",
1217312173+ "format": "at-uri",
1217412174+ },
1046712175 "interactions": {
1046812176 "type": "array",
1046912177 "items": {
···1258214290 },
1258314291 },
1258414292 },
1429314293+ "AppBskyAuthViewAll": {
1429414294+ "lexicon": 1,
1429514295+ "id": "app.bsky.authViewAll",
1429614296+ "defs": {
1429714297+ "main": {
1429814298+ "type": "permission-set",
1429914299+ "title": "Read-only access to all content",
1430014300+ "title:lang": {},
1430114301+ "detail":
1430214302+ "View Bluesky network content from account perspective, and read all notifications and preferences.",
1430314303+ "detail:lang": {},
1430414304+ "permissions": [
1430514305+ {
1430614306+ "type": "permission",
1430714307+ "resource": "rpc",
1430814308+ "inheritAud": true,
1430914309+ "lxm": [
1431014310+ "app.bsky.actor.getPreferences",
1431114311+ "app.bsky.actor.getProfile",
1431214312+ "app.bsky.actor.getProfiles",
1431314313+ "app.bsky.actor.getSuggestions",
1431414314+ "app.bsky.actor.searchActors",
1431514315+ "app.bsky.actor.searchActorsTypeahead",
1431614316+ "app.bsky.bookmark.getBookmarks",
1431714317+ "app.bsky.feed.describeFeedGenerator",
1431814318+ "app.bsky.feed.getActorFeeds",
1431914319+ "app.bsky.feed.getActorLikes",
1432014320+ "app.bsky.feed.getAuthorFeed",
1432114321+ "app.bsky.feed.getFeed",
1432214322+ "app.bsky.feed.getFeedGenerator",
1432314323+ "app.bsky.feed.getFeedGenerators",
1432414324+ "app.bsky.feed.getFeedSkeleton",
1432514325+ "app.bsky.feed.getLikes",
1432614326+ "app.bsky.feed.getListFeed",
1432714327+ "app.bsky.feed.getPostThread",
1432814328+ "app.bsky.feed.getPosts",
1432914329+ "app.bsky.feed.getQuotes",
1433014330+ "app.bsky.feed.getRepostedBy",
1433114331+ "app.bsky.feed.getSuggestedFeeds",
1433214332+ "app.bsky.feed.getTimeline",
1433314333+ "app.bsky.feed.searchPosts",
1433414334+ "app.bsky.graph.getActorStarterPacks",
1433514335+ "app.bsky.graph.getBlocks",
1433614336+ "app.bsky.graph.getFollowers",
1433714337+ "app.bsky.graph.getFollows",
1433814338+ "app.bsky.graph.getKnownFollowers",
1433914339+ "app.bsky.graph.getListBlocks",
1434014340+ "app.bsky.graph.getListMutes",
1434114341+ "app.bsky.graph.getLists",
1434214342+ "app.bsky.graph.getListsWithMembership",
1434314343+ "app.bsky.graph.getMutes",
1434414344+ "app.bsky.graph.getRelationships",
1434514345+ "app.bsky.graph.getStarterPack",
1434614346+ "app.bsky.graph.getStarterPacks",
1434714347+ "app.bsky.graph.getStarterPacksWithMembership",
1434814348+ "app.bsky.graph.getSuggestedFollowsByActor",
1434914349+ "app.bsky.graph.searchStarterPacks",
1435014350+ "app.bsky.labeler.getServices",
1435114351+ "app.bsky.notification.getPreferences",
1435214352+ "app.bsky.notification.getUnreadCount",
1435314353+ "app.bsky.notification.listActivitySubscriptions",
1435414354+ "app.bsky.notification.listNotifications",
1435514355+ "app.bsky.notification.updateSeen",
1435614356+ "app.bsky.unspecced.getAgeAssuranceState",
1435714357+ "app.bsky.unspecced.getConfig",
1435814358+ "app.bsky.unspecced.getOnboardingSuggestedStarterPacks",
1435914359+ "app.bsky.unspecced.getPopularFeedGenerators",
1436014360+ "app.bsky.unspecced.getPostThreadOtherV2",
1436114361+ "app.bsky.unspecced.getPostThreadV2",
1436214362+ "app.bsky.unspecced.getSuggestedFeeds",
1436314363+ "app.bsky.unspecced.getSuggestedFeedsSkeleton",
1436414364+ "app.bsky.unspecced.getSuggestedStarterPacks",
1436514365+ "app.bsky.unspecced.getSuggestedStarterPacksSkeleton",
1436614366+ "app.bsky.unspecced.getSuggestedUsers",
1436714367+ "app.bsky.unspecced.getSuggestedUsersSkeleton",
1436814368+ "app.bsky.unspecced.getSuggestionsSkeleton",
1436914369+ "app.bsky.unspecced.getTaggedSuggestions",
1437014370+ "app.bsky.unspecced.getTrendingTopics",
1437114371+ "app.bsky.unspecced.getTrends",
1437214372+ "app.bsky.unspecced.getTrendsSkeleton",
1437314373+ "app.bsky.unspecced.searchActorsSkeleton",
1437414374+ "app.bsky.unspecced.searchPostsSkeleton",
1437514375+ "app.bsky.unspecced.searchStarterPacksSkeleton",
1437614376+ "app.bsky.video.getUploadLimits",
1437714377+ ],
1437814378+ },
1437914379+ ],
1438014380+ },
1438114381+ },
1438214382+ },
1438314383+ "AppBskyAuthManageFeedDeclarations": {
1438414384+ "lexicon": 1,
1438514385+ "id": "app.bsky.authManageFeedDeclarations",
1438614386+ "defs": {
1438714387+ "main": {
1438814388+ "type": "permission-set",
1438914389+ "title": "Manage Hosted Feeds",
1439014390+ "title:lang": {},
1439114391+ "detail": "Configure feed generator declaration records.",
1439214392+ "detail:lang": {},
1439314393+ "permissions": [
1439414394+ {
1439514395+ "type": "permission",
1439614396+ "resource": "repo",
1439714397+ "action": [
1439814398+ "create",
1439914399+ "update",
1440014400+ "delete",
1440114401+ ],
1440214402+ "collection": [
1440314403+ "app.bsky.feed.generator",
1440414404+ ],
1440514405+ },
1440614406+ ],
1440714407+ },
1440814408+ },
1440914409+ },
1258514410 "AppBskyAgeassuranceBegin": {
1258614411 "lexicon": 1,
1258714412 "id": "app.bsky.ageassurance.begin",
···1272914554 "description": "The Age Assurance configuration for a specific region.",
1273014555 "required": [
1273114556 "countryCode",
1455714557+ "minAccessAge",
1273214558 "rules",
1273314559 ],
1273414560 "properties": {
···1274214568 "description":
1274314569 "The ISO 3166-2 region code this configuration applies to. If omitted, the configuration applies to the entire country.",
1274414570 },
1457114571+ "minAccessAge": {
1457214572+ "type": "integer",
1457314573+ "description":
1457414574+ "The minimum age (as a whole integer) required to use Bluesky in this region.",
1457514575+ },
1274514576 "rules": {
1274614577 "type": "array",
1274714578 "description":
···1303314864 },
1303414865 },
1303514866 },
1486714867+ "AppBskyAuthManageProfile": {
1486814868+ "lexicon": 1,
1486914869+ "id": "app.bsky.authManageProfile",
1487014870+ "defs": {
1487114871+ "main": {
1487214872+ "type": "permission-set",
1487314873+ "title": "Manage Bluesky Profile",
1487414874+ "title:lang": {},
1487514875+ "detail":
1487614876+ "Update profile data, as well as status and public chat visibility.",
1487714877+ "detail:lang": {},
1487814878+ "permissions": [
1487914879+ {
1488014880+ "type": "permission",
1488114881+ "resource": "repo",
1488214882+ "action": [
1488314883+ "create",
1488414884+ "update",
1488514885+ "delete",
1488614886+ ],
1488714887+ "collection": [
1488814888+ "app.bsky.actor.profile",
1488914889+ "app.bsky.actor.status",
1489014890+ "app.bsky.notification.declaration",
1489114891+ ],
1489214892+ },
1489314893+ ],
1489414894+ },
1489514895+ },
1489614896+ },
1303614897 "AppBskyActorSearchActorsTypeahead": {
1303714898 "lexicon": 1,
1303814899 "id": "app.bsky.actor.searchActorsTypeahead",
···1333215193 "ref":
1333315194 "lex:app.bsky.actor.defs#profileAssociatedActivitySubscription",
1333415195 },
1519615196+ "germ": {
1519715197+ "type": "ref",
1519815198+ "ref": "lex:app.bsky.actor.defs#profileAssociatedGerm",
1519915199+ },
1333515200 },
1333615201 },
1333715202 "profileAssociatedChat": {
···1335015215 },
1335115216 },
1335215217 },
1521815218+ "profileAssociatedGerm": {
1521915219+ "type": "object",
1522015220+ "required": [
1522115221+ "showButtonTo",
1522215222+ "messageMeUrl",
1522315223+ ],
1522415224+ "properties": {
1522515225+ "messageMeUrl": {
1522615226+ "type": "string",
1522715227+ "format": "uri",
1522815228+ },
1522915229+ "showButtonTo": {
1523015230+ "type": "string",
1523115231+ "knownValues": [
1523215232+ "usersIFollow",
1523315233+ "everyone",
1523415234+ ],
1523515235+ },
1523615236+ },
1523715237+ },
1335315238 "profileAssociatedActivitySubscription": {
1335415239 "type": "object",
1335515240 "required": [
···1351415399 "lex:app.bsky.actor.defs#savedFeedsPref",
1351515400 "lex:app.bsky.actor.defs#savedFeedsPrefV2",
1351615401 "lex:app.bsky.actor.defs#personalDetailsPref",
1540215402+ "lex:app.bsky.actor.defs#declaredAgePref",
1351715403 "lex:app.bsky.actor.defs#feedViewPref",
1351815404 "lex:app.bsky.actor.defs#threadViewPref",
1351915405 "lex:app.bsky.actor.defs#interestsPref",
···1352315409 "lex:app.bsky.actor.defs#labelersPref",
1352415410 "lex:app.bsky.actor.defs#postInteractionSettingsPref",
1352515411 "lex:app.bsky.actor.defs#verificationPrefs",
1541215412+ "lex:app.bsky.actor.defs#liveEventPreferences",
1352615413 ],
1352715414 },
1352815415 },
···1364415531 },
1364515532 },
1364615533 },
1553415534+ "declaredAgePref": {
1553515535+ "type": "object",
1553615536+ "description":
1553715537+ "Read-only preference containing value(s) inferred from the user's declared birthdate. Absence of this preference object in the response indicates that the user has not made a declaration.",
1553815538+ "properties": {
1553915539+ "isOverAge13": {
1554015540+ "type": "boolean",
1554115541+ "description":
1554215542+ "Indicates if the user has declared that they are over 13 years of age.",
1554315543+ },
1554415544+ "isOverAge16": {
1554515545+ "type": "boolean",
1554615546+ "description":
1554715547+ "Indicates if the user has declared that they are over 16 years of age.",
1554815548+ },
1554915549+ "isOverAge18": {
1555015550+ "type": "boolean",
1555115551+ "description":
1555215552+ "Indicates if the user has declared that they are over 18 years of age.",
1555315553+ },
1555415554+ },
1555515555+ },
1364715556 "feedViewPref": {
1364815557 "type": "object",
1364915558 "required": [
···1391615825 },
1391715826 },
1391815827 },
1582815828+ "liveEventPreferences": {
1582915829+ "type": "object",
1583015830+ "description": "Preferences for live events.",
1583115831+ "properties": {
1583215832+ "hiddenFeedIds": {
1583315833+ "description":
1583415834+ "A list of feed IDs that the user has hidden from live events.",
1583515835+ "type": "array",
1583615836+ "items": {
1583715837+ "type": "string",
1583815838+ },
1583915839+ },
1584015840+ "hideAllFeeds": {
1584115841+ "description": "Whether to hide all feeds from live events.",
1584215842+ "type": "boolean",
1584315843+ "default": false,
1584415844+ },
1584515845+ },
1584615846+ },
1391915847 "postInteractionSettingsPref": {
1392015848 "type": "object",
1392115849 "description":
···1395815886 "record",
1395915887 ],
1396015888 "properties": {
1588915889+ "uri": {
1589015890+ "type": "string",
1589115891+ "format": "at-uri",
1589215892+ },
1589315893+ "cid": {
1589415894+ "type": "string",
1589515895+ "format": "cid",
1589615896+ },
1396115897 "status": {
1396215898 "type": "string",
1396315899 "description": "The status for the account.",
···1397515911 "lex:app.bsky.embed.external#view",
1397615912 ],
1397715913 },
1591415914+ "labels": {
1591515915+ "type": "array",
1591615916+ "items": {
1591715917+ "type": "ref",
1591815918+ "ref": "lex:com.atproto.label.defs#label",
1591915919+ },
1592015920+ },
1397815921 "expiresAt": {
1397915922 "type": "string",
1398015923 "description":
···1398515928 "type": "boolean",
1398615929 "description":
1398715930 "True if the status is not expired, false if it is expired. Only present if expiration was set.",
1593115931+ },
1593215932+ "isDisabled": {
1593315933+ "type": "boolean",
1593415934+ "description":
1593515935+ "True if the user's go-live access has been disabled by a moderator, false otherwise.",
1398815936 },
1398915937 },
1399015938 },
···1408816036 },
1408916037 "recId": {
1409016038 "type": "integer",
1603916039+ "description": "DEPRECATED: use recIdStr instead.",
1604016040+ },
1604116041+ "recIdStr": {
1604216042+ "type": "string",
1409116043 "description":
1409216044 "Snowflake for this recommendation, use when submitting recommendation events.",
1409316045 },
···1595417906 "properties": {},
1595517907 },
1595617908 },
1790917909+ },
1791017910+ },
1791117911+ },
1791217912+ "ChatBskyAuthFullChatClient": {
1791317913+ "lexicon": 1,
1791417914+ "id": "chat.bsky.authFullChatClient",
1791517915+ "defs": {
1791617916+ "main": {
1791717917+ "type": "permission-set",
1791817918+ "title": "Full Chat Client (All Conversations)",
1791917919+ "title:lang": {},
1792017920+ "detail":
1792117921+ "Control of all chat conversations and configuration management.",
1792217922+ "detail:lang": {
1792317923+ "en": "All Chat Conversations",
1792417924+ },
1792517925+ "permissions": [
1792617926+ {
1792717927+ "type": "permission",
1792817928+ "resource": "rpc",
1792917929+ "inheritAud": true,
1793017930+ "lxm": [
1793117931+ "chat.bsky.actor.deleteAccount",
1793217932+ "chat.bsky.actor.exportAccountData",
1793317933+ "chat.bsky.convo.acceptConvo",
1793417934+ "chat.bsky.convo.addReaction",
1793517935+ "chat.bsky.convo.deleteMessageForSelf",
1793617936+ "chat.bsky.convo.getConvo",
1793717937+ "chat.bsky.convo.getConvoAvailability",
1793817938+ "chat.bsky.convo.getConvoForMembers",
1793917939+ "chat.bsky.convo.getLog",
1794017940+ "chat.bsky.convo.getMessages",
1794117941+ "chat.bsky.convo.leaveConvo",
1794217942+ "chat.bsky.convo.listConvos",
1794317943+ "chat.bsky.convo.muteConvo",
1794417944+ "chat.bsky.convo.removeReaction",
1794517945+ "chat.bsky.convo.sendMessage",
1794617946+ "chat.bsky.convo.sendMessageBatch",
1794717947+ "chat.bsky.convo.unmuteConvo",
1794817948+ "chat.bsky.convo.updateAllRead",
1794917949+ "chat.bsky.convo.updateRead",
1795017950+ ],
1795117951+ },
1795217952+ {
1795317953+ "type": "permission",
1795417954+ "resource": "repo",
1795517955+ "action": [
1795617956+ "create",
1795717957+ "update",
1795817958+ "delete",
1795917959+ ],
1796017960+ "collection": [
1796117961+ "chat.bsky.actor.declaration",
1796217962+ ],
1796317963+ },
1796417964+ ],
1595717965 },
1595817966 },
1595917967 },
···2325625264 "type": "string",
2325725265 "knownValues": [
2325825266 "!hide",
2325923259- "!no-promote",
2326025267 "!warn",
2326125268 "!no-unauthenticated",
2326223262- "dmca-violation",
2326323263- "doxxing",
2326425269 "porn",
2326525270 "sexual",
2326625271 "nudity",
2326723267- "nsfl",
2326823268- "gore",
2527225272+ "graphic-media",
2527325273+ "bot",
2326925274 ],
2327025275 },
2327125276 },
···2378625791 "defs": {
2378725792 "main": {
2378825793 "type": "procedure",
2378923789- "description": "Delete the current session. Requires auth.",
2579425794+ "description":
2579525795+ "Delete the current session. Requires auth using the 'refreshJwt' (not the 'accessJwt').",
2579625796+ "errors": [
2579725797+ {
2579825798+ "name": "InvalidToken",
2579925799+ },
2580025800+ {
2580125801+ "name": "ExpiredToken",
2580225802+ },
2580325803+ ],
2379025804 },
2379125805 },
2379225806 },
···2403526049 "type": "string",
2403626050 "format": "did",
2403726051 },
2605226052+ "didDoc": {
2605326053+ "type": "unknown",
2605426054+ },
2403826055 "email": {
2403926056 "type": "string",
2404026057 },
···2404326060 },
2404426061 "emailAuthFactor": {
2404526062 "type": "boolean",
2404624046- },
2404724047- "didDoc": {
2404824048- "type": "unknown",
2404926063 },
2405026064 "active": {
2405126065 "type": "boolean",
···2410226116 "didDoc": {
2410326117 "type": "unknown",
2410426118 },
2611926119+ "email": {
2612026120+ "type": "string",
2612126121+ },
2612226122+ "emailConfirmed": {
2612326123+ "type": "boolean",
2612426124+ },
2612526125+ "emailAuthFactor": {
2612626126+ "type": "boolean",
2612726127+ },
2410526128 "active": {
2410626129 "type": "boolean",
2410726130 },
···2412126144 "errors": [
2412226145 {
2412326146 "name": "AccountTakedown",
2614726147+ },
2614826148+ {
2614926149+ "name": "InvalidToken",
2615026150+ },
2615126151+ {
2615226152+ "name": "ExpiredToken",
2412426153 },
2412526154 ],
2412626155 },
···2691028939 ToolsOzoneModerationGetAccountTimeline:
2691128940 "tools.ozone.moderation.getAccountTimeline",
2691228941 ToolsOzoneModerationGetRepos: "tools.ozone.moderation.getRepos",
2894228942+ AppBskyDraftDefs: "app.bsky.draft.defs",
2894328943+ AppBskyDraftCreateDraft: "app.bsky.draft.createDraft",
2894428944+ AppBskyDraftUpdateDraft: "app.bsky.draft.updateDraft",
2894528945+ AppBskyDraftGetDrafts: "app.bsky.draft.getDrafts",
2894628946+ AppBskyDraftDeleteDraft: "app.bsky.draft.deleteDraft",
2894728947+ AppBskyAuthManageLabelerService: "app.bsky.authManageLabelerService",
2691328948 AppBskyVideoUploadVideo: "app.bsky.video.uploadVideo",
2691428949 AppBskyVideoDefs: "app.bsky.video.defs",
2691528950 AppBskyVideoGetJobStatus: "app.bsky.video.getJobStatus",
2691628951 AppBskyVideoGetUploadLimits: "app.bsky.video.getUploadLimits",
2895228952+ AppBskyContactDefs: "app.bsky.contact.defs",
2895328953+ AppBskyContactSendNotification: "app.bsky.contact.sendNotification",
2895428954+ AppBskyContactGetSyncStatus: "app.bsky.contact.getSyncStatus",
2895528955+ AppBskyContactStartPhoneVerification:
2895628956+ "app.bsky.contact.startPhoneVerification",
2895728957+ AppBskyContactGetMatches: "app.bsky.contact.getMatches",
2895828958+ AppBskyContactImportContacts: "app.bsky.contact.importContacts",
2895928959+ AppBskyContactDismissMatch: "app.bsky.contact.dismissMatch",
2896028960+ AppBskyContactRemoveData: "app.bsky.contact.removeData",
2896128961+ AppBskyContactVerifyPhone: "app.bsky.contact.verifyPhone",
2896228962+ AppBskyAuthManageNotifications: "app.bsky.authManageNotifications",
2691728963 AppBskyBookmarkDefs: "app.bsky.bookmark.defs",
2691828964 AppBskyBookmarkDeleteBookmark: "app.bsky.bookmark.deleteBookmark",
2691928965 AppBskyBookmarkGetBookmarks: "app.bsky.bookmark.getBookmarks",
···2692428970 AppBskyEmbedRecordWithMedia: "app.bsky.embed.recordWithMedia",
2692528971 AppBskyEmbedVideo: "app.bsky.embed.video",
2692628972 AppBskyEmbedExternal: "app.bsky.embed.external",
2897328973+ AppBskyAuthDeleteContent: "app.bsky.authDeleteContent",
2897428974+ AppBskyAuthCreatePosts: "app.bsky.authCreatePosts",
2692728975 AppBskyNotificationDefs: "app.bsky.notification.defs",
2692828976 AppBskyNotificationRegisterPush: "app.bsky.notification.registerPush",
2692928977 AppBskyNotificationPutPreferences: "app.bsky.notification.putPreferences",
···2694328991 "app.bsky.unspecced.getSuggestedFeedsSkeleton",
2694428992 AppBskyUnspeccedSearchStarterPacksSkeleton:
2694528993 "app.bsky.unspecced.searchStarterPacksSkeleton",
2899428994+ AppBskyUnspeccedGetSuggestedUsersForExplore:
2899528995+ "app.bsky.unspecced.getSuggestedUsersForExplore",
2694628996 AppBskyUnspeccedDefs: "app.bsky.unspecced.defs",
2694728997 AppBskyUnspeccedGetOnboardingSuggestedStarterPacksSkeleton:
2694828998 "app.bsky.unspecced.getOnboardingSuggestedStarterPacksSkeleton",
2899928999+ AppBskyUnspeccedGetSuggestedUsersForExploreSkeleton:
2900029000+ "app.bsky.unspecced.getSuggestedUsersForExploreSkeleton",
2694929001 AppBskyUnspeccedGetSuggestedUsers: "app.bsky.unspecced.getSuggestedUsers",
2695029002 AppBskyUnspeccedGetPostThreadOtherV2:
2695129003 "app.bsky.unspecced.getPostThreadOtherV2",
···2696429016 AppBskyUnspeccedGetSuggestionsSkeleton:
2696529017 "app.bsky.unspecced.getSuggestionsSkeleton",
2696629018 AppBskyUnspeccedSearchPostsSkeleton: "app.bsky.unspecced.searchPostsSkeleton",
2901929019+ AppBskyUnspeccedGetOnboardingSuggestedUsersSkeleton:
2902029020+ "app.bsky.unspecced.getOnboardingSuggestedUsersSkeleton",
2902129021+ AppBskyUnspeccedGetSuggestedUsersForDiscoverSkeleton:
2902229022+ "app.bsky.unspecced.getSuggestedUsersForDiscoverSkeleton",
2902329023+ AppBskyUnspeccedGetSuggestedUsersForDiscover:
2902429024+ "app.bsky.unspecced.getSuggestedUsersForDiscover",
2696729025 AppBskyUnspeccedGetAgeAssuranceState:
2696829026 "app.bsky.unspecced.getAgeAssuranceState",
2696929027 AppBskyUnspeccedGetPopularFeedGenerators:
2697029028 "app.bsky.unspecced.getPopularFeedGenerators",
2902929029+ AppBskyUnspeccedGetSuggestedOnboardingUsers:
2903029030+ "app.bsky.unspecced.getSuggestedOnboardingUsers",
2903129031+ AppBskyUnspeccedGetSuggestedUsersForSeeMore:
2903229032+ "app.bsky.unspecced.getSuggestedUsersForSeeMore",
2697129033 AppBskyUnspeccedInitAgeAssurance: "app.bsky.unspecced.initAgeAssurance",
2697229034 AppBskyUnspeccedGetTrendingTopics: "app.bsky.unspecced.getTrendingTopics",
2697329035 AppBskyUnspeccedGetTaggedSuggestions:
2697429036 "app.bsky.unspecced.getTaggedSuggestions",
2903729037+ AppBskyUnspeccedGetSuggestedUsersForSeeMoreSkeleton:
2903829038+ "app.bsky.unspecced.getSuggestedUsersForSeeMoreSkeleton",
2697529039 AppBskyUnspeccedGetSuggestedFeeds: "app.bsky.unspecced.getSuggestedFeeds",
2697629040 AppBskyUnspeccedGetTrendsSkeleton: "app.bsky.unspecced.getTrendsSkeleton",
2697729041 AppBskyUnspeccedGetConfig: "app.bsky.unspecced.getConfig",
···2700829072 AppBskyGraphGetRelationships: "app.bsky.graph.getRelationships",
2700929073 AppBskyGraphUnmuteActor: "app.bsky.graph.unmuteActor",
2701029074 AppBskyGraphGetList: "app.bsky.graph.getList",
2907529075+ AppBskyAuthFullApp: "app.bsky.authFullApp",
2907629076+ AppBskyAuthManageModeration: "app.bsky.authManageModeration",
2701129077 AppBskyFeedGenerator: "app.bsky.feed.generator",
2701229078 AppBskyFeedSendInteractions: "app.bsky.feed.sendInteractions",
2701329079 AppBskyFeedDefs: "app.bsky.feed.defs",
···2703429100 AppBskyFeedGetActorFeeds: "app.bsky.feed.getActorFeeds",
2703529101 AppBskyFeedPost: "app.bsky.feed.post",
2703629102 AppBskyRichtextFacet: "app.bsky.richtext.facet",
2910329103+ AppBskyAuthViewAll: "app.bsky.authViewAll",
2910429104+ AppBskyAuthManageFeedDeclarations: "app.bsky.authManageFeedDeclarations",
2703729105 AppBskyAgeassuranceBegin: "app.bsky.ageassurance.begin",
2703829106 AppBskyAgeassuranceDefs: "app.bsky.ageassurance.defs",
2703929107 AppBskyAgeassuranceGetState: "app.bsky.ageassurance.getState",
2704029108 AppBskyAgeassuranceGetConfig: "app.bsky.ageassurance.getConfig",
2910929109+ AppBskyAuthManageProfile: "app.bsky.authManageProfile",
2704129110 AppBskyActorSearchActorsTypeahead: "app.bsky.actor.searchActorsTypeahead",
2704229111 AppBskyActorDefs: "app.bsky.actor.defs",
2704329112 AppBskyActorPutPreferences: "app.bsky.actor.putPreferences",
···2707329142 ChatBskyActorDeclaration: "chat.bsky.actor.declaration",
2707429143 ChatBskyActorExportAccountData: "chat.bsky.actor.exportAccountData",
2707529144 ChatBskyActorDeleteAccount: "chat.bsky.actor.deleteAccount",
2914529145+ ChatBskyAuthFullChatClient: "chat.bsky.authFullChatClient",
2707629146 ChatBskyModerationGetActorMetadata: "chat.bsky.moderation.getActorMetadata",
2707729147 ChatBskyModerationGetMessageContext: "chat.bsky.moderation.getMessageContext",
2707829148 ChatBskyModerationUpdateActorAccess: "chat.bsky.moderation.updateActorAccess",
+194-60
lex/types/app/bsky/actor/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
78import type * as AppBskyGraphDefs from "../graph/defs.ts";
···33343435const hashProfileViewBasic = "profileViewBasic";
35363636-export function isProfileViewBasic<V>(v: V) {
3737+export function isProfileViewBasic<V>(v: V): v is ProfileViewBasic & V {
3738 return is$typed(v, id, hashProfileViewBasic);
3839}
39404040-export function validateProfileViewBasic<V>(v: V) {
4141+export function validateProfileViewBasic<V>(
4242+ v: V,
4343+): ValidationResult<ProfileViewBasic & V> {
4144 return validate<ProfileViewBasic & V>(v, id, hashProfileViewBasic);
4245}
4346···62656366const hashProfileView = "profileView";
64676565-export function isProfileView<V>(v: V) {
6868+export function isProfileView<V>(v: V): v is ProfileView & V {
6669 return is$typed(v, id, hashProfileView);
6770}
68716969-export function validateProfileView<V>(v: V) {
7272+export function validateProfileView<V>(
7373+ v: V,
7474+): ValidationResult<ProfileView & V> {
7075 return validate<ProfileView & V>(v, id, hashProfileView);
7176}
7277···9810399104const hashProfileViewDetailed = "profileViewDetailed";
100105101101-export function isProfileViewDetailed<V>(v: V) {
106106+export function isProfileViewDetailed<V>(v: V): v is ProfileViewDetailed & V {
102107 return is$typed(v, id, hashProfileViewDetailed);
103108}
104109105105-export function validateProfileViewDetailed<V>(v: V) {
110110+export function validateProfileViewDetailed<V>(
111111+ v: V,
112112+): ValidationResult<ProfileViewDetailed & V> {
106113 return validate<ProfileViewDetailed & V>(v, id, hashProfileViewDetailed);
107114}
108115···114121 labeler?: boolean;
115122 chat?: ProfileAssociatedChat;
116123 activitySubscription?: ProfileAssociatedActivitySubscription;
124124+ germ?: ProfileAssociatedGerm;
117125}
118126119127const hashProfileAssociated = "profileAssociated";
120128121121-export function isProfileAssociated<V>(v: V) {
129129+export function isProfileAssociated<V>(v: V): v is ProfileAssociated & V {
122130 return is$typed(v, id, hashProfileAssociated);
123131}
124132125125-export function validateProfileAssociated<V>(v: V) {
133133+export function validateProfileAssociated<V>(
134134+ v: V,
135135+): ValidationResult<ProfileAssociated & V> {
126136 return validate<ProfileAssociated & V>(v, id, hashProfileAssociated);
127137}
128138···137147138148const hashProfileAssociatedChat = "profileAssociatedChat";
139149140140-export function isProfileAssociatedChat<V>(v: V) {
150150+export function isProfileAssociatedChat<V>(
151151+ v: V,
152152+): v is ProfileAssociatedChat & V {
141153 return is$typed(v, id, hashProfileAssociatedChat);
142154}
143155144144-export function validateProfileAssociatedChat<V>(v: V) {
156156+export function validateProfileAssociatedChat<V>(
157157+ v: V,
158158+): ValidationResult<ProfileAssociatedChat & V> {
145159 return validate<ProfileAssociatedChat & V>(v, id, hashProfileAssociatedChat);
146160}
147161162162+export interface ProfileAssociatedGerm {
163163+ $type?: "app.bsky.actor.defs#profileAssociatedGerm";
164164+ messageMeUrl: string;
165165+ showButtonTo:
166166+ | "usersIFollow"
167167+ | "everyone"
168168+ | (string & globalThis.Record<PropertyKey, never>);
169169+}
170170+171171+const hashProfileAssociatedGerm = "profileAssociatedGerm";
172172+173173+export function isProfileAssociatedGerm<V>(
174174+ v: V,
175175+): v is ProfileAssociatedGerm & V {
176176+ return is$typed(v, id, hashProfileAssociatedGerm);
177177+}
178178+179179+export function validateProfileAssociatedGerm<V>(
180180+ v: V,
181181+): ValidationResult<ProfileAssociatedGerm & V> {
182182+ return validate<ProfileAssociatedGerm & V>(v, id, hashProfileAssociatedGerm);
183183+}
184184+148185export interface ProfileAssociatedActivitySubscription {
149186 $type?: "app.bsky.actor.defs#profileAssociatedActivitySubscription";
150187 allowSubscriptions:
···157194const hashProfileAssociatedActivitySubscription =
158195 "profileAssociatedActivitySubscription";
159196160160-export function isProfileAssociatedActivitySubscription<V>(v: V) {
197197+export function isProfileAssociatedActivitySubscription<V>(
198198+ v: V,
199199+): v is ProfileAssociatedActivitySubscription & V {
161200 return is$typed(v, id, hashProfileAssociatedActivitySubscription);
162201}
163202164164-export function validateProfileAssociatedActivitySubscription<V>(v: V) {
203203+export function validateProfileAssociatedActivitySubscription<V>(
204204+ v: V,
205205+): ValidationResult<ProfileAssociatedActivitySubscription & V> {
165206 return validate<ProfileAssociatedActivitySubscription & V>(
166207 v,
167208 id,
···185226186227const hashViewerState = "viewerState";
187228188188-export function isViewerState<V>(v: V) {
229229+export function isViewerState<V>(v: V): v is ViewerState & V {
189230 return is$typed(v, id, hashViewerState);
190231}
191232192192-export function validateViewerState<V>(v: V) {
233233+export function validateViewerState<V>(
234234+ v: V,
235235+): ValidationResult<ViewerState & V> {
193236 return validate<ViewerState & V>(v, id, hashViewerState);
194237}
195238···202245203246const hashKnownFollowers = "knownFollowers";
204247205205-export function isKnownFollowers<V>(v: V) {
248248+export function isKnownFollowers<V>(v: V): v is KnownFollowers & V {
206249 return is$typed(v, id, hashKnownFollowers);
207250}
208251209209-export function validateKnownFollowers<V>(v: V) {
252252+export function validateKnownFollowers<V>(
253253+ v: V,
254254+): ValidationResult<KnownFollowers & V> {
210255 return validate<KnownFollowers & V>(v, id, hashKnownFollowers);
211256}
212257···231276232277const hashVerificationState = "verificationState";
233278234234-export function isVerificationState<V>(v: V) {
279279+export function isVerificationState<V>(v: V): v is VerificationState & V {
235280 return is$typed(v, id, hashVerificationState);
236281}
237282238238-export function validateVerificationState<V>(v: V) {
283283+export function validateVerificationState<V>(
284284+ v: V,
285285+): ValidationResult<VerificationState & V> {
239286 return validate<VerificationState & V>(v, id, hashVerificationState);
240287}
241288···254301255302const hashVerificationView = "verificationView";
256303257257-export function isVerificationView<V>(v: V) {
304304+export function isVerificationView<V>(v: V): v is VerificationView & V {
258305 return is$typed(v, id, hashVerificationView);
259306}
260307261261-export function validateVerificationView<V>(v: V) {
308308+export function validateVerificationView<V>(
309309+ v: V,
310310+): ValidationResult<VerificationView & V> {
262311 return validate<VerificationView & V>(v, id, hashVerificationView);
263312}
264313···268317 | $Typed<SavedFeedsPref>
269318 | $Typed<SavedFeedsPrefV2>
270319 | $Typed<PersonalDetailsPref>
320320+ | $Typed<DeclaredAgePref>
271321 | $Typed<FeedViewPref>
272322 | $Typed<ThreadViewPref>
273323 | $Typed<InterestsPref>
···277327 | $Typed<LabelersPref>
278328 | $Typed<PostInteractionSettingsPref>
279329 | $Typed<VerificationPrefs>
330330+ | $Typed<LiveEventPreferences>
280331 | { $type: string }
281332)[];
282333···287338288339const hashAdultContentPref = "adultContentPref";
289340290290-export function isAdultContentPref<V>(v: V) {
341341+export function isAdultContentPref<V>(v: V): v is AdultContentPref & V {
291342 return is$typed(v, id, hashAdultContentPref);
292343}
293344294294-export function validateAdultContentPref<V>(v: V) {
345345+export function validateAdultContentPref<V>(
346346+ v: V,
347347+): ValidationResult<AdultContentPref & V> {
295348 return validate<AdultContentPref & V>(v, id, hashAdultContentPref);
296349}
297350···310363311364const hashContentLabelPref = "contentLabelPref";
312365313313-export function isContentLabelPref<V>(v: V) {
366366+export function isContentLabelPref<V>(v: V): v is ContentLabelPref & V {
314367 return is$typed(v, id, hashContentLabelPref);
315368}
316369317317-export function validateContentLabelPref<V>(v: V) {
370370+export function validateContentLabelPref<V>(
371371+ v: V,
372372+): ValidationResult<ContentLabelPref & V> {
318373 return validate<ContentLabelPref & V>(v, id, hashContentLabelPref);
319374}
320375···332387333388const hashSavedFeed = "savedFeed";
334389335335-export function isSavedFeed<V>(v: V) {
390390+export function isSavedFeed<V>(v: V): v is SavedFeed & V {
336391 return is$typed(v, id, hashSavedFeed);
337392}
338393339339-export function validateSavedFeed<V>(v: V) {
394394+export function validateSavedFeed<V>(v: V): ValidationResult<SavedFeed & V> {
340395 return validate<SavedFeed & V>(v, id, hashSavedFeed);
341396}
342397···347402348403const hashSavedFeedsPrefV2 = "savedFeedsPrefV2";
349404350350-export function isSavedFeedsPrefV2<V>(v: V) {
405405+export function isSavedFeedsPrefV2<V>(v: V): v is SavedFeedsPrefV2 & V {
351406 return is$typed(v, id, hashSavedFeedsPrefV2);
352407}
353408354354-export function validateSavedFeedsPrefV2<V>(v: V) {
409409+export function validateSavedFeedsPrefV2<V>(
410410+ v: V,
411411+): ValidationResult<SavedFeedsPrefV2 & V> {
355412 return validate<SavedFeedsPrefV2 & V>(v, id, hashSavedFeedsPrefV2);
356413}
357414···364421365422const hashSavedFeedsPref = "savedFeedsPref";
366423367367-export function isSavedFeedsPref<V>(v: V) {
424424+export function isSavedFeedsPref<V>(v: V): v is SavedFeedsPref & V {
368425 return is$typed(v, id, hashSavedFeedsPref);
369426}
370427371371-export function validateSavedFeedsPref<V>(v: V) {
428428+export function validateSavedFeedsPref<V>(
429429+ v: V,
430430+): ValidationResult<SavedFeedsPref & V> {
372431 return validate<SavedFeedsPref & V>(v, id, hashSavedFeedsPref);
373432}
374433···380439381440const hashPersonalDetailsPref = "personalDetailsPref";
382441383383-export function isPersonalDetailsPref<V>(v: V) {
442442+export function isPersonalDetailsPref<V>(v: V): v is PersonalDetailsPref & V {
384443 return is$typed(v, id, hashPersonalDetailsPref);
385444}
386445387387-export function validatePersonalDetailsPref<V>(v: V) {
446446+export function validatePersonalDetailsPref<V>(
447447+ v: V,
448448+): ValidationResult<PersonalDetailsPref & V> {
388449 return validate<PersonalDetailsPref & V>(v, id, hashPersonalDetailsPref);
389450}
390451452452+/** Read-only preference containing value(s) inferred from the user's declared birthdate. Absence of this preference object in the response indicates that the user has not made a declaration. */
453453+export interface DeclaredAgePref {
454454+ $type?: "app.bsky.actor.defs#declaredAgePref";
455455+ /** Indicates if the user has declared that they are over 13 years of age. */
456456+ isOverAge13?: boolean;
457457+ /** Indicates if the user has declared that they are over 16 years of age. */
458458+ isOverAge16?: boolean;
459459+ /** Indicates if the user has declared that they are over 18 years of age. */
460460+ isOverAge18?: boolean;
461461+}
462462+463463+const hashDeclaredAgePref = "declaredAgePref";
464464+465465+export function isDeclaredAgePref<V>(v: V): v is DeclaredAgePref & V {
466466+ return is$typed(v, id, hashDeclaredAgePref);
467467+}
468468+469469+export function validateDeclaredAgePref<V>(
470470+ v: V,
471471+): ValidationResult<DeclaredAgePref & V> {
472472+ return validate<DeclaredAgePref & V>(v, id, hashDeclaredAgePref);
473473+}
474474+391475export interface FeedViewPref {
392476 $type?: "app.bsky.actor.defs#feedViewPref";
393477 /** The URI of the feed, or an identifier which describes the feed. */
···406490407491const hashFeedViewPref = "feedViewPref";
408492409409-export function isFeedViewPref<V>(v: V) {
493493+export function isFeedViewPref<V>(v: V): v is FeedViewPref & V {
410494 return is$typed(v, id, hashFeedViewPref);
411495}
412496413413-export function validateFeedViewPref<V>(v: V) {
497497+export function validateFeedViewPref<V>(
498498+ v: V,
499499+): ValidationResult<FeedViewPref & V> {
414500 return validate<FeedViewPref & V>(v, id, hashFeedViewPref);
415501}
416502···428514429515const hashThreadViewPref = "threadViewPref";
430516431431-export function isThreadViewPref<V>(v: V) {
517517+export function isThreadViewPref<V>(v: V): v is ThreadViewPref & V {
432518 return is$typed(v, id, hashThreadViewPref);
433519}
434520435435-export function validateThreadViewPref<V>(v: V) {
521521+export function validateThreadViewPref<V>(
522522+ v: V,
523523+): ValidationResult<ThreadViewPref & V> {
436524 return validate<ThreadViewPref & V>(v, id, hashThreadViewPref);
437525}
438526···444532445533const hashInterestsPref = "interestsPref";
446534447447-export function isInterestsPref<V>(v: V) {
535535+export function isInterestsPref<V>(v: V): v is InterestsPref & V {
448536 return is$typed(v, id, hashInterestsPref);
449537}
450538451451-export function validateInterestsPref<V>(v: V) {
539539+export function validateInterestsPref<V>(
540540+ v: V,
541541+): ValidationResult<InterestsPref & V> {
452542 return validate<InterestsPref & V>(v, id, hashInterestsPref);
453543}
454544···476566477567const hashMutedWord = "mutedWord";
478568479479-export function isMutedWord<V>(v: V) {
569569+export function isMutedWord<V>(v: V): v is MutedWord & V {
480570 return is$typed(v, id, hashMutedWord);
481571}
482572483483-export function validateMutedWord<V>(v: V) {
573573+export function validateMutedWord<V>(v: V): ValidationResult<MutedWord & V> {
484574 return validate<MutedWord & V>(v, id, hashMutedWord);
485575}
486576···492582493583const hashMutedWordsPref = "mutedWordsPref";
494584495495-export function isMutedWordsPref<V>(v: V) {
585585+export function isMutedWordsPref<V>(v: V): v is MutedWordsPref & V {
496586 return is$typed(v, id, hashMutedWordsPref);
497587}
498588499499-export function validateMutedWordsPref<V>(v: V) {
589589+export function validateMutedWordsPref<V>(
590590+ v: V,
591591+): ValidationResult<MutedWordsPref & V> {
500592 return validate<MutedWordsPref & V>(v, id, hashMutedWordsPref);
501593}
502594···508600509601const hashHiddenPostsPref = "hiddenPostsPref";
510602511511-export function isHiddenPostsPref<V>(v: V) {
603603+export function isHiddenPostsPref<V>(v: V): v is HiddenPostsPref & V {
512604 return is$typed(v, id, hashHiddenPostsPref);
513605}
514606515515-export function validateHiddenPostsPref<V>(v: V) {
607607+export function validateHiddenPostsPref<V>(
608608+ v: V,
609609+): ValidationResult<HiddenPostsPref & V> {
516610 return validate<HiddenPostsPref & V>(v, id, hashHiddenPostsPref);
517611}
518612···523617524618const hashLabelersPref = "labelersPref";
525619526526-export function isLabelersPref<V>(v: V) {
620620+export function isLabelersPref<V>(v: V): v is LabelersPref & V {
527621 return is$typed(v, id, hashLabelersPref);
528622}
529623530530-export function validateLabelersPref<V>(v: V) {
624624+export function validateLabelersPref<V>(
625625+ v: V,
626626+): ValidationResult<LabelersPref & V> {
531627 return validate<LabelersPref & V>(v, id, hashLabelersPref);
532628}
533629···538634539635const hashLabelerPrefItem = "labelerPrefItem";
540636541541-export function isLabelerPrefItem<V>(v: V) {
637637+export function isLabelerPrefItem<V>(v: V): v is LabelerPrefItem & V {
542638 return is$typed(v, id, hashLabelerPrefItem);
543639}
544640545545-export function validateLabelerPrefItem<V>(v: V) {
641641+export function validateLabelerPrefItem<V>(
642642+ v: V,
643643+): ValidationResult<LabelerPrefItem & V> {
546644 return validate<LabelerPrefItem & V>(v, id, hashLabelerPrefItem);
547645}
548646···558656559657const hashBskyAppStatePref = "bskyAppStatePref";
560658561561-export function isBskyAppStatePref<V>(v: V) {
659659+export function isBskyAppStatePref<V>(v: V): v is BskyAppStatePref & V {
562660 return is$typed(v, id, hashBskyAppStatePref);
563661}
564662565565-export function validateBskyAppStatePref<V>(v: V) {
663663+export function validateBskyAppStatePref<V>(
664664+ v: V,
665665+): ValidationResult<BskyAppStatePref & V> {
566666 return validate<BskyAppStatePref & V>(v, id, hashBskyAppStatePref);
567667}
568668···574674575675const hashBskyAppProgressGuide = "bskyAppProgressGuide";
576676577577-export function isBskyAppProgressGuide<V>(v: V) {
677677+export function isBskyAppProgressGuide<V>(v: V): v is BskyAppProgressGuide & V {
578678 return is$typed(v, id, hashBskyAppProgressGuide);
579679}
580680581581-export function validateBskyAppProgressGuide<V>(v: V) {
681681+export function validateBskyAppProgressGuide<V>(
682682+ v: V,
683683+): ValidationResult<BskyAppProgressGuide & V> {
582684 return validate<BskyAppProgressGuide & V>(v, id, hashBskyAppProgressGuide);
583685}
584686···595697596698const hashNux = "nux";
597699598598-export function isNux<V>(v: V) {
700700+export function isNux<V>(v: V): v is Nux & V {
599701 return is$typed(v, id, hashNux);
600702}
601703602602-export function validateNux<V>(v: V) {
704704+export function validateNux<V>(v: V): ValidationResult<Nux & V> {
603705 return validate<Nux & V>(v, id, hashNux);
604706}
605707···612714613715const hashVerificationPrefs = "verificationPrefs";
614716615615-export function isVerificationPrefs<V>(v: V) {
717717+export function isVerificationPrefs<V>(v: V): v is VerificationPrefs & V {
616718 return is$typed(v, id, hashVerificationPrefs);
617719}
618720619619-export function validateVerificationPrefs<V>(v: V) {
721721+export function validateVerificationPrefs<V>(
722722+ v: V,
723723+): ValidationResult<VerificationPrefs & V> {
620724 return validate<VerificationPrefs & V>(v, id, hashVerificationPrefs);
621725}
622726727727+/** Preferences for live events. */
728728+export interface LiveEventPreferences {
729729+ $type?: "app.bsky.actor.defs#liveEventPreferences";
730730+ /** A list of feed IDs that the user has hidden from live events. */
731731+ hiddenFeedIds?: (string)[];
732732+ /** Whether to hide all feeds from live events. */
733733+ hideAllFeeds: boolean;
734734+}
735735+736736+const hashLiveEventPreferences = "liveEventPreferences";
737737+738738+export function isLiveEventPreferences<V>(v: V): v is LiveEventPreferences & V {
739739+ return is$typed(v, id, hashLiveEventPreferences);
740740+}
741741+742742+export function validateLiveEventPreferences<V>(
743743+ v: V,
744744+): ValidationResult<LiveEventPreferences & V> {
745745+ return validate<LiveEventPreferences & V>(v, id, hashLiveEventPreferences);
746746+}
747747+623748/** Default post interaction settings for the account. These values should be applied as default values when creating new posts. These refs should mirror the threadgate and postgate records exactly. */
624749export interface PostInteractionSettingsPref {
625750 $type?: "app.bsky.actor.defs#postInteractionSettingsPref";
···638763639764const hashPostInteractionSettingsPref = "postInteractionSettingsPref";
640765641641-export function isPostInteractionSettingsPref<V>(v: V) {
766766+export function isPostInteractionSettingsPref<V>(
767767+ v: V,
768768+): v is PostInteractionSettingsPref & V {
642769 return is$typed(v, id, hashPostInteractionSettingsPref);
643770}
644771645645-export function validatePostInteractionSettingsPref<V>(v: V) {
772772+export function validatePostInteractionSettingsPref<V>(
773773+ v: V,
774774+): ValidationResult<PostInteractionSettingsPref & V> {
646775 return validate<PostInteractionSettingsPref & V>(
647776 v,
648777 id,
···652781653782export interface StatusView {
654783 $type?: "app.bsky.actor.defs#statusView";
784784+ uri?: string;
785785+ cid?: string;
655786 /** The status for the account. */
656787 status:
657788 | "app.bsky.actor.status#live"
658789 | (string & globalThis.Record<PropertyKey, never>);
659790 record: { [_ in string]: unknown };
660791 embed?: $Typed<AppBskyEmbedExternal.View> | { $type: string };
792792+ labels?: (ComAtprotoLabelDefs.Label)[];
661793 /** The date when this status will expire. The application might choose to no longer return the status after expiration. */
662794 expiresAt?: string;
663795 /** True if the status is not expired, false if it is expired. Only present if expiration was set. */
664796 isActive?: boolean;
797797+ /** True if the user's go-live access has been disabled by a moderator, false otherwise. */
798798+ isDisabled?: boolean;
665799}
666800667801const hashStatusView = "statusView";
668802669669-export function isStatusView<V>(v: V) {
803803+export function isStatusView<V>(v: V): v is StatusView & V {
670804 return is$typed(v, id, hashStatusView);
671805}
672806673673-export function validateStatusView<V>(v: V) {
807807+export function validateStatusView<V>(v: V): ValidationResult<StatusView & V> {
674808 return validate<StatusView & V>(v, id, hashStatusView);
675809}
+3-1
lex/types/app/bsky/actor/getSuggestions.ts
···1212export interface OutputSchema {
1313 cursor?: string;
1414 actors: (AppBskyActorDefs.ProfileView)[];
1515- /** Snowflake for this recommendation, use when submitting recommendation events. */
1515+ /** DEPRECATED: use recIdStr instead. */
1616 recId?: number;
1717+ /** Snowflake for this recommendation, use when submitting recommendation events. */
1818+ recIdStr?: string;
1719}
18201921export type HandlerInput = void;
+3-2
lex/types/app/bsky/actor/profile.ts
···33 */
44import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66+import type { ValidationResult } from "@atp/lexicon";
67import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
78import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
89import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
···31323233const hashRecord = "main";
33343434-export function isRecord<V>(v: V) {
3535+export function isRecord<V>(v: V): v is Record & V {
3536 return is$typed(v, id, hashRecord);
3637}
37383838-export function validateRecord<V>(v: V) {
3939+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
3940 return validate<Record & V>(v, id, hashRecord, true);
4041}
4142
+4-3
lex/types/app/bsky/actor/status.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as AppBskyEmbedExternal from "../embed/external.ts";
78···23242425const hashRecord = "main";
25262626-export function isRecord<V>(v: V) {
2727+export function isRecord<V>(v: V): v is Record & V {
2728 return is$typed(v, id, hashRecord);
2829}
29303030-export function validateRecord<V>(v: V) {
3131+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
3132 return validate<Record & V>(v, id, hashRecord, true);
3233}
33343435export type Main = Record;
35363637/** Advertises an account as currently offering live content. */
3737-export const LIVE = `${id}#live`;
3838+export const LIVE: string = `${id}#live`;
+59-24
lex/types/app/bsky/ageassurance/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···33343435const hashState = "state";
35363636-export function isState<V>(v: V) {
3737+export function isState<V>(v: V): v is State & V {
3738 return is$typed(v, id, hashState);
3839}
39404040-export function validateState<V>(v: V) {
4141+export function validateState<V>(v: V): ValidationResult<State & V> {
4142 return validate<State & V>(v, id, hashState);
4243}
4344···50515152const hashStateMetadata = "stateMetadata";
52535353-export function isStateMetadata<V>(v: V) {
5454+export function isStateMetadata<V>(v: V): v is StateMetadata & V {
5455 return is$typed(v, id, hashStateMetadata);
5556}
56575757-export function validateStateMetadata<V>(v: V) {
5858+export function validateStateMetadata<V>(
5959+ v: V,
6060+): ValidationResult<StateMetadata & V> {
5861 return validate<StateMetadata & V>(v, id, hashStateMetadata);
5962}
6063···66696770const hashConfig = "config";
68716969-export function isConfig<V>(v: V) {
7272+export function isConfig<V>(v: V): v is Config & V {
7073 return is$typed(v, id, hashConfig);
7174}
72757373-export function validateConfig<V>(v: V) {
7676+export function validateConfig<V>(v: V): ValidationResult<Config & V> {
7477 return validate<Config & V>(v, id, hashConfig);
7578}
7679···8184 countryCode: string;
8285 /** The ISO 3166-2 region code this configuration applies to. If omitted, the configuration applies to the entire country. */
8386 regionCode?: string;
8787+ /** The minimum age (as a whole integer) required to use Bluesky in this region. */
8888+ minAccessAge: number;
8489 /** The ordered list of Age Assurance rules that apply to this region. Rules should be applied in order, and the first matching rule determines the access level granted. The rules array should always include a default rule as the last item. */
8590 rules: (
8691 | $Typed<ConfigRegionRuleDefault>
···9610197102const hashConfigRegion = "configRegion";
981039999-export function isConfigRegion<V>(v: V) {
104104+export function isConfigRegion<V>(v: V): v is ConfigRegion & V {
100105 return is$typed(v, id, hashConfigRegion);
101106}
102107103103-export function validateConfigRegion<V>(v: V) {
108108+export function validateConfigRegion<V>(
109109+ v: V,
110110+): ValidationResult<ConfigRegion & V> {
104111 return validate<ConfigRegion & V>(v, id, hashConfigRegion);
105112}
106113···112119113120const hashConfigRegionRuleDefault = "configRegionRuleDefault";
114121115115-export function isConfigRegionRuleDefault<V>(v: V) {
122122+export function isConfigRegionRuleDefault<V>(
123123+ v: V,
124124+): v is ConfigRegionRuleDefault & V {
116125 return is$typed(v, id, hashConfigRegionRuleDefault);
117126}
118127119119-export function validateConfigRegionRuleDefault<V>(v: V) {
128128+export function validateConfigRegionRuleDefault<V>(
129129+ v: V,
130130+): ValidationResult<ConfigRegionRuleDefault & V> {
120131 return validate<ConfigRegionRuleDefault & V>(
121132 v,
122133 id,
···135146const hashConfigRegionRuleIfDeclaredOverAge =
136147 "configRegionRuleIfDeclaredOverAge";
137148138138-export function isConfigRegionRuleIfDeclaredOverAge<V>(v: V) {
149149+export function isConfigRegionRuleIfDeclaredOverAge<V>(
150150+ v: V,
151151+): v is ConfigRegionRuleIfDeclaredOverAge & V {
139152 return is$typed(v, id, hashConfigRegionRuleIfDeclaredOverAge);
140153}
141154142142-export function validateConfigRegionRuleIfDeclaredOverAge<V>(v: V) {
155155+export function validateConfigRegionRuleIfDeclaredOverAge<V>(
156156+ v: V,
157157+): ValidationResult<ConfigRegionRuleIfDeclaredOverAge & V> {
143158 return validate<ConfigRegionRuleIfDeclaredOverAge & V>(
144159 v,
145160 id,
···158173const hashConfigRegionRuleIfDeclaredUnderAge =
159174 "configRegionRuleIfDeclaredUnderAge";
160175161161-export function isConfigRegionRuleIfDeclaredUnderAge<V>(v: V) {
176176+export function isConfigRegionRuleIfDeclaredUnderAge<V>(
177177+ v: V,
178178+): v is ConfigRegionRuleIfDeclaredUnderAge & V {
162179 return is$typed(v, id, hashConfigRegionRuleIfDeclaredUnderAge);
163180}
164181165165-export function validateConfigRegionRuleIfDeclaredUnderAge<V>(v: V) {
182182+export function validateConfigRegionRuleIfDeclaredUnderAge<V>(
183183+ v: V,
184184+): ValidationResult<ConfigRegionRuleIfDeclaredUnderAge & V> {
166185 return validate<ConfigRegionRuleIfDeclaredUnderAge & V>(
167186 v,
168187 id,
···180199181200const hashConfigRegionRuleIfAssuredOverAge = "configRegionRuleIfAssuredOverAge";
182201183183-export function isConfigRegionRuleIfAssuredOverAge<V>(v: V) {
202202+export function isConfigRegionRuleIfAssuredOverAge<V>(
203203+ v: V,
204204+): v is ConfigRegionRuleIfAssuredOverAge & V {
184205 return is$typed(v, id, hashConfigRegionRuleIfAssuredOverAge);
185206}
186207187187-export function validateConfigRegionRuleIfAssuredOverAge<V>(v: V) {
208208+export function validateConfigRegionRuleIfAssuredOverAge<V>(
209209+ v: V,
210210+): ValidationResult<ConfigRegionRuleIfAssuredOverAge & V> {
188211 return validate<ConfigRegionRuleIfAssuredOverAge & V>(
189212 v,
190213 id,
···203226const hashConfigRegionRuleIfAssuredUnderAge =
204227 "configRegionRuleIfAssuredUnderAge";
205228206206-export function isConfigRegionRuleIfAssuredUnderAge<V>(v: V) {
229229+export function isConfigRegionRuleIfAssuredUnderAge<V>(
230230+ v: V,
231231+): v is ConfigRegionRuleIfAssuredUnderAge & V {
207232 return is$typed(v, id, hashConfigRegionRuleIfAssuredUnderAge);
208233}
209234210210-export function validateConfigRegionRuleIfAssuredUnderAge<V>(v: V) {
235235+export function validateConfigRegionRuleIfAssuredUnderAge<V>(
236236+ v: V,
237237+): ValidationResult<ConfigRegionRuleIfAssuredUnderAge & V> {
211238 return validate<ConfigRegionRuleIfAssuredUnderAge & V>(
212239 v,
213240 id,
···226253const hashConfigRegionRuleIfAccountNewerThan =
227254 "configRegionRuleIfAccountNewerThan";
228255229229-export function isConfigRegionRuleIfAccountNewerThan<V>(v: V) {
256256+export function isConfigRegionRuleIfAccountNewerThan<V>(
257257+ v: V,
258258+): v is ConfigRegionRuleIfAccountNewerThan & V {
230259 return is$typed(v, id, hashConfigRegionRuleIfAccountNewerThan);
231260}
232261233233-export function validateConfigRegionRuleIfAccountNewerThan<V>(v: V) {
262262+export function validateConfigRegionRuleIfAccountNewerThan<V>(
263263+ v: V,
264264+): ValidationResult<ConfigRegionRuleIfAccountNewerThan & V> {
234265 return validate<ConfigRegionRuleIfAccountNewerThan & V>(
235266 v,
236267 id,
···249280const hashConfigRegionRuleIfAccountOlderThan =
250281 "configRegionRuleIfAccountOlderThan";
251282252252-export function isConfigRegionRuleIfAccountOlderThan<V>(v: V) {
283283+export function isConfigRegionRuleIfAccountOlderThan<V>(
284284+ v: V,
285285+): v is ConfigRegionRuleIfAccountOlderThan & V {
253286 return is$typed(v, id, hashConfigRegionRuleIfAccountOlderThan);
254287}
255288256256-export function validateConfigRegionRuleIfAccountOlderThan<V>(v: V) {
289289+export function validateConfigRegionRuleIfAccountOlderThan<V>(
290290+ v: V,
291291+): ValidationResult<ConfigRegionRuleIfAccountOlderThan & V> {
257292 return validate<ConfigRegionRuleIfAccountOlderThan & V>(
258293 v,
259294 id,
···300335301336const hashEvent = "event";
302337303303-export function isEvent<V>(v: V) {
338338+export function isEvent<V>(v: V): v is Event & V {
304339 return is$typed(v, id, hashEvent);
305340}
306341307307-export function validateEvent<V>(v: V) {
342342+export function validateEvent<V>(v: V): ValidationResult<Event & V> {
308343 return validate<Event & V>(v, id, hashEvent);
309344}
+6
lex/types/app/bsky/authCreatePosts.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type { LexPermissionSet } from "@atp/lexicon";
55+66+export type Main = LexPermissionSet;
+6
lex/types/app/bsky/authDeleteContent.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type { LexPermissionSet } from "@atp/lexicon";
55+66+export type Main = LexPermissionSet;
+6
lex/types/app/bsky/authFullApp.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type { LexPermissionSet } from "@atp/lexicon";
55+66+export type Main = LexPermissionSet;
+6
lex/types/app/bsky/authManageFeedDeclarations.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type { LexPermissionSet } from "@atp/lexicon";
55+66+export type Main = LexPermissionSet;
+6
lex/types/app/bsky/authManageLabelerService.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type { LexPermissionSet } from "@atp/lexicon";
55+66+export type Main = LexPermissionSet;
+6
lex/types/app/bsky/authManageModeration.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type { LexPermissionSet } from "@atp/lexicon";
55+66+export type Main = LexPermissionSet;
+6
lex/types/app/bsky/authManageNotifications.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type { LexPermissionSet } from "@atp/lexicon";
55+66+export type Main = LexPermissionSet;
+6
lex/types/app/bsky/authManageProfile.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type { LexPermissionSet } from "@atp/lexicon";
55+66+export type Main = LexPermissionSet;
+6
lex/types/app/bsky/authViewAll.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type { LexPermissionSet } from "@atp/lexicon";
55+66+export type Main = LexPermissionSet;
+7-4
lex/types/app/bsky/bookmark/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
78import type * as AppBskyFeedDefs from "../feed/defs.ts";
···17181819const hashBookmark = "bookmark";
19202020-export function isBookmark<V>(v: V) {
2121+export function isBookmark<V>(v: V): v is Bookmark & V {
2122 return is$typed(v, id, hashBookmark);
2223}
23242424-export function validateBookmark<V>(v: V) {
2525+export function validateBookmark<V>(v: V): ValidationResult<Bookmark & V> {
2526 return validate<Bookmark & V>(v, id, hashBookmark);
2627}
2728···38393940const hashBookmarkView = "bookmarkView";
40414141-export function isBookmarkView<V>(v: V) {
4242+export function isBookmarkView<V>(v: V): v is BookmarkView & V {
4243 return is$typed(v, id, hashBookmarkView);
4344}
44454545-export function validateBookmarkView<V>(v: V) {
4646+export function validateBookmarkView<V>(
4747+ v: V,
4848+): ValidationResult<BookmarkView & V> {
4649 return validate<BookmarkView & V>(v, id, hashBookmarkView);
4750}
+69
lex/types/app/bsky/contact/defs.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
66+import { is$typed as _is$typed } from "../../../../util.ts";
77+import type * as AppBskyActorDefs from "../actor/defs.ts";
88+99+const is$typed = _is$typed, validate = _validate;
1010+const id = "app.bsky.contact.defs";
1111+1212+/** Associates a profile with the positional index of the contact import input in the call to `app.bsky.contact.importContacts`, so clients can know which phone caused a particular match. */
1313+export interface MatchAndContactIndex {
1414+ $type?: "app.bsky.contact.defs#matchAndContactIndex";
1515+ match: AppBskyActorDefs.ProfileView;
1616+ /** The index of this match in the import contact input. */
1717+ contactIndex: number;
1818+}
1919+2020+const hashMatchAndContactIndex = "matchAndContactIndex";
2121+2222+export function isMatchAndContactIndex<V>(v: V): v is MatchAndContactIndex & V {
2323+ return is$typed(v, id, hashMatchAndContactIndex);
2424+}
2525+2626+export function validateMatchAndContactIndex<V>(
2727+ v: V,
2828+): ValidationResult<MatchAndContactIndex & V> {
2929+ return validate<MatchAndContactIndex & V>(v, id, hashMatchAndContactIndex);
3030+}
3131+3232+export interface SyncStatus {
3333+ $type?: "app.bsky.contact.defs#syncStatus";
3434+ /** Last date when contacts where imported. */
3535+ syncedAt: string;
3636+ /** Number of existing contact matches resulting of the user imports and of their imported contacts having imported the user. Matches stop being counted when the user either follows the matched contact or dismisses the match. */
3737+ matchesCount: number;
3838+}
3939+4040+const hashSyncStatus = "syncStatus";
4141+4242+export function isSyncStatus<V>(v: V): v is SyncStatus & V {
4343+ return is$typed(v, id, hashSyncStatus);
4444+}
4545+4646+export function validateSyncStatus<V>(v: V): ValidationResult<SyncStatus & V> {
4747+ return validate<SyncStatus & V>(v, id, hashSyncStatus);
4848+}
4949+5050+/** A stash object to be sent via bsync representing a notification to be created. */
5151+export interface Notification {
5252+ $type?: "app.bsky.contact.defs#notification";
5353+ /** The DID of who this notification comes from. */
5454+ from: string;
5555+ /** The DID of who this notification should go to. */
5656+ to: string;
5757+}
5858+5959+const hashNotification = "notification";
6060+6161+export function isNotification<V>(v: V): v is Notification & V {
6262+ return is$typed(v, id, hashNotification);
6363+}
6464+6565+export function validateNotification<V>(
6666+ v: V,
6767+): ValidationResult<Notification & V> {
6868+ return validate<Notification & V>(v, id, hashNotification);
6969+}
+30
lex/types/app/bsky/contact/dismissMatch.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+export type QueryParams = globalThis.Record<PropertyKey, never>;
55+66+export interface InputSchema {
77+ /** The subject's DID to dismiss the match with. */
88+ subject: string;
99+}
1010+1111+export type OutputSchema = globalThis.Record<PropertyKey, never>;
1212+1313+export interface HandlerInput {
1414+ encoding: "application/json";
1515+ body: InputSchema;
1616+}
1717+1818+export interface HandlerSuccess {
1919+ encoding: "application/json";
2020+ body: OutputSchema;
2121+ headers?: { [key: string]: string };
2222+}
2323+2424+export interface HandlerError {
2525+ status: number;
2626+ message?: string;
2727+ error?: "InvalidDid" | "InternalError";
2828+}
2929+3030+export type HandlerOutput = HandlerError | HandlerSuccess;
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type * as AppBskyContactDefs from "./defs.ts";
55+66+export type QueryParams = globalThis.Record<PropertyKey, never>;
77+export type InputSchema = undefined;
88+99+export interface OutputSchema {
1010+ syncStatus?: AppBskyContactDefs.SyncStatus;
1111+}
1212+1313+export type HandlerInput = void;
1414+1515+export interface HandlerSuccess {
1616+ encoding: "application/json";
1717+ body: OutputSchema;
1818+ headers?: { [key: string]: string };
1919+}
2020+2121+export interface HandlerError {
2222+ status: number;
2323+ message?: string;
2424+ error?: "InvalidDid" | "InternalError";
2525+}
2626+2727+export type HandlerOutput = HandlerError | HandlerSuccess;
+42
lex/types/app/bsky/contact/importContacts.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type * as AppBskyContactDefs from "./defs.ts";
55+66+export type QueryParams = globalThis.Record<PropertyKey, never>;
77+88+export interface InputSchema {
99+ /** JWT to authenticate the call. Use the JWT received as a response to the call to `app.bsky.contact.verifyPhone`. */
1010+ token: string;
1111+ /** List of phone numbers in global E.164 format (e.g., '+12125550123'). Phone numbers that cannot be normalized into a valid phone number will be discarded. Should not repeat the 'phone' input used in `app.bsky.contact.verifyPhone`. */
1212+ contacts: (string)[];
1313+}
1414+1515+export interface OutputSchema {
1616+ /** The users that matched during import and their indexes on the input contacts, so the client can correlate with its local list. */
1717+ matchesAndContactIndexes: (AppBskyContactDefs.MatchAndContactIndex)[];
1818+}
1919+2020+export interface HandlerInput {
2121+ encoding: "application/json";
2222+ body: InputSchema;
2323+}
2424+2525+export interface HandlerSuccess {
2626+ encoding: "application/json";
2727+ body: OutputSchema;
2828+ headers?: { [key: string]: string };
2929+}
3030+3131+export interface HandlerError {
3232+ status: number;
3333+ message?: string;
3434+ error?:
3535+ | "InvalidDid"
3636+ | "InvalidContacts"
3737+ | "TooManyContacts"
3838+ | "InvalidToken"
3939+ | "InternalError";
4040+}
4141+4242+export type HandlerOutput = HandlerError | HandlerSuccess;
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+export type QueryParams = globalThis.Record<PropertyKey, never>;
55+66+export interface InputSchema {
77+ /** The phone number to receive the code via SMS. */
88+ phone: string;
99+}
1010+1111+export type OutputSchema = globalThis.Record<PropertyKey, never>;
1212+1313+export interface HandlerInput {
1414+ encoding: "application/json";
1515+ body: InputSchema;
1616+}
1717+1818+export interface HandlerSuccess {
1919+ encoding: "application/json";
2020+ body: OutputSchema;
2121+ headers?: { [key: string]: string };
2222+}
2323+2424+export interface HandlerError {
2525+ status: number;
2626+ message?: string;
2727+ error?: "RateLimitExceeded" | "InvalidDid" | "InvalidPhone" | "InternalError";
2828+}
2929+3030+export type HandlerOutput = HandlerError | HandlerSuccess;
+40
lex/types/app/bsky/contact/verifyPhone.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+export type QueryParams = globalThis.Record<PropertyKey, never>;
55+66+export interface InputSchema {
77+ /** The phone number to verify. Should be the same as the one passed to `app.bsky.contact.startPhoneVerification`. */
88+ phone: string;
99+ /** The code received via SMS as a result of the call to `app.bsky.contact.startPhoneVerification`. */
1010+ code: string;
1111+}
1212+1313+export interface OutputSchema {
1414+ /** JWT to be used in a call to `app.bsky.contact.importContacts`. It is only valid for a single call. */
1515+ token: string;
1616+}
1717+1818+export interface HandlerInput {
1919+ encoding: "application/json";
2020+ body: InputSchema;
2121+}
2222+2323+export interface HandlerSuccess {
2424+ encoding: "application/json";
2525+ body: OutputSchema;
2626+ headers?: { [key: string]: string };
2727+}
2828+2929+export interface HandlerError {
3030+ status: number;
3131+ message?: string;
3232+ error?:
3333+ | "RateLimitExceeded"
3434+ | "InvalidDid"
3535+ | "InvalidPhone"
3636+ | "InvalidCode"
3737+ | "InternalError";
3838+}
3939+4040+export type HandlerOutput = HandlerError | HandlerSuccess;
+34
lex/types/app/bsky/draft/createDraft.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type * as AppBskyDraftDefs from "./defs.ts";
55+66+export type QueryParams = globalThis.Record<PropertyKey, never>;
77+88+export interface InputSchema {
99+ draft: AppBskyDraftDefs.Draft;
1010+}
1111+1212+export interface OutputSchema {
1313+ /** The ID of the created draft. */
1414+ id: string;
1515+}
1616+1717+export interface HandlerInput {
1818+ encoding: "application/json";
1919+ body: InputSchema;
2020+}
2121+2222+export interface HandlerSuccess {
2323+ encoding: "application/json";
2424+ body: OutputSchema;
2525+ headers?: { [key: string]: string };
2626+}
2727+2828+export interface HandlerError {
2929+ status: number;
3030+ message?: string;
3131+ error?: "DraftLimitReached";
3232+}
3333+3434+export type HandlerOutput = HandlerError | HandlerSuccess;
+218
lex/types/app/bsky/draft/defs.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
66+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
77+import type * as AppBskyFeedPostgate from "../feed/postgate.ts";
88+import type * as AppBskyFeedThreadgate from "../feed/threadgate.ts";
99+import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
1010+import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
1111+1212+const is$typed = _is$typed, validate = _validate;
1313+const id = "app.bsky.draft.defs";
1414+1515+/** A draft with an identifier, used to store drafts in private storage (stash). */
1616+export interface DraftWithId {
1717+ $type?: "app.bsky.draft.defs#draftWithId";
1818+ /** A TID to be used as a draft identifier. */
1919+ id: string;
2020+ draft: Draft;
2121+}
2222+2323+const hashDraftWithId = "draftWithId";
2424+2525+export function isDraftWithId<V>(v: V): v is DraftWithId & V {
2626+ return is$typed(v, id, hashDraftWithId);
2727+}
2828+2929+export function validateDraftWithId<V>(
3030+ v: V,
3131+): ValidationResult<DraftWithId & V> {
3232+ return validate<DraftWithId & V>(v, id, hashDraftWithId);
3333+}
3434+3535+/** A draft containing an array of draft posts. */
3636+export interface Draft {
3737+ $type?: "app.bsky.draft.defs#draft";
3838+ /** UUIDv4 identifier of the device that created this draft. */
3939+ deviceId?: string;
4040+ /** The device and/or platform on which the draft was created. */
4141+ deviceName?: string;
4242+ /** Array of draft posts that compose this draft. */
4343+ posts: (DraftPost)[];
4444+ /** Indicates human language of posts primary text content. */
4545+ langs?: (string)[];
4646+ /** Embedding rules for the postgates to be created when this draft is published. */
4747+ postgateEmbeddingRules?:
4848+ ($Typed<AppBskyFeedPostgate.DisableRule> | { $type: string })[];
4949+ /** Allow-rules for the threadgate to be created when this draft is published. */
5050+ threadgateAllow?: (
5151+ | $Typed<AppBskyFeedThreadgate.MentionRule>
5252+ | $Typed<AppBskyFeedThreadgate.FollowerRule>
5353+ | $Typed<AppBskyFeedThreadgate.FollowingRule>
5454+ | $Typed<AppBskyFeedThreadgate.ListRule>
5555+ | { $type: string }
5656+ )[];
5757+}
5858+5959+const hashDraft = "draft";
6060+6161+export function isDraft<V>(v: V): v is Draft & V {
6262+ return is$typed(v, id, hashDraft);
6363+}
6464+6565+export function validateDraft<V>(v: V): ValidationResult<Draft & V> {
6666+ return validate<Draft & V>(v, id, hashDraft);
6767+}
6868+6969+/** One of the posts that compose a draft. */
7070+export interface DraftPost {
7171+ $type?: "app.bsky.draft.defs#draftPost";
7272+ /** The primary post content. It has a higher limit than post contents to allow storing a larger text that can later be refined into smaller posts. */
7373+ text: string;
7474+ labels?: $Typed<ComAtprotoLabelDefs.SelfLabels> | { $type: string };
7575+ embedImages?: (DraftEmbedImage)[];
7676+ embedVideos?: (DraftEmbedVideo)[];
7777+ embedExternals?: (DraftEmbedExternal)[];
7878+ embedRecords?: (DraftEmbedRecord)[];
7979+}
8080+8181+const hashDraftPost = "draftPost";
8282+8383+export function isDraftPost<V>(v: V): v is DraftPost & V {
8484+ return is$typed(v, id, hashDraftPost);
8585+}
8686+8787+export function validateDraftPost<V>(v: V): ValidationResult<DraftPost & V> {
8888+ return validate<DraftPost & V>(v, id, hashDraftPost);
8989+}
9090+9191+/** View to present drafts data to users. */
9292+export interface DraftView {
9393+ $type?: "app.bsky.draft.defs#draftView";
9494+ /** A TID to be used as a draft identifier. */
9595+ id: string;
9696+ draft: Draft;
9797+ /** The time the draft was created. */
9898+ createdAt: string;
9999+ /** The time the draft was last updated. */
100100+ updatedAt: string;
101101+}
102102+103103+const hashDraftView = "draftView";
104104+105105+export function isDraftView<V>(v: V): v is DraftView & V {
106106+ return is$typed(v, id, hashDraftView);
107107+}
108108+109109+export function validateDraftView<V>(v: V): ValidationResult<DraftView & V> {
110110+ return validate<DraftView & V>(v, id, hashDraftView);
111111+}
112112+113113+export interface DraftEmbedLocalRef {
114114+ $type?: "app.bsky.draft.defs#draftEmbedLocalRef";
115115+ /** Local, on-device ref to file to be embedded. Embeds are currently device-bound for drafts. */
116116+ path: string;
117117+}
118118+119119+const hashDraftEmbedLocalRef = "draftEmbedLocalRef";
120120+121121+export function isDraftEmbedLocalRef<V>(v: V): v is DraftEmbedLocalRef & V {
122122+ return is$typed(v, id, hashDraftEmbedLocalRef);
123123+}
124124+125125+export function validateDraftEmbedLocalRef<V>(
126126+ v: V,
127127+): ValidationResult<DraftEmbedLocalRef & V> {
128128+ return validate<DraftEmbedLocalRef & V>(v, id, hashDraftEmbedLocalRef);
129129+}
130130+131131+export interface DraftEmbedCaption {
132132+ $type?: "app.bsky.draft.defs#draftEmbedCaption";
133133+ lang: string;
134134+ content: string;
135135+}
136136+137137+const hashDraftEmbedCaption = "draftEmbedCaption";
138138+139139+export function isDraftEmbedCaption<V>(v: V): v is DraftEmbedCaption & V {
140140+ return is$typed(v, id, hashDraftEmbedCaption);
141141+}
142142+143143+export function validateDraftEmbedCaption<V>(
144144+ v: V,
145145+): ValidationResult<DraftEmbedCaption & V> {
146146+ return validate<DraftEmbedCaption & V>(v, id, hashDraftEmbedCaption);
147147+}
148148+149149+export interface DraftEmbedImage {
150150+ $type?: "app.bsky.draft.defs#draftEmbedImage";
151151+ localRef: DraftEmbedLocalRef;
152152+ alt?: string;
153153+}
154154+155155+const hashDraftEmbedImage = "draftEmbedImage";
156156+157157+export function isDraftEmbedImage<V>(v: V): v is DraftEmbedImage & V {
158158+ return is$typed(v, id, hashDraftEmbedImage);
159159+}
160160+161161+export function validateDraftEmbedImage<V>(
162162+ v: V,
163163+): ValidationResult<DraftEmbedImage & V> {
164164+ return validate<DraftEmbedImage & V>(v, id, hashDraftEmbedImage);
165165+}
166166+167167+export interface DraftEmbedVideo {
168168+ $type?: "app.bsky.draft.defs#draftEmbedVideo";
169169+ localRef: DraftEmbedLocalRef;
170170+ alt?: string;
171171+ captions?: (DraftEmbedCaption)[];
172172+}
173173+174174+const hashDraftEmbedVideo = "draftEmbedVideo";
175175+176176+export function isDraftEmbedVideo<V>(v: V): v is DraftEmbedVideo & V {
177177+ return is$typed(v, id, hashDraftEmbedVideo);
178178+}
179179+180180+export function validateDraftEmbedVideo<V>(
181181+ v: V,
182182+): ValidationResult<DraftEmbedVideo & V> {
183183+ return validate<DraftEmbedVideo & V>(v, id, hashDraftEmbedVideo);
184184+}
185185+186186+export interface DraftEmbedExternal {
187187+ $type?: "app.bsky.draft.defs#draftEmbedExternal";
188188+ uri: string;
189189+}
190190+191191+const hashDraftEmbedExternal = "draftEmbedExternal";
192192+193193+export function isDraftEmbedExternal<V>(v: V): v is DraftEmbedExternal & V {
194194+ return is$typed(v, id, hashDraftEmbedExternal);
195195+}
196196+197197+export function validateDraftEmbedExternal<V>(
198198+ v: V,
199199+): ValidationResult<DraftEmbedExternal & V> {
200200+ return validate<DraftEmbedExternal & V>(v, id, hashDraftEmbedExternal);
201201+}
202202+203203+export interface DraftEmbedRecord {
204204+ $type?: "app.bsky.draft.defs#draftEmbedRecord";
205205+ record: ComAtprotoRepoStrongRef.Main;
206206+}
207207+208208+const hashDraftEmbedRecord = "draftEmbedRecord";
209209+210210+export function isDraftEmbedRecord<V>(v: V): v is DraftEmbedRecord & V {
211211+ return is$typed(v, id, hashDraftEmbedRecord);
212212+}
213213+214214+export function validateDraftEmbedRecord<V>(
215215+ v: V,
216216+): ValidationResult<DraftEmbedRecord & V> {
217217+ return validate<DraftEmbedRecord & V>(v, id, hashDraftEmbedRecord);
218218+}
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type * as AppBskyDraftDefs from "./defs.ts";
55+66+export type QueryParams = {
77+ limit: number;
88+ cursor?: string;
99+};
1010+export type InputSchema = undefined;
1111+1212+export interface OutputSchema {
1313+ cursor?: string;
1414+ drafts: (AppBskyDraftDefs.DraftView)[];
1515+}
1616+1717+export type HandlerInput = void;
1818+1919+export interface HandlerSuccess {
2020+ encoding: "application/json";
2121+ body: OutputSchema;
2222+ headers?: { [key: string]: string };
2323+}
2424+2525+export interface HandlerError {
2626+ status: number;
2727+ message?: string;
2828+}
2929+3030+export type HandlerOutput = HandlerError | HandlerSuccess;
+22
lex/types/app/bsky/draft/updateDraft.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type * as AppBskyDraftDefs from "./defs.ts";
55+66+export type QueryParams = globalThis.Record<PropertyKey, never>;
77+88+export interface InputSchema {
99+ draft: AppBskyDraftDefs.DraftWithId;
1010+}
1111+1212+export interface HandlerInput {
1313+ encoding: "application/json";
1414+ body: InputSchema;
1515+}
1616+1717+export interface HandlerError {
1818+ status: number;
1919+ message?: string;
2020+}
2121+2222+export type HandlerOutput = HandlerError | void;
+5-2
lex/types/app/bsky/embed/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···16171718const hashAspectRatio = "aspectRatio";
18191919-export function isAspectRatio<V>(v: V) {
2020+export function isAspectRatio<V>(v: V): v is AspectRatio & V {
2021 return is$typed(v, id, hashAspectRatio);
2122}
22232323-export function validateAspectRatio<V>(v: V) {
2424+export function validateAspectRatio<V>(
2525+ v: V,
2626+): ValidationResult<AspectRatio & V> {
2427 return validate<AspectRatio & V>(v, id, hashAspectRatio);
2528}
+11-8
lex/types/app/bsky/embed/external.ts
···33 */
44import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66+import type { ValidationResult } from "@atp/lexicon";
67import { is$typed as _is$typed } from "../../../../util.ts";
7889const is$typed = _is$typed, validate = _validate;
···16171718const hashMain = "main";
18191919-export function isMain<V>(v: V) {
2020+export function isMain<V>(v: V): v is Main & V {
2021 return is$typed(v, id, hashMain);
2122}
22232323-export function validateMain<V>(v: V) {
2424+export function validateMain<V>(v: V): ValidationResult<Main & V> {
2425 return validate<Main & V>(v, id, hashMain);
2526}
2627···34353536const hashExternal = "external";
36373737-export function isExternal<V>(v: V) {
3838+export function isExternal<V>(v: V): v is External & V {
3839 return is$typed(v, id, hashExternal);
3940}
40414141-export function validateExternal<V>(v: V) {
4242+export function validateExternal<V>(v: V): ValidationResult<External & V> {
4243 return validate<External & V>(v, id, hashExternal);
4344}
4445···49505051const hashView = "view";
51525252-export function isView<V>(v: V) {
5353+export function isView<V>(v: V): v is View & V {
5354 return is$typed(v, id, hashView);
5455}
55565656-export function validateView<V>(v: V) {
5757+export function validateView<V>(v: V): ValidationResult<View & V> {
5758 return validate<View & V>(v, id, hashView);
5859}
5960···67686869const hashViewExternal = "viewExternal";
69707070-export function isViewExternal<V>(v: V) {
7171+export function isViewExternal<V>(v: V): v is ViewExternal & V {
7172 return is$typed(v, id, hashViewExternal);
7273}
73747474-export function validateViewExternal<V>(v: V) {
7575+export function validateViewExternal<V>(
7676+ v: V,
7777+): ValidationResult<ViewExternal & V> {
7578 return validate<ViewExternal & V>(v, id, hashViewExternal);
7679}
+10-8
lex/types/app/bsky/embed/images.ts
···33 */
44import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66+import type { ValidationResult } from "@atp/lexicon";
67import { is$typed as _is$typed } from "../../../../util.ts";
78import type * as AppBskyEmbedDefs from "./defs.ts";
89···16171718const hashMain = "main";
18191919-export function isMain<V>(v: V) {
2020+export function isMain<V>(v: V): v is Main & V {
2021 return is$typed(v, id, hashMain);
2122}
22232323-export function validateMain<V>(v: V) {
2424+export function validateMain<V>(v: V): ValidationResult<Main & V> {
2425 return validate<Main & V>(v, id, hashMain);
2526}
26272728export interface Image {
2829 $type?: "app.bsky.embed.images#image";
3030+ /** The raw image file. May be up to 2 MB, formerly limited to 1 MB. */
2931 image: BlobRef;
3032 /** Alt text description of the image, for accessibility. */
3133 alt: string;
···34363537const hashImage = "image";
36383737-export function isImage<V>(v: V) {
3939+export function isImage<V>(v: V): v is Image & V {
3840 return is$typed(v, id, hashImage);
3941}
40424141-export function validateImage<V>(v: V) {
4343+export function validateImage<V>(v: V): ValidationResult<Image & V> {
4244 return validate<Image & V>(v, id, hashImage);
4345}
4446···49515052const hashView = "view";
51535252-export function isView<V>(v: V) {
5454+export function isView<V>(v: V): v is View & V {
5355 return is$typed(v, id, hashView);
5456}
55575656-export function validateView<V>(v: V) {
5858+export function validateView<V>(v: V): ValidationResult<View & V> {
5759 return validate<View & V>(v, id, hashView);
5860}
5961···70727173const hashViewImage = "viewImage";
72747373-export function isViewImage<V>(v: V) {
7575+export function isViewImage<V>(v: V): v is ViewImage & V {
7476 return is$typed(v, id, hashViewImage);
7577}
76787777-export function validateViewImage<V>(v: V) {
7979+export function validateViewImage<V>(v: V): ValidationResult<ViewImage & V> {
7880 return validate<ViewImage & V>(v, id, hashViewImage);
7981}
+19-12
lex/types/app/bsky/embed/record.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
78import type * as AppBskyFeedDefs from "../feed/defs.ts";
···24252526const hashMain = "main";
26272727-export function isMain<V>(v: V) {
2828+export function isMain<V>(v: V): v is Main & V {
2829 return is$typed(v, id, hashMain);
2930}
30313131-export function validateMain<V>(v: V) {
3232+export function validateMain<V>(v: V): ValidationResult<Main & V> {
3233 return validate<Main & V>(v, id, hashMain);
3334}
3435···48494950const hashView = "view";
50515151-export function isView<V>(v: V) {
5252+export function isView<V>(v: V): v is View & V {
5253 return is$typed(v, id, hashView);
5354}
54555555-export function validateView<V>(v: V) {
5656+export function validateView<V>(v: V): ValidationResult<View & V> {
5657 return validate<View & V>(v, id, hashView);
5758}
5859···81828283const hashViewRecord = "viewRecord";
83848484-export function isViewRecord<V>(v: V) {
8585+export function isViewRecord<V>(v: V): v is ViewRecord & V {
8586 return is$typed(v, id, hashViewRecord);
8687}
87888888-export function validateViewRecord<V>(v: V) {
8989+export function validateViewRecord<V>(v: V): ValidationResult<ViewRecord & V> {
8990 return validate<ViewRecord & V>(v, id, hashViewRecord);
9091}
9192···97989899const hashViewNotFound = "viewNotFound";
99100100100-export function isViewNotFound<V>(v: V) {
101101+export function isViewNotFound<V>(v: V): v is ViewNotFound & V {
101102 return is$typed(v, id, hashViewNotFound);
102103}
103104104104-export function validateViewNotFound<V>(v: V) {
105105+export function validateViewNotFound<V>(
106106+ v: V,
107107+): ValidationResult<ViewNotFound & V> {
105108 return validate<ViewNotFound & V>(v, id, hashViewNotFound);
106109}
107110···114117115118const hashViewBlocked = "viewBlocked";
116119117117-export function isViewBlocked<V>(v: V) {
120120+export function isViewBlocked<V>(v: V): v is ViewBlocked & V {
118121 return is$typed(v, id, hashViewBlocked);
119122}
120123121121-export function validateViewBlocked<V>(v: V) {
124124+export function validateViewBlocked<V>(
125125+ v: V,
126126+): ValidationResult<ViewBlocked & V> {
122127 return validate<ViewBlocked & V>(v, id, hashViewBlocked);
123128}
124129···130135131136const hashViewDetached = "viewDetached";
132137133133-export function isViewDetached<V>(v: V) {
138138+export function isViewDetached<V>(v: V): v is ViewDetached & V {
134139 return is$typed(v, id, hashViewDetached);
135140}
136141137137-export function validateViewDetached<V>(v: V) {
142142+export function validateViewDetached<V>(
143143+ v: V,
144144+): ValidationResult<ViewDetached & V> {
138145 return validate<ViewDetached & V>(v, id, hashViewDetached);
139146}
+5-4
lex/types/app/bsky/embed/recordWithMedia.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as AppBskyEmbedRecord from "./record.ts";
78import type * as AppBskyEmbedImages from "./images.ts";
···23242425const hashMain = "main";
25262626-export function isMain<V>(v: V) {
2727+export function isMain<V>(v: V): v is Main & V {
2728 return is$typed(v, id, hashMain);
2829}
29303030-export function validateMain<V>(v: V) {
3131+export function validateMain<V>(v: V): ValidationResult<Main & V> {
3132 return validate<Main & V>(v, id, hashMain);
3233}
3334···43444445const hashView = "view";
45464646-export function isView<V>(v: V) {
4747+export function isView<V>(v: V): v is View & V {
4748 return is$typed(v, id, hashView);
4849}
49505050-export function validateView<V>(v: V) {
5151+export function validateView<V>(v: V): ValidationResult<View & V> {
5152 return validate<View & V>(v, id, hashView);
5253}
+17-6
lex/types/app/bsky/embed/video.ts
···33 */
44import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66+import type { ValidationResult } from "@atp/lexicon";
67import { is$typed as _is$typed } from "../../../../util.ts";
78import type * as AppBskyEmbedDefs from "./defs.ts";
89···1718 /** Alt text description of the video, for accessibility. */
1819 alt?: string;
1920 aspectRatio?: AppBskyEmbedDefs.AspectRatio;
2121+ /** A hint to the client about how to present the video. */
2222+ presentation?:
2323+ | "default"
2424+ | "gif"
2525+ | (string & globalThis.Record<PropertyKey, never>);
2026}
21272228const hashMain = "main";
23292424-export function isMain<V>(v: V) {
3030+export function isMain<V>(v: V): v is Main & V {
2531 return is$typed(v, id, hashMain);
2632}
27332828-export function validateMain<V>(v: V) {
3434+export function validateMain<V>(v: V): ValidationResult<Main & V> {
2935 return validate<Main & V>(v, id, hashMain);
3036}
3137···37433844const hashCaption = "caption";
39454040-export function isCaption<V>(v: V) {
4646+export function isCaption<V>(v: V): v is Caption & V {
4147 return is$typed(v, id, hashCaption);
4248}
43494444-export function validateCaption<V>(v: V) {
5050+export function validateCaption<V>(v: V): ValidationResult<Caption & V> {
4551 return validate<Caption & V>(v, id, hashCaption);
4652}
4753···5258 thumbnail?: string;
5359 alt?: string;
5460 aspectRatio?: AppBskyEmbedDefs.AspectRatio;
6161+ /** A hint to the client about how to present the video. */
6262+ presentation?:
6363+ | "default"
6464+ | "gif"
6565+ | (string & globalThis.Record<PropertyKey, never>);
5566}
56675768const hashView = "view";
58695959-export function isView<V>(v: V) {
7070+export function isView<V>(v: V): v is View & V {
6071 return is$typed(v, id, hashView);
6172}
62736363-export function validateView<V>(v: V) {
7474+export function validateView<V>(v: V): ValidationResult<View & V> {
6475 return validate<View & V>(v, id, hashView);
6576}
+81-50
lex/types/app/bsky/feed/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as AppBskyActorDefs from "../actor/defs.ts";
78import type * as AppBskyEmbedImages from "../embed/images.ts";
···44454546const hashPostView = "postView";
46474747-export function isPostView<V>(v: V) {
4848+export function isPostView<V>(v: V): v is PostView & V {
4849 return is$typed(v, id, hashPostView);
4950}
50515151-export function validatePostView<V>(v: V) {
5252+export function validatePostView<V>(v: V): ValidationResult<PostView & V> {
5253 return validate<PostView & V>(v, id, hashPostView);
5354}
5455···66676768const hashViewerState = "viewerState";
68696969-export function isViewerState<V>(v: V) {
7070+export function isViewerState<V>(v: V): v is ViewerState & V {
7071 return is$typed(v, id, hashViewerState);
7172}
72737373-export function validateViewerState<V>(v: V) {
7474+export function validateViewerState<V>(
7575+ v: V,
7676+): ValidationResult<ViewerState & V> {
7477 return validate<ViewerState & V>(v, id, hashViewerState);
7578}
7679···82858386const hashThreadContext = "threadContext";
84878585-export function isThreadContext<V>(v: V) {
8888+export function isThreadContext<V>(v: V): v is ThreadContext & V {
8689 return is$typed(v, id, hashThreadContext);
8790}
88918989-export function validateThreadContext<V>(v: V) {
9292+export function validateThreadContext<V>(
9393+ v: V,
9494+): ValidationResult<ThreadContext & V> {
9095 return validate<ThreadContext & V>(v, id, hashThreadContext);
9196}
9297···103108104109const hashFeedViewPost = "feedViewPost";
105110106106-export function isFeedViewPost<V>(v: V) {
111111+export function isFeedViewPost<V>(v: V): v is FeedViewPost & V {
107112 return is$typed(v, id, hashFeedViewPost);
108113}
109114110110-export function validateFeedViewPost<V>(v: V) {
115115+export function validateFeedViewPost<V>(
116116+ v: V,
117117+): ValidationResult<FeedViewPost & V> {
111118 return validate<FeedViewPost & V>(v, id, hashFeedViewPost);
112119}
113120···124131125132const hashReplyRef = "replyRef";
126133127127-export function isReplyRef<V>(v: V) {
134134+export function isReplyRef<V>(v: V): v is ReplyRef & V {
128135 return is$typed(v, id, hashReplyRef);
129136}
130137131131-export function validateReplyRef<V>(v: V) {
138138+export function validateReplyRef<V>(v: V): ValidationResult<ReplyRef & V> {
132139 return validate<ReplyRef & V>(v, id, hashReplyRef);
133140}
134141···142149143150const hashReasonRepost = "reasonRepost";
144151145145-export function isReasonRepost<V>(v: V) {
152152+export function isReasonRepost<V>(v: V): v is ReasonRepost & V {
146153 return is$typed(v, id, hashReasonRepost);
147154}
148155149149-export function validateReasonRepost<V>(v: V) {
156156+export function validateReasonRepost<V>(
157157+ v: V,
158158+): ValidationResult<ReasonRepost & V> {
150159 return validate<ReasonRepost & V>(v, id, hashReasonRepost);
151160}
152161···156165157166const hashReasonPin = "reasonPin";
158167159159-export function isReasonPin<V>(v: V) {
168168+export function isReasonPin<V>(v: V): v is ReasonPin & V {
160169 return is$typed(v, id, hashReasonPin);
161170}
162171163163-export function validateReasonPin<V>(v: V) {
172172+export function validateReasonPin<V>(v: V): ValidationResult<ReasonPin & V> {
164173 return validate<ReasonPin & V>(v, id, hashReasonPin);
165174}
166175···181190182191const hashThreadViewPost = "threadViewPost";
183192184184-export function isThreadViewPost<V>(v: V) {
193193+export function isThreadViewPost<V>(v: V): v is ThreadViewPost & V {
185194 return is$typed(v, id, hashThreadViewPost);
186195}
187196188188-export function validateThreadViewPost<V>(v: V) {
197197+export function validateThreadViewPost<V>(
198198+ v: V,
199199+): ValidationResult<ThreadViewPost & V> {
189200 return validate<ThreadViewPost & V>(v, id, hashThreadViewPost);
190201}
191202···197208198209const hashNotFoundPost = "notFoundPost";
199210200200-export function isNotFoundPost<V>(v: V) {
211211+export function isNotFoundPost<V>(v: V): v is NotFoundPost & V {
201212 return is$typed(v, id, hashNotFoundPost);
202213}
203214204204-export function validateNotFoundPost<V>(v: V) {
215215+export function validateNotFoundPost<V>(
216216+ v: V,
217217+): ValidationResult<NotFoundPost & V> {
205218 return validate<NotFoundPost & V>(v, id, hashNotFoundPost);
206219}
207220···214227215228const hashBlockedPost = "blockedPost";
216229217217-export function isBlockedPost<V>(v: V) {
230230+export function isBlockedPost<V>(v: V): v is BlockedPost & V {
218231 return is$typed(v, id, hashBlockedPost);
219232}
220233221221-export function validateBlockedPost<V>(v: V) {
234234+export function validateBlockedPost<V>(
235235+ v: V,
236236+): ValidationResult<BlockedPost & V> {
222237 return validate<BlockedPost & V>(v, id, hashBlockedPost);
223238}
224239···230245231246const hashBlockedAuthor = "blockedAuthor";
232247233233-export function isBlockedAuthor<V>(v: V) {
248248+export function isBlockedAuthor<V>(v: V): v is BlockedAuthor & V {
234249 return is$typed(v, id, hashBlockedAuthor);
235250}
236251237237-export function validateBlockedAuthor<V>(v: V) {
252252+export function validateBlockedAuthor<V>(
253253+ v: V,
254254+): ValidationResult<BlockedAuthor & V> {
238255 return validate<BlockedAuthor & V>(v, id, hashBlockedAuthor);
239256}
240257···261278262279const hashGeneratorView = "generatorView";
263280264264-export function isGeneratorView<V>(v: V) {
281281+export function isGeneratorView<V>(v: V): v is GeneratorView & V {
265282 return is$typed(v, id, hashGeneratorView);
266283}
267284268268-export function validateGeneratorView<V>(v: V) {
285285+export function validateGeneratorView<V>(
286286+ v: V,
287287+): ValidationResult<GeneratorView & V> {
269288 return validate<GeneratorView & V>(v, id, hashGeneratorView);
270289}
271290···276295277296const hashGeneratorViewerState = "generatorViewerState";
278297279279-export function isGeneratorViewerState<V>(v: V) {
298298+export function isGeneratorViewerState<V>(v: V): v is GeneratorViewerState & V {
280299 return is$typed(v, id, hashGeneratorViewerState);
281300}
282301283283-export function validateGeneratorViewerState<V>(v: V) {
302302+export function validateGeneratorViewerState<V>(
303303+ v: V,
304304+): ValidationResult<GeneratorViewerState & V> {
284305 return validate<GeneratorViewerState & V>(v, id, hashGeneratorViewerState);
285306}
286307···296317297318const hashSkeletonFeedPost = "skeletonFeedPost";
298319299299-export function isSkeletonFeedPost<V>(v: V) {
320320+export function isSkeletonFeedPost<V>(v: V): v is SkeletonFeedPost & V {
300321 return is$typed(v, id, hashSkeletonFeedPost);
301322}
302323303303-export function validateSkeletonFeedPost<V>(v: V) {
324324+export function validateSkeletonFeedPost<V>(
325325+ v: V,
326326+): ValidationResult<SkeletonFeedPost & V> {
304327 return validate<SkeletonFeedPost & V>(v, id, hashSkeletonFeedPost);
305328}
306329···311334312335const hashSkeletonReasonRepost = "skeletonReasonRepost";
313336314314-export function isSkeletonReasonRepost<V>(v: V) {
337337+export function isSkeletonReasonRepost<V>(v: V): v is SkeletonReasonRepost & V {
315338 return is$typed(v, id, hashSkeletonReasonRepost);
316339}
317340318318-export function validateSkeletonReasonRepost<V>(v: V) {
341341+export function validateSkeletonReasonRepost<V>(
342342+ v: V,
343343+): ValidationResult<SkeletonReasonRepost & V> {
319344 return validate<SkeletonReasonRepost & V>(v, id, hashSkeletonReasonRepost);
320345}
321346···325350326351const hashSkeletonReasonPin = "skeletonReasonPin";
327352328328-export function isSkeletonReasonPin<V>(v: V) {
353353+export function isSkeletonReasonPin<V>(v: V): v is SkeletonReasonPin & V {
329354 return is$typed(v, id, hashSkeletonReasonPin);
330355}
331356332332-export function validateSkeletonReasonPin<V>(v: V) {
357357+export function validateSkeletonReasonPin<V>(
358358+ v: V,
359359+): ValidationResult<SkeletonReasonPin & V> {
333360 return validate<SkeletonReasonPin & V>(v, id, hashSkeletonReasonPin);
334361}
335362···343370344371const hashThreadgateView = "threadgateView";
345372346346-export function isThreadgateView<V>(v: V) {
373373+export function isThreadgateView<V>(v: V): v is ThreadgateView & V {
347374 return is$typed(v, id, hashThreadgateView);
348375}
349376350350-export function validateThreadgateView<V>(v: V) {
377377+export function validateThreadgateView<V>(
378378+ v: V,
379379+): ValidationResult<ThreadgateView & V> {
351380 return validate<ThreadgateView & V>(v, id, hashThreadgateView);
352381}
353382···376405377406const hashInteraction = "interaction";
378407379379-export function isInteraction<V>(v: V) {
408408+export function isInteraction<V>(v: V): v is Interaction & V {
380409 return is$typed(v, id, hashInteraction);
381410}
382411383383-export function validateInteraction<V>(v: V) {
412412+export function validateInteraction<V>(
413413+ v: V,
414414+): ValidationResult<Interaction & V> {
384415 return validate<Interaction & V>(v, id, hashInteraction);
385416}
386417387418/** Request that less content like the given feed item be shown in the feed */
388388-export const REQUESTLESS = `${id}#requestLess`;
419419+export const REQUESTLESS: string = `${id}#requestLess`;
389420/** Request that more content like the given feed item be shown in the feed */
390390-export const REQUESTMORE = `${id}#requestMore`;
421421+export const REQUESTMORE: string = `${id}#requestMore`;
391422/** User clicked through to the feed item */
392392-export const CLICKTHROUGHITEM = `${id}#clickthroughItem`;
423423+export const CLICKTHROUGHITEM: string = `${id}#clickthroughItem`;
393424/** User clicked through to the author of the feed item */
394394-export const CLICKTHROUGHAUTHOR = `${id}#clickthroughAuthor`;
425425+export const CLICKTHROUGHAUTHOR: string = `${id}#clickthroughAuthor`;
395426/** User clicked through to the reposter of the feed item */
396396-export const CLICKTHROUGHREPOSTER = `${id}#clickthroughReposter`;
427427+export const CLICKTHROUGHREPOSTER: string = `${id}#clickthroughReposter`;
397428/** User clicked through to the embedded content of the feed item */
398398-export const CLICKTHROUGHEMBED = `${id}#clickthroughEmbed`;
429429+export const CLICKTHROUGHEMBED: string = `${id}#clickthroughEmbed`;
399430/** Declares the feed generator returns any types of posts. */
400400-export const CONTENTMODEUNSPECIFIED = `${id}#contentModeUnspecified`;
431431+export const CONTENTMODEUNSPECIFIED: string = `${id}#contentModeUnspecified`;
401432/** Declares the feed generator returns posts containing app.bsky.embed.video embeds. */
402402-export const CONTENTMODEVIDEO = `${id}#contentModeVideo`;
433433+export const CONTENTMODEVIDEO: string = `${id}#contentModeVideo`;
403434/** Feed item was seen by user */
404404-export const INTERACTIONSEEN = `${id}#interactionSeen`;
435435+export const INTERACTIONSEEN: string = `${id}#interactionSeen`;
405436/** User liked the feed item */
406406-export const INTERACTIONLIKE = `${id}#interactionLike`;
437437+export const INTERACTIONLIKE: string = `${id}#interactionLike`;
407438/** User reposted the feed item */
408408-export const INTERACTIONREPOST = `${id}#interactionRepost`;
439439+export const INTERACTIONREPOST: string = `${id}#interactionRepost`;
409440/** User replied to the feed item */
410410-export const INTERACTIONREPLY = `${id}#interactionReply`;
441441+export const INTERACTIONREPLY: string = `${id}#interactionReply`;
411442/** User quoted the feed item */
412412-export const INTERACTIONQUOTE = `${id}#interactionQuote`;
443443+export const INTERACTIONQUOTE: string = `${id}#interactionQuote`;
413444/** User shared the feed item */
414414-export const INTERACTIONSHARE = `${id}#interactionShare`;
445445+export const INTERACTIONSHARE: string = `${id}#interactionShare`;
+5-4
lex/types/app/bsky/feed/describeFeedGenerator.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···38393940const hashFeed = "feed";
40414141-export function isFeed<V>(v: V) {
4242+export function isFeed<V>(v: V): v is Feed & V {
4243 return is$typed(v, id, hashFeed);
4344}
44454545-export function validateFeed<V>(v: V) {
4646+export function validateFeed<V>(v: V): ValidationResult<Feed & V> {
4647 return validate<Feed & V>(v, id, hashFeed);
4748}
4849···54555556const hashLinks = "links";
56575757-export function isLinks<V>(v: V) {
5858+export function isLinks<V>(v: V): v is Links & V {
5859 return is$typed(v, id, hashLinks);
5960}
60616161-export function validateLinks<V>(v: V) {
6262+export function validateLinks<V>(v: V): ValidationResult<Links & V> {
6263 return validate<Links & V>(v, id, hashLinks);
6364}
+3-2
lex/types/app/bsky/feed/generator.ts
···33 */
44import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66+import type { ValidationResult } from "@atp/lexicon";
67import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
78import type * as AppBskyRichtextFacet from "../richtext/facet.ts";
89import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
···30313132const hashRecord = "main";
32333333-export function isRecord<V>(v: V) {
3434+export function isRecord<V>(v: V): v is Record & V {
3435 return is$typed(v, id, hashRecord);
3536}
36373737-export function validateRecord<V>(v: V) {
3838+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
3839 return validate<Record & V>(v, id, hashRecord, true);
3940}
4041
+3-2
lex/types/app/bsky/feed/getLikes.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as AppBskyActorDefs from "../actor/defs.ts";
78···49505051const hashLike = "like";
51525252-export function isLike<V>(v: V) {
5353+export function isLike<V>(v: V): v is Like & V {
5354 return is$typed(v, id, hashLike);
5455}
55565656-export function validateLike<V>(v: V) {
5757+export function validateLike<V>(v: V): ValidationResult<Like & V> {
5758 return validate<Like & V>(v, id, hashLike);
5859}
+3-2
lex/types/app/bsky/feed/like.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
78···18191920const hashRecord = "main";
20212121-export function isRecord<V>(v: V) {
2222+export function isRecord<V>(v: V): v is Record & V {
2223 return is$typed(v, id, hashRecord);
2324}
24252525-export function validateRecord<V>(v: V) {
2626+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
2627 return validate<Record & V>(v, id, hashRecord, true);
2728}
2829
+9-8
lex/types/app/bsky/feed/post.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as AppBskyRichtextFacet from "../richtext/facet.ts";
78import type * as AppBskyEmbedImages from "../embed/images.ts";
···43444445const hashRecord = "main";
45464646-export function isRecord<V>(v: V) {
4747+export function isRecord<V>(v: V): v is Record & V {
4748 return is$typed(v, id, hashRecord);
4849}
49505050-export function validateRecord<V>(v: V) {
5151+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
5152 return validate<Record & V>(v, id, hashRecord, true);
5253}
5354···61626263const hashReplyRef = "replyRef";
63646464-export function isReplyRef<V>(v: V) {
6565+export function isReplyRef<V>(v: V): v is ReplyRef & V {
6566 return is$typed(v, id, hashReplyRef);
6667}
67686868-export function validateReplyRef<V>(v: V) {
6969+export function validateReplyRef<V>(v: V): ValidationResult<ReplyRef & V> {
6970 return validate<ReplyRef & V>(v, id, hashReplyRef);
7071}
7172···80818182const hashEntity = "entity";
82838383-export function isEntity<V>(v: V) {
8484+export function isEntity<V>(v: V): v is Entity & V {
8485 return is$typed(v, id, hashEntity);
8586}
86878787-export function validateEntity<V>(v: V) {
8888+export function validateEntity<V>(v: V): ValidationResult<Entity & V> {
8889 return validate<Entity & V>(v, id, hashEntity);
8990}
9091···97989899const hashTextSlice = "textSlice";
99100100100-export function isTextSlice<V>(v: V) {
101101+export function isTextSlice<V>(v: V): v is TextSlice & V {
101102 return is$typed(v, id, hashTextSlice);
102103}
103104104104-export function validateTextSlice<V>(v: V) {
105105+export function validateTextSlice<V>(v: V): ValidationResult<TextSlice & V> {
105106 return validate<TextSlice & V>(v, id, hashTextSlice);
106107}
+7-4
lex/types/app/bsky/feed/postgate.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···21222223const hashRecord = "main";
23242424-export function isRecord<V>(v: V) {
2525+export function isRecord<V>(v: V): v is Record & V {
2526 return is$typed(v, id, hashRecord);
2627}
27282828-export function validateRecord<V>(v: V) {
2929+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
2930 return validate<Record & V>(v, id, hashRecord, true);
3031}
3132···38393940const hashDisableRule = "disableRule";
40414141-export function isDisableRule<V>(v: V) {
4242+export function isDisableRule<V>(v: V): v is DisableRule & V {
4243 return is$typed(v, id, hashDisableRule);
4344}
44454545-export function validateDisableRule<V>(v: V) {
4646+export function validateDisableRule<V>(
4747+ v: V,
4848+): ValidationResult<DisableRule & V> {
4649 return validate<DisableRule & V>(v, id, hashDisableRule);
4750}
+3-2
lex/types/app/bsky/feed/repost.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
78···18191920const hashRecord = "main";
20212121-export function isRecord<V>(v: V) {
2222+export function isRecord<V>(v: V): v is Record & V {
2223 return is$typed(v, id, hashRecord);
2324}
24252525-export function validateRecord<V>(v: V) {
2626+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
2627 return validate<Record & V>(v, id, hashRecord, true);
2728}
2829
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···27282829const hashRecord = "main";
29303030-export function isRecord<V>(v: V) {
3131+export function isRecord<V>(v: V): v is Record & V {
3132 return is$typed(v, id, hashRecord);
3233}
33343434-export function validateRecord<V>(v: V) {
3535+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
3536 return validate<Record & V>(v, id, hashRecord, true);
3637}
3738···44454546const hashMentionRule = "mentionRule";
46474747-export function isMentionRule<V>(v: V) {
4848+export function isMentionRule<V>(v: V): v is MentionRule & V {
4849 return is$typed(v, id, hashMentionRule);
4950}
50515151-export function validateMentionRule<V>(v: V) {
5252+export function validateMentionRule<V>(
5353+ v: V,
5454+): ValidationResult<MentionRule & V> {
5255 return validate<MentionRule & V>(v, id, hashMentionRule);
5356}
5457···59626063const hashFollowerRule = "followerRule";
61646262-export function isFollowerRule<V>(v: V) {
6565+export function isFollowerRule<V>(v: V): v is FollowerRule & V {
6366 return is$typed(v, id, hashFollowerRule);
6467}
65686666-export function validateFollowerRule<V>(v: V) {
6969+export function validateFollowerRule<V>(
7070+ v: V,
7171+): ValidationResult<FollowerRule & V> {
6772 return validate<FollowerRule & V>(v, id, hashFollowerRule);
6873}
6974···74797580const hashFollowingRule = "followingRule";
76817777-export function isFollowingRule<V>(v: V) {
8282+export function isFollowingRule<V>(v: V): v is FollowingRule & V {
7883 return is$typed(v, id, hashFollowingRule);
7984}
80858181-export function validateFollowingRule<V>(v: V) {
8686+export function validateFollowingRule<V>(
8787+ v: V,
8888+): ValidationResult<FollowingRule & V> {
8289 return validate<FollowingRule & V>(v, id, hashFollowingRule);
8390}
8491···90979198const hashListRule = "listRule";
92999393-export function isListRule<V>(v: V) {
100100+export function isListRule<V>(v: V): v is ListRule & V {
94101 return is$typed(v, id, hashListRule);
95102}
961039797-export function validateListRule<V>(v: V) {
104104+export function validateListRule<V>(v: V): ValidationResult<ListRule & V> {
98105 return validate<ListRule & V>(v, id, hashListRule);
99106}
+3-2
lex/types/app/bsky/graph/block.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···17181819const hashRecord = "main";
19202020-export function isRecord<V>(v: V) {
2121+export function isRecord<V>(v: V): v is Record & V {
2122 return is$typed(v, id, hashRecord);
2223}
23242424-export function validateRecord<V>(v: V) {
2525+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
2526 return validate<Record & V>(v, id, hashRecord, true);
2627}
2728
+42-19
lex/types/app/bsky/graph/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
78import type * as AppBskyActorDefs from "../actor/defs.ts";
···26272728const hashListViewBasic = "listViewBasic";
28292929-export function isListViewBasic<V>(v: V) {
3030+export function isListViewBasic<V>(v: V): v is ListViewBasic & V {
3031 return is$typed(v, id, hashListViewBasic);
3132}
32333333-export function validateListViewBasic<V>(v: V) {
3434+export function validateListViewBasic<V>(
3535+ v: V,
3636+): ValidationResult<ListViewBasic & V> {
3437 return validate<ListViewBasic & V>(v, id, hashListViewBasic);
3538}
3639···52555356const hashListView = "listView";
54575555-export function isListView<V>(v: V) {
5858+export function isListView<V>(v: V): v is ListView & V {
5659 return is$typed(v, id, hashListView);
5760}
58615959-export function validateListView<V>(v: V) {
6262+export function validateListView<V>(v: V): ValidationResult<ListView & V> {
6063 return validate<ListView & V>(v, id, hashListView);
6164}
6265···68716972const hashListItemView = "listItemView";
70737171-export function isListItemView<V>(v: V) {
7474+export function isListItemView<V>(v: V): v is ListItemView & V {
7275 return is$typed(v, id, hashListItemView);
7376}
74777575-export function validateListItemView<V>(v: V) {
7878+export function validateListItemView<V>(
7979+ v: V,
8080+): ValidationResult<ListItemView & V> {
7681 return validate<ListItemView & V>(v, id, hashListItemView);
7782}
7883···93989499const hashStarterPackView = "starterPackView";
951009696-export function isStarterPackView<V>(v: V) {
101101+export function isStarterPackView<V>(v: V): v is StarterPackView & V {
97102 return is$typed(v, id, hashStarterPackView);
98103}
99104100100-export function validateStarterPackView<V>(v: V) {
105105+export function validateStarterPackView<V>(
106106+ v: V,
107107+): ValidationResult<StarterPackView & V> {
101108 return validate<StarterPackView & V>(v, id, hashStarterPackView);
102109}
103110···116123117124const hashStarterPackViewBasic = "starterPackViewBasic";
118125119119-export function isStarterPackViewBasic<V>(v: V) {
126126+export function isStarterPackViewBasic<V>(v: V): v is StarterPackViewBasic & V {
120127 return is$typed(v, id, hashStarterPackViewBasic);
121128}
122129123123-export function validateStarterPackViewBasic<V>(v: V) {
130130+export function validateStarterPackViewBasic<V>(
131131+ v: V,
132132+): ValidationResult<StarterPackViewBasic & V> {
124133 return validate<StarterPackViewBasic & V>(v, id, hashStarterPackViewBasic);
125134}
126135···131140 | (string & globalThis.Record<PropertyKey, never>);
132141133142/** A list of actors to apply an aggregate moderation action (mute/block) on. */
134134-export const MODLIST = `${id}#modlist`;
143143+export const MODLIST: string = `${id}#modlist`;
135144/** A list of actors used for curation purposes such as list feeds or interaction gating. */
136136-export const CURATELIST = `${id}#curatelist`;
145145+export const CURATELIST: string = `${id}#curatelist`;
137146/** A list of actors used for only for reference purposes such as within a starter pack. */
138138-export const REFERENCELIST = `${id}#referencelist`;
147147+export const REFERENCELIST: string = `${id}#referencelist`;
139148140149export interface ListViewerState {
141150 $type?: "app.bsky.graph.defs#listViewerState";
···145154146155const hashListViewerState = "listViewerState";
147156148148-export function isListViewerState<V>(v: V) {
157157+export function isListViewerState<V>(v: V): v is ListViewerState & V {
149158 return is$typed(v, id, hashListViewerState);
150159}
151160152152-export function validateListViewerState<V>(v: V) {
161161+export function validateListViewerState<V>(
162162+ v: V,
163163+): ValidationResult<ListViewerState & V> {
153164 return validate<ListViewerState & V>(v, id, hashListViewerState);
154165}
155166···162173163174const hashNotFoundActor = "notFoundActor";
164175165165-export function isNotFoundActor<V>(v: V) {
176176+export function isNotFoundActor<V>(v: V): v is NotFoundActor & V {
166177 return is$typed(v, id, hashNotFoundActor);
167178}
168179169169-export function validateNotFoundActor<V>(v: V) {
180180+export function validateNotFoundActor<V>(
181181+ v: V,
182182+): ValidationResult<NotFoundActor & V> {
170183 return validate<NotFoundActor & V>(v, id, hashNotFoundActor);
171184}
172185···178191 following?: string;
179192 /** if the actor is followed by this DID, contains the AT-URI of the follow record */
180193 followedBy?: string;
194194+ /** if the actor blocks this DID, this is the AT-URI of the block record */
195195+ blocking?: string;
196196+ /** if the actor is blocked by this DID, contains the AT-URI of the block record */
197197+ blockedBy?: string;
198198+ /** if the actor blocks this DID via a block list, this is the AT-URI of the listblock record */
199199+ blockingByList?: string;
200200+ /** if the actor is blocked by this DID via a block list, contains the AT-URI of the listblock record */
201201+ blockedByList?: string;
181202}
182203183204const hashRelationship = "relationship";
184205185185-export function isRelationship<V>(v: V) {
206206+export function isRelationship<V>(v: V): v is Relationship & V {
186207 return is$typed(v, id, hashRelationship);
187208}
188209189189-export function validateRelationship<V>(v: V) {
210210+export function validateRelationship<V>(
211211+ v: V,
212212+): ValidationResult<Relationship & V> {
190213 return validate<Relationship & V>(v, id, hashRelationship);
191214}
+3-2
lex/types/app/bsky/graph/follow.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
78···18191920const hashRecord = "main";
20212121-export function isRecord<V>(v: V) {
2222+export function isRecord<V>(v: V): v is Record & V {
2223 return is$typed(v, id, hashRecord);
2324}
24252525-export function validateRecord<V>(v: V) {
2626+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
2627 return validate<Record & V>(v, id, hashRecord, true);
2728}
2829
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as AppBskyGraphDefs from "./defs.ts";
78···50515152const hashListWithMembership = "listWithMembership";
52535353-export function isListWithMembership<V>(v: V) {
5454+export function isListWithMembership<V>(v: V): v is ListWithMembership & V {
5455 return is$typed(v, id, hashListWithMembership);
5556}
56575757-export function validateListWithMembership<V>(v: V) {
5858+export function validateListWithMembership<V>(
5959+ v: V,
6060+): ValidationResult<ListWithMembership & V> {
5861 return validate<ListWithMembership & V>(v, id, hashListWithMembership);
5962}
···10101111export interface OutputSchema {
1212 suggestions: (AppBskyActorDefs.ProfileView)[];
1313- /** If true, response has fallen-back to generic results, and is not scoped using relativeToDid */
1414- isFallback?: boolean;
1513 /** Snowflake for this recommendation, use when submitting recommendation events. */
1414+ recIdStr?: string;
1515+ /** DEPRECATED, unused. Previously: if true, response has fallen-back to generic results, and is not scoped using relativeToDid */
1616+ isFallback?: boolean;
1717+ /** DEPRECATED: use recIdStr instead. */
1618 recId?: number;
1719}
1820
+3-2
lex/types/app/bsky/graph/list.ts
···33 */
44import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66+import type { ValidationResult } from "@atp/lexicon";
67import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
78import type * as AppBskyGraphDefs from "./defs.ts";
89import type * as AppBskyRichtextFacet from "../richtext/facet.ts";
···26272728const hashRecord = "main";
28292929-export function isRecord<V>(v: V) {
3030+export function isRecord<V>(v: V): v is Record & V {
3031 return is$typed(v, id, hashRecord);
3132}
32333333-export function validateRecord<V>(v: V) {
3434+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
3435 return validate<Record & V>(v, id, hashRecord, true);
3536}
3637
+3-2
lex/types/app/bsky/graph/listblock.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···17181819const hashRecord = "main";
19202020-export function isRecord<V>(v: V) {
2121+export function isRecord<V>(v: V): v is Record & V {
2122 return is$typed(v, id, hashRecord);
2223}
23242424-export function validateRecord<V>(v: V) {
2525+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
2526 return validate<Record & V>(v, id, hashRecord, true);
2627}
2728
+3-2
lex/types/app/bsky/graph/listitem.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···19202021const hashRecord = "main";
21222222-export function isRecord<V>(v: V) {
2323+export function isRecord<V>(v: V): v is Record & V {
2324 return is$typed(v, id, hashRecord);
2425}
25262626-export function validateRecord<V>(v: V) {
2727+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
2728 return validate<Record & V>(v, id, hashRecord, true);
2829}
2930
+5-4
lex/types/app/bsky/graph/starterpack.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as AppBskyRichtextFacet from "../richtext/facet.ts";
78···23242425const hashRecord = "main";
25262626-export function isRecord<V>(v: V) {
2727+export function isRecord<V>(v: V): v is Record & V {
2728 return is$typed(v, id, hashRecord);
2829}
29303030-export function validateRecord<V>(v: V) {
3131+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
3132 return validate<Record & V>(v, id, hashRecord, true);
3233}
3334···40414142const hashFeedItem = "feedItem";
42434343-export function isFeedItem<V>(v: V) {
4444+export function isFeedItem<V>(v: V): v is FeedItem & V {
4445 return is$typed(v, id, hashFeedItem);
4546}
46474747-export function validateFeedItem<V>(v: V) {
4848+export function validateFeedItem<V>(v: V): ValidationResult<FeedItem & V> {
4849 return validate<FeedItem & V>(v, id, hashFeedItem);
4950}
+3-2
lex/types/app/bsky/graph/verification.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···22232324const hashRecord = "main";
24252525-export function isRecord<V>(v: V) {
2626+export function isRecord<V>(v: V): v is Record & V {
2627 return is$typed(v, id, hashRecord);
2728}
28292929-export function validateRecord<V>(v: V) {
3030+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
3031 return validate<Record & V>(v, id, hashRecord, true);
3132}
3233
+17-8
lex/types/app/bsky/labeler/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as AppBskyActorDefs from "../actor/defs.ts";
78import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
···23242425const hashLabelerView = "labelerView";
25262626-export function isLabelerView<V>(v: V) {
2727+export function isLabelerView<V>(v: V): v is LabelerView & V {
2728 return is$typed(v, id, hashLabelerView);
2829}
29303030-export function validateLabelerView<V>(v: V) {
3131+export function validateLabelerView<V>(
3232+ v: V,
3333+): ValidationResult<LabelerView & V> {
3134 return validate<LabelerView & V>(v, id, hashLabelerView);
3235}
3336···51545255const hashLabelerViewDetailed = "labelerViewDetailed";
53565454-export function isLabelerViewDetailed<V>(v: V) {
5757+export function isLabelerViewDetailed<V>(v: V): v is LabelerViewDetailed & V {
5558 return is$typed(v, id, hashLabelerViewDetailed);
5659}
57605858-export function validateLabelerViewDetailed<V>(v: V) {
6161+export function validateLabelerViewDetailed<V>(
6262+ v: V,
6363+): ValidationResult<LabelerViewDetailed & V> {
5964 return validate<LabelerViewDetailed & V>(v, id, hashLabelerViewDetailed);
6065}
6166···66716772const hashLabelerViewerState = "labelerViewerState";
68736969-export function isLabelerViewerState<V>(v: V) {
7474+export function isLabelerViewerState<V>(v: V): v is LabelerViewerState & V {
7075 return is$typed(v, id, hashLabelerViewerState);
7176}
72777373-export function validateLabelerViewerState<V>(v: V) {
7878+export function validateLabelerViewerState<V>(
7979+ v: V,
8080+): ValidationResult<LabelerViewerState & V> {
7481 return validate<LabelerViewerState & V>(v, id, hashLabelerViewerState);
7582}
7683···84918592const hashLabelerPolicies = "labelerPolicies";
86938787-export function isLabelerPolicies<V>(v: V) {
9494+export function isLabelerPolicies<V>(v: V): v is LabelerPolicies & V {
8895 return is$typed(v, id, hashLabelerPolicies);
8996}
90979191-export function validateLabelerPolicies<V>(v: V) {
9898+export function validateLabelerPolicies<V>(
9999+ v: V,
100100+): ValidationResult<LabelerPolicies & V> {
92101 return validate<LabelerPolicies & V>(v, id, hashLabelerPolicies);
93102}
+3-2
lex/types/app/bsky/labeler/service.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as AppBskyLabelerDefs from "./defs.ts";
78import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
···26272728const hashRecord = "main";
28292929-export function isRecord<V>(v: V) {
3030+export function isRecord<V>(v: V): v is Record & V {
3031 return is$typed(v, id, hashRecord);
3132}
32333333-export function validateRecord<V>(v: V) {
3434+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
3435 return validate<Record & V>(v, id, hashRecord, true);
3536}
3637
+3-2
lex/types/app/bsky/notification/declaration.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···20212122const hashRecord = "main";
22232323-export function isRecord<V>(v: V) {
2424+export function isRecord<V>(v: V): v is Record & V {
2425 return is$typed(v, id, hashRecord);
2526}
26272727-export function validateRecord<V>(v: V) {
2828+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
2829 return validate<Record & V>(v, id, hashRecord, true);
2930}
3031
+29-14
lex/types/app/bsky/notification/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···13141415const hashRecordDeleted = "recordDeleted";
15161616-export function isRecordDeleted<V>(v: V) {
1717+export function isRecordDeleted<V>(v: V): v is RecordDeleted & V {
1718 return is$typed(v, id, hashRecordDeleted);
1819}
19202020-export function validateRecordDeleted<V>(v: V) {
2121+export function validateRecordDeleted<V>(
2222+ v: V,
2323+): ValidationResult<RecordDeleted & V> {
2124 return validate<RecordDeleted & V>(v, id, hashRecordDeleted);
2225}
2326···32353336const hashChatPreference = "chatPreference";
34373535-export function isChatPreference<V>(v: V) {
3838+export function isChatPreference<V>(v: V): v is ChatPreference & V {
3639 return is$typed(v, id, hashChatPreference);
3740}
38413939-export function validateChatPreference<V>(v: V) {
4242+export function validateChatPreference<V>(
4343+ v: V,
4444+): ValidationResult<ChatPreference & V> {
4045 return validate<ChatPreference & V>(v, id, hashChatPreference);
4146}
4247···49545055const hashFilterablePreference = "filterablePreference";
51565252-export function isFilterablePreference<V>(v: V) {
5757+export function isFilterablePreference<V>(v: V): v is FilterablePreference & V {
5358 return is$typed(v, id, hashFilterablePreference);
5459}
55605656-export function validateFilterablePreference<V>(v: V) {
6161+export function validateFilterablePreference<V>(
6262+ v: V,
6363+): ValidationResult<FilterablePreference & V> {
5764 return validate<FilterablePreference & V>(v, id, hashFilterablePreference);
5865}
5966···65726673const hashPreference = "preference";
67746868-export function isPreference<V>(v: V) {
7575+export function isPreference<V>(v: V): v is Preference & V {
6976 return is$typed(v, id, hashPreference);
7077}
71787272-export function validatePreference<V>(v: V) {
7979+export function validatePreference<V>(v: V): ValidationResult<Preference & V> {
7380 return validate<Preference & V>(v, id, hashPreference);
7481}
7582···929993100const hashPreferences = "preferences";
941019595-export function isPreferences<V>(v: V) {
102102+export function isPreferences<V>(v: V): v is Preferences & V {
96103 return is$typed(v, id, hashPreferences);
97104}
981059999-export function validatePreferences<V>(v: V) {
106106+export function validatePreferences<V>(
107107+ v: V,
108108+): ValidationResult<Preferences & V> {
100109 return validate<Preferences & V>(v, id, hashPreferences);
101110}
102111···108117109118const hashActivitySubscription = "activitySubscription";
110119111111-export function isActivitySubscription<V>(v: V) {
120120+export function isActivitySubscription<V>(v: V): v is ActivitySubscription & V {
112121 return is$typed(v, id, hashActivitySubscription);
113122}
114123115115-export function validateActivitySubscription<V>(v: V) {
124124+export function validateActivitySubscription<V>(
125125+ v: V,
126126+): ValidationResult<ActivitySubscription & V> {
116127 return validate<ActivitySubscription & V>(v, id, hashActivitySubscription);
117128}
118129···125136126137const hashSubjectActivitySubscription = "subjectActivitySubscription";
127138128128-export function isSubjectActivitySubscription<V>(v: V) {
139139+export function isSubjectActivitySubscription<V>(
140140+ v: V,
141141+): v is SubjectActivitySubscription & V {
129142 return is$typed(v, id, hashSubjectActivitySubscription);
130143}
131144132132-export function validateSubjectActivitySubscription<V>(v: V) {
145145+export function validateSubjectActivitySubscription<V>(
146146+ v: V,
147147+): ValidationResult<SubjectActivitySubscription & V> {
133148 return validate<SubjectActivitySubscription & V>(
134149 v,
135150 id,
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as AppBskyUnspeccedDefs from "./defs.ts";
78···44454546const hashThreadItem = "threadItem";
46474747-export function isThreadItem<V>(v: V) {
4848+export function isThreadItem<V>(v: V): v is ThreadItem & V {
4849 return is$typed(v, id, hashThreadItem);
4950}
50515151-export function validateThreadItem<V>(v: V) {
5252+export function validateThreadItem<V>(v: V): ValidationResult<ThreadItem & V> {
5253 return validate<ThreadItem & V>(v, id, hashThreadItem);
5354}
+3-2
lex/types/app/bsky/unspecced/getPostThreadV2.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as AppBskyFeedDefs from "../feed/defs.ts";
78import type * as AppBskyUnspeccedDefs from "./defs.ts";
···65666667const hashThreadItem = "threadItem";
67686868-export function isThreadItem<V>(v: V) {
6969+export function isThreadItem<V>(v: V): v is ThreadItem & V {
6970 return is$typed(v, id, hashThreadItem);
7071}
71727272-export function validateThreadItem<V>(v: V) {
7373+export function validateThreadItem<V>(v: V): ValidationResult<ThreadItem & V> {
7374 return validate<ThreadItem & V>(v, id, hashThreadItem);
7475}
···1818 actors: (AppBskyUnspeccedDefs.SkeletonSearchActor)[];
1919 /** DID of the account these suggestions are relative to. If this is returned undefined, suggestions are based on the viewer. */
2020 relativeToDid?: string;
2121- /** Snowflake for this recommendation, use when submitting recommendation events. */
2121+ /** DEPRECATED: use recIdStr instead. */
2222 recId?: number;
2323+ /** Snowflake for this recommendation, use when submitting recommendation events. */
2424+ recIdStr?: string;
2325}
24262527export type HandlerInput = void;
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···41424243const hashSuggestion = "suggestion";
43444444-export function isSuggestion<V>(v: V) {
4545+export function isSuggestion<V>(v: V): v is Suggestion & V {
4546 return is$typed(v, id, hashSuggestion);
4647}
47484848-export function validateSuggestion<V>(v: V) {
4949+export function validateSuggestion<V>(v: V): ValidationResult<Suggestion & V> {
4950 return validate<Suggestion & V>(v, id, hashSuggestion);
5051}
+3-2
lex/types/app/bsky/video/defs.ts
···33 */
44import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66+import type { ValidationResult } from "@atp/lexicon";
67import { is$typed as _is$typed } from "../../../../util.ts";
7889const is$typed = _is$typed, validate = _validate;
···26272728const hashJobStatus = "jobStatus";
28292929-export function isJobStatus<V>(v: V) {
3030+export function isJobStatus<V>(v: V): v is JobStatus & V {
3031 return is$typed(v, id, hashJobStatus);
3132}
32333333-export function validateJobStatus<V>(v: V) {
3434+export function validateJobStatus<V>(v: V): ValidationResult<JobStatus & V> {
3435 return validate<JobStatus & V>(v, id, hashJobStatus);
3536}
+3-2
lex/types/chat/bsky/actor/declaration.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···19202021const hashRecord = "main";
21222222-export function isRecord<V>(v: V) {
2323+export function isRecord<V>(v: V): v is Record & V {
2324 return is$typed(v, id, hashRecord);
2425}
25262626-export function validateRecord<V>(v: V) {
2727+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
2728 return validate<Record & V>(v, id, hashRecord, true);
2829}
2930
+5-2
lex/types/chat/bsky/actor/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as AppBskyActorDefs from "../../../app/bsky/actor/defs.ts";
78import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
···25262627const hashProfileViewBasic = "profileViewBasic";
27282828-export function isProfileViewBasic<V>(v: V) {
2929+export function isProfileViewBasic<V>(v: V): v is ProfileViewBasic & V {
2930 return is$typed(v, id, hashProfileViewBasic);
3031}
31323232-export function validateProfileViewBasic<V>(v: V) {
3333+export function validateProfileViewBasic<V>(
3434+ v: V,
3535+): ValidationResult<ProfileViewBasic & V> {
3336 return validate<ProfileViewBasic & V>(v, id, hashProfileViewBasic);
3437}
+6
lex/types/chat/bsky/authFullChatClient.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type { LexPermissionSet } from "@atp/lexicon";
55+66+export type Main = LexPermissionSet;
+75-38
lex/types/chat/bsky/convo/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as AppBskyRichtextFacet from "../../../app/bsky/richtext/facet.ts";
78import type * as AppBskyEmbedRecord from "../../../app/bsky/embed/record.ts";
···19202021const hashMessageRef = "messageRef";
21222222-export function isMessageRef<V>(v: V) {
2323+export function isMessageRef<V>(v: V): v is MessageRef & V {
2324 return is$typed(v, id, hashMessageRef);
2425}
25262626-export function validateMessageRef<V>(v: V) {
2727+export function validateMessageRef<V>(v: V): ValidationResult<MessageRef & V> {
2728 return validate<MessageRef & V>(v, id, hashMessageRef);
2829}
2930···37383839const hashMessageInput = "messageInput";
39404040-export function isMessageInput<V>(v: V) {
4141+export function isMessageInput<V>(v: V): v is MessageInput & V {
4142 return is$typed(v, id, hashMessageInput);
4243}
43444444-export function validateMessageInput<V>(v: V) {
4545+export function validateMessageInput<V>(
4646+ v: V,
4747+): ValidationResult<MessageInput & V> {
4548 return validate<MessageInput & V>(v, id, hashMessageInput);
4649}
4750···61646265const hashMessageView = "messageView";
63666464-export function isMessageView<V>(v: V) {
6767+export function isMessageView<V>(v: V): v is MessageView & V {
6568 return is$typed(v, id, hashMessageView);
6669}
67706868-export function validateMessageView<V>(v: V) {
7171+export function validateMessageView<V>(
7272+ v: V,
7373+): ValidationResult<MessageView & V> {
6974 return validate<MessageView & V>(v, id, hashMessageView);
7075}
7176···79848085const hashDeletedMessageView = "deletedMessageView";
81868282-export function isDeletedMessageView<V>(v: V) {
8787+export function isDeletedMessageView<V>(v: V): v is DeletedMessageView & V {
8388 return is$typed(v, id, hashDeletedMessageView);
8489}
85908686-export function validateDeletedMessageView<V>(v: V) {
9191+export function validateDeletedMessageView<V>(
9292+ v: V,
9393+): ValidationResult<DeletedMessageView & V> {
8794 return validate<DeletedMessageView & V>(v, id, hashDeletedMessageView);
8895}
8996···9410195102const hashMessageViewSender = "messageViewSender";
961039797-export function isMessageViewSender<V>(v: V) {
104104+export function isMessageViewSender<V>(v: V): v is MessageViewSender & V {
98105 return is$typed(v, id, hashMessageViewSender);
99106}
100107101101-export function validateMessageViewSender<V>(v: V) {
108108+export function validateMessageViewSender<V>(
109109+ v: V,
110110+): ValidationResult<MessageViewSender & V> {
102111 return validate<MessageViewSender & V>(v, id, hashMessageViewSender);
103112}
104113···111120112121const hashReactionView = "reactionView";
113122114114-export function isReactionView<V>(v: V) {
123123+export function isReactionView<V>(v: V): v is ReactionView & V {
115124 return is$typed(v, id, hashReactionView);
116125}
117126118118-export function validateReactionView<V>(v: V) {
127127+export function validateReactionView<V>(
128128+ v: V,
129129+): ValidationResult<ReactionView & V> {
119130 return validate<ReactionView & V>(v, id, hashReactionView);
120131}
121132···126137127138const hashReactionViewSender = "reactionViewSender";
128139129129-export function isReactionViewSender<V>(v: V) {
140140+export function isReactionViewSender<V>(v: V): v is ReactionViewSender & V {
130141 return is$typed(v, id, hashReactionViewSender);
131142}
132143133133-export function validateReactionViewSender<V>(v: V) {
144144+export function validateReactionViewSender<V>(
145145+ v: V,
146146+): ValidationResult<ReactionViewSender & V> {
134147 return validate<ReactionViewSender & V>(v, id, hashReactionViewSender);
135148}
136149···142155143156const hashMessageAndReactionView = "messageAndReactionView";
144157145145-export function isMessageAndReactionView<V>(v: V) {
158158+export function isMessageAndReactionView<V>(
159159+ v: V,
160160+): v is MessageAndReactionView & V {
146161 return is$typed(v, id, hashMessageAndReactionView);
147162}
148163149149-export function validateMessageAndReactionView<V>(v: V) {
164164+export function validateMessageAndReactionView<V>(
165165+ v: V,
166166+): ValidationResult<MessageAndReactionView & V> {
150167 return validate<MessageAndReactionView & V>(
151168 v,
152169 id,
···173190174191const hashConvoView = "convoView";
175192176176-export function isConvoView<V>(v: V) {
193193+export function isConvoView<V>(v: V): v is ConvoView & V {
177194 return is$typed(v, id, hashConvoView);
178195}
179196180180-export function validateConvoView<V>(v: V) {
197197+export function validateConvoView<V>(v: V): ValidationResult<ConvoView & V> {
181198 return validate<ConvoView & V>(v, id, hashConvoView);
182199}
183200···189206190207const hashLogBeginConvo = "logBeginConvo";
191208192192-export function isLogBeginConvo<V>(v: V) {
209209+export function isLogBeginConvo<V>(v: V): v is LogBeginConvo & V {
193210 return is$typed(v, id, hashLogBeginConvo);
194211}
195212196196-export function validateLogBeginConvo<V>(v: V) {
213213+export function validateLogBeginConvo<V>(
214214+ v: V,
215215+): ValidationResult<LogBeginConvo & V> {
197216 return validate<LogBeginConvo & V>(v, id, hashLogBeginConvo);
198217}
199218···205224206225const hashLogAcceptConvo = "logAcceptConvo";
207226208208-export function isLogAcceptConvo<V>(v: V) {
227227+export function isLogAcceptConvo<V>(v: V): v is LogAcceptConvo & V {
209228 return is$typed(v, id, hashLogAcceptConvo);
210229}
211230212212-export function validateLogAcceptConvo<V>(v: V) {
231231+export function validateLogAcceptConvo<V>(
232232+ v: V,
233233+): ValidationResult<LogAcceptConvo & V> {
213234 return validate<LogAcceptConvo & V>(v, id, hashLogAcceptConvo);
214235}
215236···221242222243const hashLogLeaveConvo = "logLeaveConvo";
223244224224-export function isLogLeaveConvo<V>(v: V) {
245245+export function isLogLeaveConvo<V>(v: V): v is LogLeaveConvo & V {
225246 return is$typed(v, id, hashLogLeaveConvo);
226247}
227248228228-export function validateLogLeaveConvo<V>(v: V) {
249249+export function validateLogLeaveConvo<V>(
250250+ v: V,
251251+): ValidationResult<LogLeaveConvo & V> {
229252 return validate<LogLeaveConvo & V>(v, id, hashLogLeaveConvo);
230253}
231254···237260238261const hashLogMuteConvo = "logMuteConvo";
239262240240-export function isLogMuteConvo<V>(v: V) {
263263+export function isLogMuteConvo<V>(v: V): v is LogMuteConvo & V {
241264 return is$typed(v, id, hashLogMuteConvo);
242265}
243266244244-export function validateLogMuteConvo<V>(v: V) {
267267+export function validateLogMuteConvo<V>(
268268+ v: V,
269269+): ValidationResult<LogMuteConvo & V> {
245270 return validate<LogMuteConvo & V>(v, id, hashLogMuteConvo);
246271}
247272···253278254279const hashLogUnmuteConvo = "logUnmuteConvo";
255280256256-export function isLogUnmuteConvo<V>(v: V) {
281281+export function isLogUnmuteConvo<V>(v: V): v is LogUnmuteConvo & V {
257282 return is$typed(v, id, hashLogUnmuteConvo);
258283}
259284260260-export function validateLogUnmuteConvo<V>(v: V) {
285285+export function validateLogUnmuteConvo<V>(
286286+ v: V,
287287+): ValidationResult<LogUnmuteConvo & V> {
261288 return validate<LogUnmuteConvo & V>(v, id, hashLogUnmuteConvo);
262289}
263290···270297271298const hashLogCreateMessage = "logCreateMessage";
272299273273-export function isLogCreateMessage<V>(v: V) {
300300+export function isLogCreateMessage<V>(v: V): v is LogCreateMessage & V {
274301 return is$typed(v, id, hashLogCreateMessage);
275302}
276303277277-export function validateLogCreateMessage<V>(v: V) {
304304+export function validateLogCreateMessage<V>(
305305+ v: V,
306306+): ValidationResult<LogCreateMessage & V> {
278307 return validate<LogCreateMessage & V>(v, id, hashLogCreateMessage);
279308}
280309···287316288317const hashLogDeleteMessage = "logDeleteMessage";
289318290290-export function isLogDeleteMessage<V>(v: V) {
319319+export function isLogDeleteMessage<V>(v: V): v is LogDeleteMessage & V {
291320 return is$typed(v, id, hashLogDeleteMessage);
292321}
293322294294-export function validateLogDeleteMessage<V>(v: V) {
323323+export function validateLogDeleteMessage<V>(
324324+ v: V,
325325+): ValidationResult<LogDeleteMessage & V> {
295326 return validate<LogDeleteMessage & V>(v, id, hashLogDeleteMessage);
296327}
297328···304335305336const hashLogReadMessage = "logReadMessage";
306337307307-export function isLogReadMessage<V>(v: V) {
338338+export function isLogReadMessage<V>(v: V): v is LogReadMessage & V {
308339 return is$typed(v, id, hashLogReadMessage);
309340}
310341311311-export function validateLogReadMessage<V>(v: V) {
342342+export function validateLogReadMessage<V>(
343343+ v: V,
344344+): ValidationResult<LogReadMessage & V> {
312345 return validate<LogReadMessage & V>(v, id, hashLogReadMessage);
313346}
314347···322355323356const hashLogAddReaction = "logAddReaction";
324357325325-export function isLogAddReaction<V>(v: V) {
358358+export function isLogAddReaction<V>(v: V): v is LogAddReaction & V {
326359 return is$typed(v, id, hashLogAddReaction);
327360}
328361329329-export function validateLogAddReaction<V>(v: V) {
362362+export function validateLogAddReaction<V>(
363363+ v: V,
364364+): ValidationResult<LogAddReaction & V> {
330365 return validate<LogAddReaction & V>(v, id, hashLogAddReaction);
331366}
332367···340375341376const hashLogRemoveReaction = "logRemoveReaction";
342377343343-export function isLogRemoveReaction<V>(v: V) {
378378+export function isLogRemoveReaction<V>(v: V): v is LogRemoveReaction & V {
344379 return is$typed(v, id, hashLogRemoveReaction);
345380}
346381347347-export function validateLogRemoveReaction<V>(v: V) {
382382+export function validateLogRemoveReaction<V>(
383383+ v: V,
384384+): ValidationResult<LogRemoveReaction & V> {
348385 return validate<LogRemoveReaction & V>(v, id, hashLogRemoveReaction);
349386}
+3-2
lex/types/chat/bsky/convo/sendMessageBatch.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as ChatBskyConvoDefs from "./defs.ts";
78···44454546const hashBatchItem = "batchItem";
46474747-export function isBatchItem<V>(v: V) {
4848+export function isBatchItem<V>(v: V): v is BatchItem & V {
4849 return is$typed(v, id, hashBatchItem);
4950}
50515151-export function validateBatchItem<V>(v: V) {
5252+export function validateBatchItem<V>(v: V): ValidationResult<BatchItem & V> {
5253 return validate<BatchItem & V>(v, id, hashBatchItem);
5354}
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···43444445const hashMetadata = "metadata";
45464646-export function isMetadata<V>(v: V) {
4747+export function isMetadata<V>(v: V): v is Metadata & V {
4748 return is$typed(v, id, hashMetadata);
4849}
49505050-export function validateMetadata<V>(v: V) {
5151+export function validateMetadata<V>(v: V): ValidationResult<Metadata & V> {
5152 return validate<Metadata & V>(v, id, hashMetadata);
5253}
+17-10
lex/types/com/atproto/admin/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as ComAtprotoServerDefs from "../server/defs.ts";
78···16171718const hashStatusAttr = "statusAttr";
18191919-export function isStatusAttr<V>(v: V) {
2020+export function isStatusAttr<V>(v: V): v is StatusAttr & V {
2021 return is$typed(v, id, hashStatusAttr);
2122}
22232323-export function validateStatusAttr<V>(v: V) {
2424+export function validateStatusAttr<V>(v: V): ValidationResult<StatusAttr & V> {
2425 return validate<StatusAttr & V>(v, id, hashStatusAttr);
2526}
2627···42434344const hashAccountView = "accountView";
44454545-export function isAccountView<V>(v: V) {
4646+export function isAccountView<V>(v: V): v is AccountView & V {
4647 return is$typed(v, id, hashAccountView);
4748}
48494949-export function validateAccountView<V>(v: V) {
5050+export function validateAccountView<V>(
5151+ v: V,
5252+): ValidationResult<AccountView & V> {
5053 return validate<AccountView & V>(v, id, hashAccountView);
5154}
5255···57605861const hashRepoRef = "repoRef";
59626060-export function isRepoRef<V>(v: V) {
6363+export function isRepoRef<V>(v: V): v is RepoRef & V {
6164 return is$typed(v, id, hashRepoRef);
6265}
63666464-export function validateRepoRef<V>(v: V) {
6767+export function validateRepoRef<V>(v: V): ValidationResult<RepoRef & V> {
6568 return validate<RepoRef & V>(v, id, hashRepoRef);
6669}
6770···74777578const hashRepoBlobRef = "repoBlobRef";
76797777-export function isRepoBlobRef<V>(v: V) {
8080+export function isRepoBlobRef<V>(v: V): v is RepoBlobRef & V {
7881 return is$typed(v, id, hashRepoBlobRef);
7982}
80838181-export function validateRepoBlobRef<V>(v: V) {
8484+export function validateRepoBlobRef<V>(
8585+ v: V,
8686+): ValidationResult<RepoBlobRef & V> {
8287 return validate<RepoBlobRef & V>(v, id, hashRepoBlobRef);
8388}
8489···90959196const hashThreatSignature = "threatSignature";
92979393-export function isThreatSignature<V>(v: V) {
9898+export function isThreatSignature<V>(v: V): v is ThreatSignature & V {
9499 return is$typed(v, id, hashThreatSignature);
95100}
961019797-export function validateThreatSignature<V>(v: V) {
102102+export function validateThreatSignature<V>(
103103+ v: V,
104104+): ValidationResult<ThreatSignature & V> {
98105 return validate<ThreatSignature & V>(v, id, hashThreatSignature);
99106}
+5-2
lex/types/com/atproto/identity/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···18191920const hashIdentityInfo = "identityInfo";
20212121-export function isIdentityInfo<V>(v: V) {
2222+export function isIdentityInfo<V>(v: V): v is IdentityInfo & V {
2223 return is$typed(v, id, hashIdentityInfo);
2324}
24252525-export function validateIdentityInfo<V>(v: V) {
2626+export function validateIdentityInfo<V>(
2727+ v: V,
2828+): ValidationResult<IdentityInfo & V> {
2629 return validate<IdentityInfo & V>(v, id, hashIdentityInfo);
2730}
+19-15
lex/types/com/atproto/label/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···32333334const hashLabel = "label";
34353535-export function isLabel<V>(v: V) {
3636+export function isLabel<V>(v: V): v is Label & V {
3637 return is$typed(v, id, hashLabel);
3738}
38393939-export function validateLabel<V>(v: V) {
4040+export function validateLabel<V>(v: V): ValidationResult<Label & V> {
4041 return validate<Label & V>(v, id, hashLabel);
4142}
4243···48494950const hashSelfLabels = "selfLabels";
50515151-export function isSelfLabels<V>(v: V) {
5252+export function isSelfLabels<V>(v: V): v is SelfLabels & V {
5253 return is$typed(v, id, hashSelfLabels);
5354}
54555555-export function validateSelfLabels<V>(v: V) {
5656+export function validateSelfLabels<V>(v: V): ValidationResult<SelfLabels & V> {
5657 return validate<SelfLabels & V>(v, id, hashSelfLabels);
5758}
5859···65666667const hashSelfLabel = "selfLabel";
67686868-export function isSelfLabel<V>(v: V) {
6969+export function isSelfLabel<V>(v: V): v is SelfLabel & V {
6970 return is$typed(v, id, hashSelfLabel);
7071}
71727272-export function validateSelfLabel<V>(v: V) {
7373+export function validateSelfLabel<V>(v: V): ValidationResult<SelfLabel & V> {
7374 return validate<SelfLabel & V>(v, id, hashSelfLabel);
7475}
7576···103104104105const hashLabelValueDefinition = "labelValueDefinition";
105106106106-export function isLabelValueDefinition<V>(v: V) {
107107+export function isLabelValueDefinition<V>(v: V): v is LabelValueDefinition & V {
107108 return is$typed(v, id, hashLabelValueDefinition);
108109}
109110110110-export function validateLabelValueDefinition<V>(v: V) {
111111+export function validateLabelValueDefinition<V>(
112112+ v: V,
113113+): ValidationResult<LabelValueDefinition & V> {
111114 return validate<LabelValueDefinition & V>(v, id, hashLabelValueDefinition);
112115}
113116···124127125128const hashLabelValueDefinitionStrings = "labelValueDefinitionStrings";
126129127127-export function isLabelValueDefinitionStrings<V>(v: V) {
130130+export function isLabelValueDefinitionStrings<V>(
131131+ v: V,
132132+): v is LabelValueDefinitionStrings & V {
128133 return is$typed(v, id, hashLabelValueDefinitionStrings);
129134}
130135131131-export function validateLabelValueDefinitionStrings<V>(v: V) {
136136+export function validateLabelValueDefinitionStrings<V>(
137137+ v: V,
138138+): ValidationResult<LabelValueDefinitionStrings & V> {
132139 return validate<LabelValueDefinitionStrings & V>(
133140 v,
134141 id,
···138145139146export type LabelValue =
140147 | "!hide"
141141- | "!no-promote"
142148 | "!warn"
143149 | "!no-unauthenticated"
144144- | "dmca-violation"
145145- | "doxxing"
146150 | "porn"
147151 | "sexual"
148152 | "nudity"
149149- | "nsfl"
150150- | "gore"
153153+ | "graphic-media"
154154+ | "bot"
151155 | (string & globalThis.Record<PropertyKey, never>);
+5-4
lex/types/com/atproto/label/subscribeLabels.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type { ErrorFrame } from "@atp/xrpc-server";
78import type * as ComAtprotoLabelDefs from "./defs.ts";
···25262627const hashLabels = "labels";
27282828-export function isLabels<V>(v: V) {
2929+export function isLabels<V>(v: V): v is Labels & V {
2930 return is$typed(v, id, hashLabels);
3031}
31323232-export function validateLabels<V>(v: V) {
3333+export function validateLabels<V>(v: V): ValidationResult<Labels & V> {
3334 return validate<Labels & V>(v, id, hashLabels);
3435}
3536···41424243const hashInfo = "info";
43444444-export function isInfo<V>(v: V) {
4545+export function isInfo<V>(v: V): v is Info & V {
4546 return is$typed(v, id, hashInfo);
4647}
47484848-export function validateInfo<V>(v: V) {
4949+export function validateInfo<V>(v: V): ValidationResult<Info & V> {
4950 return validate<Info & V>(v, id, hashInfo);
5051}
+3-2
lex/types/com/atproto/lexicon/schema.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···16171718const hashRecord = "main";
18191919-export function isRecord<V>(v: V) {
2020+export function isRecord<V>(v: V): v is Record & V {
2021 return is$typed(v, id, hashRecord);
2122}
22232323-export function validateRecord<V>(v: V) {
2424+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
2425 return validate<Record & V>(v, id, hashRecord, true);
2526}
2627
+3-2
lex/types/com/atproto/moderation/createReport.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as ComAtprotoModerationDefs from "./defs.ts";
78import type * as ComAtprotoAdminDefs from "../admin/defs.ts";
···64656566const hashModTool = "modTool";
66676767-export function isModTool<V>(v: V) {
6868+export function isModTool<V>(v: V): v is ModTool & V {
6869 return is$typed(v, id, hashModTool);
6970}
70717171-export function validateModTool<V>(v: V) {
7272+export function validateModTool<V>(v: V): ValidationResult<ModTool & V> {
7273 return validate<ModTool & V>(v, id, hashModTool);
7374}
+7-7
lex/types/com/atproto/moderation/defs.ts
···5454 | (string & globalThis.Record<PropertyKey, never>);
55555656/** Spam: frequent unwanted promotion, replies, mentions. Prefer new lexicon definition `tools.ozone.report.defs#reasonMisleadingSpam`. */
5757-export const REASONSPAM = `${id}#reasonSpam`;
5757+export const REASONSPAM: string = `${id}#reasonSpam`;
5858/** Direct violation of server rules, laws, terms of service. Prefer new lexicon definition `tools.ozone.report.defs#reasonRuleOther`. */
5959-export const REASONVIOLATION = `${id}#reasonViolation`;
5959+export const REASONVIOLATION: string = `${id}#reasonViolation`;
6060/** Misleading identity, affiliation, or content. Prefer new lexicon definition `tools.ozone.report.defs#reasonMisleadingOther`. */
6161-export const REASONMISLEADING = `${id}#reasonMisleading`;
6161+export const REASONMISLEADING: string = `${id}#reasonMisleading`;
6262/** Unwanted or mislabeled sexual content. Prefer new lexicon definition `tools.ozone.report.defs#reasonSexualUnlabeled`. */
6363-export const REASONSEXUAL = `${id}#reasonSexual`;
6363+export const REASONSEXUAL: string = `${id}#reasonSexual`;
6464/** Rude, harassing, explicit, or otherwise unwelcoming behavior. Prefer new lexicon definition `tools.ozone.report.defs#reasonHarassmentOther`. */
6565-export const REASONRUDE = `${id}#reasonRude`;
6565+export const REASONRUDE: string = `${id}#reasonRude`;
6666/** Reports not falling under another report category. Prefer new lexicon definition `tools.ozone.report.defs#reasonOther`. */
6767-export const REASONOTHER = `${id}#reasonOther`;
6767+export const REASONOTHER: string = `${id}#reasonOther`;
6868/** Appeal a previously taken moderation action */
6969-export const REASONAPPEAL = `${id}#reasonAppeal`;
6969+export const REASONAPPEAL: string = `${id}#reasonAppeal`;
70707171/** Tag describing a type of subject that might be reported. */
7272export type SubjectType =
+19-12
lex/types/com/atproto/repo/applyWrites.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as ComAtprotoRepoDefs from "./defs.ts";
78···56575758const hashCreate = "create";
58595959-export function isCreate<V>(v: V) {
6060+export function isCreate<V>(v: V): v is Create & V {
6061 return is$typed(v, id, hashCreate);
6162}
62636363-export function validateCreate<V>(v: V) {
6464+export function validateCreate<V>(v: V): ValidationResult<Create & V> {
6465 return validate<Create & V>(v, id, hashCreate);
6566}
6667···74757576const hashUpdate = "update";
76777777-export function isUpdate<V>(v: V) {
7878+export function isUpdate<V>(v: V): v is Update & V {
7879 return is$typed(v, id, hashUpdate);
7980}
80818181-export function validateUpdate<V>(v: V) {
8282+export function validateUpdate<V>(v: V): ValidationResult<Update & V> {
8283 return validate<Update & V>(v, id, hashUpdate);
8384}
8485···91929293const hashDelete = "delete";
93949494-export function isDelete<V>(v: V) {
9595+export function isDelete<V>(v: V): v is Delete & V {
9596 return is$typed(v, id, hashDelete);
9697}
97989898-export function validateDelete<V>(v: V) {
9999+export function validateDelete<V>(v: V): ValidationResult<Delete & V> {
99100 return validate<Delete & V>(v, id, hashDelete);
100101}
101102···111112112113const hashCreateResult = "createResult";
113114114114-export function isCreateResult<V>(v: V) {
115115+export function isCreateResult<V>(v: V): v is CreateResult & V {
115116 return is$typed(v, id, hashCreateResult);
116117}
117118118118-export function validateCreateResult<V>(v: V) {
119119+export function validateCreateResult<V>(
120120+ v: V,
121121+): ValidationResult<CreateResult & V> {
119122 return validate<CreateResult & V>(v, id, hashCreateResult);
120123}
121124···131134132135const hashUpdateResult = "updateResult";
133136134134-export function isUpdateResult<V>(v: V) {
137137+export function isUpdateResult<V>(v: V): v is UpdateResult & V {
135138 return is$typed(v, id, hashUpdateResult);
136139}
137140138138-export function validateUpdateResult<V>(v: V) {
141141+export function validateUpdateResult<V>(
142142+ v: V,
143143+): ValidationResult<UpdateResult & V> {
139144 return validate<UpdateResult & V>(v, id, hashUpdateResult);
140145}
141146···145150146151const hashDeleteResult = "deleteResult";
147152148148-export function isDeleteResult<V>(v: V) {
153153+export function isDeleteResult<V>(v: V): v is DeleteResult & V {
149154 return is$typed(v, id, hashDeleteResult);
150155}
151156152152-export function validateDeleteResult<V>(v: V) {
157157+export function validateDeleteResult<V>(
158158+ v: V,
159159+): ValidationResult<DeleteResult & V> {
153160 return validate<DeleteResult & V>(v, id, hashDeleteResult);
154161}
+3-2
lex/types/com/atproto/repo/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···15161617const hashCommitMeta = "commitMeta";
17181818-export function isCommitMeta<V>(v: V) {
1919+export function isCommitMeta<V>(v: V): v is CommitMeta & V {
1920 return is$typed(v, id, hashCommitMeta);
2021}
21222222-export function validateCommitMeta<V>(v: V) {
2323+export function validateCommitMeta<V>(v: V): ValidationResult<CommitMeta & V> {
2324 return validate<CommitMeta & V>(v, id, hashCommitMeta);
2425}
+3-2
lex/types/com/atproto/repo/listMissingBlobs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···41424243const hashRecordBlob = "recordBlob";
43444444-export function isRecordBlob<V>(v: V) {
4545+export function isRecordBlob<V>(v: V): v is RecordBlob & V {
4546 return is$typed(v, id, hashRecordBlob);
4647}
47484848-export function validateRecordBlob<V>(v: V) {
4949+export function validateRecordBlob<V>(v: V): ValidationResult<RecordBlob & V> {
4950 return validate<RecordBlob & V>(v, id, hashRecordBlob);
5051}
+3-2
lex/types/com/atproto/repo/listRecords.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···49505051const hashRecord = "record";
51525252-export function isRecord<V>(v: V) {
5353+export function isRecord<V>(v: V): v is Record & V {
5354 return is$typed(v, id, hashRecord);
5455}
55565656-export function validateRecord<V>(v: V) {
5757+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
5758 return validate<Record & V>(v, id, hashRecord);
5859}
+3-2
lex/types/com/atproto/repo/strongRef.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···15161617const hashMain = "main";
17181818-export function isMain<V>(v: V) {
1919+export function isMain<V>(v: V): v is Main & V {
1920 return is$typed(v, id, hashMain);
2021}
21222222-export function validateMain<V>(v: V) {
2323+export function validateMain<V>(v: V): ValidationResult<Main & V> {
2324 return validate<Main & V>(v, id, hashMain);
2425}
+5-2
lex/types/com/atproto/server/createAppPassword.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···47484849const hashAppPassword = "appPassword";
49505050-export function isAppPassword<V>(v: V) {
5151+export function isAppPassword<V>(v: V): v is AppPassword & V {
5152 return is$typed(v, id, hashAppPassword);
5253}
53545454-export function validateAppPassword<V>(v: V) {
5555+export function validateAppPassword<V>(
5656+ v: V,
5757+): ValidationResult<AppPassword & V> {
5558 return validate<AppPassword & V>(v, id, hashAppPassword);
5659}
+5-2
lex/types/com/atproto/server/createInviteCodes.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···45464647const hashAccountCodes = "accountCodes";
47484848-export function isAccountCodes<V>(v: V) {
4949+export function isAccountCodes<V>(v: V): v is AccountCodes & V {
4950 return is$typed(v, id, hashAccountCodes);
5051}
51525252-export function validateAccountCodes<V>(v: V) {
5353+export function validateAccountCodes<V>(
5454+ v: V,
5555+): ValidationResult<AccountCodes & V> {
5356 return validate<AccountCodes & V>(v, id, hashAccountCodes);
5457}
+7-4
lex/types/com/atproto/server/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···20212122const hashInviteCode = "inviteCode";
22232323-export function isInviteCode<V>(v: V) {
2424+export function isInviteCode<V>(v: V): v is InviteCode & V {
2425 return is$typed(v, id, hashInviteCode);
2526}
26272727-export function validateInviteCode<V>(v: V) {
2828+export function validateInviteCode<V>(v: V): ValidationResult<InviteCode & V> {
2829 return validate<InviteCode & V>(v, id, hashInviteCode);
2930}
3031···36373738const hashInviteCodeUse = "inviteCodeUse";
38393939-export function isInviteCodeUse<V>(v: V) {
4040+export function isInviteCodeUse<V>(v: V): v is InviteCodeUse & V {
4041 return is$typed(v, id, hashInviteCodeUse);
4142}
42434343-export function validateInviteCodeUse<V>(v: V) {
4444+export function validateInviteCodeUse<V>(
4545+ v: V,
4646+): ValidationResult<InviteCodeUse & V> {
4447 return validate<InviteCodeUse & V>(v, id, hashInviteCodeUse);
4548}
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···45464647const hashLinks = "links";
47484848-export function isLinks<V>(v: V) {
4949+export function isLinks<V>(v: V): v is Links & V {
4950 return is$typed(v, id, hashLinks);
5051}
51525252-export function validateLinks<V>(v: V) {
5353+export function validateLinks<V>(v: V): ValidationResult<Links & V> {
5354 return validate<Links & V>(v, id, hashLinks);
5455}
5556···60616162const hashContact = "contact";
62636363-export function isContact<V>(v: V) {
6464+export function isContact<V>(v: V): v is Contact & V {
6465 return is$typed(v, id, hashContact);
6566}
66676767-export function validateContact<V>(v: V) {
6868+export function validateContact<V>(v: V): ValidationResult<Contact & V> {
6869 return validate<Contact & V>(v, id, hashContact);
6970}
+1-1
lex/types/com/atproto/server/getSession.ts
···77export interface OutputSchema {
88 handle: string;
99 did: string;
1010+ didDoc?: { [_ in string]: unknown };
1011 email?: string;
1112 emailConfirmed?: boolean;
1213 emailAuthFactor?: boolean;
1313- didDoc?: { [_ in string]: unknown };
1414 active?: boolean;
1515 /** If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted. */
1616 status?:
+5-2
lex/types/com/atproto/server/listAppPasswords.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···39404041const hashAppPassword = "appPassword";
41424242-export function isAppPassword<V>(v: V) {
4343+export function isAppPassword<V>(v: V): v is AppPassword & V {
4344 return is$typed(v, id, hashAppPassword);
4445}
45464646-export function validateAppPassword<V>(v: V) {
4747+export function validateAppPassword<V>(
4848+ v: V,
4949+): ValidationResult<AppPassword & V> {
4750 return validate<AppPassword & V>(v, id, hashAppPassword);
4851}
+4-1
lex/types/com/atproto/server/refreshSession.ts
···1010 handle: string;
1111 did: string;
1212 didDoc?: { [_ in string]: unknown };
1313+ email?: string;
1414+ emailConfirmed?: boolean;
1515+ emailAuthFactor?: boolean;
1316 active?: boolean;
1417 /** Hosting status of the account. If not specified, then assume 'active'. */
1518 status?:
···3033export interface HandlerError {
3134 status: number;
3235 message?: string;
3333- error?: "AccountTakedown";
3636+ error?: "AccountTakedown" | "InvalidToken" | "ExpiredToken";
3437}
35383639export type HandlerOutput = HandlerError | HandlerSuccess;
+3-2
lex/types/com/atproto/sync/listHosts.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as ComAtprotoSyncDefs from "./defs.ts";
78···47484849const hashHost = "host";
49505050-export function isHost<V>(v: V) {
5151+export function isHost<V>(v: V): v is Host & V {
5152 return is$typed(v, id, hashHost);
5253}
53545454-export function validateHost<V>(v: V) {
5555+export function validateHost<V>(v: V): ValidationResult<Host & V> {
5556 return validate<Host & V>(v, id, hashHost);
5657}
+3-2
lex/types/com/atproto/sync/listRepos.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···53545455const hashRepo = "repo";
55565656-export function isRepo<V>(v: V) {
5757+export function isRepo<V>(v: V): v is Repo & V {
5758 return is$typed(v, id, hashRepo);
5859}
59606060-export function validateRepo<V>(v: V) {
6161+export function validateRepo<V>(v: V): ValidationResult<Repo & V> {
6162 return validate<Repo & V>(v, id, hashRepo);
6263}
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···48494950const hashResultAvailable = "resultAvailable";
50515151-export function isResultAvailable<V>(v: V) {
5252+export function isResultAvailable<V>(v: V): v is ResultAvailable & V {
5253 return is$typed(v, id, hashResultAvailable);
5354}
54555555-export function validateResultAvailable<V>(v: V) {
5656+export function validateResultAvailable<V>(
5757+ v: V,
5858+): ValidationResult<ResultAvailable & V> {
5659 return validate<ResultAvailable & V>(v, id, hashResultAvailable);
5760}
5861···65686669const hashResultUnavailable = "resultUnavailable";
67706868-export function isResultUnavailable<V>(v: V) {
7171+export function isResultUnavailable<V>(v: V): v is ResultUnavailable & V {
6972 return is$typed(v, id, hashResultUnavailable);
7073}
71747272-export function validateResultUnavailable<V>(v: V) {
7575+export function validateResultUnavailable<V>(
7676+ v: V,
7777+): ValidationResult<ResultUnavailable & V> {
7378 return validate<ResultUnavailable & V>(v, id, hashResultUnavailable);
7479}
7580···82878388const hashSuggestion = "suggestion";
84898585-export function isSuggestion<V>(v: V) {
9090+export function isSuggestion<V>(v: V): v is Suggestion & V {
8691 return is$typed(v, id, hashSuggestion);
8792}
88938989-export function validateSuggestion<V>(v: V) {
9494+export function validateSuggestion<V>(v: V): ValidationResult<Suggestion & V> {
9095 return validate<Suggestion & V>(v, id, hashSuggestion);
9196}
+75-38
lex/types/so/sprk/actor/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
78import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
···26272728const hashProfileViewBasic = "profileViewBasic";
28292929-export function isProfileViewBasic<V>(v: V) {
3030+export function isProfileViewBasic<V>(v: V): v is ProfileViewBasic & V {
3031 return is$typed(v, id, hashProfileViewBasic);
3132}
32333333-export function validateProfileViewBasic<V>(v: V) {
3434+export function validateProfileViewBasic<V>(
3535+ v: V,
3636+): ValidationResult<ProfileViewBasic & V> {
3437 return validate<ProfileViewBasic & V>(v, id, hashProfileViewBasic);
3538}
3639···52555356const hashProfileView = "profileView";
54575555-export function isProfileView<V>(v: V) {
5858+export function isProfileView<V>(v: V): v is ProfileView & V {
5659 return is$typed(v, id, hashProfileView);
5760}
58615959-export function validateProfileView<V>(v: V) {
6262+export function validateProfileView<V>(
6363+ v: V,
6464+): ValidationResult<ProfileView & V> {
6065 return validate<ProfileView & V>(v, id, hashProfileView);
6166}
6267···83888489const hashProfileViewDetailed = "profileViewDetailed";
85908686-export function isProfileViewDetailed<V>(v: V) {
9191+export function isProfileViewDetailed<V>(v: V): v is ProfileViewDetailed & V {
8792 return is$typed(v, id, hashProfileViewDetailed);
8893}
89949090-export function validateProfileViewDetailed<V>(v: V) {
9595+export function validateProfileViewDetailed<V>(
9696+ v: V,
9797+): ValidationResult<ProfileViewDetailed & V> {
9198 return validate<ProfileViewDetailed & V>(v, id, hashProfileViewDetailed);
9299}
93100···100107101108const hashProfileAssociated = "profileAssociated";
102109103103-export function isProfileAssociated<V>(v: V) {
110110+export function isProfileAssociated<V>(v: V): v is ProfileAssociated & V {
104111 return is$typed(v, id, hashProfileAssociated);
105112}
106113107107-export function validateProfileAssociated<V>(v: V) {
114114+export function validateProfileAssociated<V>(
115115+ v: V,
116116+): ValidationResult<ProfileAssociated & V> {
108117 return validate<ProfileAssociated & V>(v, id, hashProfileAssociated);
109118}
110119···119128120129const hashProfileAssociatedChat = "profileAssociatedChat";
121130122122-export function isProfileAssociatedChat<V>(v: V) {
131131+export function isProfileAssociatedChat<V>(
132132+ v: V,
133133+): v is ProfileAssociatedChat & V {
123134 return is$typed(v, id, hashProfileAssociatedChat);
124135}
125136126126-export function validateProfileAssociatedChat<V>(v: V) {
137137+export function validateProfileAssociatedChat<V>(
138138+ v: V,
139139+): ValidationResult<ProfileAssociatedChat & V> {
127140 return validate<ProfileAssociatedChat & V>(v, id, hashProfileAssociatedChat);
128141}
129142···140153141154const hashViewerState = "viewerState";
142155143143-export function isViewerState<V>(v: V) {
156156+export function isViewerState<V>(v: V): v is ViewerState & V {
144157 return is$typed(v, id, hashViewerState);
145158}
146159147147-export function validateViewerState<V>(v: V) {
160160+export function validateViewerState<V>(
161161+ v: V,
162162+): ValidationResult<ViewerState & V> {
148163 return validate<ViewerState & V>(v, id, hashViewerState);
149164}
150165···157172158173const hashKnownFollowers = "knownFollowers";
159174160160-export function isKnownFollowers<V>(v: V) {
175175+export function isKnownFollowers<V>(v: V): v is KnownFollowers & V {
161176 return is$typed(v, id, hashKnownFollowers);
162177}
163178164164-export function validateKnownFollowers<V>(v: V) {
179179+export function validateKnownFollowers<V>(
180180+ v: V,
181181+): ValidationResult<KnownFollowers & V> {
165182 return validate<KnownFollowers & V>(v, id, hashKnownFollowers);
166183}
167184···193210194211const hashContentLabelPref = "contentLabelPref";
195212196196-export function isContentLabelPref<V>(v: V) {
213213+export function isContentLabelPref<V>(v: V): v is ContentLabelPref & V {
197214 return is$typed(v, id, hashContentLabelPref);
198215}
199216200200-export function validateContentLabelPref<V>(v: V) {
217217+export function validateContentLabelPref<V>(
218218+ v: V,
219219+): ValidationResult<ContentLabelPref & V> {
201220 return validate<ContentLabelPref & V>(v, id, hashContentLabelPref);
202221}
203222···211230212231const hashSavedFeed = "savedFeed";
213232214214-export function isSavedFeed<V>(v: V) {
233233+export function isSavedFeed<V>(v: V): v is SavedFeed & V {
215234 return is$typed(v, id, hashSavedFeed);
216235}
217236218218-export function validateSavedFeed<V>(v: V) {
237237+export function validateSavedFeed<V>(v: V): ValidationResult<SavedFeed & V> {
219238 return validate<SavedFeed & V>(v, id, hashSavedFeed);
220239}
221240···226245227246const hashSavedFeedsPref = "savedFeedsPref";
228247229229-export function isSavedFeedsPref<V>(v: V) {
248248+export function isSavedFeedsPref<V>(v: V): v is SavedFeedsPref & V {
230249 return is$typed(v, id, hashSavedFeedsPref);
231250}
232251233233-export function validateSavedFeedsPref<V>(v: V) {
252252+export function validateSavedFeedsPref<V>(
253253+ v: V,
254254+): ValidationResult<SavedFeedsPref & V> {
234255 return validate<SavedFeedsPref & V>(v, id, hashSavedFeedsPref);
235256}
236257···242263243264const hashPersonalDetailsPref = "personalDetailsPref";
244265245245-export function isPersonalDetailsPref<V>(v: V) {
266266+export function isPersonalDetailsPref<V>(v: V): v is PersonalDetailsPref & V {
246267 return is$typed(v, id, hashPersonalDetailsPref);
247268}
248269249249-export function validatePersonalDetailsPref<V>(v: V) {
270270+export function validatePersonalDetailsPref<V>(
271271+ v: V,
272272+): ValidationResult<PersonalDetailsPref & V> {
250273 return validate<PersonalDetailsPref & V>(v, id, hashPersonalDetailsPref);
251274}
252275···268291269292const hashFeedViewPref = "feedViewPref";
270293271271-export function isFeedViewPref<V>(v: V) {
294294+export function isFeedViewPref<V>(v: V): v is FeedViewPref & V {
272295 return is$typed(v, id, hashFeedViewPref);
273296}
274297275275-export function validateFeedViewPref<V>(v: V) {
298298+export function validateFeedViewPref<V>(
299299+ v: V,
300300+): ValidationResult<FeedViewPref & V> {
276301 return validate<FeedViewPref & V>(v, id, hashFeedViewPref);
277302}
278303···290315291316const hashThreadViewPref = "threadViewPref";
292317293293-export function isThreadViewPref<V>(v: V) {
318318+export function isThreadViewPref<V>(v: V): v is ThreadViewPref & V {
294319 return is$typed(v, id, hashThreadViewPref);
295320}
296321297297-export function validateThreadViewPref<V>(v: V) {
322322+export function validateThreadViewPref<V>(
323323+ v: V,
324324+): ValidationResult<ThreadViewPref & V> {
298325 return validate<ThreadViewPref & V>(v, id, hashThreadViewPref);
299326}
300327···306333307334const hashInterestsPref = "interestsPref";
308335309309-export function isInterestsPref<V>(v: V) {
336336+export function isInterestsPref<V>(v: V): v is InterestsPref & V {
310337 return is$typed(v, id, hashInterestsPref);
311338}
312339313313-export function validateInterestsPref<V>(v: V) {
340340+export function validateInterestsPref<V>(
341341+ v: V,
342342+): ValidationResult<InterestsPref & V> {
314343 return validate<InterestsPref & V>(v, id, hashInterestsPref);
315344}
316345···338367339368const hashMutedWord = "mutedWord";
340369341341-export function isMutedWord<V>(v: V) {
370370+export function isMutedWord<V>(v: V): v is MutedWord & V {
342371 return is$typed(v, id, hashMutedWord);
343372}
344373345345-export function validateMutedWord<V>(v: V) {
374374+export function validateMutedWord<V>(v: V): ValidationResult<MutedWord & V> {
346375 return validate<MutedWord & V>(v, id, hashMutedWord);
347376}
348377···354383355384const hashMutedWordsPref = "mutedWordsPref";
356385357357-export function isMutedWordsPref<V>(v: V) {
386386+export function isMutedWordsPref<V>(v: V): v is MutedWordsPref & V {
358387 return is$typed(v, id, hashMutedWordsPref);
359388}
360389361361-export function validateMutedWordsPref<V>(v: V) {
390390+export function validateMutedWordsPref<V>(
391391+ v: V,
392392+): ValidationResult<MutedWordsPref & V> {
362393 return validate<MutedWordsPref & V>(v, id, hashMutedWordsPref);
363394}
364395···370401371402const hashHiddenPostsPref = "hiddenPostsPref";
372403373373-export function isHiddenPostsPref<V>(v: V) {
404404+export function isHiddenPostsPref<V>(v: V): v is HiddenPostsPref & V {
374405 return is$typed(v, id, hashHiddenPostsPref);
375406}
376407377377-export function validateHiddenPostsPref<V>(v: V) {
408408+export function validateHiddenPostsPref<V>(
409409+ v: V,
410410+): ValidationResult<HiddenPostsPref & V> {
378411 return validate<HiddenPostsPref & V>(v, id, hashHiddenPostsPref);
379412}
380413···385418386419const hashLabelersPref = "labelersPref";
387420388388-export function isLabelersPref<V>(v: V) {
421421+export function isLabelersPref<V>(v: V): v is LabelersPref & V {
389422 return is$typed(v, id, hashLabelersPref);
390423}
391424392392-export function validateLabelersPref<V>(v: V) {
425425+export function validateLabelersPref<V>(
426426+ v: V,
427427+): ValidationResult<LabelersPref & V> {
393428 return validate<LabelersPref & V>(v, id, hashLabelersPref);
394429}
395430···400435401436const hashLabelerPrefItem = "labelerPrefItem";
402437403403-export function isLabelerPrefItem<V>(v: V) {
438438+export function isLabelerPrefItem<V>(v: V): v is LabelerPrefItem & V {
404439 return is$typed(v, id, hashLabelerPrefItem);
405440}
406441407407-export function validateLabelerPrefItem<V>(v: V) {
442442+export function validateLabelerPrefItem<V>(
443443+ v: V,
444444+): ValidationResult<LabelerPrefItem & V> {
408445 return validate<LabelerPrefItem & V>(v, id, hashLabelerPrefItem);
409446}
+3-2
lex/types/so/sprk/actor/profile.ts
···33 */
44import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66+import type { ValidationResult } from "@atp/lexicon";
67import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
78import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
89import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
···28292930const hashRecord = "main";
30313131-export function isRecord<V>(v: V) {
3232+export function isRecord<V>(v: V): v is Record & V {
3233 return is$typed(v, id, hashRecord);
3334}
34353535-export function validateRecord<V>(v: V) {
3636+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
3637 return validate<Record & V>(v, id, hashRecord, true);
3738}
3839
+7-6
lex/types/so/sprk/embed/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as SoSprkEmbedMention from "./mention.ts";
78import type * as SoSprkEmbedRecord from "./record.ts";
···29303031const hashPlacement = "placement";
31323232-export function isPlacement<V>(v: V) {
3333+export function isPlacement<V>(v: V): v is Placement & V {
3334 return is$typed(v, id, hashPlacement);
3435}
35363636-export function validatePlacement<V>(v: V) {
3737+export function validatePlacement<V>(v: V): ValidationResult<Placement & V> {
3738 return validate<Placement & V>(v, id, hashPlacement);
3839}
3940···48494950const hashFrame = "frame";
50515151-export function isFrame<V>(v: V) {
5252+export function isFrame<V>(v: V): v is Frame & V {
5253 return is$typed(v, id, hashFrame);
5354}
54555555-export function validateFrame<V>(v: V) {
5656+export function validateFrame<V>(v: V): ValidationResult<Frame & V> {
5657 return validate<Frame & V>(v, id, hashFrame);
5758}
5859···64656566const hashMediaRef = "mediaRef";
66676767-export function isMediaRef<V>(v: V) {
6868+export function isMediaRef<V>(v: V): v is MediaRef & V {
6869 return is$typed(v, id, hashMediaRef);
6970}
70717171-export function validateMediaRef<V>(v: V) {
7272+export function validateMediaRef<V>(v: V): ValidationResult<MediaRef & V> {
7273 return validate<MediaRef & V>(v, id, hashMediaRef);
7374}
+5-4
lex/types/so/sprk/embed/mention.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as SoSprkEmbedDefs from "./defs.ts";
78import type * as SoSprkActorDefs from "../actor/defs.ts";
···17181819const hashMain = "main";
19202020-export function isMain<V>(v: V) {
2121+export function isMain<V>(v: V): v is Main & V {
2122 return is$typed(v, id, hashMain);
2223}
23242424-export function validateMain<V>(v: V) {
2525+export function validateMain<V>(v: V): ValidationResult<Main & V> {
2526 return validate<Main & V>(v, id, hashMain);
2627}
2728···34353536const hashView = "view";
36373737-export function isView<V>(v: V) {
3838+export function isView<V>(v: V): v is View & V {
3839 return is$typed(v, id, hashView);
3940}
40414141-export function validateView<V>(v: V) {
4242+export function validateView<V>(v: V): ValidationResult<View & V> {
4243 return validate<View & V>(v, id, hashView);
4344}
+5-4
lex/types/so/sprk/embed/record.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as SoSprkEmbedDefs from "./defs.ts";
78import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
···18191920const hashMain = "main";
20212121-export function isMain<V>(v: V) {
2222+export function isMain<V>(v: V): v is Main & V {
2223 return is$typed(v, id, hashMain);
2324}
24252525-export function validateMain<V>(v: V) {
2626+export function validateMain<V>(v: V): ValidationResult<Main & V> {
2627 return validate<Main & V>(v, id, hashMain);
2728}
2829···38393940const hashView = "view";
40414141-export function isView<V>(v: V) {
4242+export function isView<V>(v: V): v is View & V {
4243 return is$typed(v, id, hashView);
4344}
44454545-export function validateView<V>(v: V) {
4646+export function validateView<V>(v: V): ValidationResult<View & V> {
4647 return validate<View & V>(v, id, hashView);
4748}
+78-49
lex/types/so/sprk/feed/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as SoSprkActorDefs from "../actor/defs.ts";
78import type * as SoSprkMediaImages from "../media/images.ts";
···35363637const hashPostView = "postView";
37383838-export function isPostView<V>(v: V) {
3939+export function isPostView<V>(v: V): v is PostView & V {
3940 return is$typed(v, id, hashPostView);
4041}
41424242-export function validatePostView<V>(v: V) {
4343+export function validatePostView<V>(v: V): ValidationResult<PostView & V> {
4344 return validate<PostView & V>(v, id, hashPostView);
4445}
4546···59606061const hashReplyView = "replyView";
61626262-export function isReplyView<V>(v: V) {
6363+export function isReplyView<V>(v: V): v is ReplyView & V {
6364 return is$typed(v, id, hashReplyView);
6465}
65666666-export function validateReplyView<V>(v: V) {
6767+export function validateReplyView<V>(v: V): ValidationResult<ReplyView & V> {
6768 return validate<ReplyView & V>(v, id, hashReplyView);
6869}
6970···78797980const hashReplyViewerState = "replyViewerState";
80818181-export function isReplyViewerState<V>(v: V) {
8282+export function isReplyViewerState<V>(v: V): v is ReplyViewerState & V {
8283 return is$typed(v, id, hashReplyViewerState);
8384}
84858585-export function validateReplyViewerState<V>(v: V) {
8686+export function validateReplyViewerState<V>(
8787+ v: V,
8888+): ValidationResult<ReplyViewerState & V> {
8689 return validate<ReplyViewerState & V>(v, id, hashReplyViewerState);
8790}
8891···102105103106const hashViewerState = "viewerState";
104107105105-export function isViewerState<V>(v: V) {
108108+export function isViewerState<V>(v: V): v is ViewerState & V {
106109 return is$typed(v, id, hashViewerState);
107110}
108111109109-export function validateViewerState<V>(v: V) {
112112+export function validateViewerState<V>(
113113+ v: V,
114114+): ValidationResult<ViewerState & V> {
110115 return validate<ViewerState & V>(v, id, hashViewerState);
111116}
112117···120125121126const hashKnownRepost = "knownRepost";
122127123123-export function isKnownRepost<V>(v: V) {
128128+export function isKnownRepost<V>(v: V): v is KnownRepost & V {
124129 return is$typed(v, id, hashKnownRepost);
125130}
126131127127-export function validateKnownRepost<V>(v: V) {
132132+export function validateKnownRepost<V>(
133133+ v: V,
134134+): ValidationResult<KnownRepost & V> {
128135 return validate<KnownRepost & V>(v, id, hashKnownRepost);
129136}
130137···138145139146const hashKnownLike = "knownLike";
140147141141-export function isKnownLike<V>(v: V) {
148148+export function isKnownLike<V>(v: V): v is KnownLike & V {
142149 return is$typed(v, id, hashKnownLike);
143150}
144151145145-export function validateKnownLike<V>(v: V) {
152152+export function validateKnownLike<V>(v: V): ValidationResult<KnownLike & V> {
146153 return validate<KnownLike & V>(v, id, hashKnownLike);
147154}
148155···157164158165const hashKnownReply = "knownReply";
159166160160-export function isKnownReply<V>(v: V) {
167167+export function isKnownReply<V>(v: V): v is KnownReply & V {
161168 return is$typed(v, id, hashKnownReply);
162169}
163170164164-export function validateKnownReply<V>(v: V) {
171171+export function validateKnownReply<V>(v: V): ValidationResult<KnownReply & V> {
165172 return validate<KnownReply & V>(v, id, hashKnownReply);
166173}
167174···173180174181const hashThreadContext = "threadContext";
175182176176-export function isThreadContext<V>(v: V) {
183183+export function isThreadContext<V>(v: V): v is ThreadContext & V {
177184 return is$typed(v, id, hashThreadContext);
178185}
179186180180-export function validateThreadContext<V>(v: V) {
187187+export function validateThreadContext<V>(
188188+ v: V,
189189+): ValidationResult<ThreadContext & V> {
181190 return validate<ThreadContext & V>(v, id, hashThreadContext);
182191}
183192···190199191200const hashFeedViewPost = "feedViewPost";
192201193193-export function isFeedViewPost<V>(v: V) {
202202+export function isFeedViewPost<V>(v: V): v is FeedViewPost & V {
194203 return is$typed(v, id, hashFeedViewPost);
195204}
196205197197-export function validateFeedViewPost<V>(v: V) {
206206+export function validateFeedViewPost<V>(
207207+ v: V,
208208+): ValidationResult<FeedViewPost & V> {
198209 return validate<FeedViewPost & V>(v, id, hashFeedViewPost);
199210}
200211···214225215226const hashReplyRef = "replyRef";
216227217217-export function isReplyRef<V>(v: V) {
228228+export function isReplyRef<V>(v: V): v is ReplyRef & V {
218229 return is$typed(v, id, hashReplyRef);
219230}
220231221221-export function validateReplyRef<V>(v: V) {
232232+export function validateReplyRef<V>(v: V): ValidationResult<ReplyRef & V> {
222233 return validate<ReplyRef & V>(v, id, hashReplyRef);
223234}
224235···239250240251const hashThreadViewPost = "threadViewPost";
241252242242-export function isThreadViewPost<V>(v: V) {
253253+export function isThreadViewPost<V>(v: V): v is ThreadViewPost & V {
243254 return is$typed(v, id, hashThreadViewPost);
244255}
245256246246-export function validateThreadViewPost<V>(v: V) {
257257+export function validateThreadViewPost<V>(
258258+ v: V,
259259+): ValidationResult<ThreadViewPost & V> {
247260 return validate<ThreadViewPost & V>(v, id, hashThreadViewPost);
248261}
249262···255268256269const hashNotFoundPost = "notFoundPost";
257270258258-export function isNotFoundPost<V>(v: V) {
271271+export function isNotFoundPost<V>(v: V): v is NotFoundPost & V {
259272 return is$typed(v, id, hashNotFoundPost);
260273}
261274262262-export function validateNotFoundPost<V>(v: V) {
275275+export function validateNotFoundPost<V>(
276276+ v: V,
277277+): ValidationResult<NotFoundPost & V> {
263278 return validate<NotFoundPost & V>(v, id, hashNotFoundPost);
264279}
265280···272287273288const hashBlockedPost = "blockedPost";
274289275275-export function isBlockedPost<V>(v: V) {
290290+export function isBlockedPost<V>(v: V): v is BlockedPost & V {
276291 return is$typed(v, id, hashBlockedPost);
277292}
278293279279-export function validateBlockedPost<V>(v: V) {
294294+export function validateBlockedPost<V>(
295295+ v: V,
296296+): ValidationResult<BlockedPost & V> {
280297 return validate<BlockedPost & V>(v, id, hashBlockedPost);
281298}
282299···288305289306const hashBlockedAuthor = "blockedAuthor";
290307291291-export function isBlockedAuthor<V>(v: V) {
308308+export function isBlockedAuthor<V>(v: V): v is BlockedAuthor & V {
292309 return is$typed(v, id, hashBlockedAuthor);
293310}
294311295295-export function validateBlockedAuthor<V>(v: V) {
312312+export function validateBlockedAuthor<V>(
313313+ v: V,
314314+): ValidationResult<BlockedAuthor & V> {
296315 return validate<BlockedAuthor & V>(v, id, hashBlockedAuthor);
297316}
298317···315334316335const hashGeneratorView = "generatorView";
317336318318-export function isGeneratorView<V>(v: V) {
337337+export function isGeneratorView<V>(v: V): v is GeneratorView & V {
319338 return is$typed(v, id, hashGeneratorView);
320339}
321340322322-export function validateGeneratorView<V>(v: V) {
341341+export function validateGeneratorView<V>(
342342+ v: V,
343343+): ValidationResult<GeneratorView & V> {
323344 return validate<GeneratorView & V>(v, id, hashGeneratorView);
324345}
325346···330351331352const hashGeneratorViewerState = "generatorViewerState";
332353333333-export function isGeneratorViewerState<V>(v: V) {
354354+export function isGeneratorViewerState<V>(v: V): v is GeneratorViewerState & V {
334355 return is$typed(v, id, hashGeneratorViewerState);
335356}
336357337337-export function validateGeneratorViewerState<V>(v: V) {
358358+export function validateGeneratorViewerState<V>(
359359+ v: V,
360360+): ValidationResult<GeneratorViewerState & V> {
338361 return validate<GeneratorViewerState & V>(v, id, hashGeneratorViewerState);
339362}
340363···347370348371const hashSkeletonFeedPost = "skeletonFeedPost";
349372350350-export function isSkeletonFeedPost<V>(v: V) {
373373+export function isSkeletonFeedPost<V>(v: V): v is SkeletonFeedPost & V {
351374 return is$typed(v, id, hashSkeletonFeedPost);
352375}
353376354354-export function validateSkeletonFeedPost<V>(v: V) {
377377+export function validateSkeletonFeedPost<V>(
378378+ v: V,
379379+): ValidationResult<SkeletonFeedPost & V> {
355380 return validate<SkeletonFeedPost & V>(v, id, hashSkeletonFeedPost);
356381}
357382···364389365390const hashThreadgateView = "threadgateView";
366391367367-export function isThreadgateView<V>(v: V) {
392392+export function isThreadgateView<V>(v: V): v is ThreadgateView & V {
368393 return is$typed(v, id, hashThreadgateView);
369394}
370395371371-export function validateThreadgateView<V>(v: V) {
396396+export function validateThreadgateView<V>(
397397+ v: V,
398398+): ValidationResult<ThreadgateView & V> {
372399 return validate<ThreadgateView & V>(v, id, hashThreadgateView);
373400}
374401···394421395422const hashInteraction = "interaction";
396423397397-export function isInteraction<V>(v: V) {
424424+export function isInteraction<V>(v: V): v is Interaction & V {
398425 return is$typed(v, id, hashInteraction);
399426}
400427401401-export function validateInteraction<V>(v: V) {
428428+export function validateInteraction<V>(
429429+ v: V,
430430+): ValidationResult<Interaction & V> {
402431 return validate<Interaction & V>(v, id, hashInteraction);
403432}
404433405434/** Request that less content like the given feed item be shown in the feed */
406406-export const REQUESTLESS = `${id}#requestLess`;
435435+export const REQUESTLESS: string = `${id}#requestLess`;
407436/** Request that more content like the given feed item be shown in the feed */
408408-export const REQUESTMORE = `${id}#requestMore`;
437437+export const REQUESTMORE: string = `${id}#requestMore`;
409438/** User clicked through to the feed item */
410410-export const CLICKTHROUGHITEM = `${id}#clickthroughItem`;
439439+export const CLICKTHROUGHITEM: string = `${id}#clickthroughItem`;
411440/** User clicked through to the author of the feed item */
412412-export const CLICKTHROUGHAUTHOR = `${id}#clickthroughAuthor`;
441441+export const CLICKTHROUGHAUTHOR: string = `${id}#clickthroughAuthor`;
413442/** User clicked through to the reposter of the feed item */
414414-export const CLICKTHROUGHREPOSTER = `${id}#clickthroughReposter`;
443443+export const CLICKTHROUGHREPOSTER: string = `${id}#clickthroughReposter`;
415444/** User clicked through to the embedded content of the feed item */
416416-export const CLICKTHROUGHEMBED = `${id}#clickthroughEmbed`;
445445+export const CLICKTHROUGHEMBED: string = `${id}#clickthroughEmbed`;
417446/** Feed item was seen by user */
418418-export const INTERACTIONSEEN = `${id}#interactionSeen`;
447447+export const INTERACTIONSEEN: string = `${id}#interactionSeen`;
419448/** User liked the feed item */
420420-export const INTERACTIONLIKE = `${id}#interactionLike`;
449449+export const INTERACTIONLIKE: string = `${id}#interactionLike`;
421450/** User reposted the feed item */
422422-export const INTERACTIONREPOST = `${id}#interactionRepost`;
451451+export const INTERACTIONREPOST: string = `${id}#interactionRepost`;
423452/** User replied to the feed item */
424424-export const INTERACTIONREPLY = `${id}#interactionReply`;
453453+export const INTERACTIONREPLY: string = `${id}#interactionReply`;
425454/** User shared the feed item */
426426-export const INTERACTIONSHARE = `${id}#interactionShare`;
455455+export const INTERACTIONSHARE: string = `${id}#interactionShare`;
+5-4
lex/types/so/sprk/feed/describeFeedGenerator.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···38393940const hashFeed = "feed";
40414141-export function isFeed<V>(v: V) {
4242+export function isFeed<V>(v: V): v is Feed & V {
4243 return is$typed(v, id, hashFeed);
4344}
44454545-export function validateFeed<V>(v: V) {
4646+export function validateFeed<V>(v: V): ValidationResult<Feed & V> {
4647 return validate<Feed & V>(v, id, hashFeed);
4748}
4849···54555556const hashLinks = "links";
56575757-export function isLinks<V>(v: V) {
5858+export function isLinks<V>(v: V): v is Links & V {
5859 return is$typed(v, id, hashLinks);
5960}
60616161-export function validateLinks<V>(v: V) {
6262+export function validateLinks<V>(v: V): ValidationResult<Links & V> {
6263 return validate<Links & V>(v, id, hashLinks);
6364}
+3-2
lex/types/so/sprk/feed/generator.ts
···33 */
44import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66+import type { ValidationResult } from "@atp/lexicon";
67import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
78import type * as SoSprkRichtextFacet from "../richtext/facet.ts";
89import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
···26272728const hashRecord = "main";
28292929-export function isRecord<V>(v: V) {
3030+export function isRecord<V>(v: V): v is Record & V {
3031 return is$typed(v, id, hashRecord);
3132}
32333333-export function validateRecord<V>(v: V) {
3434+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
3435 return validate<Record & V>(v, id, hashRecord, true);
3536}
3637
+3-2
lex/types/so/sprk/feed/getCrosspostThread.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as SoSprkFeedDefs from "./defs.ts";
78···63646465const hashThreadItem = "threadItem";
65666666-export function isThreadItem<V>(v: V) {
6767+export function isThreadItem<V>(v: V): v is ThreadItem & V {
6768 return is$typed(v, id, hashThreadItem);
6869}
69707070-export function validateThreadItem<V>(v: V) {
7171+export function validateThreadItem<V>(v: V): ValidationResult<ThreadItem & V> {
7172 return validate<ThreadItem & V>(v, id, hashThreadItem);
7273}
+3-2
lex/types/so/sprk/feed/getLikes.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as SoSprkActorDefs from "../actor/defs.ts";
78···49505051const hashLike = "like";
51525252-export function isLike<V>(v: V) {
5353+export function isLike<V>(v: V): v is Like & V {
5354 return is$typed(v, id, hashLike);
5455}
55565656-export function validateLike<V>(v: V) {
5757+export function validateLike<V>(v: V): ValidationResult<Like & V> {
5758 return validate<Like & V>(v, id, hashLike);
5859}
+3-2
lex/types/so/sprk/feed/getPostThread.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as SoSprkFeedDefs from "./defs.ts";
78···63646465const hashThreadItem = "threadItem";
65666666-export function isThreadItem<V>(v: V) {
6767+export function isThreadItem<V>(v: V): v is ThreadItem & V {
6768 return is$typed(v, id, hashThreadItem);
6869}
69707070-export function validateThreadItem<V>(v: V) {
7171+export function validateThreadItem<V>(v: V): ValidationResult<ThreadItem & V> {
7172 return validate<ThreadItem & V>(v, id, hashThreadItem);
7273}
+3-2
lex/types/so/sprk/feed/like.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
78···18191920const hashRecord = "main";
20212121-export function isRecord<V>(v: V) {
2222+export function isRecord<V>(v: V): v is Record & V {
2223 return is$typed(v, id, hashRecord);
2324}
24252525-export function validateRecord<V>(v: V) {
2626+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
2627 return validate<Record & V>(v, id, hashRecord, true);
2728}
2829
+5-4
lex/types/so/sprk/feed/post.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as SoSprkMediaImages from "../media/images.ts";
78import type * as SoSprkMediaVideo from "../media/video.ts";
···33343435const hashRecord = "main";
35363636-export function isRecord<V>(v: V) {
3737+export function isRecord<V>(v: V): v is Record & V {
3738 return is$typed(v, id, hashRecord);
3839}
39404040-export function validateRecord<V>(v: V) {
4141+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
4142 return validate<Record & V>(v, id, hashRecord, true);
4243}
4344···53545455const hashCaptionRef = "captionRef";
55565656-export function isCaptionRef<V>(v: V) {
5757+export function isCaptionRef<V>(v: V): v is CaptionRef & V {
5758 return is$typed(v, id, hashCaptionRef);
5859}
59606060-export function validateCaptionRef<V>(v: V) {
6161+export function validateCaptionRef<V>(v: V): ValidationResult<CaptionRef & V> {
6162 return validate<CaptionRef & V>(v, id, hashCaptionRef);
6263}
+5-4
lex/types/so/sprk/feed/reply.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as SoSprkRichtextFacet from "../richtext/facet.ts";
78import type * as SoSprkMediaImage from "../media/image.ts";
···29303031const hashRecord = "main";
31323232-export function isRecord<V>(v: V) {
3333+export function isRecord<V>(v: V): v is Record & V {
3334 return is$typed(v, id, hashRecord);
3435}
35363636-export function validateRecord<V>(v: V) {
3737+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
3738 return validate<Record & V>(v, id, hashRecord, true);
3839}
3940···47484849const hashReplyRef = "replyRef";
49505050-export function isReplyRef<V>(v: V) {
5151+export function isReplyRef<V>(v: V): v is ReplyRef & V {
5152 return is$typed(v, id, hashReplyRef);
5253}
53545454-export function validateReplyRef<V>(v: V) {
5555+export function validateReplyRef<V>(v: V): ValidationResult<ReplyRef & V> {
5556 return validate<ReplyRef & V>(v, id, hashReplyRef);
5657}
+3-2
lex/types/so/sprk/feed/repost.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
78···18191920const hashRecord = "main";
20212121-export function isRecord<V>(v: V) {
2222+export function isRecord<V>(v: V): v is Record & V {
2223 return is$typed(v, id, hashRecord);
2324}
24252525-export function validateRecord<V>(v: V) {
2626+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
2627 return validate<Record & V>(v, id, hashRecord, true);
2728}
2829
+15-8
lex/types/so/sprk/feed/threadgate.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···24252526const hashRecord = "main";
26272727-export function isRecord<V>(v: V) {
2828+export function isRecord<V>(v: V): v is Record & V {
2829 return is$typed(v, id, hashRecord);
2930}
30313131-export function validateRecord<V>(v: V) {
3232+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
3233 return validate<Record & V>(v, id, hashRecord, true);
3334}
3435···41424243const hashMentionRule = "mentionRule";
43444444-export function isMentionRule<V>(v: V) {
4545+export function isMentionRule<V>(v: V): v is MentionRule & V {
4546 return is$typed(v, id, hashMentionRule);
4647}
47484848-export function validateMentionRule<V>(v: V) {
4949+export function validateMentionRule<V>(
5050+ v: V,
5151+): ValidationResult<MentionRule & V> {
4952 return validate<MentionRule & V>(v, id, hashMentionRule);
5053}
5154···56595760const hashFollowerRule = "followerRule";
58615959-export function isFollowerRule<V>(v: V) {
6262+export function isFollowerRule<V>(v: V): v is FollowerRule & V {
6063 return is$typed(v, id, hashFollowerRule);
6164}
62656363-export function validateFollowerRule<V>(v: V) {
6666+export function validateFollowerRule<V>(
6767+ v: V,
6868+): ValidationResult<FollowerRule & V> {
6469 return validate<FollowerRule & V>(v, id, hashFollowerRule);
6570}
6671···71767277const hashFollowingRule = "followingRule";
73787474-export function isFollowingRule<V>(v: V) {
7979+export function isFollowingRule<V>(v: V): v is FollowingRule & V {
7580 return is$typed(v, id, hashFollowingRule);
7681}
77827878-export function validateFollowingRule<V>(v: V) {
8383+export function validateFollowingRule<V>(
8484+ v: V,
8585+): ValidationResult<FollowingRule & V> {
7986 return validate<FollowingRule & V>(v, id, hashFollowingRule);
8087}
+3-2
lex/types/so/sprk/graph/block.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···17181819const hashRecord = "main";
19202020-export function isRecord<V>(v: V) {
2121+export function isRecord<V>(v: V): v is Record & V {
2122 return is$typed(v, id, hashRecord);
2223}
23242424-export function validateRecord<V>(v: V) {
2525+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
2526 return validate<Record & V>(v, id, hashRecord, true);
2627}
2728
+9-4
lex/types/so/sprk/graph/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···16171718const hashNotFoundActor = "notFoundActor";
18191919-export function isNotFoundActor<V>(v: V) {
2020+export function isNotFoundActor<V>(v: V): v is NotFoundActor & V {
2021 return is$typed(v, id, hashNotFoundActor);
2122}
22232323-export function validateNotFoundActor<V>(v: V) {
2424+export function validateNotFoundActor<V>(
2525+ v: V,
2626+): ValidationResult<NotFoundActor & V> {
2427 return validate<NotFoundActor & V>(v, id, hashNotFoundActor);
2528}
2629···36393740const hashRelationship = "relationship";
38413939-export function isRelationship<V>(v: V) {
4242+export function isRelationship<V>(v: V): v is Relationship & V {
4043 return is$typed(v, id, hashRelationship);
4144}
42454343-export function validateRelationship<V>(v: V) {
4646+export function validateRelationship<V>(
4747+ v: V,
4848+): ValidationResult<Relationship & V> {
4449 return validate<Relationship & V>(v, id, hashRelationship);
4550}
+3-2
lex/types/so/sprk/graph/follow.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···16171718const hashRecord = "main";
18191919-export function isRecord<V>(v: V) {
2020+export function isRecord<V>(v: V): v is Record & V {
2021 return is$typed(v, id, hashRecord);
2122}
22232323-export function validateRecord<V>(v: V) {
2424+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
2425 return validate<Record & V>(v, id, hashRecord, true);
2526}
2627
+17-8
lex/types/so/sprk/labeler/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as SoSprkActorDefs from "../actor/defs.ts";
78import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
···23242425const hashLabelerView = "labelerView";
25262626-export function isLabelerView<V>(v: V) {
2727+export function isLabelerView<V>(v: V): v is LabelerView & V {
2728 return is$typed(v, id, hashLabelerView);
2829}
29303030-export function validateLabelerView<V>(v: V) {
3131+export function validateLabelerView<V>(
3232+ v: V,
3333+): ValidationResult<LabelerView & V> {
3134 return validate<LabelerView & V>(v, id, hashLabelerView);
3235}
3336···51545255const hashLabelerViewDetailed = "labelerViewDetailed";
53565454-export function isLabelerViewDetailed<V>(v: V) {
5757+export function isLabelerViewDetailed<V>(v: V): v is LabelerViewDetailed & V {
5558 return is$typed(v, id, hashLabelerViewDetailed);
5659}
57605858-export function validateLabelerViewDetailed<V>(v: V) {
6161+export function validateLabelerViewDetailed<V>(
6262+ v: V,
6363+): ValidationResult<LabelerViewDetailed & V> {
5964 return validate<LabelerViewDetailed & V>(v, id, hashLabelerViewDetailed);
6065}
6166···66716772const hashLabelerViewerState = "labelerViewerState";
68736969-export function isLabelerViewerState<V>(v: V) {
7474+export function isLabelerViewerState<V>(v: V): v is LabelerViewerState & V {
7075 return is$typed(v, id, hashLabelerViewerState);
7176}
72777373-export function validateLabelerViewerState<V>(v: V) {
7878+export function validateLabelerViewerState<V>(
7979+ v: V,
8080+): ValidationResult<LabelerViewerState & V> {
7481 return validate<LabelerViewerState & V>(v, id, hashLabelerViewerState);
7582}
7683···84918592const hashLabelerPolicies = "labelerPolicies";
86938787-export function isLabelerPolicies<V>(v: V) {
9494+export function isLabelerPolicies<V>(v: V): v is LabelerPolicies & V {
8895 return is$typed(v, id, hashLabelerPolicies);
8996}
90979191-export function validateLabelerPolicies<V>(v: V) {
9898+export function validateLabelerPolicies<V>(
9999+ v: V,
100100+): ValidationResult<LabelerPolicies & V> {
92101 return validate<LabelerPolicies & V>(v, id, hashLabelerPolicies);
93102}
+3-2
lex/types/so/sprk/labeler/service.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as SoSprkLabelerDefs from "./defs.ts";
78import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
···26272728const hashRecord = "main";
28292929-export function isRecord<V>(v: V) {
3030+export function isRecord<V>(v: V): v is Record & V {
3031 return is$typed(v, id, hashRecord);
3132}
32333333-export function validateRecord<V>(v: V) {
3434+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
3435 return validate<Record & V>(v, id, hashRecord, true);
3536}
3637
+5-2
lex/types/so/sprk/media/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···16171718const hashAspectRatio = "aspectRatio";
18191919-export function isAspectRatio<V>(v: V) {
2020+export function isAspectRatio<V>(v: V): v is AspectRatio & V {
2021 return is$typed(v, id, hashAspectRatio);
2122}
22232323-export function validateAspectRatio<V>(v: V) {
2424+export function validateAspectRatio<V>(
2525+ v: V,
2626+): ValidationResult<AspectRatio & V> {
2427 return validate<AspectRatio & V>(v, id, hashAspectRatio);
2528}
+5-4
lex/types/so/sprk/media/image.ts
···33 */
44import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66+import type { ValidationResult } from "@atp/lexicon";
67import { is$typed as _is$typed } from "../../../../util.ts";
78import type * as SoSprkMediaDefs from "./defs.ts";
89···19202021const hashMain = "main";
21222222-export function isMain<V>(v: V) {
2323+export function isMain<V>(v: V): v is Main & V {
2324 return is$typed(v, id, hashMain);
2425}
25262626-export function validateMain<V>(v: V) {
2727+export function validateMain<V>(v: V): ValidationResult<Main & V> {
2728 return validate<Main & V>(v, id, hashMain);
2829}
2930···40414142const hashView = "view";
42434343-export function isView<V>(v: V) {
4444+export function isView<V>(v: V): v is View & V {
4445 return is$typed(v, id, hashView);
4546}
46474747-export function validateView<V>(v: V) {
4848+export function validateView<V>(v: V): ValidationResult<View & V> {
4849 return validate<View & V>(v, id, hashView);
4950}
+5-4
lex/types/so/sprk/media/images.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as SoSprkMediaImage from "./image.ts";
78···15161617const hashMain = "main";
17181818-export function isMain<V>(v: V) {
1919+export function isMain<V>(v: V): v is Main & V {
1920 return is$typed(v, id, hashMain);
2021}
21222222-export function validateMain<V>(v: V) {
2323+export function validateMain<V>(v: V): ValidationResult<Main & V> {
2324 return validate<Main & V>(v, id, hashMain);
2425}
2526···30313132const hashView = "view";
32333333-export function isView<V>(v: V) {
3434+export function isView<V>(v: V): v is View & V {
3435 return is$typed(v, id, hashView);
3536}
36373737-export function validateView<V>(v: V) {
3838+export function validateView<V>(v: V): ValidationResult<View & V> {
3839 return validate<View & V>(v, id, hashView);
3940}
+7-6
lex/types/so/sprk/media/video.ts
···33 */
44import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66+import type { ValidationResult } from "@atp/lexicon";
67import { is$typed as _is$typed } from "../../../../util.ts";
78import type * as SoSprkMediaDefs from "./defs.ts";
89···20212122const hashMain = "main";
22232323-export function isMain<V>(v: V) {
2424+export function isMain<V>(v: V): v is Main & V {
2425 return is$typed(v, id, hashMain);
2526}
26272727-export function validateMain<V>(v: V) {
2828+export function validateMain<V>(v: V): ValidationResult<Main & V> {
2829 return validate<Main & V>(v, id, hashMain);
2930}
3031···36373738const hashCaption = "caption";
38393939-export function isCaption<V>(v: V) {
4040+export function isCaption<V>(v: V): v is Caption & V {
4041 return is$typed(v, id, hashCaption);
4142}
42434343-export function validateCaption<V>(v: V) {
4444+export function validateCaption<V>(v: V): ValidationResult<Caption & V> {
4445 return validate<Caption & V>(v, id, hashCaption);
4546}
4647···55565657const hashView = "view";
57585858-export function isView<V>(v: V) {
5959+export function isView<V>(v: V): v is View & V {
5960 return is$typed(v, id, hashView);
6061}
61626262-export function validateView<V>(v: V) {
6363+export function validateView<V>(v: V): ValidationResult<View & V> {
6364 return validate<View & V>(v, id, hashView);
6465}
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as SoSprkActorDefs from "../actor/defs.ts";
78import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
···65666667const hashNotification = "notification";
67686868-export function isNotification<V>(v: V) {
6969+export function isNotification<V>(v: V): v is Notification & V {
6970 return is$typed(v, id, hashNotification);
7071}
71727272-export function validateNotification<V>(v: V) {
7373+export function validateNotification<V>(
7474+ v: V,
7575+): ValidationResult<Notification & V> {
7376 return validate<Notification & V>(v, id, hashNotification);
7477}
+11-10
lex/types/so/sprk/richtext/facet.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···17181819const hashMain = "main";
19202020-export function isMain<V>(v: V) {
2121+export function isMain<V>(v: V): v is Main & V {
2122 return is$typed(v, id, hashMain);
2223}
23242424-export function validateMain<V>(v: V) {
2525+export function validateMain<V>(v: V): ValidationResult<Main & V> {
2526 return validate<Main & V>(v, id, hashMain);
2627}
2728···33343435const hashMention = "mention";
35363636-export function isMention<V>(v: V) {
3737+export function isMention<V>(v: V): v is Mention & V {
3738 return is$typed(v, id, hashMention);
3839}
39404040-export function validateMention<V>(v: V) {
4141+export function validateMention<V>(v: V): ValidationResult<Mention & V> {
4142 return validate<Mention & V>(v, id, hashMention);
4243}
4344···49505051const hashLink = "link";
51525252-export function isLink<V>(v: V) {
5353+export function isLink<V>(v: V): v is Link & V {
5354 return is$typed(v, id, hashLink);
5455}
55565656-export function validateLink<V>(v: V) {
5757+export function validateLink<V>(v: V): ValidationResult<Link & V> {
5758 return validate<Link & V>(v, id, hashLink);
5859}
5960···65666667const hashTag = "tag";
67686868-export function isTag<V>(v: V) {
6969+export function isTag<V>(v: V): v is Tag & V {
6970 return is$typed(v, id, hashTag);
7071}
71727272-export function validateTag<V>(v: V) {
7373+export function validateTag<V>(v: V): ValidationResult<Tag & V> {
7374 return validate<Tag & V>(v, id, hashTag);
7475}
7576···82838384const hashByteSlice = "byteSlice";
84858585-export function isByteSlice<V>(v: V) {
8686+export function isByteSlice<V>(v: V): v is ByteSlice & V {
8687 return is$typed(v, id, hashByteSlice);
8788}
88898989-export function validateByteSlice<V>(v: V) {
9090+export function validateByteSlice<V>(v: V): ValidationResult<ByteSlice & V> {
9091 return validate<ByteSlice & V>(v, id, hashByteSlice);
9192}
+3-2
lex/types/so/sprk/sound/audio.ts
···33 */
44import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66+import type { ValidationResult } from "@atp/lexicon";
67import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
78import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
89import type * as SoSprkSoundDefs from "./defs.ts";
···26272728const hashRecord = "main";
28292929-export function isRecord<V>(v: V) {
3030+export function isRecord<V>(v: V): v is Record & V {
3031 return is$typed(v, id, hashRecord);
3132}
32333333-export function validateRecord<V>(v: V) {
3434+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
3435 return validate<Record & V>(v, id, hashRecord, true);
3536}
3637
+7-4
lex/types/so/sprk/sound/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as SoSprkActorDefs from "../actor/defs.ts";
78import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
···26272728const hashAudioView = "audioView";
28292929-export function isAudioView<V>(v: V) {
3030+export function isAudioView<V>(v: V): v is AudioView & V {
3031 return is$typed(v, id, hashAudioView);
3132}
32333333-export function validateAudioView<V>(v: V) {
3434+export function validateAudioView<V>(v: V): ValidationResult<AudioView & V> {
3435 return validate<AudioView & V>(v, id, hashAudioView);
3536}
3637···43444445const hashAudioDetails = "audioDetails";
45464646-export function isAudioDetails<V>(v: V) {
4747+export function isAudioDetails<V>(v: V): v is AudioDetails & V {
4748 return is$typed(v, id, hashAudioDetails);
4849}
49505050-export function validateAudioDetails<V>(v: V) {
5151+export function validateAudioDetails<V>(
5252+ v: V,
5353+): ValidationResult<AudioDetails & V> {
5154 return validate<AudioDetails & V>(v, id, hashAudioDetails);
5255}
+11-6
lex/types/so/sprk/story/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as SoSprkActorDefs from "../actor/defs.ts";
78import type * as SoSprkMediaImage from "../media/image.ts";
···26272728const hashStoryView = "storyView";
28292929-export function isStoryView<V>(v: V) {
3030+export function isStoryView<V>(v: V): v is StoryView & V {
3031 return is$typed(v, id, hashStoryView);
3132}
32333333-export function validateStoryView<V>(v: V) {
3434+export function validateStoryView<V>(v: V): ValidationResult<StoryView & V> {
3435 return validate<StoryView & V>(v, id, hashStoryView);
3536}
3637···42434344const hashStoriesByAuthor = "storiesByAuthor";
44454545-export function isStoriesByAuthor<V>(v: V) {
4646+export function isStoriesByAuthor<V>(v: V): v is StoriesByAuthor & V {
4647 return is$typed(v, id, hashStoriesByAuthor);
4748}
48494949-export function validateStoriesByAuthor<V>(v: V) {
5050+export function validateStoriesByAuthor<V>(
5151+ v: V,
5252+): ValidationResult<StoriesByAuthor & V> {
5053 return validate<StoriesByAuthor & V>(v, id, hashStoriesByAuthor);
5154}
5255···67706871const hashInteraction = "interaction";
69727070-export function isInteraction<V>(v: V) {
7373+export function isInteraction<V>(v: V): v is Interaction & V {
7174 return is$typed(v, id, hashInteraction);
7275}
73767474-export function validateInteraction<V>(v: V) {
7777+export function validateInteraction<V>(
7878+ v: V,
7979+): ValidationResult<Interaction & V> {
7580 return validate<Interaction & V>(v, id, hashInteraction);
7681}
+3-2
lex/types/so/sprk/story/post.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as SoSprkMediaImage from "../media/image.ts";
78import type * as SoSprkMediaVideo from "../media/video.ts";
···27282829const hashRecord = "main";
29303030-export function isRecord<V>(v: V) {
3131+export function isRecord<V>(v: V): v is Record & V {
3132 return is$typed(v, id, hashRecord);
3233}
33343434-export function validateRecord<V>(v: V) {
3535+export function validateRecord<V>(v: V): ValidationResult<Record & V> {
3536 return validate<Record & V>(v, id, hashRecord, true);
3637}
3738
+7-4
lex/types/so/sprk/video/defs.ts
···33 */
44import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66+import type { ValidationResult } from "@atp/lexicon";
67import { is$typed as _is$typed } from "../../../../util.ts";
78import type * as SoSprkSoundDefs from "../sound/defs.ts";
89···30313132const hashJobStatus = "jobStatus";
32333333-export function isJobStatus<V>(v: V) {
3434+export function isJobStatus<V>(v: V): v is JobStatus & V {
3435 return is$typed(v, id, hashJobStatus);
3536}
36373737-export function validateJobStatus<V>(v: V) {
3838+export function validateJobStatus<V>(v: V): ValidationResult<JobStatus & V> {
3839 return validate<JobStatus & V>(v, id, hashJobStatus);
3940}
4041···47484849const hashExtractedAudio = "extractedAudio";
49505050-export function isExtractedAudio<V>(v: V) {
5151+export function isExtractedAudio<V>(v: V): v is ExtractedAudio & V {
5152 return is$typed(v, id, hashExtractedAudio);
5253}
53545454-export function validateExtractedAudio<V>(v: V) {
5555+export function validateExtractedAudio<V>(
5656+ v: V,
5757+): ValidationResult<ExtractedAudio & V> {
5558 return validate<ExtractedAudio & V>(v, id, hashExtractedAudio);
5659}
+5-2
lex/types/tools/ozone/communication/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
6778const is$typed = _is$typed, validate = _validate;
···27282829const hashTemplateView = "templateView";
29303030-export function isTemplateView<V>(v: V) {
3131+export function isTemplateView<V>(v: V): v is TemplateView & V {
3132 return is$typed(v, id, hashTemplateView);
3233}
33343434-export function validateTemplateView<V>(v: V) {
3535+export function validateTemplateView<V>(
3636+ v: V,
3737+): ValidationResult<TemplateView & V> {
3538 return validate<TemplateView & V>(v, id, hashTemplateView);
3639}
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as ComAtprotoAdminDefs from "../../../com/atproto/admin/defs.ts";
78import type * as ToolsOzoneSignatureDefs from "./defs.ts";
···44454546const hashRelatedAccount = "relatedAccount";
46474747-export function isRelatedAccount<V>(v: V) {
4848+export function isRelatedAccount<V>(v: V): v is RelatedAccount & V {
4849 return is$typed(v, id, hashRelatedAccount);
4950}
50515151-export function validateRelatedAccount<V>(v: V) {
5252+export function validateRelatedAccount<V>(
5353+ v: V,
5454+): ValidationResult<RelatedAccount & V> {
5255 return validate<RelatedAccount & V>(v, id, hashRelatedAccount);
5356}
+7-6
lex/types/tools/ozone/team/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { is$typed as _is$typed } from "../../../../util.ts";
67import type * as AppBskyActorDefs from "../../../app/bsky/actor/defs.ts";
78···26272728const hashMember = "member";
28292929-export function isMember<V>(v: V) {
3030+export function isMember<V>(v: V): v is Member & V {
3031 return is$typed(v, id, hashMember);
3132}
32333333-export function validateMember<V>(v: V) {
3434+export function validateMember<V>(v: V): ValidationResult<Member & V> {
3435 return validate<Member & V>(v, id, hashMember);
3536}
36373738/** Admin role. Highest level of access, can perform all actions. */
3838-export const ROLEADMIN = `${id}#roleAdmin`;
3939+export const ROLEADMIN: string = `${id}#roleAdmin`;
3940/** Moderator role. Can perform most actions. */
4040-export const ROLEMODERATOR = `${id}#roleModerator`;
4141+export const ROLEMODERATOR: string = `${id}#roleModerator`;
4142/** Triage role. Mostly intended for monitoring and escalating issues. */
4242-export const ROLETRIAGE = `${id}#roleTriage`;
4343+export const ROLETRIAGE: string = `${id}#roleTriage`;
4344/** Verifier role. Only allowed to issue verifications. */
4444-export const ROLEVERIFIER = `${id}#roleVerifier`;
4545+export const ROLEVERIFIER: string = `${id}#roleVerifier`;
+5-2
lex/types/tools/ozone/verification/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55+import type { ValidationResult } from "@atp/lexicon";
56import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
67import type * as ToolsOzoneModerationDefs from "../moderation/defs.ts";
78···43444445const hashVerificationView = "verificationView";
45464646-export function isVerificationView<V>(v: V) {
4747+export function isVerificationView<V>(v: V): v is VerificationView & V {
4748 return is$typed(v, id, hashVerificationView);
4849}
49505050-export function validateVerificationView<V>(v: V) {
5151+export function validateVerificationView<V>(
5252+ v: V,
5353+): ValidationResult<VerificationView & V> {
5154 return validate<VerificationView & V>(v, id, hashVerificationView);
5255}