@atproto/pds 0.5.1 → 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/dist/account-manager/account-manager.d.ts +35 -4
- package/dist/account-manager/account-manager.d.ts.map +1 -1
- package/dist/account-manager/account-manager.js +67 -6
- package/dist/account-manager/account-manager.js.map +1 -1
- package/dist/account-manager/helpers/account.d.ts +1 -1
- package/dist/account-manager/helpers/account.d.ts.map +1 -1
- package/dist/account-manager/helpers/account.js +10 -4
- package/dist/account-manager/helpers/account.js.map +1 -1
- package/dist/account-manager/oauth-store.d.ts +2 -1
- package/dist/account-manager/oauth-store.d.ts.map +1 -1
- package/dist/account-manager/oauth-store.js +61 -12
- package/dist/account-manager/oauth-store.js.map +1 -1
- package/dist/actor-store/record/reader.d.ts +1 -1
- package/dist/actor-store/record/reader.d.ts.map +1 -1
- package/dist/actor-store/record/reader.js.map +1 -1
- package/dist/api/com/atproto/admin/updateAccountHandle.d.ts.map +1 -1
- package/dist/api/com/atproto/admin/updateAccountHandle.js +33 -43
- package/dist/api/com/atproto/admin/updateAccountHandle.js.map +1 -1
- package/dist/api/com/atproto/identity/updateHandle.d.ts.map +1 -1
- package/dist/api/com/atproto/identity/updateHandle.js +39 -61
- package/dist/api/com/atproto/identity/updateHandle.js.map +1 -1
- package/dist/api/com/atproto/repo/getRecord.js +3 -3
- package/dist/api/com/atproto/repo/getRecord.js.map +1 -1
- package/dist/api/com/atproto/repo/putRecord.js +2 -2
- package/dist/api/com/atproto/repo/putRecord.js.map +1 -1
- package/dist/api/com/atproto/sync/getRepo.d.ts.map +1 -1
- package/dist/api/com/atproto/sync/getRepo.js +17 -9
- package/dist/api/com/atproto/sync/getRepo.js.map +1 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +2 -2
- package/dist/context.js.map +1 -1
- package/dist/lexicons/app/bsky/actor/defs.defs.d.ts +8 -0
- package/dist/lexicons/app/bsky/actor/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/actor/defs.defs.js +3 -0
- package/dist/lexicons/app/bsky/actor/defs.defs.js.map +1 -1
- package/dist/lexicons/app/bsky/actor/profile.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/actor/status.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/draft/defs.defs.d.ts +22 -0
- package/dist/lexicons/app/bsky/draft/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/draft/defs.defs.js +11 -0
- package/dist/lexicons/app/bsky/draft/defs.defs.js.map +1 -1
- package/dist/lexicons/app/bsky/embed/gallery.d.ts +3 -0
- package/dist/lexicons/app/bsky/embed/gallery.d.ts.map +1 -0
- package/dist/lexicons/app/bsky/embed/gallery.defs.d.ts +130 -0
- package/dist/lexicons/app/bsky/embed/gallery.defs.d.ts.map +1 -0
- package/dist/lexicons/app/bsky/embed/gallery.defs.js +47 -0
- package/dist/lexicons/app/bsky/embed/gallery.defs.js.map +1 -0
- package/dist/lexicons/app/bsky/embed/gallery.js +6 -0
- package/dist/lexicons/app/bsky/embed/gallery.js.map +1 -0
- package/dist/lexicons/app/bsky/embed/record.defs.d.ts +2 -1
- package/dist/lexicons/app/bsky/embed/record.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/embed/record.defs.js +2 -0
- package/dist/lexicons/app/bsky/embed/record.defs.js.map +1 -1
- package/dist/lexicons/app/bsky/embed/recordWithMedia.defs.d.ts +13 -12
- package/dist/lexicons/app/bsky/embed/recordWithMedia.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/embed/recordWithMedia.defs.js +3 -0
- package/dist/lexicons/app/bsky/embed/recordWithMedia.defs.js.map +1 -1
- package/dist/lexicons/app/bsky/embed.d.ts +1 -0
- package/dist/lexicons/app/bsky/embed.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/embed.js +1 -0
- package/dist/lexicons/app/bsky/embed.js.map +1 -1
- package/dist/lexicons/app/bsky/feed/defs.defs.d.ts +2 -1
- package/dist/lexicons/app/bsky/feed/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/feed/defs.defs.js +2 -0
- package/dist/lexicons/app/bsky/feed/defs.defs.js.map +1 -1
- package/dist/lexicons/app/bsky/feed/generator.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/feed/like.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/feed/post.defs.d.ts +12 -11
- package/dist/lexicons/app/bsky/feed/post.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/feed/post.defs.js +2 -0
- package/dist/lexicons/app/bsky/feed/post.defs.js.map +1 -1
- package/dist/lexicons/app/bsky/feed/postgate.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/feed/repost.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/feed/threadgate.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/graph/block.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/graph/follow.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/graph/list.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/graph/listblock.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/graph/listitem.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/graph/starterpack.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/graph/verification.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/labeler/service.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/notification/declaration.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/actor/declaration.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/authFullChatClient.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/authFullChatClient.defs.js +1 -0
- package/dist/lexicons/chat/bsky/authFullChatClient.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/defs.defs.d.ts +57 -14
- package/dist/lexicons/chat/bsky/convo/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/defs.defs.js +34 -5
- package/dist/lexicons/chat/bsky/convo/defs.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/getConvoForMembers.defs.d.ts +1 -1
- package/dist/lexicons/chat/bsky/convo/getConvoForMembers.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/getConvoForMembers.defs.js +1 -0
- package/dist/lexicons/chat/bsky/convo/getConvoForMembers.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/getLog.defs.d.ts +2 -2
- package/dist/lexicons/chat/bsky/convo/getLog.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/getLog.defs.js +3 -0
- package/dist/lexicons/chat/bsky/convo/getLog.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/getUnreadCounts.d.ts +3 -0
- package/dist/lexicons/chat/bsky/convo/getUnreadCounts.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/convo/getUnreadCounts.defs.d.ts +23 -0
- package/dist/lexicons/chat/bsky/convo/getUnreadCounts.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/convo/getUnreadCounts.defs.js +19 -0
- package/dist/lexicons/chat/bsky/convo/getUnreadCounts.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/convo/getUnreadCounts.js +6 -0
- package/dist/lexicons/chat/bsky/convo/getUnreadCounts.js.map +1 -0
- package/dist/lexicons/chat/bsky/convo/unlockConvo.defs.d.ts +1 -1
- package/dist/lexicons/chat/bsky/convo/unlockConvo.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/unlockConvo.defs.js +1 -0
- package/dist/lexicons/chat/bsky/convo/unlockConvo.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo.d.ts +1 -0
- package/dist/lexicons/chat/bsky/convo.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo.js +1 -0
- package/dist/lexicons/chat/bsky/convo.js.map +1 -1
- package/dist/lexicons/chat/bsky/embed/joinLink.d.ts +3 -0
- package/dist/lexicons/chat/bsky/embed/joinLink.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/embed/joinLink.defs.d.ts +99 -0
- package/dist/lexicons/chat/bsky/embed/joinLink.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/embed/joinLink.defs.js +32 -0
- package/dist/lexicons/chat/bsky/embed/joinLink.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/embed/joinLink.js +6 -0
- package/dist/lexicons/chat/bsky/embed/joinLink.js.map +1 -0
- package/dist/lexicons/chat/bsky/embed.d.ts +2 -0
- package/dist/lexicons/chat/bsky/embed.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/embed.js +5 -0
- package/dist/lexicons/chat/bsky/embed.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/addMembers.defs.d.ts +1 -1
- package/dist/lexicons/chat/bsky/group/addMembers.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/group/addMembers.defs.js +1 -0
- package/dist/lexicons/chat/bsky/group/addMembers.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/group/createGroup.defs.d.ts +6 -6
- package/dist/lexicons/chat/bsky/group/createGroup.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/group/createGroup.defs.js +4 -3
- package/dist/lexicons/chat/bsky/group/createGroup.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/group/defs.defs.d.ts +26 -2
- package/dist/lexicons/chat/bsky/group/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/group/defs.defs.js +15 -2
- package/dist/lexicons/chat/bsky/group/defs.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreviews.defs.d.ts +3 -3
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreviews.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreviews.defs.js +6 -2
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreviews.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/group/updateJoinRequestsRead.d.ts +3 -0
- package/dist/lexicons/chat/bsky/group/updateJoinRequestsRead.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/updateJoinRequestsRead.defs.d.ts +20 -0
- package/dist/lexicons/chat/bsky/group/updateJoinRequestsRead.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/updateJoinRequestsRead.defs.js +19 -0
- package/dist/lexicons/chat/bsky/group/updateJoinRequestsRead.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/updateJoinRequestsRead.js +6 -0
- package/dist/lexicons/chat/bsky/group/updateJoinRequestsRead.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/withdrawJoinRequest.d.ts +3 -0
- package/dist/lexicons/chat/bsky/group/withdrawJoinRequest.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/withdrawJoinRequest.defs.d.ts +20 -0
- package/dist/lexicons/chat/bsky/group/withdrawJoinRequest.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/withdrawJoinRequest.defs.js +18 -0
- package/dist/lexicons/chat/bsky/group/withdrawJoinRequest.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/withdrawJoinRequest.js +6 -0
- package/dist/lexicons/chat/bsky/group/withdrawJoinRequest.js.map +1 -0
- package/dist/lexicons/chat/bsky/group.d.ts +2 -0
- package/dist/lexicons/chat/bsky/group.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/group.js +2 -0
- package/dist/lexicons/chat/bsky/group.js.map +1 -1
- package/dist/lexicons/chat/bsky/moderation/defs.d.ts +2 -0
- package/dist/lexicons/chat/bsky/moderation/defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/defs.defs.d.ts +58 -0
- package/dist/lexicons/chat/bsky/moderation/defs.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/defs.defs.js +38 -0
- package/dist/lexicons/chat/bsky/moderation/defs.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/defs.js +5 -0
- package/dist/lexicons/chat/bsky/moderation/defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvo.d.ts +3 -0
- package/dist/lexicons/chat/bsky/moderation/getConvo.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvo.defs.d.ts +22 -0
- package/dist/lexicons/chat/bsky/moderation/getConvo.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvo.defs.js +18 -0
- package/dist/lexicons/chat/bsky/moderation/getConvo.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvo.js +6 -0
- package/dist/lexicons/chat/bsky/moderation/getConvo.js.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvoMembers.d.ts +3 -0
- package/dist/lexicons/chat/bsky/moderation/getConvoMembers.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvoMembers.defs.d.ts +28 -0
- package/dist/lexicons/chat/bsky/moderation/getConvoMembers.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvoMembers.defs.js +24 -0
- package/dist/lexicons/chat/bsky/moderation/getConvoMembers.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvoMembers.js +6 -0
- package/dist/lexicons/chat/bsky/moderation/getConvoMembers.js.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvos.d.ts +3 -0
- package/dist/lexicons/chat/bsky/moderation/getConvos.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvos.defs.d.ts +22 -0
- package/dist/lexicons/chat/bsky/moderation/getConvos.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvos.defs.js +22 -0
- package/dist/lexicons/chat/bsky/moderation/getConvos.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvos.js +6 -0
- package/dist/lexicons/chat/bsky/moderation/getConvos.js.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.defs.d.ts +21 -3
- package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.defs.js +11 -0
- package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/moderation.d.ts +4 -0
- package/dist/lexicons/chat/bsky/moderation.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/moderation.js +4 -0
- package/dist/lexicons/chat/bsky/moderation.js.map +1 -1
- package/dist/lexicons/chat/bsky.d.ts +1 -0
- package/dist/lexicons/chat/bsky.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky.js +1 -0
- package/dist/lexicons/chat/bsky.js.map +1 -1
- package/dist/lexicons/com/atproto/lexicon/schema.defs.d.ts.map +1 -1
- package/dist/lexicons/com/germnetwork/declaration.defs.d.ts.map +1 -1
- package/dist/lexicons/index.d.ts +1 -0
- package/dist/lexicons/index.d.ts.map +1 -1
- package/dist/lexicons/index.js +1 -0
- package/dist/lexicons/index.js.map +1 -1
- package/dist/lexicons/internal/bsky/actor/getProfiles.d.ts +3 -0
- package/dist/lexicons/internal/bsky/actor/getProfiles.d.ts.map +1 -0
- package/dist/lexicons/internal/bsky/actor/getProfiles.defs.d.ts +38 -0
- package/dist/lexicons/internal/bsky/actor/getProfiles.defs.d.ts.map +1 -0
- package/dist/lexicons/internal/bsky/actor/getProfiles.defs.js +26 -0
- package/dist/lexicons/internal/bsky/actor/getProfiles.defs.js.map +1 -0
- package/dist/lexicons/internal/bsky/actor/getProfiles.js +6 -0
- package/dist/lexicons/internal/bsky/actor/getProfiles.js.map +1 -0
- package/dist/lexicons/internal/bsky/actor.d.ts +2 -0
- package/dist/lexicons/internal/bsky/actor.d.ts.map +1 -0
- package/dist/lexicons/internal/bsky/actor.js +5 -0
- package/dist/lexicons/internal/bsky/actor.js.map +1 -0
- package/dist/lexicons/internal/bsky.d.ts +2 -0
- package/dist/lexicons/internal/bsky.d.ts.map +1 -0
- package/dist/lexicons/internal/bsky.js +5 -0
- package/dist/lexicons/internal/bsky.js.map +1 -0
- package/dist/lexicons/internal.d.ts +2 -0
- package/dist/lexicons/internal.d.ts.map +1 -0
- package/dist/lexicons/internal.js +5 -0
- package/dist/lexicons/internal.js.map +1 -0
- package/dist/lexicons/site/standard/document.defs.d.ts.map +1 -1
- package/dist/lexicons/site/standard/graph/recommend.defs.d.ts.map +1 -1
- package/dist/lexicons/site/standard/graph/subscription.defs.d.ts.map +1 -1
- package/dist/lexicons/site/standard/publication.defs.d.ts.map +1 -1
- package/dist/lexicons/site/standard/theme/basic.defs.d.ts.map +1 -1
- package/dist/lexicons/tools/ozone/moderation/defs.defs.d.ts +11 -3
- package/dist/lexicons/tools/ozone/moderation/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/tools/ozone/moderation/defs.defs.js +9 -0
- package/dist/lexicons/tools/ozone/moderation/defs.defs.js.map +1 -1
- package/dist/lexicons/tools/ozone/moderation/queryEvents.defs.d.ts +2 -2
- package/dist/lexicons/tools/ozone/moderation/queryEvents.defs.d.ts.map +1 -1
- package/dist/lexicons/tools/ozone/moderation/queryEvents.defs.js.map +1 -1
- package/dist/lexicons/tools/ozone/moderation/queryStatuses.defs.d.ts +2 -2
- package/dist/lexicons/tools/ozone/moderation/queryStatuses.defs.d.ts.map +1 -1
- package/dist/lexicons/tools/ozone/moderation/queryStatuses.defs.js.map +1 -1
- package/dist/read-after-write/viewer.d.ts +2 -2
- package/package.json +12 -12
- package/src/account-manager/account-manager.ts +105 -7
- package/src/account-manager/helpers/account.ts +15 -7
- package/src/account-manager/oauth-store.ts +76 -18
- package/src/actor-store/record/reader.ts +1 -1
- package/src/api/com/atproto/admin/updateAccountHandle.ts +37 -46
- package/src/api/com/atproto/identity/updateHandle.ts +45 -76
- package/src/api/com/atproto/repo/getRecord.ts +3 -3
- package/src/api/com/atproto/repo/putRecord.ts +2 -2
- package/src/api/com/atproto/sync/getRepo.ts +18 -9
- package/src/context.ts +12 -9
- package/tests/_puppeteer.ts +8 -2
- package/tests/account-manager.test.ts +200 -49
- package/tests/oauth.test.ts +5 -5
- package/tsconfig.build.json +2 -2
- package/tsconfig.build.tsbuildinfo +1 -1
- package/tsconfig.json +2 -2
- package/tsconfig.tests.json +2 -2
|
@@ -59,7 +59,7 @@ export declare const $params: l.ParamsSchema<{
|
|
|
59
59
|
readonly format: "nsid";
|
|
60
60
|
}>>>;
|
|
61
61
|
readonly subjectType: l.OptionalSchema<l.StringSchema<{
|
|
62
|
-
knownValues: ["account", "record"];
|
|
62
|
+
knownValues: ["account", "record", "conversation"];
|
|
63
63
|
}>>;
|
|
64
64
|
readonly minAccountSuspendCount: l.OptionalSchema<l.IntegerSchema>;
|
|
65
65
|
readonly minReportedRecordsCount: l.OptionalSchema<l.IntegerSchema>;
|
|
@@ -135,7 +135,7 @@ declare const main: l.Query<"tools.ozone.moderation.queryStatuses", l.ParamsSche
|
|
|
135
135
|
readonly format: "nsid";
|
|
136
136
|
}>>>;
|
|
137
137
|
readonly subjectType: l.OptionalSchema<l.StringSchema<{
|
|
138
|
-
knownValues: ["account", "record"];
|
|
138
|
+
knownValues: ["account", "record", "conversation"];
|
|
139
139
|
}>>;
|
|
140
140
|
readonly minAccountSuspendCount: l.OptionalSchema<l.IntegerSchema>;
|
|
141
141
|
readonly minReportedRecordsCount: l.OptionalSchema<l.IntegerSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryStatuses.defs.d.ts","sourceRoot":"","sources":["../../../../../src/lexicons/tools/ozone/moderation/queryStatuses.defs.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAChC,OAAO,KAAK,cAAc,MAAM,gBAAgB,CAAA;AAEhD,QAAA,MAAM,KAAK,yCAAyC,CAAA;AAEpD,OAAO,EAAE,KAAK,EAAE,CAAA;AAEhB,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"queryStatuses.defs.d.ts","sourceRoot":"","sources":["../../../../../src/lexicons/tools/ozone/moderation/queryStatuses.defs.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAChC,OAAO,KAAK,cAAc,MAAM,gBAAgB,CAAA;AAEhD,QAAA,MAAM,KAAK,yCAAyC,CAAA;AAEpD,OAAO,EAAE,KAAK,EAAE,CAAA;AAEhB,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0GlB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,OAAO,CAAC,CAAA;AAEnD,eAAO,MAAM,OAAO;;;GAOlB,CAAA;AAEF,MAAM,MAAM,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAA;AACzE,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,gBAAgB,CAC5D,OAAO,OAAO,EACd,CAAC,CACF,CAAA;AAED,6DAA6D;AAC7D,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAAiD,CAAA;AAE3D,OAAO,EAAE,IAAI,EAAE,CAAA;AAEf,eAAO,MAAM,IAAI,yCAAQ,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryStatuses.defs.js","sourceRoot":"","sources":["../../../../../src/lexicons/tools/ozone/moderation/queryStatuses.defs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"queryStatuses.defs.js","sourceRoot":"","sources":["../../../../../src/lexicons/tools/ozone/moderation/queryStatuses.defs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAChC,OAAO,KAAK,cAAc,MAAM,gBAAgB,CAAA;AAEhD,MAAM,KAAK,GAAG,sCAAsC,CAAA;AAEpD,OAAO,EAAE,KAAK,EAAE,CAAA;AAEhB,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC/D,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC/D,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7D,qBAAqB,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1E,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5E,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3D,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IACrC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAC/C;IACD,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IACtC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAC/C;IACD,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IACrC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAC/C;IACD,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IAC3C,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAC/C;IACD,oBAAoB,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IAC5C,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAC/C;IACD,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IAC3C,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAC/C;IACD,oBAAoB,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IAC5C,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAC/C;IACD,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IACvC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAChD;IACD,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IACtC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAC/C;IACD,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACjE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC9D,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IACnC,aAAa,CAAC,CAAC,CAAC,MAAM,EAOlB,CACL;IACD,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IACtC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CACjE;IACD,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IACtC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAC1C;IACD,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IACjC,aAAa,CAAC,CAAC,CAAC,WAAW;IACzB,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;QACnB,gBAAgB;QAChB,gBAAgB;QAChB,sBAAsB;QACtB,uBAAuB;QACvB,eAAe;KAChB,CAAC,EACF,gBAAgB,CACjB,CACF;IACD,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IACrC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAC3E;IACD,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC9D,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7D,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IAC7B,aAAa,CAAC,CAAC,CAAC,WAAW;IACzB,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EACrD,EAAE,CACH,CACF;IACD,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IAC5B,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACnE;IACD,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IACnC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAChD;IACD,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1D,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IACnC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE;QAChE,SAAS,EAAE,EAAE;KACd,CAAC,CACH;IACD,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IACnC,aAAa,CAAC,CAAC,CAAC,MAAM,EAElB,CACL;IACD,sBAAsB,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3E,uBAAuB,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5E,wBAAwB,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7E,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IACxC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CACtD;IACD,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IACtC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CACxC;IACD,iBAAiB,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;IACzC,aAAa,CAAC,CAAC,CAAC,MAAM,EAElB,CACL;CACF,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;IACjD,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1D,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK;IACpC,aAAa,CAAC,CAAC,CAAC,GAAG,CACjB,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,iBAAiB,CAAQ,CAChD,CACF;CACF,CAAC,CAAA;AAQF,6DAA6D;AAC7D,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAE3D,OAAO,EAAE,IAAI,EAAE,CAAA;AAEf,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAA","sourcesContent":["/*\n * THIS FILE WAS GENERATED BY \"@atproto/lex\". DO NOT EDIT.\n */\n\nimport { l } from '@atproto/lex'\nimport * as ModerationDefs from './defs.defs.js'\n\nconst $nsid = 'tools.ozone.moderation.queryStatuses'\n\nexport { $nsid }\n\nexport const $params = /*#__PURE__*/ l.params({\n queueCount: /*#__PURE__*/ l.optional(/*#__PURE__*/ l.integer()),\n queueIndex: /*#__PURE__*/ l.optional(/*#__PURE__*/ l.integer()),\n queueSeed: /*#__PURE__*/ l.optional(/*#__PURE__*/ l.string()),\n includeAllUserRecords: /*#__PURE__*/ l.optional(/*#__PURE__*/ l.boolean()),\n subject: /*#__PURE__*/ l.optional(/*#__PURE__*/ l.string({ format: 'uri' })),\n comment: /*#__PURE__*/ l.optional(/*#__PURE__*/ l.string()),\n reportedAfter: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.string({ format: 'datetime' }),\n ),\n reportedBefore: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.string({ format: 'datetime' }),\n ),\n reviewedAfter: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.string({ format: 'datetime' }),\n ),\n hostingDeletedAfter: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.string({ format: 'datetime' }),\n ),\n hostingDeletedBefore: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.string({ format: 'datetime' }),\n ),\n hostingUpdatedAfter: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.string({ format: 'datetime' }),\n ),\n hostingUpdatedBefore: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.string({ format: 'datetime' }),\n ),\n hostingStatuses: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.array(/*#__PURE__*/ l.string()),\n ),\n reviewedBefore: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.string({ format: 'datetime' }),\n ),\n includeMuted: /*#__PURE__*/ l.optional(/*#__PURE__*/ l.boolean()),\n onlyMuted: /*#__PURE__*/ l.optional(/*#__PURE__*/ l.boolean()),\n reviewState: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.string<{\n knownValues: [\n 'tools.ozone.moderation.defs#reviewOpen',\n 'tools.ozone.moderation.defs#reviewClosed',\n 'tools.ozone.moderation.defs#reviewEscalated',\n 'tools.ozone.moderation.defs#reviewNone',\n ]\n }>(),\n ),\n ignoreSubjects: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.array(/*#__PURE__*/ l.string({ format: 'uri' })),\n ),\n lastReviewedBy: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.string({ format: 'did' }),\n ),\n sortField: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.withDefault(\n /*#__PURE__*/ l.enum([\n 'lastReviewedAt',\n 'lastReportedAt',\n 'reportedRecordsCount',\n 'takendownRecordsCount',\n 'priorityScore',\n ]),\n 'lastReportedAt',\n ),\n ),\n sortDirection: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.withDefault(/*#__PURE__*/ l.enum(['asc', 'desc']), 'desc'),\n ),\n takendown: /*#__PURE__*/ l.optional(/*#__PURE__*/ l.boolean()),\n appealed: /*#__PURE__*/ l.optional(/*#__PURE__*/ l.boolean()),\n limit: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.withDefault(\n /*#__PURE__*/ l.integer({ minimum: 1, maximum: 100 }),\n 50,\n ),\n ),\n tags: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.array(/*#__PURE__*/ l.string(), { maxLength: 25 }),\n ),\n excludeTags: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.array(/*#__PURE__*/ l.string()),\n ),\n cursor: /*#__PURE__*/ l.optional(/*#__PURE__*/ l.string()),\n collections: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.array(/*#__PURE__*/ l.string({ format: 'nsid' }), {\n maxLength: 20,\n }),\n ),\n subjectType: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.string<{\n knownValues: ['account', 'record', 'conversation']\n }>(),\n ),\n minAccountSuspendCount: /*#__PURE__*/ l.optional(/*#__PURE__*/ l.integer()),\n minReportedRecordsCount: /*#__PURE__*/ l.optional(/*#__PURE__*/ l.integer()),\n minTakendownRecordsCount: /*#__PURE__*/ l.optional(/*#__PURE__*/ l.integer()),\n minPriorityScore: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.integer({ minimum: 0, maximum: 100 }),\n ),\n minStrikeCount: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.integer({ minimum: 1 }),\n ),\n ageAssuranceState: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.string<{\n knownValues: ['pending', 'assured', 'unknown', 'reset', 'blocked']\n }>(),\n ),\n})\n\nexport type $Params = l.InferOutput<typeof $params>\n\nexport const $output = /*#__PURE__*/ l.jsonPayload({\n cursor: /*#__PURE__*/ l.optional(/*#__PURE__*/ l.string()),\n subjectStatuses: /*#__PURE__*/ l.array(\n /*#__PURE__*/ l.ref<ModerationDefs.SubjectStatusView>(\n (() => ModerationDefs.subjectStatusView) as any,\n ),\n ),\n})\n\nexport type $Output<B = l.BinaryData> = l.InferPayload<typeof $output, B>\nexport type $OutputBody<B = l.BinaryData> = l.InferPayloadBody<\n typeof $output,\n B\n>\n\n/** View moderation statuses of subjects (record or repo). */\nconst main = /*#__PURE__*/ l.query($nsid, $params, $output)\n\nexport { main }\n\nexport const $lxm = $nsid\n"]}
|
|
@@ -38,7 +38,7 @@ export declare class LocalViewer {
|
|
|
38
38
|
} | {
|
|
39
39
|
$type: "app.bsky.embed.recordWithMedia#view";
|
|
40
40
|
record: app.bsky.embed.record.View;
|
|
41
|
-
media: import("@atproto/lex").$Typed<app.bsky.embed.images.View> | import("@atproto/lex").$Typed<app.bsky.embed.video.View> | import("@atproto/lex").$Typed<app.bsky.embed.external.View> | import("@atproto/lex").Unknown$TypedObject;
|
|
41
|
+
media: import("@atproto/lex").$Typed<app.bsky.embed.images.View> | import("@atproto/lex").$Typed<app.bsky.embed.video.View> | import("@atproto/lex").$Typed<app.bsky.embed.gallery.View> | import("@atproto/lex").$Typed<app.bsky.embed.external.View> | import("@atproto/lex").Unknown$TypedObject;
|
|
42
42
|
} | undefined>;
|
|
43
43
|
formatImageEmbed(embed: app.bsky.embed.images.Main): {
|
|
44
44
|
$type: "app.bsky.embed.images#view";
|
|
@@ -56,7 +56,7 @@ export declare class LocalViewer {
|
|
|
56
56
|
formatRecordWithMediaEmbed(embed: app.bsky.embed.recordWithMedia.Main): Promise<{
|
|
57
57
|
$type: "app.bsky.embed.recordWithMedia#view";
|
|
58
58
|
record: app.bsky.embed.record.View;
|
|
59
|
-
media: import("@atproto/lex").$Typed<app.bsky.embed.images.View> | import("@atproto/lex").$Typed<app.bsky.embed.video.View> | import("@atproto/lex").$Typed<app.bsky.embed.external.View> | import("@atproto/lex").Unknown$TypedObject;
|
|
59
|
+
media: import("@atproto/lex").$Typed<app.bsky.embed.images.View> | import("@atproto/lex").$Typed<app.bsky.embed.video.View> | import("@atproto/lex").$Typed<app.bsky.embed.gallery.View> | import("@atproto/lex").$Typed<app.bsky.embed.external.View> | import("@atproto/lex").Unknown$TypedObject;
|
|
60
60
|
} | undefined>;
|
|
61
61
|
updateProfileViewBasic<T extends app.bsky.actor.defs.ProfileViewDetailed | app.bsky.actor.defs.ProfileViewBasic | app.bsky.actor.defs.ProfileView>(view: T, record: app.bsky.actor.profile.Main): T;
|
|
62
62
|
updateProfileView<T extends app.bsky.actor.defs.ProfileViewDetailed | app.bsky.actor.defs.ProfileViewBasic | app.bsky.actor.defs.ProfileView>(view: T, record: app.bsky.actor.profile.Main): T;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atproto/pds",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Reference implementation of atproto Personal Data Server (PDS)",
|
|
6
6
|
"keywords": [
|
|
@@ -48,20 +48,20 @@
|
|
|
48
48
|
"@atproto-labs/simple-store-redis": "^0.1.0",
|
|
49
49
|
"@atproto-labs/xrpc-utils": "^0.1.0",
|
|
50
50
|
"@atproto/aws": "^0.3.0",
|
|
51
|
-
"@atproto/common": "^0.6.1",
|
|
52
51
|
"@atproto/crypto": "^0.5.0",
|
|
52
|
+
"@atproto/common": "^0.6.2",
|
|
53
53
|
"@atproto/did": "^0.5.0",
|
|
54
|
-
"@atproto/lex": "^0.1.3",
|
|
55
54
|
"@atproto/identity": "^0.5.0",
|
|
55
|
+
"@atproto/lex": "^0.1.3",
|
|
56
56
|
"@atproto/lex-cbor": "^0.1.0",
|
|
57
|
-
"@atproto/lex-data": "^0.1.1",
|
|
58
|
-
"@atproto/oauth-provider": "^0.18.1",
|
|
59
57
|
"@atproto/lex-json": "^0.1.0",
|
|
58
|
+
"@atproto/oauth-provider": "^0.18.2",
|
|
59
|
+
"@atproto/oauth-scopes": "^0.5.0",
|
|
60
|
+
"@atproto/lex-data": "^0.1.1",
|
|
60
61
|
"@atproto/repo": "^0.10.0",
|
|
61
62
|
"@atproto/xrpc-server": "^0.11.1",
|
|
62
|
-
"@atproto/
|
|
63
|
-
"@atproto/
|
|
64
|
-
"@atproto/syntax": "^0.6.1"
|
|
63
|
+
"@atproto/syntax": "^0.6.1",
|
|
64
|
+
"@atproto/xrpc": "^0.8.0"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@did-plc/server": "^0.0.1",
|
|
@@ -79,10 +79,10 @@
|
|
|
79
79
|
"ts-node": "^10.8.2",
|
|
80
80
|
"typescript": "^6.0.3",
|
|
81
81
|
"ws": "^8.12.0",
|
|
82
|
-
"@atproto/api": "^0.20.
|
|
83
|
-
"@atproto/bsky": "^0.0.
|
|
84
|
-
"@atproto/
|
|
85
|
-
"@atproto/
|
|
82
|
+
"@atproto/api": "^0.20.14",
|
|
83
|
+
"@atproto/bsky": "^0.0.241",
|
|
84
|
+
"@atproto/lex-document": "^0.1.0",
|
|
85
|
+
"@atproto/oauth-client-browser-example": "^0.1.1"
|
|
86
86
|
},
|
|
87
87
|
"type": "module",
|
|
88
88
|
"exports": {
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { KeyObject } from 'node:crypto'
|
|
2
|
+
import { Client as PlcClient } from '@did-plc/lib'
|
|
2
3
|
import { isEmailValid } from '@hapi/address'
|
|
3
4
|
import { isDisposableEmail } from 'disposable-email-domains-js'
|
|
4
5
|
import { HOUR, wait } from '@atproto/common'
|
|
6
|
+
import { Keypair } from '@atproto/crypto'
|
|
5
7
|
import { IdResolver } from '@atproto/identity'
|
|
6
8
|
import {
|
|
7
9
|
AtIdentifierString,
|
|
@@ -21,7 +23,9 @@ import {
|
|
|
21
23
|
isServiceDomain,
|
|
22
24
|
} from '../handle/index.js'
|
|
23
25
|
import { com } from '../lexicons/index.js'
|
|
26
|
+
import { httpLogger } from '../logger.js'
|
|
24
27
|
import { ServerMailer } from '../mailer/index.js'
|
|
28
|
+
import { Sequencer } from '../sequencer/index.js'
|
|
25
29
|
import { AccountDb, EmailTokenPurpose, getDb, getMigrator } from './db/index.js'
|
|
26
30
|
import * as account from './helpers/account.js'
|
|
27
31
|
import { AccountStatus, ActorAccount } from './helpers/account.js'
|
|
@@ -68,6 +72,9 @@ export class AccountManager {
|
|
|
68
72
|
readonly idResolver: IdResolver,
|
|
69
73
|
readonly jwtKey: KeyObject,
|
|
70
74
|
readonly mailer: ServerMailer,
|
|
75
|
+
readonly sequencer: Sequencer,
|
|
76
|
+
readonly plcClient: PlcClient,
|
|
77
|
+
readonly plcRotationKey: Keypair,
|
|
71
78
|
readonly serviceDid: string,
|
|
72
79
|
readonly serviceHandleDomains: string[],
|
|
73
80
|
db: AccountManagerDbConfig,
|
|
@@ -117,7 +124,7 @@ export class AccountManager {
|
|
|
117
124
|
async getDidForActor(
|
|
118
125
|
handleOrDid: AtIdentifierString,
|
|
119
126
|
flags?: account.AvailabilityFlags,
|
|
120
|
-
): Promise<
|
|
127
|
+
): Promise<DidString | null> {
|
|
121
128
|
const got = await this.getAccount(handleOrDid, flags)
|
|
122
129
|
return got?.did ?? null
|
|
123
130
|
}
|
|
@@ -138,7 +145,7 @@ export class AccountManager {
|
|
|
138
145
|
handle: string,
|
|
139
146
|
{
|
|
140
147
|
did,
|
|
141
|
-
allowAnyValid,
|
|
148
|
+
allowAnyValid = false,
|
|
142
149
|
}: {
|
|
143
150
|
did?: string
|
|
144
151
|
allowAnyValid?: boolean
|
|
@@ -168,15 +175,20 @@ export class AccountManager {
|
|
|
168
175
|
allowAnyValid,
|
|
169
176
|
)
|
|
170
177
|
} else {
|
|
178
|
+
// When creating an account (no did yet), we require the handle to be a
|
|
179
|
+
// local service domain. Updating to a custom handle will be possible once
|
|
180
|
+
// the account was created.
|
|
171
181
|
if (did == null) {
|
|
172
182
|
throw new InvalidRequestError(
|
|
173
183
|
'Not a supported handle domain',
|
|
174
184
|
'UnsupportedDomain',
|
|
175
185
|
)
|
|
176
186
|
}
|
|
187
|
+
|
|
177
188
|
// verify resolution of a non-service domain
|
|
178
189
|
const resolvedDid = await this.idResolver.handle.resolve(normalized)
|
|
179
190
|
if (resolvedDid !== did) {
|
|
191
|
+
// @TODO This should use a distinct error code
|
|
180
192
|
throw new InvalidRequestError('External handle did not resolve to DID')
|
|
181
193
|
}
|
|
182
194
|
}
|
|
@@ -261,10 +273,96 @@ export class AccountManager {
|
|
|
261
273
|
return { accessJwt, refreshJwt }
|
|
262
274
|
}
|
|
263
275
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
276
|
+
/**
|
|
277
|
+
* Validates the requested handle, updates the PLC document if needed, persists
|
|
278
|
+
* the new handle locally, and emits an identity event.
|
|
279
|
+
*
|
|
280
|
+
* @throws {InvalidRequestError} when the handle is invalid, taken by another
|
|
281
|
+
* account, or cannot be resolved for non-service domains.
|
|
282
|
+
*
|
|
283
|
+
* @see {@link AccountManager.updateAccountHandle} for behavior when the PLC update fails.
|
|
284
|
+
*/
|
|
285
|
+
async updateHandle(
|
|
286
|
+
did: DidString,
|
|
287
|
+
newHandle: string,
|
|
288
|
+
options?: { allowAnyValid?: boolean },
|
|
289
|
+
): Promise<ActorAccount & { handle: HandleString }> {
|
|
290
|
+
const { account, handle } = await this.validateHandleUpdate(
|
|
291
|
+
did,
|
|
292
|
+
newHandle,
|
|
293
|
+
options,
|
|
294
|
+
)
|
|
295
|
+
|
|
296
|
+
if (did.startsWith('did:plc:')) {
|
|
297
|
+
// @TODO We should verify the status before issuing a PLC update.
|
|
298
|
+
await this.plcClient.updateHandle(did, this.plcRotationKey, handle)
|
|
299
|
+
} else {
|
|
300
|
+
const resolved = await this.idResolver.did.resolveAtprotoData(did, true)
|
|
301
|
+
if (resolved.handle !== handle) {
|
|
302
|
+
throw new InvalidRequestError(
|
|
303
|
+
'DID is not properly configured for handle',
|
|
304
|
+
)
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
// @NOTE If the next line fails (for any reason), we don't "rollback" the
|
|
309
|
+
// PLC update above. The caller can just call this method again.
|
|
310
|
+
await this.updateAccountHandle(did, handle)
|
|
311
|
+
|
|
312
|
+
return { ...account, handle }
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
async validateHandleUpdate(
|
|
316
|
+
did: DidString,
|
|
317
|
+
newHandle: string,
|
|
318
|
+
options?: { allowAnyValid?: boolean },
|
|
319
|
+
): Promise<{
|
|
320
|
+
did: DidString
|
|
321
|
+
handle: HandleString
|
|
322
|
+
// Returned for convenience
|
|
323
|
+
account: ActorAccount
|
|
324
|
+
}> {
|
|
325
|
+
const account = await this.getAccount(did, { includeDeactivated: true })
|
|
326
|
+
if (!account) {
|
|
327
|
+
throw new InvalidRequestError('Account not found')
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
const handle = await this.normalizeAndValidateHandle(newHandle, {
|
|
331
|
+
allowAnyValid: options?.allowAnyValid,
|
|
332
|
+
did,
|
|
333
|
+
})
|
|
334
|
+
|
|
335
|
+
// Pessimistic check to handle spam: also enforced by updateAccountHandle() and the db.
|
|
336
|
+
const existing = await this.getAccount(handle, {
|
|
337
|
+
includeDeactivated: true,
|
|
338
|
+
includeTakenDown: true,
|
|
339
|
+
})
|
|
340
|
+
|
|
341
|
+
if (existing && existing.did !== did) {
|
|
342
|
+
throw new InvalidRequestError(
|
|
343
|
+
`Handle already taken: ${handle}`,
|
|
344
|
+
'HandleNotAvailable',
|
|
345
|
+
)
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
return { did, handle, account }
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
/**
|
|
352
|
+
* @note Failure to emit the identity event will silently be ignored. Users
|
|
353
|
+
* can emit the event again by updating their handle to the same value.
|
|
354
|
+
*/
|
|
355
|
+
async updateAccountHandle(
|
|
356
|
+
did: DidString,
|
|
357
|
+
handle: HandleString,
|
|
358
|
+
): Promise<void> {
|
|
359
|
+
await account.updateHandle(this.db, did, handle)
|
|
360
|
+
|
|
361
|
+
try {
|
|
362
|
+
await this.sequencer.sequenceIdentityEvt(did, handle)
|
|
363
|
+
} catch (err) {
|
|
364
|
+
httpLogger.error({ err, did, handle }, 'failed to sequence handle update')
|
|
365
|
+
}
|
|
268
366
|
}
|
|
269
367
|
|
|
270
368
|
async deleteAccount(did: DidString) {
|
|
@@ -637,7 +735,7 @@ export class AccountManager {
|
|
|
637
735
|
email: string,
|
|
638
736
|
token?: string,
|
|
639
737
|
opts?: { locale?: string; sendConfirmationEmail?: boolean },
|
|
640
|
-
) {
|
|
738
|
+
): Promise<ActorAccount> {
|
|
641
739
|
if (!isEmailValid(email) || isDisposableEmail(email)) {
|
|
642
740
|
throw new InvalidRequestError(
|
|
643
741
|
'This email address is not supported, please use a different email.',
|
|
@@ -13,11 +13,11 @@ import { AccountDb, ActorEntry } from '../db/index.js'
|
|
|
13
13
|
|
|
14
14
|
export class UserAlreadyExistsError extends Error {
|
|
15
15
|
name = 'UserAlreadyExistsError'
|
|
16
|
-
constructor(
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
)
|
|
16
|
+
constructor(
|
|
17
|
+
message = 'This email address is already in use, please use a different email.',
|
|
18
|
+
options?: ErrorOptions,
|
|
19
|
+
) {
|
|
20
|
+
super(message, options)
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
|
|
@@ -195,17 +195,25 @@ export const updateHandle = async (
|
|
|
195
195
|
did: DidString,
|
|
196
196
|
handle: HandleString,
|
|
197
197
|
) => {
|
|
198
|
+
// No-op if the handle is the same, but still returns 1 row affected, so that
|
|
199
|
+
// it can be used to check for existence of the account.
|
|
198
200
|
const [res] = await db.executeWithRetry(
|
|
199
201
|
db.db
|
|
200
202
|
.updateTable('actor')
|
|
201
203
|
.set({ handle })
|
|
202
204
|
.where('did', '=', did)
|
|
203
205
|
.whereNotExists(
|
|
204
|
-
db.db
|
|
206
|
+
db.db
|
|
207
|
+
.selectFrom('actor')
|
|
208
|
+
.where('handle', '=', handle)
|
|
209
|
+
.where('did', '!=', did)
|
|
210
|
+
.selectAll(),
|
|
205
211
|
),
|
|
206
212
|
)
|
|
207
213
|
if (res.numUpdatedRows < 1) {
|
|
208
|
-
throw new UserAlreadyExistsError(
|
|
214
|
+
throw new UserAlreadyExistsError(
|
|
215
|
+
'Handle is already in use, please choose a different handle.',
|
|
216
|
+
)
|
|
209
217
|
}
|
|
210
218
|
}
|
|
211
219
|
|
|
@@ -23,6 +23,7 @@ import {
|
|
|
23
23
|
DeviceStore,
|
|
24
24
|
FoundRequestResult,
|
|
25
25
|
HandleUnavailableError,
|
|
26
|
+
HandleUnavailableReason,
|
|
26
27
|
InvalidCredentialsError,
|
|
27
28
|
InvalidInviteCodeError,
|
|
28
29
|
InvalidRequestError,
|
|
@@ -44,6 +45,7 @@ import {
|
|
|
44
45
|
UpdateEmailConfirmInput,
|
|
45
46
|
UpdateEmailRequestInput,
|
|
46
47
|
UpdateEmailRequestOutput,
|
|
48
|
+
UpdateHandleData,
|
|
47
49
|
UpdateRequestData,
|
|
48
50
|
VerifyEmailConfirmInput,
|
|
49
51
|
VerifyEmailRequestInput,
|
|
@@ -62,8 +64,11 @@ import { Sequencer, syncEvtDataFromCommit } from '../sequencer/index.js'
|
|
|
62
64
|
import { AccountManager, InvalidPasswordError } from './account-manager.js'
|
|
63
65
|
import * as schemas from './db/schema/index.js'
|
|
64
66
|
import * as accountDeviceHelper from './helpers/account-device.js'
|
|
65
|
-
import
|
|
66
|
-
|
|
67
|
+
import {
|
|
68
|
+
AccountStatus,
|
|
69
|
+
ActorAccount,
|
|
70
|
+
UserAlreadyExistsError,
|
|
71
|
+
} from './helpers/account.js'
|
|
67
72
|
import * as authRequestHelper from './helpers/authorization-request.js'
|
|
68
73
|
import * as authorizedClientHelper from './helpers/authorized-client.js'
|
|
69
74
|
import * as deviceHelper from './helpers/device.js'
|
|
@@ -268,11 +273,13 @@ export class OAuthStore
|
|
|
268
273
|
account: Account
|
|
269
274
|
authorizedClients: AuthorizedClients
|
|
270
275
|
}> {
|
|
271
|
-
const accountRow = await
|
|
272
|
-
this.db,
|
|
276
|
+
const accountRow = await this.accountManager.getAccount(
|
|
273
277
|
// @TODO @atproto/oauth-provider should strongly type `Sub` as `DidString`
|
|
274
278
|
asAtIdentifierString(sub),
|
|
275
|
-
{
|
|
279
|
+
{
|
|
280
|
+
includeDeactivated: true,
|
|
281
|
+
includeTakenDown: false,
|
|
282
|
+
},
|
|
276
283
|
)
|
|
277
284
|
|
|
278
285
|
assert(accountRow, 'Account not found')
|
|
@@ -360,7 +367,7 @@ export class OAuthStore
|
|
|
360
367
|
}: ResetPasswordRequestInput): Promise<Account | null> {
|
|
361
368
|
const account = await this.accountManager.getAccountByEmail(email, {
|
|
362
369
|
includeDeactivated: true,
|
|
363
|
-
includeTakenDown:
|
|
370
|
+
includeTakenDown: false,
|
|
364
371
|
})
|
|
365
372
|
|
|
366
373
|
if (!account?.email || !account?.handle) return null
|
|
@@ -387,7 +394,7 @@ export class OAuthStore
|
|
|
387
394
|
const did = await this.accountManager.resetPassword(data)
|
|
388
395
|
const account = await this.accountManager.getAccount(did, {
|
|
389
396
|
includeDeactivated: true,
|
|
390
|
-
includeTakenDown:
|
|
397
|
+
includeTakenDown: false,
|
|
391
398
|
})
|
|
392
399
|
|
|
393
400
|
return account ? this.buildAccount(account) : null
|
|
@@ -422,13 +429,7 @@ export class OAuthStore
|
|
|
422
429
|
throw new HandleUnavailableError('taken')
|
|
423
430
|
}
|
|
424
431
|
} catch (err) {
|
|
425
|
-
|
|
426
|
-
throw err.customErrorName === 'HandleNotAvailable'
|
|
427
|
-
? new HandleUnavailableError('taken', err.message)
|
|
428
|
-
: new HandleUnavailableError('syntax', err.message)
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
throw err
|
|
432
|
+
throw toHandleUnavailableError(err)
|
|
432
433
|
}
|
|
433
434
|
}
|
|
434
435
|
|
|
@@ -682,8 +683,21 @@ export class OAuthStore
|
|
|
682
683
|
}
|
|
683
684
|
}
|
|
684
685
|
|
|
686
|
+
async updateHandle({ sub: did, handle }: UpdateHandleData): Promise<Account> {
|
|
687
|
+
// @TODO @atproto/oauth-provider should strongly type `Sub` as `DidString`
|
|
688
|
+
assert(isDidString(did), 'sub must be a valid DID string')
|
|
689
|
+
|
|
690
|
+
try {
|
|
691
|
+
const account = await this.accountManager.updateHandle(did, handle)
|
|
692
|
+
|
|
693
|
+
return this.buildAccount(account)
|
|
694
|
+
} catch (err) {
|
|
695
|
+
throw toHandleUnavailableError(err)
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
|
|
685
699
|
private async toTokenInfo(
|
|
686
|
-
row:
|
|
700
|
+
row: ActorAccount & Selectable<schemas.Token>,
|
|
687
701
|
): Promise<TokenInfo> {
|
|
688
702
|
return {
|
|
689
703
|
id: row.tokenId,
|
|
@@ -693,9 +707,7 @@ export class OAuthStore
|
|
|
693
707
|
}
|
|
694
708
|
}
|
|
695
709
|
|
|
696
|
-
private async buildAccount(
|
|
697
|
-
row: accountHelper.ActorAccount,
|
|
698
|
-
): Promise<Account> {
|
|
710
|
+
private async buildAccount(row: ActorAccount): Promise<Account> {
|
|
699
711
|
const account: Account = {
|
|
700
712
|
sub: row.did,
|
|
701
713
|
aud: this.serviceDid,
|
|
@@ -729,3 +741,49 @@ export class OAuthStore
|
|
|
729
741
|
return account
|
|
730
742
|
}
|
|
731
743
|
}
|
|
744
|
+
|
|
745
|
+
function toHandleUnavailableError(err: unknown): unknown {
|
|
746
|
+
if (err instanceof XrpcInvalidRequestError) {
|
|
747
|
+
const reason = toHandleUnavailableReason(err)
|
|
748
|
+
if (reason) throw new HandleUnavailableError(reason, err.message, err)
|
|
749
|
+
|
|
750
|
+
return new InvalidRequestError(err.message, err)
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
return err
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
/**
|
|
757
|
+
* This function maps specific `XrpcInvalidRequestError`, thrown by the
|
|
758
|
+
* `AccountManager` when validating a handle, to a more specific
|
|
759
|
+
* `HandleUnavailableError` with a reason. This allows the OAuthProvider to
|
|
760
|
+
* provide properly localized and specific error messages to the user when a
|
|
761
|
+
* handle is not available.
|
|
762
|
+
*/
|
|
763
|
+
function toHandleUnavailableReason(
|
|
764
|
+
err: XrpcInvalidRequestError,
|
|
765
|
+
): HandleUnavailableReason | undefined {
|
|
766
|
+
switch (err.error) {
|
|
767
|
+
case 'HandleNotAvailable': {
|
|
768
|
+
if (err.message === 'Reserved handle') return 'reserved'
|
|
769
|
+
return 'taken'
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
case 'UnsupportedDomain': {
|
|
773
|
+
return 'unsupported'
|
|
774
|
+
}
|
|
775
|
+
|
|
776
|
+
case 'InvalidHandle': {
|
|
777
|
+
if (err.message === 'Inappropriate language in handle') return 'slur'
|
|
778
|
+
if (err.message === 'Handle TLD is invalid or disallowed') return 'domain'
|
|
779
|
+
return 'syntax'
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
case 'InvalidRequest': {
|
|
783
|
+
if (err.message === 'External handle did not resolve to DID') {
|
|
784
|
+
return 'resolution'
|
|
785
|
+
}
|
|
786
|
+
return undefined
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
}
|
|
@@ -1,56 +1,47 @@
|
|
|
1
1
|
import { InvalidRequestError, Server } from '@atproto/xrpc-server'
|
|
2
2
|
import { AppContext } from '../../../../context.js'
|
|
3
3
|
import { com } from '../../../../lexicons/index.js'
|
|
4
|
-
import { httpLogger } from '../../../../logger.js'
|
|
5
4
|
|
|
6
5
|
export default function (server: Server, ctx: AppContext) {
|
|
7
|
-
|
|
8
|
-
auth: ctx.authVerifier.adminToken,
|
|
9
|
-
handler: async ({ input }) => {
|
|
10
|
-
const { did } = input.body
|
|
11
|
-
const handle = await ctx.accountManager.normalizeAndValidateHandle(
|
|
12
|
-
input.body.handle,
|
|
13
|
-
{
|
|
14
|
-
did,
|
|
15
|
-
allowAnyValid: true,
|
|
16
|
-
},
|
|
17
|
-
)
|
|
6
|
+
const { entrywayClient } = ctx
|
|
18
7
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
8
|
+
if (entrywayClient) {
|
|
9
|
+
server.add(com.atproto.admin.updateAccountHandle, {
|
|
10
|
+
auth: ctx.authVerifier.adminToken,
|
|
11
|
+
handler: async ({ input: { body } }) => {
|
|
12
|
+
const { did, handle } = await ctx.accountManager.validateHandleUpdate(
|
|
13
|
+
body.did,
|
|
14
|
+
body.handle,
|
|
15
|
+
{ allowAnyValid: true },
|
|
16
|
+
)
|
|
24
17
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
} else {
|
|
41
|
-
await ctx.plcClient.updateHandle(did, ctx.plcRotationKey, handle)
|
|
18
|
+
// the pds defers to the entryway for updating the handle in the user's
|
|
19
|
+
// did doc. here was just check that the handle is already
|
|
20
|
+
// bidirectionally confirmed.
|
|
21
|
+
//
|
|
22
|
+
// -> entryway(identity.updateHandle) [update handle, submit plc op]
|
|
23
|
+
// -> pds(admin.updateAccountHandle) [track handle, sequence handle update]
|
|
24
|
+
//
|
|
25
|
+
// @TODO if handle is taken according to this PDS, should we force-update?
|
|
26
|
+
const doc = await ctx.idResolver.did
|
|
27
|
+
.resolveAtprotoData(did, true)
|
|
28
|
+
.catch(() => undefined)
|
|
29
|
+
|
|
30
|
+
if (!doc || doc.handle !== handle) {
|
|
31
|
+
throw new InvalidRequestError('Handle does not match DID doc')
|
|
42
32
|
}
|
|
43
|
-
await ctx.accountManager.updateHandle(did, handle)
|
|
44
|
-
}
|
|
45
33
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
34
|
+
await ctx.accountManager.updateAccountHandle(did, handle)
|
|
35
|
+
},
|
|
36
|
+
})
|
|
37
|
+
} else {
|
|
38
|
+
server.add(com.atproto.admin.updateAccountHandle, {
|
|
39
|
+
auth: ctx.authVerifier.adminToken,
|
|
40
|
+
handler: async ({ input: { body } }) => {
|
|
41
|
+
await ctx.accountManager.updateHandle(body.did, body.handle, {
|
|
42
|
+
allowAnyValid: true,
|
|
43
|
+
})
|
|
44
|
+
},
|
|
45
|
+
})
|
|
46
|
+
}
|
|
56
47
|
}
|