@atproto/api 0.17.0 → 0.17.2
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 +16 -0
- package/dist/agent.d.ts +3 -4
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +7 -8
- package/dist/agent.js.map +1 -1
- package/dist/atp-agent.js.map +1 -1
- package/dist/bsky-agent.js.map +1 -1
- package/dist/client/index.d.ts +18 -14
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +25 -18
- package/dist/client/index.js.map +1 -1
- package/dist/client/lexicons.d.ts +877 -125
- package/dist/client/lexicons.d.ts.map +1 -1
- package/dist/client/lexicons.js +444 -67
- package/dist/client/lexicons.js.map +1 -1
- package/dist/client/types/app/bsky/actor/defs.js.map +1 -1
- package/dist/client/types/app/bsky/actor/getPreferences.js.map +1 -1
- package/dist/client/types/app/bsky/actor/getProfile.js.map +1 -1
- package/dist/client/types/app/bsky/actor/getProfiles.js.map +1 -1
- package/dist/client/types/app/bsky/actor/getSuggestions.js.map +1 -1
- package/dist/client/types/app/bsky/actor/profile.js.map +1 -1
- package/dist/client/types/app/bsky/actor/putPreferences.js.map +1 -1
- package/dist/client/types/app/bsky/actor/searchActors.js.map +1 -1
- package/dist/client/types/app/bsky/actor/searchActorsTypeahead.js.map +1 -1
- package/dist/client/types/app/bsky/actor/status.js.map +1 -1
- package/dist/client/types/app/bsky/bookmark/createBookmark.js.map +1 -1
- package/dist/client/types/app/bsky/bookmark/defs.js.map +1 -1
- package/dist/client/types/app/bsky/bookmark/deleteBookmark.js.map +1 -1
- package/dist/client/types/app/bsky/bookmark/getBookmarks.js.map +1 -1
- package/dist/client/types/app/bsky/embed/defs.js.map +1 -1
- package/dist/client/types/app/bsky/embed/external.js.map +1 -1
- package/dist/client/types/app/bsky/embed/images.js.map +1 -1
- package/dist/client/types/app/bsky/embed/record.js.map +1 -1
- package/dist/client/types/app/bsky/embed/recordWithMedia.js.map +1 -1
- package/dist/client/types/app/bsky/embed/video.js.map +1 -1
- package/dist/client/types/app/bsky/feed/defs.js.map +1 -1
- package/dist/client/types/app/bsky/feed/describeFeedGenerator.js.map +1 -1
- package/dist/client/types/app/bsky/feed/generator.js.map +1 -1
- package/dist/client/types/app/bsky/feed/getActorFeeds.js.map +1 -1
- package/dist/client/types/app/bsky/feed/getActorLikes.js.map +1 -1
- package/dist/client/types/app/bsky/feed/getAuthorFeed.js.map +1 -1
- package/dist/client/types/app/bsky/feed/getFeed.js.map +1 -1
- package/dist/client/types/app/bsky/feed/getFeedGenerator.js.map +1 -1
- package/dist/client/types/app/bsky/feed/getFeedGenerators.js.map +1 -1
- package/dist/client/types/app/bsky/feed/getFeedSkeleton.js.map +1 -1
- package/dist/client/types/app/bsky/feed/getLikes.js.map +1 -1
- package/dist/client/types/app/bsky/feed/getListFeed.js.map +1 -1
- package/dist/client/types/app/bsky/feed/getPostThread.js.map +1 -1
- package/dist/client/types/app/bsky/feed/getPosts.js.map +1 -1
- package/dist/client/types/app/bsky/feed/getQuotes.js.map +1 -1
- package/dist/client/types/app/bsky/feed/getRepostedBy.js.map +1 -1
- package/dist/client/types/app/bsky/feed/getSuggestedFeeds.js.map +1 -1
- package/dist/client/types/app/bsky/feed/getTimeline.js.map +1 -1
- package/dist/client/types/app/bsky/feed/like.js.map +1 -1
- package/dist/client/types/app/bsky/feed/post.js.map +1 -1
- package/dist/client/types/app/bsky/feed/postgate.js.map +1 -1
- package/dist/client/types/app/bsky/feed/repost.js.map +1 -1
- package/dist/client/types/app/bsky/feed/searchPosts.js.map +1 -1
- package/dist/client/types/app/bsky/feed/sendInteractions.js.map +1 -1
- package/dist/client/types/app/bsky/feed/threadgate.js.map +1 -1
- package/dist/client/types/app/bsky/graph/block.js.map +1 -1
- package/dist/client/types/app/bsky/graph/defs.js.map +1 -1
- package/dist/client/types/app/bsky/graph/follow.js.map +1 -1
- package/dist/client/types/app/bsky/graph/getActorStarterPacks.js.map +1 -1
- package/dist/client/types/app/bsky/graph/getBlocks.js.map +1 -1
- package/dist/client/types/app/bsky/graph/getFollowers.js.map +1 -1
- package/dist/client/types/app/bsky/graph/getFollows.js.map +1 -1
- package/dist/client/types/app/bsky/graph/getKnownFollowers.js.map +1 -1
- package/dist/client/types/app/bsky/graph/getList.js.map +1 -1
- package/dist/client/types/app/bsky/graph/getListBlocks.js.map +1 -1
- package/dist/client/types/app/bsky/graph/getListMutes.js.map +1 -1
- package/dist/client/types/app/bsky/graph/getLists.js.map +1 -1
- package/dist/client/types/app/bsky/graph/getListsWithMembership.js.map +1 -1
- package/dist/client/types/app/bsky/graph/getMutes.js.map +1 -1
- package/dist/client/types/app/bsky/graph/getRelationships.js.map +1 -1
- package/dist/client/types/app/bsky/graph/getStarterPack.js.map +1 -1
- package/dist/client/types/app/bsky/graph/getStarterPacks.js.map +1 -1
- package/dist/client/types/app/bsky/graph/getStarterPacksWithMembership.js.map +1 -1
- package/dist/client/types/app/bsky/graph/getSuggestedFollowsByActor.js.map +1 -1
- package/dist/client/types/app/bsky/graph/list.js.map +1 -1
- package/dist/client/types/app/bsky/graph/listblock.js.map +1 -1
- package/dist/client/types/app/bsky/graph/listitem.js.map +1 -1
- package/dist/client/types/app/bsky/graph/muteActor.js.map +1 -1
- package/dist/client/types/app/bsky/graph/muteActorList.js.map +1 -1
- package/dist/client/types/app/bsky/graph/muteThread.js.map +1 -1
- package/dist/client/types/app/bsky/graph/searchStarterPacks.js.map +1 -1
- package/dist/client/types/app/bsky/graph/starterpack.js.map +1 -1
- package/dist/client/types/app/bsky/graph/unmuteActor.js.map +1 -1
- package/dist/client/types/app/bsky/graph/unmuteActorList.js.map +1 -1
- package/dist/client/types/app/bsky/graph/unmuteThread.js.map +1 -1
- package/dist/client/types/app/bsky/graph/verification.js.map +1 -1
- package/dist/client/types/app/bsky/labeler/defs.js.map +1 -1
- package/dist/client/types/app/bsky/labeler/getServices.js.map +1 -1
- package/dist/client/types/app/bsky/labeler/service.js.map +1 -1
- package/dist/client/types/app/bsky/notification/declaration.js.map +1 -1
- package/dist/client/types/app/bsky/notification/defs.js.map +1 -1
- package/dist/client/types/app/bsky/notification/getPreferences.js.map +1 -1
- package/dist/client/types/app/bsky/notification/getUnreadCount.js.map +1 -1
- package/dist/client/types/app/bsky/notification/listActivitySubscriptions.js.map +1 -1
- package/dist/client/types/app/bsky/notification/listNotifications.js.map +1 -1
- package/dist/client/types/app/bsky/notification/putActivitySubscription.js.map +1 -1
- package/dist/client/types/app/bsky/notification/putPreferences.js.map +1 -1
- package/dist/client/types/app/bsky/notification/putPreferencesV2.js.map +1 -1
- package/dist/client/types/app/bsky/notification/registerPush.js.map +1 -1
- package/dist/client/types/app/bsky/notification/unregisterPush.js.map +1 -1
- package/dist/client/types/app/bsky/notification/updateSeen.js.map +1 -1
- package/dist/client/types/app/bsky/richtext/facet.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/defs.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/getAgeAssuranceState.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/getConfig.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacksSkeleton.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/getPopularFeedGenerators.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/getPostThreadOtherV2.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/getPostThreadV2.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/getSuggestedFeeds.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/getSuggestedFeedsSkeleton.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/getSuggestedStarterPacks.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/getSuggestedUsers.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/getSuggestedUsersSkeleton.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/getSuggestionsSkeleton.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/getTaggedSuggestions.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/getTrendingTopics.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/getTrends.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/getTrendsSkeleton.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/initAgeAssurance.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/searchActorsSkeleton.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/searchPostsSkeleton.js.map +1 -1
- package/dist/client/types/app/bsky/unspecced/searchStarterPacksSkeleton.js.map +1 -1
- package/dist/client/types/app/bsky/video/defs.js.map +1 -1
- package/dist/client/types/app/bsky/video/getJobStatus.js.map +1 -1
- package/dist/client/types/app/bsky/video/getUploadLimits.js.map +1 -1
- package/dist/client/types/app/bsky/video/uploadVideo.js.map +1 -1
- package/dist/client/types/chat/bsky/actor/declaration.js.map +1 -1
- package/dist/client/types/chat/bsky/actor/defs.js.map +1 -1
- package/dist/client/types/chat/bsky/actor/deleteAccount.js.map +1 -1
- package/dist/client/types/chat/bsky/actor/exportAccountData.js.map +1 -1
- package/dist/client/types/chat/bsky/convo/acceptConvo.js.map +1 -1
- package/dist/client/types/chat/bsky/convo/addReaction.js.map +1 -1
- package/dist/client/types/chat/bsky/convo/defs.js.map +1 -1
- package/dist/client/types/chat/bsky/convo/deleteMessageForSelf.js.map +1 -1
- package/dist/client/types/chat/bsky/convo/getConvo.js.map +1 -1
- package/dist/client/types/chat/bsky/convo/getConvoAvailability.js.map +1 -1
- package/dist/client/types/chat/bsky/convo/getConvoForMembers.js.map +1 -1
- package/dist/client/types/chat/bsky/convo/getLog.js.map +1 -1
- package/dist/client/types/chat/bsky/convo/getMessages.js.map +1 -1
- package/dist/client/types/chat/bsky/convo/leaveConvo.js.map +1 -1
- package/dist/client/types/chat/bsky/convo/listConvos.js.map +1 -1
- package/dist/client/types/chat/bsky/convo/muteConvo.js.map +1 -1
- package/dist/client/types/chat/bsky/convo/removeReaction.js.map +1 -1
- package/dist/client/types/chat/bsky/convo/sendMessage.js.map +1 -1
- package/dist/client/types/chat/bsky/convo/sendMessageBatch.js.map +1 -1
- package/dist/client/types/chat/bsky/convo/unmuteConvo.js.map +1 -1
- package/dist/client/types/chat/bsky/convo/updateAllRead.js.map +1 -1
- package/dist/client/types/chat/bsky/convo/updateRead.js.map +1 -1
- package/dist/client/types/chat/bsky/moderation/getActorMetadata.js.map +1 -1
- package/dist/client/types/chat/bsky/moderation/getMessageContext.js.map +1 -1
- package/dist/client/types/chat/bsky/moderation/updateActorAccess.js.map +1 -1
- package/dist/client/types/com/atproto/admin/defs.js.map +1 -1
- package/dist/client/types/com/atproto/admin/deleteAccount.js.map +1 -1
- package/dist/client/types/com/atproto/admin/disableAccountInvites.js.map +1 -1
- package/dist/client/types/com/atproto/admin/disableInviteCodes.js.map +1 -1
- package/dist/client/types/com/atproto/admin/enableAccountInvites.js.map +1 -1
- package/dist/client/types/com/atproto/admin/getAccountInfo.js.map +1 -1
- package/dist/client/types/com/atproto/admin/getAccountInfos.js.map +1 -1
- package/dist/client/types/com/atproto/admin/getInviteCodes.js.map +1 -1
- package/dist/client/types/com/atproto/admin/getSubjectStatus.js.map +1 -1
- package/dist/client/types/com/atproto/admin/searchAccounts.js.map +1 -1
- package/dist/client/types/com/atproto/admin/sendEmail.js.map +1 -1
- package/dist/client/types/com/atproto/admin/updateAccountEmail.js.map +1 -1
- package/dist/client/types/com/atproto/admin/updateAccountHandle.js.map +1 -1
- package/dist/client/types/com/atproto/admin/updateAccountPassword.js.map +1 -1
- package/dist/client/types/com/atproto/admin/updateAccountSigningKey.js.map +1 -1
- package/dist/client/types/com/atproto/admin/updateSubjectStatus.js.map +1 -1
- package/dist/client/types/com/atproto/identity/defs.js.map +1 -1
- package/dist/client/types/com/atproto/identity/getRecommendedDidCredentials.js.map +1 -1
- package/dist/client/types/com/atproto/identity/refreshIdentity.js.map +1 -1
- package/dist/client/types/com/atproto/identity/requestPlcOperationSignature.js.map +1 -1
- package/dist/client/types/com/atproto/identity/resolveDid.js.map +1 -1
- package/dist/client/types/com/atproto/identity/resolveHandle.js.map +1 -1
- package/dist/client/types/com/atproto/identity/resolveIdentity.js.map +1 -1
- package/dist/client/types/com/atproto/identity/signPlcOperation.js.map +1 -1
- package/dist/client/types/com/atproto/identity/submitPlcOperation.js.map +1 -1
- package/dist/client/types/com/atproto/identity/updateHandle.js.map +1 -1
- package/dist/client/types/com/atproto/label/defs.js.map +1 -1
- package/dist/client/types/com/atproto/label/queryLabels.js.map +1 -1
- package/dist/client/types/com/atproto/label/subscribeLabels.js.map +1 -1
- package/dist/client/types/com/atproto/lexicon/schema.js.map +1 -1
- package/dist/client/types/com/atproto/moderation/createReport.js.map +1 -1
- package/dist/client/types/com/atproto/moderation/defs.d.ts +2 -2
- package/dist/client/types/com/atproto/moderation/defs.d.ts.map +1 -1
- package/dist/client/types/com/atproto/moderation/defs.js +1 -1
- package/dist/client/types/com/atproto/moderation/defs.js.map +1 -1
- package/dist/client/types/com/atproto/repo/applyWrites.js.map +1 -1
- package/dist/client/types/com/atproto/repo/createRecord.js.map +1 -1
- package/dist/client/types/com/atproto/repo/defs.js.map +1 -1
- package/dist/client/types/com/atproto/repo/deleteRecord.js.map +1 -1
- package/dist/client/types/com/atproto/repo/describeRepo.js.map +1 -1
- package/dist/client/types/com/atproto/repo/getRecord.js.map +1 -1
- package/dist/client/types/com/atproto/repo/importRepo.js.map +1 -1
- package/dist/client/types/com/atproto/repo/listMissingBlobs.js.map +1 -1
- package/dist/client/types/com/atproto/repo/listRecords.js.map +1 -1
- package/dist/client/types/com/atproto/repo/putRecord.js.map +1 -1
- package/dist/client/types/com/atproto/repo/strongRef.js.map +1 -1
- package/dist/client/types/com/atproto/repo/uploadBlob.js.map +1 -1
- package/dist/client/types/com/atproto/server/activateAccount.js.map +1 -1
- package/dist/client/types/com/atproto/server/checkAccountStatus.js.map +1 -1
- package/dist/client/types/com/atproto/server/confirmEmail.js.map +1 -1
- package/dist/client/types/com/atproto/server/createAccount.js.map +1 -1
- package/dist/client/types/com/atproto/server/createAppPassword.js.map +1 -1
- package/dist/client/types/com/atproto/server/createInviteCode.js.map +1 -1
- package/dist/client/types/com/atproto/server/createInviteCodes.js.map +1 -1
- package/dist/client/types/com/atproto/server/createSession.js.map +1 -1
- package/dist/client/types/com/atproto/server/deactivateAccount.js.map +1 -1
- package/dist/client/types/com/atproto/server/defs.js.map +1 -1
- package/dist/client/types/com/atproto/server/deleteAccount.js.map +1 -1
- package/dist/client/types/com/atproto/server/deleteSession.js.map +1 -1
- package/dist/client/types/com/atproto/server/describeServer.js.map +1 -1
- package/dist/client/types/com/atproto/server/getAccountInviteCodes.js.map +1 -1
- package/dist/client/types/com/atproto/server/getServiceAuth.js.map +1 -1
- package/dist/client/types/com/atproto/server/getSession.js.map +1 -1
- package/dist/client/types/com/atproto/server/listAppPasswords.js.map +1 -1
- package/dist/client/types/com/atproto/server/refreshSession.js.map +1 -1
- package/dist/client/types/com/atproto/server/requestAccountDelete.js.map +1 -1
- package/dist/client/types/com/atproto/server/requestEmailConfirmation.js.map +1 -1
- package/dist/client/types/com/atproto/server/requestEmailUpdate.js.map +1 -1
- package/dist/client/types/com/atproto/server/requestPasswordReset.js.map +1 -1
- package/dist/client/types/com/atproto/server/reserveSigningKey.js.map +1 -1
- package/dist/client/types/com/atproto/server/resetPassword.js.map +1 -1
- package/dist/client/types/com/atproto/server/revokeAppPassword.js.map +1 -1
- package/dist/client/types/com/atproto/server/updateEmail.js.map +1 -1
- package/dist/client/types/com/atproto/sync/defs.js.map +1 -1
- package/dist/client/types/com/atproto/sync/getBlob.js.map +1 -1
- package/dist/client/types/com/atproto/sync/getBlocks.js.map +1 -1
- package/dist/client/types/com/atproto/sync/getCheckout.js.map +1 -1
- package/dist/client/types/com/atproto/sync/getHead.js.map +1 -1
- package/dist/client/types/com/atproto/sync/getHostStatus.js.map +1 -1
- package/dist/client/types/com/atproto/sync/getLatestCommit.js.map +1 -1
- package/dist/client/types/com/atproto/sync/getRecord.js.map +1 -1
- package/dist/client/types/com/atproto/sync/getRepo.js.map +1 -1
- package/dist/client/types/com/atproto/sync/getRepoStatus.js.map +1 -1
- package/dist/client/types/com/atproto/sync/listBlobs.js.map +1 -1
- package/dist/client/types/com/atproto/sync/listHosts.js.map +1 -1
- package/dist/client/types/com/atproto/sync/listRepos.js.map +1 -1
- package/dist/client/types/com/atproto/sync/listReposByCollection.js.map +1 -1
- package/dist/client/types/com/atproto/sync/notifyOfUpdate.js.map +1 -1
- package/dist/client/types/com/atproto/sync/requestCrawl.js.map +1 -1
- package/dist/client/types/com/atproto/sync/subscribeRepos.js.map +1 -1
- package/dist/client/types/com/atproto/temp/addReservedHandle.js.map +1 -1
- package/dist/client/types/com/atproto/temp/checkHandleAvailability.js.map +1 -1
- package/dist/client/types/com/atproto/temp/checkSignupQueue.js.map +1 -1
- package/dist/client/types/com/atproto/temp/dereferenceScope.js.map +1 -1
- package/dist/client/types/com/atproto/temp/fetchLabels.js.map +1 -1
- package/dist/client/types/com/atproto/temp/requestPhoneVerification.js.map +1 -1
- package/dist/client/types/com/atproto/temp/revokeAccountCredentials.js.map +1 -1
- package/dist/client/types/tools/ozone/communication/createTemplate.js.map +1 -1
- package/dist/client/types/tools/ozone/communication/defs.js.map +1 -1
- package/dist/client/types/tools/ozone/communication/deleteTemplate.js.map +1 -1
- package/dist/client/types/tools/ozone/communication/listTemplates.js.map +1 -1
- package/dist/client/types/tools/ozone/communication/updateTemplate.js.map +1 -1
- package/dist/client/types/tools/ozone/hosting/getAccountHistory.js.map +1 -1
- package/dist/client/types/tools/ozone/moderation/cancelScheduledActions.d.ts +43 -0
- package/dist/client/types/tools/ozone/moderation/cancelScheduledActions.d.ts.map +1 -0
- package/dist/client/types/tools/ozone/moderation/cancelScheduledActions.js +29 -0
- package/dist/client/types/tools/ozone/moderation/cancelScheduledActions.js.map +1 -0
- package/dist/client/types/tools/ozone/moderation/defs.d.ts +57 -2
- package/dist/client/types/tools/ozone/moderation/defs.d.ts.map +1 -1
- package/dist/client/types/tools/ozone/moderation/defs.js +27 -0
- package/dist/client/types/tools/ozone/moderation/defs.js.map +1 -1
- package/dist/client/types/tools/ozone/moderation/emitEvent.d.ts +1 -1
- package/dist/client/types/tools/ozone/moderation/emitEvent.d.ts.map +1 -1
- package/dist/client/types/tools/ozone/moderation/emitEvent.js.map +1 -1
- package/dist/client/types/tools/ozone/moderation/getAccountTimeline.d.ts +1 -1
- package/dist/client/types/tools/ozone/moderation/getAccountTimeline.d.ts.map +1 -1
- package/dist/client/types/tools/ozone/moderation/getAccountTimeline.js.map +1 -1
- package/dist/client/types/tools/ozone/moderation/getEvent.js.map +1 -1
- package/dist/client/types/tools/ozone/moderation/getRecord.js.map +1 -1
- package/dist/client/types/tools/ozone/moderation/getRecords.js.map +1 -1
- package/dist/client/types/tools/ozone/moderation/getRepo.js.map +1 -1
- package/dist/client/types/tools/ozone/moderation/getReporterStats.js.map +1 -1
- package/dist/client/types/tools/ozone/moderation/getRepos.js.map +1 -1
- package/dist/client/types/tools/ozone/moderation/getSubjects.js.map +1 -1
- package/dist/client/types/tools/ozone/moderation/listScheduledActions.d.ts +38 -0
- package/dist/client/types/tools/ozone/moderation/listScheduledActions.d.ts.map +1 -0
- package/dist/client/types/tools/ozone/moderation/listScheduledActions.js +11 -0
- package/dist/client/types/tools/ozone/moderation/listScheduledActions.js.map +1 -0
- package/dist/client/types/tools/ozone/moderation/queryEvents.js.map +1 -1
- package/dist/client/types/tools/ozone/moderation/queryStatuses.js.map +1 -1
- package/dist/client/types/tools/ozone/moderation/scheduleAction.d.ts +72 -0
- package/dist/client/types/tools/ozone/moderation/scheduleAction.d.ts.map +1 -0
- package/dist/client/types/tools/ozone/moderation/scheduleAction.js +47 -0
- package/dist/client/types/tools/ozone/moderation/scheduleAction.js.map +1 -0
- package/dist/client/types/tools/ozone/moderation/searchRepos.js.map +1 -1
- package/dist/client/types/tools/ozone/report/defs.d.ts +17 -27
- package/dist/client/types/tools/ozone/report/defs.d.ts.map +1 -1
- package/dist/client/types/tools/ozone/report/defs.js +17 -27
- package/dist/client/types/tools/ozone/report/defs.js.map +1 -1
- package/dist/client/types/tools/ozone/safelink/addRule.js.map +1 -1
- package/dist/client/types/tools/ozone/safelink/defs.js.map +1 -1
- package/dist/client/types/tools/ozone/safelink/queryEvents.js.map +1 -1
- package/dist/client/types/tools/ozone/safelink/queryRules.js.map +1 -1
- package/dist/client/types/tools/ozone/safelink/removeRule.js.map +1 -1
- package/dist/client/types/tools/ozone/safelink/updateRule.js.map +1 -1
- package/dist/client/types/tools/ozone/server/getConfig.js.map +1 -1
- package/dist/client/types/tools/ozone/set/addValues.js.map +1 -1
- package/dist/client/types/tools/ozone/set/defs.js.map +1 -1
- package/dist/client/types/tools/ozone/set/deleteSet.js.map +1 -1
- package/dist/client/types/tools/ozone/set/deleteValues.js.map +1 -1
- package/dist/client/types/tools/ozone/set/getValues.js.map +1 -1
- package/dist/client/types/tools/ozone/set/querySets.js.map +1 -1
- package/dist/client/types/tools/ozone/set/upsertSet.js.map +1 -1
- package/dist/client/types/tools/ozone/setting/defs.js.map +1 -1
- package/dist/client/types/tools/ozone/setting/listOptions.js.map +1 -1
- package/dist/client/types/tools/ozone/setting/removeOptions.js.map +1 -1
- package/dist/client/types/tools/ozone/setting/upsertOption.js.map +1 -1
- package/dist/client/types/tools/ozone/signature/defs.js.map +1 -1
- package/dist/client/types/tools/ozone/signature/findCorrelation.js.map +1 -1
- package/dist/client/types/tools/ozone/signature/findRelatedAccounts.js.map +1 -1
- package/dist/client/types/tools/ozone/signature/searchAccounts.js.map +1 -1
- package/dist/client/types/tools/ozone/team/addMember.js.map +1 -1
- package/dist/client/types/tools/ozone/team/defs.js.map +1 -1
- package/dist/client/types/tools/ozone/team/deleteMember.js.map +1 -1
- package/dist/client/types/tools/ozone/team/listMembers.js.map +1 -1
- package/dist/client/types/tools/ozone/team/updateMember.js.map +1 -1
- package/dist/client/types/tools/ozone/verification/defs.js.map +1 -1
- package/dist/client/types/tools/ozone/verification/grantVerifications.js.map +1 -1
- package/dist/client/types/tools/ozone/verification/listVerifications.js.map +1 -1
- package/dist/client/types/tools/ozone/verification/revokeVerifications.js.map +1 -1
- package/dist/client/util.js.map +1 -1
- package/dist/const.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mocker.js.map +1 -1
- package/dist/moderation/const/labels.js.map +1 -1
- package/dist/moderation/decision.js.map +1 -1
- package/dist/moderation/index.js.map +1 -1
- package/dist/moderation/mutewords.js.map +1 -1
- package/dist/moderation/subjects/account.js.map +1 -1
- package/dist/moderation/subjects/feed-generator.js.map +1 -1
- package/dist/moderation/subjects/notification.js.map +1 -1
- package/dist/moderation/subjects/post.js.map +1 -1
- package/dist/moderation/subjects/profile.js.map +1 -1
- package/dist/moderation/subjects/user-list.js.map +1 -1
- package/dist/moderation/types.js.map +1 -1
- package/dist/moderation/ui.js.map +1 -1
- package/dist/moderation/util.js.map +1 -1
- package/dist/predicate.js.map +1 -1
- package/dist/rich-text/detection.js.map +1 -1
- package/dist/rich-text/rich-text.js.map +1 -1
- package/dist/rich-text/sanitization.js.map +1 -1
- package/dist/rich-text/unicode.js.map +1 -1
- package/dist/rich-text/util.js.map +1 -1
- package/dist/session-manager.js.map +1 -1
- package/dist/types.d.ts +10 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +41 -0
- package/dist/types.js.map +1 -1
- package/dist/util.d.ts +0 -3
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +1 -14
- package/dist/util.js.map +1 -1
- package/package.json +1 -1
- package/src/agent.ts +7 -7
- package/src/client/index.ts +54 -25
- package/src/client/lexicons.ts +467 -69
- package/src/client/types/com/atproto/moderation/defs.ts +10 -15
- package/src/client/types/tools/ozone/moderation/cancelScheduledActions.ts +79 -0
- package/src/client/types/tools/ozone/moderation/defs.ts +88 -0
- package/src/client/types/tools/ozone/moderation/emitEvent.ts +2 -0
- package/src/client/types/tools/ozone/moderation/getAccountTimeline.ts +2 -0
- package/src/client/types/tools/ozone/moderation/listScheduledActions.ts +57 -0
- package/src/client/types/tools/ozone/moderation/scheduleAction.ts +123 -0
- package/src/client/types/tools/ozone/report/defs.ts +25 -40
- package/src/types.ts +46 -4
- package/src/util.ts +0 -15
- package/tsconfig.build.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutewords.js","sourceRoot":"","sources":["../../src/moderation/mutewords.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mutewords.js","sourceRoot":"","sources":["../../src/moderation/mutewords.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppBskyActorDefs, AppBskyRichtextFacet } from '../client'\n\nconst REGEX = {\n LEADING_TRAILING_PUNCTUATION: /(?:^\\p{P}+|\\p{P}+$)/gu,\n ESCAPE: /[[\\]{}()*+?.\\\\^$|\\s]/g,\n SEPARATORS: /[/\\-–—()[\\]_]+/g,\n WORD_BOUNDARY: /[\\s\\n\\t\\r\\f\\v]+?/g,\n}\n\n/**\n * List of 2-letter lang codes for languages that either don't use spaces, or\n * don't use spaces in a way conducive to word-based filtering.\n *\n * For these, we use a simple `String.includes` to check for a match.\n */\nconst LANGUAGE_EXCEPTIONS = [\n 'ja', // Japanese\n 'zh', // Chinese\n 'ko', // Korean\n 'th', // Thai\n 'vi', // Vietnamese\n]\n\nexport type MuteWordMatch = {\n /**\n * The `AppBskyActorDefs.MutedWord` that matched.\n */\n word: AppBskyActorDefs.MutedWord\n /**\n * The string that matched the muted word.\n */\n predicate: string\n}\n\nexport type Params = {\n mutedWords: AppBskyActorDefs.MutedWord[]\n text: string\n facets?: AppBskyRichtextFacet.Main[]\n outlineTags?: string[]\n languages?: string[]\n actor?: AppBskyActorDefs.ProfileView | AppBskyActorDefs.ProfileViewBasic\n}\n\n/**\n * Checks if the given text matches any of the muted words, returning an array\n * of matches. If no matches are found, returns `undefined`.\n */\nexport function matchMuteWords({\n mutedWords,\n text,\n facets,\n outlineTags,\n languages,\n actor,\n}: Params): MuteWordMatch[] | undefined {\n const exception = LANGUAGE_EXCEPTIONS.includes(languages?.[0] || '')\n const tags = ([] as string[])\n .concat(outlineTags || [])\n .concat(\n (facets || []).flatMap((facet) =>\n facet.features.filter(AppBskyRichtextFacet.isTag).map((tag) => tag.tag),\n ),\n )\n .map((t) => t.toLowerCase())\n\n const matches: MuteWordMatch[] = []\n\n outer: for (const muteWord of mutedWords) {\n const mutedWord = muteWord.value.toLowerCase()\n const postText = text.toLowerCase()\n\n // expired, ignore\n if (muteWord.expiresAt && muteWord.expiresAt < new Date().toISOString())\n continue\n\n if (\n muteWord.actorTarget === 'exclude-following' &&\n Boolean(actor?.viewer?.following)\n )\n continue\n\n // `content` applies to tags as well\n if (tags.includes(mutedWord)) {\n matches.push({ word: muteWord, predicate: muteWord.value })\n continue\n }\n // rest of the checks are for `content` only\n if (!muteWord.targets.includes('content')) continue\n // single character or other exception, has to use includes\n if ((mutedWord.length === 1 || exception) && postText.includes(mutedWord)) {\n matches.push({ word: muteWord, predicate: muteWord.value })\n continue\n }\n // too long\n if (mutedWord.length > postText.length) continue\n // exact match\n if (mutedWord === postText) {\n matches.push({ word: muteWord, predicate: muteWord.value })\n continue\n }\n // any muted phrase with space or punctuation\n if (/(?:\\s|\\p{P})+?/u.test(mutedWord) && postText.includes(mutedWord)) {\n matches.push({ word: muteWord, predicate: muteWord.value })\n continue\n }\n\n // check individual character groups\n const words = postText.split(REGEX.WORD_BOUNDARY)\n for (const word of words) {\n if (word === mutedWord) {\n matches.push({ word: muteWord, predicate: word })\n continue outer\n }\n\n // compare word without leading/trailing punctuation, but allow internal\n // punctuation (such as `s@ssy`)\n const wordTrimmedPunctuation = word.replace(\n REGEX.LEADING_TRAILING_PUNCTUATION,\n '',\n )\n\n if (mutedWord === wordTrimmedPunctuation) {\n matches.push({ word: muteWord, predicate: word })\n continue outer\n }\n\n if (mutedWord.length > wordTrimmedPunctuation.length) continue\n\n if (/\\p{P}+/u.test(wordTrimmedPunctuation)) {\n /**\n * Exit case for any punctuation within the predicate that we _do_\n * allow e.g. `and/or` should not match `Andor`.\n */\n if (/[/]+/.test(wordTrimmedPunctuation)) {\n continue outer\n }\n\n const spacedWord = wordTrimmedPunctuation.replace(/\\p{P}+/gu, ' ')\n if (spacedWord === mutedWord) {\n matches.push({ word: muteWord, predicate: word })\n continue outer\n }\n\n const contiguousWord = spacedWord.replace(/\\s/gu, '')\n if (contiguousWord === mutedWord) {\n matches.push({ word: muteWord, predicate: word })\n continue outer\n }\n\n const wordParts = wordTrimmedPunctuation.split(/\\p{P}+/u)\n for (const wordPart of wordParts) {\n if (wordPart === mutedWord) {\n matches.push({ word: muteWord, predicate: word })\n continue outer\n }\n }\n }\n }\n }\n\n return matches.length ? matches : undefined\n}\n\n/**\n * Checks if the given text matches any of the muted words, returning a boolean\n * if any matches are found.\n */\nexport function hasMutedWord(params: Params) {\n return !!matchMuteWords(params)\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/moderation/subjects/account.ts"],"names":[],"mappings":";;AAGA,sCA6BC;AAED,kDASC;AA3CD,0CAAgD;AAGhD,SAAgB,aAAa,CAC3B,OAAiC,EACjC,IAAoB;IAEpB,MAAM,GAAG,GAAG,IAAI,6BAAkB,EAAE,CAAA;IAEpC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACvB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IACzC,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;YAChC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QACjD,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;YACnC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;QACvD,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IACD,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAE3C,KAAK,MAAM,KAAK,IAAI,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,KAAK,EAAE,EAAE,CACR,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACnD,KAAK,CAAC,GAAG,KAAK,qBAAqB,CACtC,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/moderation/subjects/account.ts"],"names":[],"mappings":";;AAGA,sCA6BC;AAED,kDASC;AA3CD,0CAAgD;AAGhD,SAAgB,aAAa,CAC3B,OAAiC,EACjC,IAAoB;IAEpB,MAAM,GAAG,GAAG,IAAI,6BAAkB,EAAE,CAAA;IAEpC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACvB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IACzC,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;YAChC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QACjD,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;YACnC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;QACvD,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IACD,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAE3C,KAAK,MAAM,KAAK,IAAI,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,KAAK,EAAE,EAAE,CACR,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACnD,KAAK,CAAC,GAAG,KAAK,qBAAqB,CACtC,CAAA;AACH,CAAC","sourcesContent":["import { ModerationDecision } from '../decision'\nimport { Label, ModerationOpts, ModerationSubjectProfile } from '../types'\n\nexport function decideAccount(\n subject: ModerationSubjectProfile,\n opts: ModerationOpts,\n): ModerationDecision {\n const acc = new ModerationDecision()\n\n acc.setDid(subject.did)\n acc.setIsMe(subject.did === opts.userDid)\n if (subject.viewer?.muted) {\n if (subject.viewer?.mutedByList) {\n acc.addMutedByList(subject.viewer?.mutedByList)\n } else {\n acc.addMuted(subject.viewer?.muted)\n }\n }\n if (subject.viewer?.blocking) {\n if (subject.viewer?.blockingByList) {\n acc.addBlockingByList(subject.viewer?.blockingByList)\n } else {\n acc.addBlocking(subject.viewer?.blocking)\n }\n }\n acc.addBlockedBy(subject.viewer?.blockedBy)\n\n for (const label of filterAccountLabels(subject.labels)) {\n acc.addLabel('account', label, opts)\n }\n\n return acc\n}\n\nexport function filterAccountLabels(labels?: Label[]): Label[] {\n if (!labels) {\n return []\n }\n return labels.filter(\n (label) =>\n !label.uri.endsWith('/app.bsky.actor.profile/self') ||\n label.val === '!no-unauthenticated',\n )\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feed-generator.js","sourceRoot":"","sources":["../../../src/moderation/subjects/feed-generator.ts"],"names":[],"mappings":";;AAKA,kDAkBC;AAvBD,0CAAgD;AAEhD,uCAAyC;AACzC,uCAAyC;AAEzC,SAAgB,mBAAmB,CACjC,OAAuC,EACvC,IAAoB;IAEpB,MAAM,GAAG,GAAG,IAAI,6BAAkB,EAAE,CAAA;IAEpC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/B,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IACjD,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IACD,OAAO,6BAAkB,CAAC,KAAK,CAC7B,GAAG,EACH,IAAA,uBAAa,EAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EACpC,IAAA,uBAAa,EAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CACrC,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"feed-generator.js","sourceRoot":"","sources":["../../../src/moderation/subjects/feed-generator.ts"],"names":[],"mappings":";;AAKA,kDAkBC;AAvBD,0CAAgD;AAEhD,uCAAyC;AACzC,uCAAyC;AAEzC,SAAgB,mBAAmB,CACjC,OAAuC,EACvC,IAAoB;IAEpB,MAAM,GAAG,GAAG,IAAI,6BAAkB,EAAE,CAAA;IAEpC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/B,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IACjD,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IACD,OAAO,6BAAkB,CAAC,KAAK,CAC7B,GAAG,EACH,IAAA,uBAAa,EAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EACpC,IAAA,uBAAa,EAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CACrC,CAAA;AACH,CAAC","sourcesContent":["import { ModerationDecision } from '../decision'\nimport { ModerationOpts, ModerationSubjectFeedGenerator } from '../types'\nimport { decideAccount } from './account'\nimport { decideProfile } from './profile'\n\nexport function decideFeedGenerator(\n subject: ModerationSubjectFeedGenerator,\n opts: ModerationOpts,\n): ModerationDecision {\n const acc = new ModerationDecision()\n\n acc.setDid(subject.creator.did)\n acc.setIsMe(subject.creator.did === opts.userDid)\n if (subject.labels?.length) {\n for (const label of subject.labels) {\n acc.addLabel('content', label, opts)\n }\n }\n return ModerationDecision.merge(\n acc,\n decideAccount(subject.creator, opts),\n decideProfile(subject.creator, opts),\n )\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification.js","sourceRoot":"","sources":["../../../src/moderation/subjects/notification.ts"],"names":[],"mappings":";;AAKA,gDAmBC;AAxBD,0CAAgD;AAEhD,uCAAyC;AACzC,uCAAyC;AAEzC,SAAgB,kBAAkB,CAChC,OAAsC,EACtC,IAAoB;IAEpB,MAAM,GAAG,GAAG,IAAI,6BAAkB,EAAE,CAAA;IAEpC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC9B,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IAChD,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAED,OAAO,6BAAkB,CAAC,KAAK,CAC7B,GAAG,EACH,IAAA,uBAAa,EAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EACnC,IAAA,uBAAa,EAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CACpC,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"notification.js","sourceRoot":"","sources":["../../../src/moderation/subjects/notification.ts"],"names":[],"mappings":";;AAKA,gDAmBC;AAxBD,0CAAgD;AAEhD,uCAAyC;AACzC,uCAAyC;AAEzC,SAAgB,kBAAkB,CAChC,OAAsC,EACtC,IAAoB;IAEpB,MAAM,GAAG,GAAG,IAAI,6BAAkB,EAAE,CAAA;IAEpC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC9B,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IAChD,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAED,OAAO,6BAAkB,CAAC,KAAK,CAC7B,GAAG,EACH,IAAA,uBAAa,EAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EACnC,IAAA,uBAAa,EAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CACpC,CAAA;AACH,CAAC","sourcesContent":["import { ModerationDecision } from '../decision'\nimport { ModerationOpts, ModerationSubjectNotification } from '../types'\nimport { decideAccount } from './account'\nimport { decideProfile } from './profile'\n\nexport function decideNotification(\n subject: ModerationSubjectNotification,\n opts: ModerationOpts,\n): ModerationDecision {\n const acc = new ModerationDecision()\n\n acc.setDid(subject.author.did)\n acc.setIsMe(subject.author.did === opts.userDid)\n if (subject.labels?.length) {\n for (const label of subject.labels) {\n acc.addLabel('content', label, opts)\n }\n }\n\n return ModerationDecision.merge(\n acc,\n decideAccount(subject.author, opts),\n decideProfile(subject.author, opts),\n )\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post.js","sourceRoot":"","sources":["../../../src/moderation/subjects/post.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"post.js","sourceRoot":"","sources":["../../../src/moderation/subjects/post.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AppBskyActorDefs,\n AppBskyEmbedExternal,\n AppBskyEmbedImages,\n AppBskyEmbedRecord,\n AppBskyEmbedRecordWithMedia,\n AppBskyFeedPost,\n} from '../../client'\nimport { $Typed } from '../../client/util'\nimport { ModerationDecision } from '../decision'\nimport { MuteWordMatch, matchMuteWords } from '../mutewords'\nimport { ModerationOpts, ModerationSubjectPost } from '../types'\nimport { decideAccount } from './account'\nimport { decideProfile } from './profile'\n\nexport function decidePost(\n subject: ModerationSubjectPost,\n opts: ModerationOpts,\n): ModerationDecision {\n return ModerationDecision.merge(\n decideSubject(subject, opts),\n decideEmbed(subject.embed, opts)?.downgrade(),\n decideAccount(subject.author, opts),\n decideProfile(subject.author, opts),\n )\n}\n\nfunction decideSubject(\n subject: ModerationSubjectPost,\n opts: ModerationOpts,\n): ModerationDecision {\n const acc = new ModerationDecision()\n\n acc.setDid(subject.author.did)\n acc.setIsMe(subject.author.did === opts.userDid)\n if (subject.labels?.length) {\n for (const label of subject.labels) {\n acc.addLabel('content', label, opts)\n }\n }\n acc.addHidden(checkHiddenPost(subject, opts.prefs.hiddenPosts))\n if (!acc.isMe) {\n acc.addMutedWord(matchAllMuteWords(subject, opts.prefs.mutedWords))\n }\n\n return acc\n}\n\nfunction decideEmbed(\n embed:\n | undefined\n | $Typed<AppBskyEmbedRecord.View>\n | $Typed<AppBskyEmbedRecordWithMedia.View>\n | { $type: string },\n opts: ModerationOpts,\n) {\n if (embed) {\n if (\n (AppBskyEmbedRecord.isView(embed) ||\n AppBskyEmbedRecordWithMedia.isView(embed)) &&\n AppBskyEmbedRecord.isViewRecord(embed.record)\n ) {\n // quote post\n return decideQuotedPost(embed.record, opts)\n } else if (\n AppBskyEmbedRecordWithMedia.isView(embed) &&\n AppBskyEmbedRecord.isViewRecord(embed.record.record)\n ) {\n // quoted post with media\n return decideQuotedPost(embed.record.record, opts)\n } else if (\n (AppBskyEmbedRecord.isView(embed) ||\n AppBskyEmbedRecordWithMedia.isView(embed)) &&\n AppBskyEmbedRecord.isViewBlocked(embed.record)\n ) {\n // blocked quote post\n return decideBlockedQuotedPost(embed.record, opts)\n } else if (\n AppBskyEmbedRecordWithMedia.isView(embed) &&\n AppBskyEmbedRecord.isViewBlocked(embed.record.record)\n ) {\n // blocked quoted post with media\n return decideBlockedQuotedPost(embed.record.record, opts)\n }\n }\n\n return undefined\n}\n\nfunction decideQuotedPost(\n subject: AppBskyEmbedRecord.ViewRecord,\n opts: ModerationOpts,\n) {\n const acc = new ModerationDecision()\n acc.setDid(subject.author.did)\n acc.setIsMe(subject.author.did === opts.userDid)\n if (subject.labels?.length) {\n for (const label of subject.labels) {\n acc.addLabel('content', label, opts)\n }\n }\n return ModerationDecision.merge(\n acc,\n decideAccount(subject.author, opts),\n decideProfile(subject.author, opts),\n )\n}\n\nfunction decideBlockedQuotedPost(\n subject: AppBskyEmbedRecord.ViewBlocked,\n opts: ModerationOpts,\n) {\n const acc = new ModerationDecision()\n acc.setDid(subject.author.did)\n acc.setIsMe(subject.author.did === opts.userDid)\n if (subject.author.viewer?.muted) {\n if (subject.author.viewer?.mutedByList) {\n acc.addMutedByList(subject.author.viewer?.mutedByList)\n } else {\n acc.addMuted(subject.author.viewer?.muted)\n }\n }\n if (subject.author.viewer?.blocking) {\n if (subject.author.viewer?.blockingByList) {\n acc.addBlockingByList(subject.author.viewer?.blockingByList)\n } else {\n acc.addBlocking(subject.author.viewer?.blocking)\n }\n }\n acc.addBlockedBy(subject.author.viewer?.blockedBy)\n return acc\n}\n\nfunction checkHiddenPost(\n subject: ModerationSubjectPost,\n hiddenPosts: string[] | undefined,\n) {\n if (!hiddenPosts?.length) {\n return false\n }\n if (hiddenPosts.includes(subject.uri)) {\n return true\n }\n if (subject.embed) {\n if (\n AppBskyEmbedRecord.isView(subject.embed) &&\n AppBskyEmbedRecord.isViewRecord(subject.embed.record) &&\n hiddenPosts.includes(subject.embed.record.uri)\n ) {\n return true\n }\n if (\n AppBskyEmbedRecordWithMedia.isView(subject.embed) &&\n AppBskyEmbedRecord.isViewRecord(subject.embed.record.record) &&\n hiddenPosts.includes(subject.embed.record.record.uri)\n ) {\n return true\n }\n }\n return false\n}\n\nfunction matchAllMuteWords(\n subject: ModerationSubjectPost,\n mutedWords: AppBskyActorDefs.MutedWord[] | undefined,\n): MuteWordMatch[] | undefined {\n if (!mutedWords?.length) {\n return\n }\n\n const postAuthor = subject.author\n\n if (AppBskyFeedPost.isRecord(subject.record)) {\n const post = subject.record as AppBskyFeedPost.Record\n\n const matches = matchMuteWords({\n mutedWords,\n text: post.text,\n facets: post.facets,\n outlineTags: post.tags,\n languages: post.langs,\n actor: postAuthor,\n })\n // post text\n if (matches) {\n return matches\n }\n\n if (post.embed && AppBskyEmbedImages.isMain(post.embed)) {\n // post images\n for (const image of post.embed.images) {\n const matches = matchMuteWords({\n mutedWords,\n text: image.alt,\n languages: post.langs,\n actor: postAuthor,\n })\n if (matches) {\n return matches\n }\n }\n }\n }\n\n const { embed } = subject\n if (embed) {\n // quote post\n if (\n (AppBskyEmbedRecord.isView(embed) ||\n AppBskyEmbedRecordWithMedia.isView(embed)) &&\n AppBskyEmbedRecord.isViewRecord(embed.record)\n ) {\n if (AppBskyFeedPost.isRecord(embed.record.value)) {\n const embeddedPost = embed.record.value as AppBskyFeedPost.Record\n const embedAuthor = embed.record.author\n const matches = matchMuteWords({\n mutedWords,\n text: embeddedPost.text,\n facets: embeddedPost.facets,\n outlineTags: embeddedPost.tags,\n languages: embeddedPost.langs,\n actor: embedAuthor,\n })\n\n // quoted post text\n if (matches) {\n return matches\n }\n\n // quoted post's images\n if (AppBskyEmbedImages.isMain(embeddedPost.embed)) {\n for (const image of embeddedPost.embed.images) {\n const matches = matchMuteWords({\n mutedWords,\n text: image.alt,\n languages: embeddedPost.langs,\n actor: embedAuthor,\n })\n if (matches) {\n return matches\n }\n }\n }\n\n // quoted post's link card\n if (AppBskyEmbedExternal.isMain(embeddedPost.embed)) {\n const { external } = embeddedPost.embed\n const matches = matchMuteWords({\n mutedWords,\n text: external.title + ' ' + external.description,\n languages: [],\n actor: embedAuthor,\n })\n if (matches) {\n return matches\n }\n }\n\n if (AppBskyEmbedRecordWithMedia.isMain(embeddedPost.embed)) {\n // quoted post's link card when it did a quote + media\n if (AppBskyEmbedExternal.isMain(embeddedPost.embed.media)) {\n const { external } = embeddedPost.embed.media\n const matches = matchMuteWords({\n mutedWords,\n text: external.title + ' ' + external.description,\n languages: [],\n actor: embedAuthor,\n })\n if (matches) {\n return matches\n }\n }\n\n // quoted post's images when it did a quote + media\n if (AppBskyEmbedImages.isMain(embeddedPost.embed.media)) {\n for (const image of embeddedPost.embed.media.images) {\n const matches = matchMuteWords({\n mutedWords,\n text: image.alt,\n languages: AppBskyFeedPost.isRecord(embeddedPost.record)\n ? embeddedPost.langs\n : [],\n actor: embedAuthor,\n })\n if (matches) {\n return matches\n }\n }\n }\n }\n }\n }\n // link card\n else if (AppBskyEmbedExternal.isView(embed)) {\n const { external } = embed\n const matches = matchMuteWords({\n mutedWords,\n text: external.title + ' ' + external.description,\n languages: [],\n actor: postAuthor,\n })\n if (matches) {\n return matches\n }\n }\n // quote post with media\n else if (\n AppBskyEmbedRecordWithMedia.isView(embed) &&\n AppBskyEmbedRecord.isViewRecord(embed.record.record)\n ) {\n const embedAuthor = embed.record.record.author\n\n // quoted post text\n if (AppBskyFeedPost.isRecord(embed.record.record.value)) {\n const post = embed.record.record.value as AppBskyFeedPost.Record\n const matches = matchMuteWords({\n mutedWords,\n text: post.text,\n facets: post.facets,\n outlineTags: post.tags,\n languages: post.langs,\n actor: embedAuthor,\n })\n if (matches) {\n return matches\n }\n }\n\n // quoted post images\n if (AppBskyEmbedImages.isView(embed.media)) {\n for (const image of embed.media.images) {\n const matches = matchMuteWords({\n mutedWords,\n text: image.alt,\n languages: AppBskyFeedPost.isRecord(subject.record)\n ? (subject.record as AppBskyFeedPost.Record).langs\n : [],\n actor: embedAuthor,\n })\n if (matches) {\n return matches\n }\n }\n }\n\n if (AppBskyEmbedExternal.isView(embed.media)) {\n const { external } = embed.media\n const matches = matchMuteWords({\n mutedWords,\n text: external.title + ' ' + external.description,\n languages: [],\n actor: embedAuthor,\n })\n if (matches) {\n return matches\n }\n }\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/moderation/subjects/profile.ts"],"names":[],"mappings":";;AAGA,sCAaC;AAED,kDAOC;AAzBD,0CAAgD;AAGhD,SAAgB,aAAa,CAC3B,OAAiC,EACjC,IAAoB;IAEpB,MAAM,GAAG,GAAG,IAAI,6BAAkB,EAAE,CAAA;IAEpC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACvB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IACzC,KAAK,MAAM,KAAK,IAAI,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAC7B,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CACnD,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/moderation/subjects/profile.ts"],"names":[],"mappings":";;AAGA,sCAaC;AAED,kDAOC;AAzBD,0CAAgD;AAGhD,SAAgB,aAAa,CAC3B,OAAiC,EACjC,IAAoB;IAEpB,MAAM,GAAG,GAAG,IAAI,6BAAkB,EAAE,CAAA;IAEpC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACvB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IACzC,KAAK,MAAM,KAAK,IAAI,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAC7B,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CACnD,CAAA;AACH,CAAC","sourcesContent":["import { ModerationDecision } from '../decision'\nimport { Label, ModerationOpts, ModerationSubjectProfile } from '../types'\n\nexport function decideProfile(\n subject: ModerationSubjectProfile,\n opts: ModerationOpts,\n): ModerationDecision {\n const acc = new ModerationDecision()\n\n acc.setDid(subject.did)\n acc.setIsMe(subject.did === opts.userDid)\n for (const label of filterProfileLabels(subject.labels)) {\n acc.addLabel('profile', label, opts)\n }\n\n return acc\n}\n\nexport function filterProfileLabels(labels?: Label[]): Label[] {\n if (!labels) {\n return []\n }\n return labels.filter((label) =>\n label.uri.endsWith('/app.bsky.actor.profile/self'),\n )\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-list.js","sourceRoot":"","sources":["../../../src/moderation/subjects/user-list.ts"],"names":[],"mappings":";;AAOA,wCAoCC;AA3CD,4CAAuC;AAEvC,0CAAgD;AAEhD,uCAAyC;AACzC,uCAAyC;AAEzC,SAAgB,cAAc,CAC5B,OAAkC,EAClC,IAAoB;IAEpB,MAAM,GAAG,GAAG,IAAI,6BAAkB,EAAE,CAAA;IAEpC,MAAM,OAAO;IACX,sFAAsF;IACtF,SAAS,IAAI,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC;QAChD,CAAC,CAAC,OAAO,CAAC,OAAO;QACjB,CAAC,CAAC,SAAS,CAAA;IAEf,IAAI,OAAO,EAAE,CAAC;QACZ,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACvB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;QACzC,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;YACtC,CAAC;QACH,CAAC;QACD,OAAO,6BAAkB,CAAC,KAAK,CAC7B,GAAG,EACH,IAAA,uBAAa,EAAC,OAAO,EAAE,IAAI,CAAC,EAC5B,IAAA,uBAAa,EAAC,OAAO,EAAE,IAAI,CAAC,CAC7B,CAAA;IACH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,cAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAA;IAClD,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACtB,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IACxC,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,SAAS,CAAC,CAAM;IACvB,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,IAAI,CAAC,CAAA;AACjD,CAAC"}
|
|
1
|
+
{"version":3,"file":"user-list.js","sourceRoot":"","sources":["../../../src/moderation/subjects/user-list.ts"],"names":[],"mappings":";;AAOA,wCAoCC;AA3CD,4CAAuC;AAEvC,0CAAgD;AAEhD,uCAAyC;AACzC,uCAAyC;AAEzC,SAAgB,cAAc,CAC5B,OAAkC,EAClC,IAAoB;IAEpB,MAAM,GAAG,GAAG,IAAI,6BAAkB,EAAE,CAAA;IAEpC,MAAM,OAAO;IACX,sFAAsF;IACtF,SAAS,IAAI,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC;QAChD,CAAC,CAAC,OAAO,CAAC,OAAO;QACjB,CAAC,CAAC,SAAS,CAAA;IAEf,IAAI,OAAO,EAAE,CAAC;QACZ,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACvB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;QACzC,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;YACtC,CAAC;QACH,CAAC;QACD,OAAO,6BAAkB,CAAC,KAAK,CAC7B,GAAG,EACH,IAAA,uBAAa,EAAC,OAAO,EAAE,IAAI,CAAC,EAC5B,IAAA,uBAAa,EAAC,OAAO,EAAE,IAAI,CAAC,CAC7B,CAAA;IACH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,cAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAA;IAClD,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACtB,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IACxC,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,SAAS,CAAC,CAAM;IACvB,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,IAAI,CAAC,CAAA;AACjD,CAAC","sourcesContent":["import { AtUri } from '@atproto/syntax'\nimport { AppBskyActorDefs } from '../../client/index'\nimport { ModerationDecision } from '../decision'\nimport { ModerationOpts, ModerationSubjectUserList } from '../types'\nimport { decideAccount } from './account'\nimport { decideProfile } from './profile'\n\nexport function decideUserList(\n subject: ModerationSubjectUserList,\n opts: ModerationOpts,\n): ModerationDecision {\n const acc = new ModerationDecision()\n\n const creator =\n // Note: ListViewBasic should not contain a creator field, but let's support it anyway\n 'creator' in subject && isProfile(subject.creator)\n ? subject.creator\n : undefined\n\n if (creator) {\n acc.setDid(creator.did)\n acc.setIsMe(creator.did === opts.userDid)\n if (subject.labels?.length) {\n for (const label of subject.labels) {\n acc.addLabel('content', label, opts)\n }\n }\n return ModerationDecision.merge(\n acc,\n decideAccount(creator, opts),\n decideProfile(creator, opts),\n )\n }\n\n const creatorDid = new AtUri(subject.uri).hostname\n acc.setDid(creatorDid)\n acc.setIsMe(creatorDid === opts.userDid)\n if (subject.labels?.length) {\n for (const label of subject.labels) {\n acc.addLabel('content', label, opts)\n }\n }\n return acc\n}\n\nfunction isProfile(v: any): v is AppBskyActorDefs.ProfileViewBasic {\n return v && typeof v === 'object' && 'did' in v\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/moderation/types.ts"],"names":[],"mappings":";;;AAWA,SAAS;AACT,IAAI;AAES,QAAA,qBAAqB,GAAG,WAAW,CAAA;AAenC,QAAA,cAAc,GAAuB;IAChD,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,OAAO;IACpB,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,MAAM;IACd,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,MAAM;CACpB,CAAA;AACY,QAAA,aAAa,GAAuB;IAC/C,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,QAAQ;CACtB,CAAA;AACY,QAAA,iBAAiB,GAAuB;IACnD,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,MAAM;CACpB,CAAA;AACY,QAAA,aAAa,GAAuB;IAC/C,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,MAAM;CACpB,CAAA;AACY,QAAA,aAAa,GAAuB,EAAE,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/moderation/types.ts"],"names":[],"mappings":";;;AAWA,SAAS;AACT,IAAI;AAES,QAAA,qBAAqB,GAAG,WAAW,CAAA;AAenC,QAAA,cAAc,GAAuB;IAChD,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,OAAO;IACpB,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,MAAM;IACd,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,MAAM;CACpB,CAAA;AACY,QAAA,aAAa,GAAuB;IAC/C,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,QAAQ;CACtB,CAAA;AACY,QAAA,iBAAiB,GAAuB;IACnD,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,MAAM;CACpB,CAAA;AACY,QAAA,aAAa,GAAuB;IAC/C,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,MAAM;CACpB,CAAA;AACY,QAAA,aAAa,GAAuB,EAAE,CAAA","sourcesContent":["import {\n AppBskyActorDefs,\n AppBskyFeedDefs,\n AppBskyGraphDefs,\n AppBskyNotificationListNotifications,\n ChatBskyActorDefs,\n ComAtprotoLabelDefs,\n} from '../client/index'\nimport { KnownLabelValue } from './const/labels'\nimport { MuteWordMatch } from './mutewords'\n\n// syntax\n// =\n\nexport const CUSTOM_LABEL_VALUE_RE = /^[a-z-]+$/\n\n// behaviors\n// =\n\nexport interface ModerationBehavior {\n profileList?: 'blur' | 'alert' | 'inform'\n profileView?: 'blur' | 'alert' | 'inform'\n avatar?: 'blur' | 'alert'\n banner?: 'blur'\n displayName?: 'blur'\n contentList?: 'blur' | 'alert' | 'inform'\n contentView?: 'blur' | 'alert' | 'inform'\n contentMedia?: 'blur'\n}\nexport const BLOCK_BEHAVIOR: ModerationBehavior = {\n profileList: 'blur',\n profileView: 'alert',\n avatar: 'blur',\n banner: 'blur',\n contentList: 'blur',\n contentView: 'blur',\n}\nexport const MUTE_BEHAVIOR: ModerationBehavior = {\n profileList: 'inform',\n profileView: 'alert',\n contentList: 'blur',\n contentView: 'inform',\n}\nexport const MUTEWORD_BEHAVIOR: ModerationBehavior = {\n contentList: 'blur',\n contentView: 'blur',\n}\nexport const HIDE_BEHAVIOR: ModerationBehavior = {\n contentList: 'blur',\n contentView: 'blur',\n}\nexport const NOOP_BEHAVIOR: ModerationBehavior = {}\n\n// labels\n// =\n\nexport type Label = ComAtprotoLabelDefs.Label\nexport type LabelTarget = 'account' | 'profile' | 'content'\nexport type LabelPreference = 'ignore' | 'warn' | 'hide'\n\nexport type LabelValueDefinitionFlag =\n | 'no-override'\n | 'adult'\n | 'unauthed'\n | 'no-self'\n\nexport interface InterpretedLabelValueDefinition\n extends ComAtprotoLabelDefs.LabelValueDefinition {\n definedBy?: string | undefined // did of labeler or undefined for global\n configurable: boolean\n defaultSetting: LabelPreference // type narrowing\n flags: LabelValueDefinitionFlag[]\n behaviors: {\n account?: ModerationBehavior\n profile?: ModerationBehavior\n content?: ModerationBehavior\n }\n}\n\nexport type LabelDefinitionMap = Record<\n KnownLabelValue,\n InterpretedLabelValueDefinition\n>\n\n// subjects\n// =\n\nexport type ModerationSubjectProfile =\n | AppBskyActorDefs.ProfileViewBasic\n | AppBskyActorDefs.ProfileView\n | AppBskyActorDefs.ProfileViewDetailed\n | ChatBskyActorDefs.ProfileViewBasic\n\nexport type ModerationSubjectPost = AppBskyFeedDefs.PostView\n\nexport type ModerationSubjectNotification =\n AppBskyNotificationListNotifications.Notification\n\nexport type ModerationSubjectFeedGenerator = AppBskyFeedDefs.GeneratorView\n\nexport type ModerationSubjectUserList =\n | AppBskyGraphDefs.ListViewBasic\n | AppBskyGraphDefs.ListView\n\nexport type ModerationSubject =\n | ModerationSubjectProfile\n | ModerationSubjectPost\n | ModerationSubjectNotification\n | ModerationSubjectFeedGenerator\n | ModerationSubjectUserList\n\n// behaviors\n// =\n\nexport type ModerationCauseSource =\n | { type: 'user' }\n | { type: 'list'; list: AppBskyGraphDefs.ListViewBasic }\n | { type: 'labeler'; did: string }\n\nexport type ModerationCause =\n | {\n type: 'blocking'\n source: ModerationCauseSource\n priority: 3\n downgraded?: boolean\n }\n | {\n type: 'blocked-by'\n source: ModerationCauseSource\n priority: 4\n downgraded?: boolean\n }\n | {\n type: 'block-other'\n source: ModerationCauseSource\n priority: 4\n downgraded?: boolean\n }\n | {\n type: 'label'\n source: ModerationCauseSource\n label: Label\n labelDef: InterpretedLabelValueDefinition\n target: LabelTarget\n setting: LabelPreference\n behavior: ModerationBehavior\n noOverride: boolean\n priority: 1 | 2 | 5 | 7 | 8\n downgraded?: boolean\n }\n | {\n type: 'muted'\n source: ModerationCauseSource\n priority: 6\n downgraded?: boolean\n }\n | {\n type: 'mute-word'\n source: ModerationCauseSource\n priority: 6\n downgraded?: boolean\n matches: MuteWordMatch[]\n }\n | {\n type: 'hidden'\n source: ModerationCauseSource\n priority: 6\n downgraded?: boolean\n }\n\nexport interface ModerationPrefsLabeler {\n did: string\n labels: Record<string, LabelPreference>\n}\n\nexport interface ModerationPrefs {\n adultContentEnabled: boolean\n labels: Record<string, LabelPreference>\n labelers: ModerationPrefsLabeler[]\n mutedWords: AppBskyActorDefs.MutedWord[]\n hiddenPosts: string[]\n}\n\nexport interface ModerationOpts {\n userDid: string | undefined\n prefs: ModerationPrefs\n /**\n * Map of labeler did -> custom definitions\n */\n labelDefs?: Record<string, InterpretedLabelValueDefinition[]>\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/moderation/ui.ts"],"names":[],"mappings":";;;AAEA,MAAa,YAAY;IAAzB;QACE;;;;mBAAa,KAAK;WAAA;QAClB;;;;mBAA6B,EAAE;WAAA;QAC/B;;;;mBAA2B,EAAE;WAAA;QAC7B;;;;mBAA4B,EAAE;WAAA;QAC9B;;;;mBAA6B,EAAE;WAAA;IAajC,CAAC;IAZC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAA;IAClC,CAAC;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAA;IAChC,CAAC;IACD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAA;IACjC,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAA;IAClC,CAAC;CACF;AAlBD,oCAkBC"}
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/moderation/ui.ts"],"names":[],"mappings":";;;AAEA,MAAa,YAAY;IAAzB;QACE;;;;mBAAa,KAAK;WAAA;QAClB;;;;mBAA6B,EAAE;WAAA;QAC/B;;;;mBAA2B,EAAE;WAAA;QAC7B;;;;mBAA4B,EAAE;WAAA;QAC9B;;;;mBAA6B,EAAE;WAAA;IAajC,CAAC;IAZC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAA;IAClC,CAAC;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAA;IAChC,CAAC;IACD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAA;IACjC,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAA;IAClC,CAAC;CACF;AAlBD,oCAkBC","sourcesContent":["import { ModerationCause } from './types'\n\nexport class ModerationUI {\n noOverride = false\n filters: ModerationCause[] = []\n blurs: ModerationCause[] = []\n alerts: ModerationCause[] = []\n informs: ModerationCause[] = []\n get filter(): boolean {\n return this.filters.length !== 0\n }\n get blur(): boolean {\n return this.blurs.length !== 0\n }\n get alert(): boolean {\n return this.alerts.length !== 0\n }\n get inform(): boolean {\n return this.informs.length !== 0\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/moderation/util.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/moderation/util.ts"],"names":[],"mappings":";;AAcA,oCAEC;AAED,sDAIC;AAED,sEA4EC;AAED,wEAQC;AA9GD,sCAKkB;AAClB,yCAA4C;AAQ5C,SAAgB,YAAY,CAAC,KAAc;IACzC,OAAO,OAAO,CAAC,KAAK,IAAI,2BAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;AAC3D,CAAC;AAED,SAAgB,qBAAqB,CACnC,KAAc;IAEd,OAAO,OAAO,CAAC,KAAK,IAAI,oCAA2B,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;AACpE,CAAC;AAED,SAAgB,6BAA6B,CAC3C,GAA6C,EAC7C,SAA6B;IAE7B,MAAM,SAAS,GAIX;QACF,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;KACZ,CAAA;IACD,MAAM,aAAa,GACjB,GAAG,CAAC,QAAQ,KAAK,OAAO;QACtB,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ;YACzB,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,SAAS,CAAA;IACjB,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5B,gCAAgC;QAChC,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAA;QAC7C,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAA;QAC7C,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,MAAM,CAAA;QACtC,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAA;QACtE,gCAAgC;QAChC,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAA;QAC7C,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAA;QAC7C,gCAAgC;QAChC,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,MAAM,CAAA;QACtC,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAA;IACxE,CAAC;SAAM,IAAI,GAAG,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;QACjC,8BAA8B;QAC9B,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAA;QAC7C,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAA;QAC7C,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;QACjC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;QACjC,8BAA8B;QAC9B,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAA;QAC7C,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAA;QAC7C,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;QACjC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;QACjC,8BAA8B;QAC9B,SAAS,CAAC,OAAO,CAAC,YAAY,GAAG,MAAM,CAAA;IACzC,CAAC;SAAM,IAAI,GAAG,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QAChC,6BAA6B;QAC7B,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAA;QAC7C,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAA;QAC7C,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAA;QAC7C,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAA;QAC7C,6BAA6B;QAC7B,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAA;QAC7C,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAA;QAC7C,6BAA6B;QAC7B,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAA;QAC7C,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAA;IAC/C,CAAC;IAED,IAAI,cAAc,GAAoB,MAAM,CAAA;IAC5C,IAAI,GAAG,CAAC,cAAc,KAAK,MAAM,IAAI,GAAG,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;QACrE,cAAc,GAAG,GAAG,CAAC,cAAiC,CAAA;IACxD,CAAC;IAED,MAAM,KAAK,GAA+B,CAAC,SAAS,CAAC,CAAA;IACrD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACrB,CAAC;IAED,OAAO;QACL,GAAG,GAAG;QACN,SAAS;QACT,YAAY,EAAE,IAAI;QAClB,cAAc;QACd,KAAK;QACL,SAAS;KACV,CAAA;AACH,CAAC;AAED,SAAgB,8BAA8B,CAC5C,WAAmD;IAEnD,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,qBAAqB,IAAI,EAAE,CAAC;SACvD,MAAM,CAAC,IAAA,kBAAW,EAAC,4BAAmB,CAAC,4BAA4B,CAAC,CAAC;SACrE,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CACnB,6BAA6B,CAAC,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CACpE,CAAA;AACL,CAAC","sourcesContent":["import {\n AppBskyEmbedRecord,\n AppBskyEmbedRecordWithMedia,\n AppBskyLabelerDefs,\n ComAtprotoLabelDefs,\n} from '../client'\nimport { asPredicate } from '../client/util'\nimport {\n InterpretedLabelValueDefinition,\n LabelPreference,\n LabelValueDefinitionFlag,\n ModerationBehavior,\n} from './types'\n\nexport function isQuotedPost(embed: unknown): embed is AppBskyEmbedRecord.View {\n return Boolean(embed && AppBskyEmbedRecord.isView(embed))\n}\n\nexport function isQuotedPostWithMedia(\n embed: unknown,\n): embed is AppBskyEmbedRecordWithMedia.View {\n return Boolean(embed && AppBskyEmbedRecordWithMedia.isView(embed))\n}\n\nexport function interpretLabelValueDefinition(\n def: ComAtprotoLabelDefs.LabelValueDefinition,\n definedBy: string | undefined,\n): InterpretedLabelValueDefinition {\n const behaviors: {\n account: ModerationBehavior\n profile: ModerationBehavior\n content: ModerationBehavior\n } = {\n account: {},\n profile: {},\n content: {},\n }\n const alertOrInform: 'alert' | 'inform' | undefined =\n def.severity === 'alert'\n ? 'alert'\n : def.severity === 'inform'\n ? 'inform'\n : undefined\n if (def.blurs === 'content') {\n // target=account, blurs=content\n behaviors.account.profileList = alertOrInform\n behaviors.account.profileView = alertOrInform\n behaviors.account.contentList = 'blur'\n behaviors.account.contentView = def.adultOnly ? 'blur' : alertOrInform\n // target=profile, blurs=content\n behaviors.profile.profileList = alertOrInform\n behaviors.profile.profileView = alertOrInform\n // target=content, blurs=content\n behaviors.content.contentList = 'blur'\n behaviors.content.contentView = def.adultOnly ? 'blur' : alertOrInform\n } else if (def.blurs === 'media') {\n // target=account, blurs=media\n behaviors.account.profileList = alertOrInform\n behaviors.account.profileView = alertOrInform\n behaviors.account.avatar = 'blur'\n behaviors.account.banner = 'blur'\n // target=profile, blurs=media\n behaviors.profile.profileList = alertOrInform\n behaviors.profile.profileView = alertOrInform\n behaviors.profile.avatar = 'blur'\n behaviors.profile.banner = 'blur'\n // target=content, blurs=media\n behaviors.content.contentMedia = 'blur'\n } else if (def.blurs === 'none') {\n // target=account, blurs=none\n behaviors.account.profileList = alertOrInform\n behaviors.account.profileView = alertOrInform\n behaviors.account.contentList = alertOrInform\n behaviors.account.contentView = alertOrInform\n // target=profile, blurs=none\n behaviors.profile.profileList = alertOrInform\n behaviors.profile.profileView = alertOrInform\n // target=content, blurs=none\n behaviors.content.contentList = alertOrInform\n behaviors.content.contentView = alertOrInform\n }\n\n let defaultSetting: LabelPreference = 'warn'\n if (def.defaultSetting === 'hide' || def.defaultSetting === 'ignore') {\n defaultSetting = def.defaultSetting as LabelPreference\n }\n\n const flags: LabelValueDefinitionFlag[] = ['no-self']\n if (def.adultOnly) {\n flags.push('adult')\n }\n\n return {\n ...def,\n definedBy,\n configurable: true,\n defaultSetting,\n flags,\n behaviors,\n }\n}\n\nexport function interpretLabelValueDefinitions(\n labelerView: AppBskyLabelerDefs.LabelerViewDetailed,\n): InterpretedLabelValueDefinition[] {\n return (labelerView.policies?.labelValueDefinitions || [])\n .filter(asPredicate(ComAtprotoLabelDefs.validateLabelValueDefinition))\n .map((labelValDef) =>\n interpretLabelValueDefinition(labelValDef, labelerView.creator.did),\n )\n}\n"]}
|
package/dist/predicate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"predicate.js","sourceRoot":"","sources":["../src/predicate.ts"],"names":[],"mappings":";;;AAAA,0CAAsE;AACtE,wCAA2C;AAE9B,QAAA,cAAc,GAAG,IAAA,kBAAW,EAAC,2BAAmB,CAAC,cAAc,CAAC,CAAA;AAChE,QAAA,uBAAuB,GAAG,IAAA,kBAAW,EAChD,wBAAgB,CAAC,wBAAwB,CAC1C,CAAA;AACY,QAAA,uBAAuB,GAAG,IAAA,kBAAW,EAChD,wBAAgB,CAAC,wBAAwB,CAC1C,CAAA;AACY,QAAA,uBAAuB,GAAG,IAAA,kBAAW,EAChD,wBAAgB,CAAC,wBAAwB,CAC1C,CAAA;AACY,QAAA,mBAAmB,GAAG,IAAA,kBAAW,EAC5C,wBAAgB,CAAC,oBAAoB,CACtC,CAAA;AACY,QAAA,sBAAsB,GAAG,IAAA,kBAAW,EAC/C,wBAAgB,CAAC,uBAAuB,CACzC,CAAA;AACY,QAAA,oBAAoB,GAAG,IAAA,kBAAW,EAC7C,wBAAgB,CAAC,qBAAqB,CACvC,CAAA;AACY,QAAA,mBAAmB,GAAG,IAAA,kBAAW,EAC5C,wBAAgB,CAAC,oBAAoB,CACtC,CAAA;AACY,QAAA,qBAAqB,GAAG,IAAA,kBAAW,EAC9C,wBAAgB,CAAC,sBAAsB,CACxC,CAAA;AACY,QAAA,0BAA0B,GAAG,IAAA,kBAAW,EACnD,wBAAgB,CAAC,2BAA2B,CAC7C,CAAA;AACY,QAAA,kCAAkC,GAAG,IAAA,kBAAW,EAC3D,wBAAgB,CAAC,mCAAmC,CACrD,CAAA;AACY,QAAA,qBAAqB,GAAG,IAAA,kBAAW,EAC9C,wBAAgB,CAAC,sBAAsB,CACxC,CAAA;AACY,QAAA,uBAAuB,GAAG,IAAA,kBAAW,EAChD,wBAAgB,CAAC,wBAAwB,CAC1C,CAAA;AACY,QAAA,qBAAqB,GAAG,IAAA,kBAAW,EAC9C,wBAAgB,CAAC,sBAAsB,CACxC,CAAA;AACY,QAAA,wBAAwB,GAAG,IAAA,kBAAW,EACjD,wBAAgB,CAAC,yBAAyB,CAC3C,CAAA"}
|
|
1
|
+
{"version":3,"file":"predicate.js","sourceRoot":"","sources":["../src/predicate.ts"],"names":[],"mappings":";;;AAAA,0CAAsE;AACtE,wCAA2C;AAE9B,QAAA,cAAc,GAAG,IAAA,kBAAW,EAAC,2BAAmB,CAAC,cAAc,CAAC,CAAA;AAChE,QAAA,uBAAuB,GAAG,IAAA,kBAAW,EAChD,wBAAgB,CAAC,wBAAwB,CAC1C,CAAA;AACY,QAAA,uBAAuB,GAAG,IAAA,kBAAW,EAChD,wBAAgB,CAAC,wBAAwB,CAC1C,CAAA;AACY,QAAA,uBAAuB,GAAG,IAAA,kBAAW,EAChD,wBAAgB,CAAC,wBAAwB,CAC1C,CAAA;AACY,QAAA,mBAAmB,GAAG,IAAA,kBAAW,EAC5C,wBAAgB,CAAC,oBAAoB,CACtC,CAAA;AACY,QAAA,sBAAsB,GAAG,IAAA,kBAAW,EAC/C,wBAAgB,CAAC,uBAAuB,CACzC,CAAA;AACY,QAAA,oBAAoB,GAAG,IAAA,kBAAW,EAC7C,wBAAgB,CAAC,qBAAqB,CACvC,CAAA;AACY,QAAA,mBAAmB,GAAG,IAAA,kBAAW,EAC5C,wBAAgB,CAAC,oBAAoB,CACtC,CAAA;AACY,QAAA,qBAAqB,GAAG,IAAA,kBAAW,EAC9C,wBAAgB,CAAC,sBAAsB,CACxC,CAAA;AACY,QAAA,0BAA0B,GAAG,IAAA,kBAAW,EACnD,wBAAgB,CAAC,2BAA2B,CAC7C,CAAA;AACY,QAAA,kCAAkC,GAAG,IAAA,kBAAW,EAC3D,wBAAgB,CAAC,mCAAmC,CACrD,CAAA;AACY,QAAA,qBAAqB,GAAG,IAAA,kBAAW,EAC9C,wBAAgB,CAAC,sBAAsB,CACxC,CAAA;AACY,QAAA,uBAAuB,GAAG,IAAA,kBAAW,EAChD,wBAAgB,CAAC,wBAAwB,CAC1C,CAAA;AACY,QAAA,qBAAqB,GAAG,IAAA,kBAAW,EAC9C,wBAAgB,CAAC,sBAAsB,CACxC,CAAA;AACY,QAAA,wBAAwB,GAAG,IAAA,kBAAW,EACjD,wBAAgB,CAAC,yBAAyB,CAC3C,CAAA","sourcesContent":["import { AppBskyActorDefs, AppBskyActorProfile } from './client/index'\nimport { asPredicate } from './client/util'\n\nexport const isValidProfile = asPredicate(AppBskyActorProfile.validateRecord)\nexport const isValidAdultContentPref = asPredicate(\n AppBskyActorDefs.validateAdultContentPref,\n)\nexport const isValidBskyAppStatePref = asPredicate(\n AppBskyActorDefs.validateBskyAppStatePref,\n)\nexport const isValidContentLabelPref = asPredicate(\n AppBskyActorDefs.validateContentLabelPref,\n)\nexport const isValidFeedViewPref = asPredicate(\n AppBskyActorDefs.validateFeedViewPref,\n)\nexport const isValidHiddenPostsPref = asPredicate(\n AppBskyActorDefs.validateHiddenPostsPref,\n)\nexport const isValidInterestsPref = asPredicate(\n AppBskyActorDefs.validateInterestsPref,\n)\nexport const isValidLabelersPref = asPredicate(\n AppBskyActorDefs.validateLabelersPref,\n)\nexport const isValidMutedWordsPref = asPredicate(\n AppBskyActorDefs.validateMutedWordsPref,\n)\nexport const isValidPersonalDetailsPref = asPredicate(\n AppBskyActorDefs.validatePersonalDetailsPref,\n)\nexport const isValidPostInteractionSettingsPref = asPredicate(\n AppBskyActorDefs.validatePostInteractionSettingsPref,\n)\nexport const isValidSavedFeedsPref = asPredicate(\n AppBskyActorDefs.validateSavedFeedsPref,\n)\nexport const isValidSavedFeedsPrefV2 = asPredicate(\n AppBskyActorDefs.validateSavedFeedsPrefV2,\n)\nexport const isValidThreadViewPref = asPredicate(\n AppBskyActorDefs.validateThreadViewPref,\n)\nexport const isValidVerificationPrefs = asPredicate(\n AppBskyActorDefs.validateVerificationPrefs,\n)\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detection.js","sourceRoot":"","sources":["../../src/rich-text/detection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"detection.js","sourceRoot":"","sources":["../../src/rich-text/detection.ts"],"names":[],"mappings":"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","sourcesContent":["import TLDs from 'tlds'\nimport { AppBskyRichtextFacet } from '../client'\nimport { UnicodeString } from './unicode'\nimport {\n MENTION_REGEX,\n TAG_REGEX,\n TRAILING_PUNCTUATION_REGEX,\n URL_REGEX,\n} from './util'\n\nexport type Facet = AppBskyRichtextFacet.Main\n\nexport function detectFacets(text: UnicodeString): Facet[] | undefined {\n let match\n const facets: Facet[] = []\n {\n // mentions\n const re = MENTION_REGEX\n while ((match = re.exec(text.utf16))) {\n if (!isValidDomain(match[3]) && !match[3].endsWith('.test')) {\n continue // probably not a handle\n }\n\n const start = text.utf16.indexOf(match[3], match.index) - 1\n facets.push({\n $type: 'app.bsky.richtext.facet',\n index: {\n byteStart: text.utf16IndexToUtf8Index(start),\n byteEnd: text.utf16IndexToUtf8Index(start + match[3].length + 1),\n },\n features: [\n {\n $type: 'app.bsky.richtext.facet#mention',\n did: match[3], // must be resolved afterwards\n },\n ],\n })\n }\n }\n {\n // links\n const re = URL_REGEX\n while ((match = re.exec(text.utf16))) {\n let uri = match[2]\n if (!uri.startsWith('http')) {\n const domain = match.groups?.domain\n if (!domain || !isValidDomain(domain)) {\n continue\n }\n uri = `https://${uri}`\n }\n const start = text.utf16.indexOf(match[2], match.index)\n const index = { start, end: start + match[2].length }\n // strip ending puncuation\n if (/[.,;:!?]$/.test(uri)) {\n uri = uri.slice(0, -1)\n index.end--\n }\n if (/[)]$/.test(uri) && !uri.includes('(')) {\n uri = uri.slice(0, -1)\n index.end--\n }\n facets.push({\n index: {\n byteStart: text.utf16IndexToUtf8Index(index.start),\n byteEnd: text.utf16IndexToUtf8Index(index.end),\n },\n features: [\n {\n $type: 'app.bsky.richtext.facet#link',\n uri,\n },\n ],\n })\n }\n }\n {\n const re = TAG_REGEX\n while ((match = re.exec(text.utf16))) {\n const leading = match[1]\n let tag = match[2]\n\n if (!tag) continue\n\n // strip ending punctuation and any spaces\n tag = tag.trim().replace(TRAILING_PUNCTUATION_REGEX, '')\n\n if (tag.length === 0 || tag.length > 64) continue\n\n const index = match.index + leading.length\n\n facets.push({\n index: {\n byteStart: text.utf16IndexToUtf8Index(index),\n byteEnd: text.utf16IndexToUtf8Index(index + 1 + tag.length),\n },\n features: [\n {\n $type: 'app.bsky.richtext.facet#tag',\n tag: tag,\n },\n ],\n })\n }\n }\n return facets.length > 0 ? facets : undefined\n}\n\nfunction isValidDomain(str: string): boolean {\n return !!TLDs.find((tld) => {\n const i = str.lastIndexOf(tld)\n if (i === -1) {\n return false\n }\n return str.charAt(i - 1) === '.' && i === str.length - tld.length\n })\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rich-text.js","sourceRoot":"","sources":["../../src/rich-text/rich-text.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rich-text.js","sourceRoot":"","sources":["../../src/rich-text/rich-text.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n= Rich Text Manipulation\n\nWhen we sanitize rich text, we have to update the entity indices as the\ntext is modified. This can be modeled as inserts() and deletes() of the\nrich text string. The possible scenarios are outlined below, along with\ntheir expected behaviors.\n\nNOTE: Slices are start inclusive, end exclusive\n\n== richTextInsert()\n\nTarget string:\n\n 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l l o w o r l d // string value\n ^-------^ // target slice {start: 2, end: 7}\n\nScenarios:\n\nA: ^ // insert \"test\" at 0\nB: ^ // insert \"test\" at 4\nC: ^ // insert \"test\" at 8\n\nA = before -> move both by num added\nB = inner -> move end by num added\nC = after -> noop\n\nResults:\n\nA: 0 1 2 3 4 5 6 7 8 910 // string indices\n t e s t h e l l o w // string value\n ^-------^ // target slice {start: 6, end: 11}\n\nB: 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l l t e s t o w // string value\n ^---------------^ // target slice {start: 2, end: 11}\n\nC: 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l l o w o t e s // string value\n ^-------^ // target slice {start: 2, end: 7}\n\n== richTextDelete()\n\nTarget string:\n\n 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l l o w o r l d // string value\n ^-------^ // target slice {start: 2, end: 7}\n\nScenarios:\n\nA: ^---------------^ // remove slice {start: 0, end: 9}\nB: ^-----^ // remove slice {start: 7, end: 11}\nC: ^-----------^ // remove slice {start: 4, end: 11}\nD: ^-^ // remove slice {start: 3, end: 5}\nE: ^-----^ // remove slice {start: 1, end: 5}\nF: ^-^ // remove slice {start: 0, end: 2}\n\nA = entirely outer -> delete slice\nB = entirely after -> noop\nC = partially after -> move end to remove-start\nD = entirely inner -> move end by num removed\nE = partially before -> move start to remove-start index, move end by num removed\nF = entirely before -> move both by num removed\n\nResults:\n\nA: 0 1 2 3 4 5 6 7 8 910 // string indices\n l d // string value\n // target slice (deleted)\n\nB: 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l l o w // string value\n ^-------^ // target slice {start: 2, end: 7}\n\nC: 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l l // string value\n ^-^ // target slice {start: 2, end: 4}\n\nD: 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l w o r l d // string value\n ^---^ // target slice {start: 2, end: 5}\n\nE: 0 1 2 3 4 5 6 7 8 910 // string indices\n h w o r l d // string value\n ^-^ // target slice {start: 1, end: 3}\n\nF: 0 1 2 3 4 5 6 7 8 910 // string indices\n l l o w o r l d // string value\n ^-------^ // target slice {start: 0, end: 5}\n */\n\nimport { AppBskyFeedPost, AppBskyRichtextFacet, AtpBaseClient } from '../client'\nimport { detectFacets } from './detection'\nimport { sanitizeRichText } from './sanitization'\nimport { UnicodeString } from './unicode'\n\nexport type Facet = AppBskyRichtextFacet.Main\nexport type FacetLink = AppBskyRichtextFacet.Link\nexport type FacetMention = AppBskyRichtextFacet.Mention\nexport type FacetTag = AppBskyRichtextFacet.Tag\nexport type Entity = AppBskyFeedPost.Entity\n\nexport interface RichTextProps {\n text: string\n facets?: Facet[]\n /**\n * @deprecated Use facets instead\n */\n entities?: Entity[]\n}\n\nexport interface RichTextOpts {\n cleanNewlines?: boolean\n}\n\nexport class RichTextSegment {\n constructor(\n public text: string,\n public facet?: Facet,\n ) {}\n\n get link(): FacetLink | undefined {\n return this.facet?.features.find(AppBskyRichtextFacet.isLink)\n }\n\n isLink() {\n return !!this.link\n }\n\n get mention(): FacetMention | undefined {\n return this.facet?.features.find(AppBskyRichtextFacet.isMention)\n }\n\n isMention() {\n return !!this.mention\n }\n\n get tag(): FacetTag | undefined {\n return this.facet?.features.find(AppBskyRichtextFacet.isTag)\n }\n\n isTag() {\n return !!this.tag\n }\n}\n\nexport class RichText {\n unicodeText: UnicodeString\n facets?: Facet[]\n\n constructor(props: RichTextProps, opts?: RichTextOpts) {\n this.unicodeText = new UnicodeString(props.text)\n this.facets = props.facets\n if (!this.facets?.length && props.entities?.length) {\n this.facets = entitiesToFacets(this.unicodeText, props.entities)\n }\n if (this.facets) {\n this.facets = this.facets.filter(facetFilter).sort(facetSort)\n }\n if (opts?.cleanNewlines) {\n sanitizeRichText(this, { cleanNewlines: true }).copyInto(this)\n }\n }\n\n get text() {\n return this.unicodeText.toString()\n }\n\n get length() {\n return this.unicodeText.length\n }\n\n get graphemeLength() {\n return this.unicodeText.graphemeLength\n }\n\n clone() {\n return new RichText({\n text: this.unicodeText.utf16,\n facets: cloneDeep(this.facets),\n })\n }\n\n copyInto(target: RichText) {\n target.unicodeText = this.unicodeText\n target.facets = cloneDeep(this.facets)\n }\n\n *segments(): Generator<RichTextSegment, void, void> {\n const facets = this.facets || []\n if (!facets.length) {\n yield new RichTextSegment(this.unicodeText.utf16)\n return\n }\n\n let textCursor = 0\n let facetCursor = 0\n do {\n const currFacet = facets[facetCursor]\n if (textCursor < currFacet.index.byteStart) {\n yield new RichTextSegment(\n this.unicodeText.slice(textCursor, currFacet.index.byteStart),\n )\n } else if (textCursor > currFacet.index.byteStart) {\n facetCursor++\n continue\n }\n if (currFacet.index.byteStart < currFacet.index.byteEnd) {\n const subtext = this.unicodeText.slice(\n currFacet.index.byteStart,\n currFacet.index.byteEnd,\n )\n if (!subtext.trim()) {\n // dont empty string entities\n yield new RichTextSegment(subtext)\n } else {\n yield new RichTextSegment(subtext, currFacet)\n }\n }\n textCursor = currFacet.index.byteEnd\n facetCursor++\n } while (facetCursor < facets.length)\n if (textCursor < this.unicodeText.length) {\n yield new RichTextSegment(\n this.unicodeText.slice(textCursor, this.unicodeText.length),\n )\n }\n }\n\n insert(insertIndex: number, insertText: string) {\n this.unicodeText = new UnicodeString(\n this.unicodeText.slice(0, insertIndex) +\n insertText +\n this.unicodeText.slice(insertIndex),\n )\n\n if (!this.facets?.length) {\n return this\n }\n\n const numCharsAdded = insertText.length\n for (const ent of this.facets) {\n // see comment at top of file for labels of each scenario\n // scenario A (before)\n if (insertIndex <= ent.index.byteStart) {\n // move both by num added\n ent.index.byteStart += numCharsAdded\n ent.index.byteEnd += numCharsAdded\n }\n // scenario B (inner)\n else if (\n insertIndex >= ent.index.byteStart &&\n insertIndex < ent.index.byteEnd\n ) {\n // move end by num added\n ent.index.byteEnd += numCharsAdded\n }\n // scenario C (after)\n // noop\n }\n return this\n }\n\n delete(removeStartIndex: number, removeEndIndex: number) {\n this.unicodeText = new UnicodeString(\n this.unicodeText.slice(0, removeStartIndex) +\n this.unicodeText.slice(removeEndIndex),\n )\n\n if (!this.facets?.length) {\n return this\n }\n\n const numCharsRemoved = removeEndIndex - removeStartIndex\n for (const ent of this.facets) {\n // see comment at top of file for labels of each scenario\n // scenario A (entirely outer)\n if (\n removeStartIndex <= ent.index.byteStart &&\n removeEndIndex >= ent.index.byteEnd\n ) {\n // delete slice (will get removed in final pass)\n ent.index.byteStart = 0\n ent.index.byteEnd = 0\n }\n // scenario B (entirely after)\n else if (removeStartIndex > ent.index.byteEnd) {\n // noop\n }\n // scenario C (partially after)\n else if (\n removeStartIndex > ent.index.byteStart &&\n removeStartIndex <= ent.index.byteEnd &&\n removeEndIndex > ent.index.byteEnd\n ) {\n // move end to remove start\n ent.index.byteEnd = removeStartIndex\n }\n // scenario D (entirely inner)\n else if (\n removeStartIndex >= ent.index.byteStart &&\n removeEndIndex <= ent.index.byteEnd\n ) {\n // move end by num removed\n ent.index.byteEnd -= numCharsRemoved\n }\n // scenario E (partially before)\n else if (\n removeStartIndex < ent.index.byteStart &&\n removeEndIndex >= ent.index.byteStart &&\n removeEndIndex <= ent.index.byteEnd\n ) {\n // move start to remove-start index, move end by num removed\n ent.index.byteStart = removeStartIndex\n ent.index.byteEnd -= numCharsRemoved\n }\n // scenario F (entirely before)\n else if (removeEndIndex < ent.index.byteStart) {\n // move both by num removed\n ent.index.byteStart -= numCharsRemoved\n ent.index.byteEnd -= numCharsRemoved\n }\n }\n\n // filter out any facets that were made irrelevant\n this.facets = this.facets.filter(\n (ent) => ent.index.byteStart < ent.index.byteEnd,\n )\n return this\n }\n\n /**\n * Detects facets such as links and mentions\n * Note: Overwrites the existing facets with auto-detected facets\n */\n async detectFacets(agent: AtpBaseClient) {\n this.facets = detectFacets(this.unicodeText)\n if (this.facets) {\n const promises: Promise<void>[] = []\n for (const facet of this.facets) {\n for (const feature of facet.features) {\n if (AppBskyRichtextFacet.isMention(feature)) {\n promises.push(\n agent.com.atproto.identity\n .resolveHandle({ handle: feature.did })\n .then((res) => res?.data.did)\n .catch((_) => undefined)\n .then((did) => {\n feature.did = did || ''\n }),\n )\n }\n }\n }\n await Promise.allSettled(promises)\n this.facets.sort(facetSort)\n }\n }\n\n /**\n * Detects facets such as links and mentions but does not resolve them\n * Will produce invalid facets! For instance, mentions will not have their DIDs set.\n * Note: Overwrites the existing facets with auto-detected facets\n */\n detectFacetsWithoutResolution() {\n this.facets = detectFacets(this.unicodeText)\n if (this.facets) {\n this.facets.sort(facetSort)\n }\n }\n}\n\nconst facetSort = (a: Facet, b: Facet) => a.index.byteStart - b.index.byteStart\n\nconst facetFilter = (facet: Facet) =>\n // discard negative-length facets. zero-length facets are valid\n facet.index.byteStart <= facet.index.byteEnd\n\nfunction entitiesToFacets(text: UnicodeString, entities: Entity[]): Facet[] {\n const facets: Facet[] = []\n for (const ent of entities) {\n if (ent.type === 'link') {\n facets.push({\n $type: 'app.bsky.richtext.facet',\n index: {\n byteStart: text.utf16IndexToUtf8Index(ent.index.start),\n byteEnd: text.utf16IndexToUtf8Index(ent.index.end),\n },\n features: [{ $type: 'app.bsky.richtext.facet#link', uri: ent.value }],\n })\n } else if (ent.type === 'mention') {\n facets.push({\n $type: 'app.bsky.richtext.facet',\n index: {\n byteStart: text.utf16IndexToUtf8Index(ent.index.start),\n byteEnd: text.utf16IndexToUtf8Index(ent.index.end),\n },\n features: [\n { $type: 'app.bsky.richtext.facet#mention', did: ent.value },\n ],\n })\n }\n }\n return facets\n}\n\nfunction cloneDeep<T>(v: T): T {\n if (typeof v === 'undefined') {\n return v\n }\n return JSON.parse(JSON.stringify(v))\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitization.js","sourceRoot":"","sources":["../../src/rich-text/sanitization.ts"],"names":[],"mappings":";;AAQA,4CAQC;AAfD,uCAAyC;AAEzC,4EAA4E;AAC5E,yDAAyD;AACzD,MAAM,eAAe,GAAG,uDAAuD,CAAA;AAC/E,MAAM,eAAe,GAAG,MAAM,CAAA;AAE9B,SAAgB,gBAAgB,CAC9B,QAAkB,EAClB,IAAiC;IAEjC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,eAAe,EAAE,eAAe,CAAC,CAAA;IAC9D,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,KAAK,CACZ,QAAkB,EAClB,YAAoB,EACpB,iBAAyB;IAEzB,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAA;IAE3B,IAAI,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC1D,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAA;QACpC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,WAAW,CAAC,qBAAqB,CACjE,KAAK,CAAC,KAAK,CACZ,CAAA;QACD,MAAM,cAAc,GAAG,gBAAgB,GAAG,IAAI,uBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QAC5E,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;QACjD,IAAI,QAAQ,CAAC,WAAW,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;YACjD,MAAK,CAAC,eAAe;QACvB,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAA;QACpD,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACxD,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"sanitization.js","sourceRoot":"","sources":["../../src/rich-text/sanitization.ts"],"names":[],"mappings":";;AAQA,4CAQC;AAfD,uCAAyC;AAEzC,4EAA4E;AAC5E,yDAAyD;AACzD,MAAM,eAAe,GAAG,uDAAuD,CAAA;AAC/E,MAAM,eAAe,GAAG,MAAM,CAAA;AAE9B,SAAgB,gBAAgB,CAC9B,QAAkB,EAClB,IAAiC;IAEjC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,eAAe,EAAE,eAAe,CAAC,CAAA;IAC9D,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,KAAK,CACZ,QAAkB,EAClB,YAAoB,EACpB,iBAAyB;IAEzB,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAA;IAE3B,IAAI,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC1D,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAA;QACpC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,WAAW,CAAC,qBAAqB,CACjE,KAAK,CAAC,KAAK,CACZ,CAAA;QACD,MAAM,cAAc,GAAG,gBAAgB,GAAG,IAAI,uBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QAC5E,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;QACjD,IAAI,QAAQ,CAAC,WAAW,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;YACjD,MAAK,CAAC,eAAe;QACvB,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAA;QACpD,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACxD,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC","sourcesContent":["import { RichText } from './rich-text'\nimport { UnicodeString } from './unicode'\n\n// this regex is intentionally matching on the zero-with-separator codepoint\n// eslint-disable-next-line no-misleading-character-class\nconst EXCESS_SPACE_RE = /[\\r\\n]([\\u00AD\\u2060\\u200D\\u200C\\u200B\\s]*[\\r\\n]){2,}/\nconst REPLACEMENT_STR = '\\n\\n'\n\nexport function sanitizeRichText(\n richText: RichText,\n opts: { cleanNewlines?: boolean },\n) {\n if (opts.cleanNewlines) {\n richText = clean(richText, EXCESS_SPACE_RE, REPLACEMENT_STR)\n }\n return richText\n}\n\nfunction clean(\n richText: RichText,\n targetRegexp: RegExp,\n replacementString: string,\n): RichText {\n richText = richText.clone()\n\n let match = richText.unicodeText.utf16.match(targetRegexp)\n while (match && typeof match.index !== 'undefined') {\n const oldText = richText.unicodeText\n const removeStartIndex = richText.unicodeText.utf16IndexToUtf8Index(\n match.index,\n )\n const removeEndIndex = removeStartIndex + new UnicodeString(match[0]).length\n richText.delete(removeStartIndex, removeEndIndex)\n if (richText.unicodeText.utf16 === oldText.utf16) {\n break // sanity check\n }\n richText.insert(removeStartIndex, replacementString)\n match = richText.unicodeText.utf16.match(targetRegexp)\n }\n\n return richText\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unicode.js","sourceRoot":"","sources":["../../src/rich-text/unicode.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,oDAAiD;AAEjD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;AACjC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;AAEjC,MAAa,aAAa;IAKxB,YAAY,KAAa;QAJzB;;;;;WAAa;QACb;;;;;WAAgB;QACR;;;;;WAAiC;QAGvC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAA;IAC7B,CAAC;IAED,IAAI,cAAc;QAChB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,IAAA,wBAAW,EAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,KAAc,EAAE,GAAY;QAChC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,qBAAqB,CAAC,CAAS;QAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;IAC1D,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;CACF;AAhCD,sCAgCC"}
|
|
1
|
+
{"version":3,"file":"unicode.js","sourceRoot":"","sources":["../../src/rich-text/unicode.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,oDAAiD;AAEjD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;AACjC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;AAEjC,MAAa,aAAa;IAKxB,YAAY,KAAa;QAJzB;;;;;WAAa;QACb;;;;;WAAgB;QACR;;;;;WAAiC;QAGvC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAA;IAC7B,CAAC;IAED,IAAI,cAAc;QAChB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,IAAA,wBAAW,EAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,KAAc,EAAE,GAAY;QAChC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,qBAAqB,CAAC,CAAS;QAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;IAC1D,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;CACF;AAhCD,sCAgCC","sourcesContent":["/**\n * Javascript uses utf16-encoded strings while most environments and specs\n * have standardized around utf8 (including JSON).\n *\n * After some lengthy debated we decided that richtext facets need to use\n * utf8 indices. This means we need tools to convert indices between utf8\n * and utf16, and that's precisely what this library handles.\n */\n\nimport { graphemeLen } from '@atproto/common-web'\n\nconst encoder = new TextEncoder()\nconst decoder = new TextDecoder()\n\nexport class UnicodeString {\n utf16: string\n utf8: Uint8Array\n private _graphemeLen?: number | undefined\n\n constructor(utf16: string) {\n this.utf16 = utf16\n this.utf8 = encoder.encode(utf16)\n }\n\n get length() {\n return this.utf8.byteLength\n }\n\n get graphemeLength() {\n if (!this._graphemeLen) {\n this._graphemeLen = graphemeLen(this.utf16)\n }\n return this._graphemeLen\n }\n\n slice(start?: number, end?: number): string {\n return decoder.decode(this.utf8.slice(start, end))\n }\n\n utf16IndexToUtf8Index(i: number) {\n return encoder.encode(this.utf16.slice(0, i)).byteLength\n }\n\n toString() {\n return this.utf16\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/rich-text/util.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG,mCAAmC,CAAA;AACnD,QAAA,SAAS,GACpB,iFAAiF,CAAA;AACtE,QAAA,0BAA0B,GAAG,WAAW,CAAA;AAErD;;;GAGG;AACU,QAAA,SAAS;AACpB,yDAAyD;AACzD,kLAAkL,CAAA"}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/rich-text/util.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG,mCAAmC,CAAA;AACnD,QAAA,SAAS,GACpB,iFAAiF,CAAA;AACtE,QAAA,0BAA0B,GAAG,WAAW,CAAA;AAErD;;;GAGG;AACU,QAAA,SAAS;AACpB,yDAAyD;AACzD,kLAAkL,CAAA","sourcesContent":["export const MENTION_REGEX = /(^|\\s|\\()(@)([a-zA-Z0-9.-]+)(\\b)/g\nexport const URL_REGEX =\n /(^|\\s|\\()((https?:\\/\\/[\\S]+)|((?<domain>[a-z][a-z0-9]*(\\.[a-z0-9]+)+)[\\S]*))/gim\nexport const TRAILING_PUNCTUATION_REGEX = /\\p{P}+$/gu\n\n/**\n * `\\ufe0f` emoji modifier\n * `\\u00AD\\u2060\\u200A\\u200B\\u200C\\u200D\\u20e2` zero-width spaces (likely incomplete)\n */\nexport const TAG_REGEX =\n // eslint-disable-next-line no-misleading-character-class\n /(^|\\s)[##]((?!\\ufe0f)[^\\s\\u00AD\\u2060\\u200A\\u200B\\u200C\\u200D\\u20e2]*[^\\d\\s\\p{P}\\u00AD\\u2060\\u200A\\u200B\\u200C\\u200D\\u20e2]+[^\\s\\u00AD\\u2060\\u200A\\u200B\\u200C\\u200D\\u20e2]*)?/gu\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"","sourcesContent":["import { FetchHandlerObject } from '@atproto/xrpc'\n\nexport interface SessionManager extends FetchHandlerObject {\n readonly did?: string\n}\n"]}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import { AppBskyActorDefs } from './client';
|
|
2
2
|
import { ModerationPrefs } from './moderation/types';
|
|
3
|
-
|
|
4
|
-
* Supported proxy targets
|
|
5
|
-
*/
|
|
6
|
-
type UnknownServiceType = string & NonNullable<unknown>;
|
|
3
|
+
export type UnknownServiceType = string & NonNullable<unknown>;
|
|
7
4
|
export type AtprotoServiceType = 'atproto_labeler' | UnknownServiceType;
|
|
5
|
+
export declare function isAtprotoServiceType<T extends string>(input: T): input is T & AtprotoServiceType;
|
|
6
|
+
export type Did = `did:${string}:${string}`;
|
|
7
|
+
export declare function isDid<T extends string>(input: T): input is T & Did;
|
|
8
|
+
export declare function assertDid(input: string): asserts input is Did;
|
|
9
|
+
export declare function asDid<T extends string>(input: T): T & `did:${string}:${string}`;
|
|
10
|
+
export type AtprotoProxy = `${Did}#${AtprotoServiceType}`;
|
|
11
|
+
export declare function isAtprotoProxy(input: string): input is AtprotoProxy;
|
|
12
|
+
export declare function assertAtprotoProxy(input: string): asserts input is AtprotoProxy;
|
|
13
|
+
export declare function asAtprotoProxy<T extends string>(input: T): (T & `did:${string}:${string}#${UnknownServiceType}`) | (T & `did:${string}:${string}#atproto_labeler`);
|
|
8
14
|
/**
|
|
9
15
|
* Used by the PersistSessionHandler to indicate what change occurred
|
|
10
16
|
*/
|
|
@@ -93,5 +99,4 @@ export interface BskyPreferences {
|
|
|
93
99
|
postInteractionSettings: AppBskyActorDefs.PostInteractionSettingsPref;
|
|
94
100
|
verificationPrefs: AppBskyActorDefs.VerificationPrefs;
|
|
95
101
|
}
|
|
96
|
-
export {};
|
|
97
102
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -1,3 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isAtprotoServiceType = isAtprotoServiceType;
|
|
4
|
+
exports.isDid = isDid;
|
|
5
|
+
exports.assertDid = assertDid;
|
|
6
|
+
exports.asDid = asDid;
|
|
7
|
+
exports.isAtprotoProxy = isAtprotoProxy;
|
|
8
|
+
exports.assertAtprotoProxy = assertAtprotoProxy;
|
|
9
|
+
exports.asAtprotoProxy = asAtprotoProxy;
|
|
10
|
+
function isAtprotoServiceType(input) {
|
|
11
|
+
return !input.includes(' ') && !input.includes('#');
|
|
12
|
+
}
|
|
13
|
+
function isDid(input) {
|
|
14
|
+
if (!input.startsWith('did:'))
|
|
15
|
+
return false;
|
|
16
|
+
if (input.length < 8)
|
|
17
|
+
return false;
|
|
18
|
+
if (input.length > 2048)
|
|
19
|
+
return false;
|
|
20
|
+
const msidx = input.indexOf(':', 4);
|
|
21
|
+
return msidx > 4 && msidx < input.length - 1;
|
|
22
|
+
}
|
|
23
|
+
function assertDid(input) {
|
|
24
|
+
if (!isDid(input))
|
|
25
|
+
throw new TypeError(`Invalid DID: ${input}`);
|
|
26
|
+
}
|
|
27
|
+
function asDid(input) {
|
|
28
|
+
assertDid(input);
|
|
29
|
+
return input;
|
|
30
|
+
}
|
|
31
|
+
function isAtprotoProxy(input) {
|
|
32
|
+
const { length, [0]: did, [1]: service } = input.split('#');
|
|
33
|
+
return length === 2 && isDid(did) && isAtprotoServiceType(service);
|
|
34
|
+
}
|
|
35
|
+
function assertAtprotoProxy(input) {
|
|
36
|
+
if (!isAtprotoProxy(input)) {
|
|
37
|
+
throw new TypeError(`Invalid DID reference: ${input} (must be of the form did:example:alice#service)`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function asAtprotoProxy(input) {
|
|
41
|
+
assertAtprotoProxy(input);
|
|
42
|
+
return input;
|
|
43
|
+
}
|
|
3
44
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AAKA,oDAIC;AAID,sBAMC;AAED,8BAEC;AAED,sBAGC;AAGD,wCAGC;AAED,gDAQC;AAED,wCAGC;AA5CD,SAAgB,oBAAoB,CAClC,KAAQ;IAER,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AACrD,CAAC;AAID,SAAgB,KAAK,CAAmB,KAAQ;IAC9C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAA;IAC3C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IAClC,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI;QAAE,OAAO,KAAK,CAAA;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IACnC,OAAO,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;AAC9C,CAAC;AAED,SAAgB,SAAS,CAAC,KAAa;IACrC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,gBAAgB,KAAK,EAAE,CAAC,CAAA;AACjE,CAAC;AAED,SAAgB,KAAK,CAAmB,KAAQ;IAC9C,SAAS,CAAC,KAAK,CAAC,CAAA;IAChB,OAAO,KAAK,CAAA;AACd,CAAC;AAGD,SAAgB,cAAc,CAAC,KAAa;IAC1C,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC3D,OAAO,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAA;AACpE,CAAC;AAED,SAAgB,kBAAkB,CAChC,KAAa;IAEb,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,SAAS,CACjB,0BAA0B,KAAK,kDAAkD,CAClF,CAAA;IACH,CAAC;AACH,CAAC;AAED,SAAgB,cAAc,CAAmB,KAAQ;IACvD,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACzB,OAAO,KAAK,CAAA;AACd,CAAC","sourcesContent":["import { AppBskyActorDefs } from './client'\nimport { ModerationPrefs } from './moderation/types'\n\nexport type UnknownServiceType = string & NonNullable<unknown>\nexport type AtprotoServiceType = 'atproto_labeler' | UnknownServiceType\nexport function isAtprotoServiceType<T extends string>(\n input: T,\n): input is T & AtprotoServiceType {\n return !input.includes(' ') && !input.includes('#')\n}\n\n// @TODO use tools from @atproto/did\nexport type Did = `did:${string}:${string}`\nexport function isDid<T extends string>(input: T): input is T & Did {\n if (!input.startsWith('did:')) return false\n if (input.length < 8) return false\n if (input.length > 2048) return false\n const msidx = input.indexOf(':', 4)\n return msidx > 4 && msidx < input.length - 1\n}\n\nexport function assertDid(input: string): asserts input is Did {\n if (!isDid(input)) throw new TypeError(`Invalid DID: ${input}`)\n}\n\nexport function asDid<T extends string>(input: T) {\n assertDid(input)\n return input\n}\n\nexport type AtprotoProxy = `${Did}#${AtprotoServiceType}`\nexport function isAtprotoProxy(input: string): input is AtprotoProxy {\n const { length, [0]: did, [1]: service } = input.split('#')\n return length === 2 && isDid(did) && isAtprotoServiceType(service)\n}\n\nexport function assertAtprotoProxy(\n input: string,\n): asserts input is AtprotoProxy {\n if (!isAtprotoProxy(input)) {\n throw new TypeError(\n `Invalid DID reference: ${input} (must be of the form did:example:alice#service)`,\n )\n }\n}\n\nexport function asAtprotoProxy<T extends string>(input: T) {\n assertAtprotoProxy(input)\n return input\n}\n\n/**\n * Used by the PersistSessionHandler to indicate what change occurred\n */\nexport type AtpSessionEvent =\n | 'create'\n | 'create-failed'\n | 'update'\n | 'expired'\n | 'network-error'\n\n/**\n * Used by AtpAgent to store active sessions\n */\nexport interface AtpSessionData {\n refreshJwt: string\n accessJwt: string\n handle: string\n did: string\n email?: string\n emailConfirmed?: boolean\n emailAuthFactor?: boolean\n active: boolean\n status?: string\n}\n\n/**\n * Handler signature passed to AtpAgent to store session data\n */\nexport type AtpPersistSessionHandler = (\n evt: AtpSessionEvent,\n session: AtpSessionData | undefined,\n) => void | Promise<void>\n\n/**\n * AtpAgent login() opts\n */\nexport interface AtpAgentLoginOpts {\n identifier: string\n password: string\n authFactorToken?: string | undefined\n allowTakendown?: boolean\n}\n\n/**\n * AtpAgent global config opts\n */\nexport interface AtpAgentGlobalOpts {\n appLabelers?: string[]\n}\n\n/**\n * Bluesky feed view preferences\n */\n\nexport interface BskyFeedViewPreference {\n hideReplies: boolean\n hideRepliesByUnfollowed: boolean\n hideRepliesByLikeCount: number\n hideReposts: boolean\n hideQuotePosts: boolean\n [key: string]: any\n}\n\n/**\n * Bluesky thread view preferences\n */\nexport interface BskyThreadViewPreference {\n sort: string\n prioritizeFollowedUsers: boolean\n [key: string]: any\n}\n\n/**\n * Bluesky interests preferences\n */\nexport interface BskyInterestsPreference {\n tags: string[]\n [key: string]: any\n}\n\n/**\n * Bluesky preferences\n */\nexport interface BskyPreferences {\n /**\n * @deprecated use `savedFeeds`\n */\n feeds: {\n saved?: string[]\n pinned?: string[]\n }\n savedFeeds: AppBskyActorDefs.SavedFeed[]\n feedViewPrefs: Record<string, BskyFeedViewPreference>\n threadViewPrefs: BskyThreadViewPreference\n moderationPrefs: ModerationPrefs\n birthDate: Date | undefined\n interests: BskyInterestsPreference\n bskyAppState: {\n queuedNudges: string[]\n activeProgressGuide: AppBskyActorDefs.BskyAppProgressGuide | undefined\n nuxs: AppBskyActorDefs.Nux[]\n }\n postInteractionSettings: AppBskyActorDefs.PostInteractionSettingsPref\n verificationPrefs: AppBskyActorDefs.VerificationPrefs\n}\n"]}
|
package/dist/util.d.ts
CHANGED
|
@@ -14,9 +14,6 @@ export declare function savedFeedsToUriArrays(savedFeeds: AppBskyActorDefs.Saved
|
|
|
14
14
|
*/
|
|
15
15
|
export declare function getSavedFeedType(uri: string): AppBskyActorDefs.SavedFeed['type'];
|
|
16
16
|
export declare function validateSavedFeed(savedFeed: AppBskyActorDefs.SavedFeed): void;
|
|
17
|
-
export type Did = `did:${string}`;
|
|
18
|
-
export declare const isDid: (str: unknown) => str is Did;
|
|
19
|
-
export declare const asDid: (value: string) => Did;
|
|
20
17
|
export declare const nuxSchema: z.ZodObject<{
|
|
21
18
|
id: z.ZodString;
|
|
22
19
|
completed: z.ZodBoolean;
|
package/dist/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,oCAAoC,CAAA;AAExD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,UAQnD;AAED,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,gBAAgB,CAAC,SAAS,EAAE,GACvC;IACD,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB,CAkBA;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,GACV,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAWpC;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,CAAC,SAAS,QAqBtE;AAED,
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,oCAAoC,CAAA;AAExD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,UAQnD;AAED,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,gBAAgB,CAAC,SAAS,EAAE,GACvC;IACD,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB,CAkBA;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,GACV,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAWpC;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,CAAC,SAAS,QAqBtE;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;EAOX,CAAA;AAEX,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,QAEnC"}
|
package/dist/util.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.nuxSchema =
|
|
3
|
+
exports.nuxSchema = void 0;
|
|
4
4
|
exports.sanitizeMutedWordValue = sanitizeMutedWordValue;
|
|
5
5
|
exports.savedFeedsToUriArrays = savedFeedsToUriArrays;
|
|
6
6
|
exports.getSavedFeedType = getSavedFeedType;
|
|
@@ -66,19 +66,6 @@ function validateSavedFeed(savedFeed) {
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
-
// @TODO use tools from @atproto/did
|
|
70
|
-
const isDid = (str) => typeof str === 'string' &&
|
|
71
|
-
str.startsWith('did:') &&
|
|
72
|
-
str.includes(':', 4) &&
|
|
73
|
-
str.length > 8 &&
|
|
74
|
-
str.length <= 2048;
|
|
75
|
-
exports.isDid = isDid;
|
|
76
|
-
const asDid = (value) => {
|
|
77
|
-
if ((0, exports.isDid)(value))
|
|
78
|
-
return value;
|
|
79
|
-
throw new TypeError(`Invalid DID: ${value}`);
|
|
80
|
-
};
|
|
81
|
-
exports.asDid = asDid;
|
|
82
69
|
exports.nuxSchema = zod_1.z
|
|
83
70
|
.object({
|
|
84
71
|
id: zod_1.z.string().max(64),
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;AAKA,wDAQC;AAED,sDAuBC;AAQD,4CAaC;AAED,8CAqBC;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;AAKA,wDAQC;AAED,sDAuBC;AAQD,4CAaC;AAED,8CAqBC;AAWD,kCAEC;AA/FD,6BAAuB;AACvB,4CAAuC;AAIvC,SAAgB,sBAAsB,CAAC,KAAa;IAClD,OAAO,CACL,KAAK;SACF,IAAI,EAAE;SACN,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;QAC5B,yDAAyD;SACxD,OAAO,CAAC,uCAAuC,EAAE,EAAE,CAAC,CACxD,CAAA;AACH,CAAC;AAED,SAAgB,qBAAqB,CACnC,UAAwC;IAKxC,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACvB,8BAA8B;YAC9B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM;QACN,KAAK;KACN,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAC9B,GAAW;IAEX,MAAM,IAAI,GAAG,IAAI,cAAK,CAAC,GAAG,CAAC,CAAA;IAE3B,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,KAAK,yBAAyB;YAC5B,OAAO,MAAM,CAAA;QACf,KAAK,qBAAqB;YACxB,OAAO,MAAM,CAAA;QACf;YACE,OAAO,SAAS,CAAA;IACpB,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB,CAAC,SAAqC;IACrE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IAC7D,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,cAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACtC,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,KAAK,yBAAyB,CAAA;QAC3D,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,KAAK,qBAAqB,CAAA;QAEvD,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACb,iDAAiD,GAAG,CAAC,UAAU,EAAE,CAClE,CAAA;QACH,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACb,iDAAiD,GAAG,CAAC,UAAU,EAAE,CAClE,CAAA;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAEY,QAAA,SAAS,GAAG,OAAC;KACvB,MAAM,CAAC;IACN,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACtB,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE;IACtB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACpC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC5C,CAAC;KACD,MAAM,EAAE,CAAA;AAEX,SAAgB,WAAW,CAAC,GAAQ;IAClC,iBAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AACtB,CAAC","sourcesContent":["import { z } from 'zod'\nimport { AtUri } from '@atproto/syntax'\nimport { AppBskyActorDefs } from './client'\nimport { Nux } from './client/types/app/bsky/actor/defs'\n\nexport function sanitizeMutedWordValue(value: string) {\n return (\n value\n .trim()\n .replace(/^#(?!\\ufe0f)/, '')\n // eslint-disable-next-line no-misleading-character-class\n .replace(/[\\r\\n\\u00AD\\u2060\\u200D\\u200C\\u200B]+/, '')\n )\n}\n\nexport function savedFeedsToUriArrays(\n savedFeeds: AppBskyActorDefs.SavedFeed[],\n): {\n pinned: string[]\n saved: string[]\n} {\n const pinned: string[] = []\n const saved: string[] = []\n\n for (const feed of savedFeeds) {\n if (feed.pinned) {\n pinned.push(feed.value)\n // saved in v1 includes pinned\n saved.push(feed.value)\n } else {\n saved.push(feed.value)\n }\n }\n\n return {\n pinned,\n saved,\n }\n}\n\n/**\n * Get the type of a saved feed, used by deprecated methods for backwards\n * compat. Should not be used moving forward. *Invalid URIs will throw.*\n *\n * @param uri - The AT URI of the saved feed\n */\nexport function getSavedFeedType(\n uri: string,\n): AppBskyActorDefs.SavedFeed['type'] {\n const urip = new AtUri(uri)\n\n switch (urip.collection) {\n case 'app.bsky.feed.generator':\n return 'feed'\n case 'app.bsky.graph.list':\n return 'list'\n default:\n return 'unknown'\n }\n}\n\nexport function validateSavedFeed(savedFeed: AppBskyActorDefs.SavedFeed) {\n if (!savedFeed.id) {\n throw new Error('Saved feed must have an `id` - use a TID')\n }\n\n if (['feed', 'list'].includes(savedFeed.type)) {\n const uri = new AtUri(savedFeed.value)\n const isFeed = uri.collection === 'app.bsky.feed.generator'\n const isList = uri.collection === 'app.bsky.graph.list'\n\n if (savedFeed.type === 'feed' && !isFeed) {\n throw new Error(\n `Saved feed of type 'feed' must be a feed, got ${uri.collection}`,\n )\n }\n if (savedFeed.type === 'list' && !isList) {\n throw new Error(\n `Saved feed of type 'list' must be a list, got ${uri.collection}`,\n )\n }\n }\n}\n\nexport const nuxSchema = z\n .object({\n id: z.string().max(64),\n completed: z.boolean(),\n data: z.string().max(300).optional(),\n expiresAt: z.string().datetime().optional(),\n })\n .strict()\n\nexport function validateNux(nux: Nux) {\n nuxSchema.parse(nux)\n}\n"]}
|
package/package.json
CHANGED
package/src/agent.ts
CHANGED
|
@@ -33,17 +33,18 @@ import * as predicate from './predicate'
|
|
|
33
33
|
import { SessionManager } from './session-manager'
|
|
34
34
|
import {
|
|
35
35
|
AtpAgentGlobalOpts,
|
|
36
|
+
AtprotoProxy,
|
|
36
37
|
AtprotoServiceType,
|
|
37
38
|
BskyFeedViewPreference,
|
|
38
39
|
BskyInterestsPreference,
|
|
39
40
|
BskyPreferences,
|
|
40
41
|
BskyThreadViewPreference,
|
|
42
|
+
asAtprotoProxy,
|
|
43
|
+
asDid,
|
|
44
|
+
isDid,
|
|
41
45
|
} from './types'
|
|
42
46
|
import {
|
|
43
|
-
Did,
|
|
44
|
-
asDid,
|
|
45
47
|
getSavedFeedType,
|
|
46
|
-
isDid,
|
|
47
48
|
sanitizeMutedWordValue,
|
|
48
49
|
savedFeedsToUriArrays,
|
|
49
50
|
validateNux,
|
|
@@ -187,12 +188,11 @@ export class Agent extends XrpcClient {
|
|
|
187
188
|
|
|
188
189
|
//#region ATPROTO proxy configuration utilities
|
|
189
190
|
|
|
190
|
-
proxy?:
|
|
191
|
+
proxy?: AtprotoProxy
|
|
191
192
|
|
|
192
|
-
configureProxy(value:
|
|
193
|
+
configureProxy(value: AtprotoProxy | null) {
|
|
193
194
|
if (value === null) this.proxy = undefined
|
|
194
|
-
else
|
|
195
|
-
else throw new TypeError('Invalid proxy DID')
|
|
195
|
+
else this.proxy = asAtprotoProxy(value)
|
|
196
196
|
}
|
|
197
197
|
|
|
198
198
|
/** @deprecated use {@link configureProxy} instead */
|