@atproto/pds 0.4.182 → 0.4.184
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 +18 -0
- package/dist/account-manager/account-manager.js.map +1 -1
- package/dist/account-manager/db/index.js.map +1 -1
- package/dist/account-manager/db/migrations/001-init.js.map +1 -1
- package/dist/account-manager/db/migrations/002-account-deactivation.js.map +1 -1
- package/dist/account-manager/db/migrations/003-privileged-app-passwords.js.map +1 -1
- package/dist/account-manager/db/migrations/004-oauth.js.map +1 -1
- package/dist/account-manager/db/migrations/005-oauth-account-management.js.map +1 -1
- package/dist/account-manager/db/migrations/006-oauth-permission-sets.js.map +1 -1
- package/dist/account-manager/db/migrations/007-lexicon-failures-index.js.map +1 -1
- package/dist/account-manager/db/migrations/index.js.map +1 -1
- package/dist/account-manager/db/schema/account-device.js.map +1 -1
- package/dist/account-manager/db/schema/account.js.map +1 -1
- package/dist/account-manager/db/schema/actor.js.map +1 -1
- package/dist/account-manager/db/schema/app-password.js.map +1 -1
- package/dist/account-manager/db/schema/authorization-request.js.map +1 -1
- package/dist/account-manager/db/schema/authorized-client.js.map +1 -1
- package/dist/account-manager/db/schema/device.js.map +1 -1
- package/dist/account-manager/db/schema/email-token.js.map +1 -1
- package/dist/account-manager/db/schema/index.js.map +1 -1
- package/dist/account-manager/db/schema/invite-code.js.map +1 -1
- package/dist/account-manager/db/schema/lexicon.js.map +1 -1
- package/dist/account-manager/db/schema/refresh-token.js.map +1 -1
- package/dist/account-manager/db/schema/repo-root.js.map +1 -1
- package/dist/account-manager/db/schema/token.js.map +1 -1
- package/dist/account-manager/db/schema/used-refresh-token.js.map +1 -1
- package/dist/account-manager/helpers/account-device.js.map +1 -1
- package/dist/account-manager/helpers/account.js.map +1 -1
- package/dist/account-manager/helpers/auth.js.map +1 -1
- package/dist/account-manager/helpers/authorization-request.js.map +1 -1
- package/dist/account-manager/helpers/authorized-client.js.map +1 -1
- package/dist/account-manager/helpers/device.js.map +1 -1
- package/dist/account-manager/helpers/email-token.js.map +1 -1
- package/dist/account-manager/helpers/invite.js.map +1 -1
- package/dist/account-manager/helpers/lexicon.js.map +1 -1
- package/dist/account-manager/helpers/password.js.map +1 -1
- package/dist/account-manager/helpers/repo.js.map +1 -1
- package/dist/account-manager/helpers/scrypt.js.map +1 -1
- package/dist/account-manager/helpers/token.js.map +1 -1
- package/dist/account-manager/helpers/used-refresh-token.js.map +1 -1
- package/dist/account-manager/oauth-store.js.map +1 -1
- package/dist/account-manager/scope-reference-getter.js.map +1 -1
- package/dist/actor-store/actor-store-reader.js.map +1 -1
- package/dist/actor-store/actor-store-resources.js.map +1 -1
- package/dist/actor-store/actor-store-transactor.js.map +1 -1
- package/dist/actor-store/actor-store-writer.js.map +1 -1
- package/dist/actor-store/actor-store.js.map +1 -1
- package/dist/actor-store/blob/reader.js.map +1 -1
- package/dist/actor-store/blob/transactor.js.map +1 -1
- package/dist/actor-store/db/index.js.map +1 -1
- package/dist/actor-store/db/migrations/001-init.js.map +1 -1
- package/dist/actor-store/db/migrations/index.js.map +1 -1
- package/dist/actor-store/db/schema/account-pref.js.map +1 -1
- package/dist/actor-store/db/schema/backlink.js.map +1 -1
- package/dist/actor-store/db/schema/blob.js.map +1 -1
- package/dist/actor-store/db/schema/index.js.map +1 -1
- package/dist/actor-store/db/schema/record-blob.js.map +1 -1
- package/dist/actor-store/db/schema/record.js.map +1 -1
- package/dist/actor-store/db/schema/repo-block.js.map +1 -1
- package/dist/actor-store/db/schema/repo-root.js.map +1 -1
- package/dist/actor-store/migrate.js.map +1 -1
- package/dist/actor-store/preference/reader.js.map +1 -1
- package/dist/actor-store/preference/transactor.js.map +1 -1
- package/dist/actor-store/preference/util.js.map +1 -1
- package/dist/actor-store/record/reader.js.map +1 -1
- package/dist/actor-store/record/transactor.js.map +1 -1
- package/dist/actor-store/repo/reader.js.map +1 -1
- package/dist/actor-store/repo/sql-repo-reader.js.map +1 -1
- package/dist/actor-store/repo/sql-repo-transactor.js.map +1 -1
- package/dist/actor-store/repo/transactor.js.map +1 -1
- package/dist/api/app/bsky/actor/getPreferences.js.map +1 -1
- package/dist/api/app/bsky/actor/getProfile.js.map +1 -1
- package/dist/api/app/bsky/actor/getProfiles.js.map +1 -1
- package/dist/api/app/bsky/actor/index.js.map +1 -1
- package/dist/api/app/bsky/actor/putPreferences.js.map +1 -1
- package/dist/api/app/bsky/feed/getActorLikes.js.map +1 -1
- package/dist/api/app/bsky/feed/getAuthorFeed.js.map +1 -1
- package/dist/api/app/bsky/feed/getFeed.js.map +1 -1
- package/dist/api/app/bsky/feed/getPostThread.js.map +1 -1
- package/dist/api/app/bsky/feed/getTimeline.js.map +1 -1
- package/dist/api/app/bsky/feed/index.js.map +1 -1
- package/dist/api/app/bsky/index.js.map +1 -1
- package/dist/api/app/bsky/notification/index.js.map +1 -1
- package/dist/api/app/bsky/notification/registerPush.js.map +1 -1
- package/dist/api/app/bsky/util/resolver.js.map +1 -1
- package/dist/api/com/atproto/admin/deleteAccount.js.map +1 -1
- package/dist/api/com/atproto/admin/disableAccountInvites.js.map +1 -1
- package/dist/api/com/atproto/admin/disableInviteCodes.js.map +1 -1
- package/dist/api/com/atproto/admin/enableAccountInvites.js.map +1 -1
- package/dist/api/com/atproto/admin/getAccountInfo.js.map +1 -1
- package/dist/api/com/atproto/admin/getAccountInfos.js.map +1 -1
- package/dist/api/com/atproto/admin/getInviteCodes.js.map +1 -1
- package/dist/api/com/atproto/admin/getSubjectStatus.js.map +1 -1
- package/dist/api/com/atproto/admin/index.js.map +1 -1
- package/dist/api/com/atproto/admin/sendEmail.js.map +1 -1
- package/dist/api/com/atproto/admin/updateAccountEmail.js.map +1 -1
- package/dist/api/com/atproto/admin/updateAccountHandle.js.map +1 -1
- package/dist/api/com/atproto/admin/updateAccountPassword.js.map +1 -1
- package/dist/api/com/atproto/admin/updateSubjectStatus.js.map +1 -1
- package/dist/api/com/atproto/admin/util.js.map +1 -1
- package/dist/api/com/atproto/identity/getRecommendedDidCredentials.js.map +1 -1
- package/dist/api/com/atproto/identity/index.js.map +1 -1
- package/dist/api/com/atproto/identity/requestPlcOperationSignature.js.map +1 -1
- package/dist/api/com/atproto/identity/resolveHandle.js.map +1 -1
- package/dist/api/com/atproto/identity/signPlcOperation.js.map +1 -1
- package/dist/api/com/atproto/identity/submitPlcOperation.js.map +1 -1
- package/dist/api/com/atproto/identity/updateHandle.js.map +1 -1
- package/dist/api/com/atproto/index.js.map +1 -1
- package/dist/api/com/atproto/moderation/createReport.js.map +1 -1
- package/dist/api/com/atproto/moderation/index.js.map +1 -1
- package/dist/api/com/atproto/repo/applyWrites.js.map +1 -1
- package/dist/api/com/atproto/repo/createRecord.js.map +1 -1
- package/dist/api/com/atproto/repo/deleteRecord.js.map +1 -1
- package/dist/api/com/atproto/repo/describeRepo.js.map +1 -1
- package/dist/api/com/atproto/repo/getRecord.js.map +1 -1
- package/dist/api/com/atproto/repo/importRepo.js.map +1 -1
- package/dist/api/com/atproto/repo/index.js.map +1 -1
- package/dist/api/com/atproto/repo/listMissingBlobs.js.map +1 -1
- package/dist/api/com/atproto/repo/listRecords.js.map +1 -1
- package/dist/api/com/atproto/repo/putRecord.js.map +1 -1
- package/dist/api/com/atproto/repo/uploadBlob.js.map +1 -1
- package/dist/api/com/atproto/server/activateAccount.js.map +1 -1
- package/dist/api/com/atproto/server/checkAccountStatus.js.map +1 -1
- package/dist/api/com/atproto/server/confirmEmail.js.map +1 -1
- package/dist/api/com/atproto/server/createAccount.js.map +1 -1
- package/dist/api/com/atproto/server/createAppPassword.js.map +1 -1
- package/dist/api/com/atproto/server/createInviteCode.js.map +1 -1
- package/dist/api/com/atproto/server/createInviteCodes.js.map +1 -1
- package/dist/api/com/atproto/server/createSession.js.map +1 -1
- package/dist/api/com/atproto/server/deactivateAccount.js.map +1 -1
- package/dist/api/com/atproto/server/deleteAccount.js.map +1 -1
- package/dist/api/com/atproto/server/deleteSession.js.map +1 -1
- package/dist/api/com/atproto/server/describeServer.js.map +1 -1
- package/dist/api/com/atproto/server/getAccountInviteCodes.js.map +1 -1
- package/dist/api/com/atproto/server/getServiceAuth.js.map +1 -1
- package/dist/api/com/atproto/server/getSession.js.map +1 -1
- package/dist/api/com/atproto/server/index.js.map +1 -1
- package/dist/api/com/atproto/server/listAppPasswords.js.map +1 -1
- package/dist/api/com/atproto/server/refreshSession.js.map +1 -1
- package/dist/api/com/atproto/server/requestAccountDelete.js.map +1 -1
- package/dist/api/com/atproto/server/requestEmailConfirmation.js.map +1 -1
- package/dist/api/com/atproto/server/requestEmailUpdate.js.map +1 -1
- package/dist/api/com/atproto/server/requestPasswordReset.js.map +1 -1
- package/dist/api/com/atproto/server/reserveSigningKey.js.map +1 -1
- package/dist/api/com/atproto/server/resetPassword.js.map +1 -1
- package/dist/api/com/atproto/server/revokeAppPassword.js.map +1 -1
- package/dist/api/com/atproto/server/updateEmail.js.map +1 -1
- package/dist/api/com/atproto/server/util.js.map +1 -1
- package/dist/api/com/atproto/sync/deprecated/getCheckout.js.map +1 -1
- package/dist/api/com/atproto/sync/deprecated/getHead.js.map +1 -1
- package/dist/api/com/atproto/sync/getBlob.js.map +1 -1
- package/dist/api/com/atproto/sync/getBlocks.js.map +1 -1
- package/dist/api/com/atproto/sync/getLatestCommit.js.map +1 -1
- package/dist/api/com/atproto/sync/getRecord.js.map +1 -1
- package/dist/api/com/atproto/sync/getRepo.js.map +1 -1
- package/dist/api/com/atproto/sync/getRepoStatus.js.map +1 -1
- package/dist/api/com/atproto/sync/index.js.map +1 -1
- package/dist/api/com/atproto/sync/listBlobs.js.map +1 -1
- package/dist/api/com/atproto/sync/listRepos.js.map +1 -1
- package/dist/api/com/atproto/sync/subscribeRepos.js.map +1 -1
- package/dist/api/com/atproto/sync/util.js.map +1 -1
- package/dist/api/com/atproto/temp/checkSignupQueue.js.map +1 -1
- package/dist/api/com/atproto/temp/index.js.map +1 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/proxy.js.map +1 -1
- package/dist/app-view.js.map +1 -1
- package/dist/auth-output.js.map +1 -1
- package/dist/auth-routes.js.map +1 -1
- package/dist/auth-scope.js.map +1 -1
- package/dist/auth-verifier.js.map +1 -1
- package/dist/background.js.map +1 -1
- package/dist/basic-routes.js.map +1 -1
- package/dist/bsky-app-view.js.map +1 -1
- package/dist/config/config.js.map +1 -1
- package/dist/config/env.js.map +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/secrets.js.map +1 -1
- package/dist/context.js.map +1 -1
- package/dist/crawlers.js.map +1 -1
- package/dist/db/cast.js.map +1 -1
- package/dist/db/db.js.map +1 -1
- package/dist/db/index.js.map +1 -1
- package/dist/db/migrator.js.map +1 -1
- package/dist/db/pagination.js.map +1 -1
- package/dist/db/tables/moderation.js.map +1 -1
- package/dist/db/util.js.map +1 -1
- package/dist/did-cache/db/index.js.map +1 -1
- package/dist/did-cache/db/migrations.js.map +1 -1
- package/dist/did-cache/db/schema.js.map +1 -1
- package/dist/did-cache/index.js.map +1 -1
- package/dist/disk-blobstore.js.map +1 -1
- package/dist/error.js.map +1 -1
- package/dist/handle/explicit-slurs.js.map +1 -1
- package/dist/handle/index.js.map +1 -1
- package/dist/handle/reserved.js.map +1 -1
- package/dist/image/image-url-builder.js.map +1 -1
- package/dist/image/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lexicon/index.d.ts +6 -0
- package/dist/lexicon/index.d.ts.map +1 -1
- package/dist/lexicon/index.js +12 -0
- package/dist/lexicon/index.js.map +1 -1
- package/dist/lexicon/lexicons.d.ts +812 -8
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +413 -0
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/defs.d.ts +2 -0
- package/dist/lexicon/types/app/bsky/actor/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/getPreferences.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/getProfile.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/getProfiles.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/getSuggestions.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/profile.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/putPreferences.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/searchActors.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/searchActorsTypeahead.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/status.js.map +1 -1
- package/dist/lexicon/types/app/bsky/bookmark/createBookmark.js.map +1 -1
- package/dist/lexicon/types/app/bsky/bookmark/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/bookmark/deleteBookmark.js.map +1 -1
- package/dist/lexicon/types/app/bsky/bookmark/getBookmarks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/external.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/images.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/record.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/recordWithMedia.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/video.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/describeFeedGenerator.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/generator.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getActorFeeds.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getActorLikes.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getAuthorFeed.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getFeed.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getFeedGenerator.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getFeedGenerators.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getFeedSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getLikes.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getListFeed.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getPostThread.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getPosts.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getQuotes.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getRepostedBy.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getSuggestedFeeds.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getTimeline.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/like.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/post.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/postgate.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/repost.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/searchPosts.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/sendInteractions.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/threadgate.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/block.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/follow.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getActorStarterPacks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getBlocks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getFollowers.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getFollows.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getKnownFollowers.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getList.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getListBlocks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getListMutes.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getLists.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getListsWithMembership.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getMutes.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getRelationships.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getStarterPack.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getStarterPacks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getStarterPacksWithMembership.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/list.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/listblock.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/listitem.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/muteActor.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/muteActorList.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/muteThread.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/searchStarterPacks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/starterpack.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/unmuteActor.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/unmuteActorList.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/unmuteThread.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/verification.js.map +1 -1
- package/dist/lexicon/types/app/bsky/labeler/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/labeler/getServices.js.map +1 -1
- package/dist/lexicon/types/app/bsky/labeler/service.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/declaration.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/getPreferences.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/getUnreadCount.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/listActivitySubscriptions.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/listNotifications.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/putActivitySubscription.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/putPreferences.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/putPreferencesV2.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/registerPush.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/unregisterPush.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/updateSeen.js.map +1 -1
- package/dist/lexicon/types/app/bsky/richtext/facet.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getAgeAssuranceState.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getConfig.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacksSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadOtherV2.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeeds.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeedsSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsers.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getTrendingTopics.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getTrends.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getTrendsSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/initAgeAssurance.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/searchStarterPacksSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/video/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/video/getJobStatus.js.map +1 -1
- package/dist/lexicon/types/app/bsky/video/getUploadLimits.js.map +1 -1
- package/dist/lexicon/types/app/bsky/video/uploadVideo.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/actor/declaration.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/actor/defs.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/actor/deleteAccount.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/actor/exportAccountData.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/acceptConvo.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/addReaction.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/defs.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getConvo.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getConvoAvailability.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getLog.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getMessages.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/leaveConvo.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/listConvos.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/muteConvo.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/removeReaction.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/sendMessage.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/updateAllRead.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/updateRead.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/deleteAccount.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/disableAccountInvites.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/disableInviteCodes.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/enableAccountInvites.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/getAccountInfo.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/getAccountInfos.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/getInviteCodes.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/getSubjectStatus.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/searchAccounts.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/sendEmail.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/updateAccountEmail.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/updateAccountHandle.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/updateAccountPassword.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/updateAccountSigningKey.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/updateSubjectStatus.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/getRecommendedDidCredentials.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/refreshIdentity.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/requestPlcOperationSignature.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/resolveDid.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/resolveHandle.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/resolveIdentity.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/signPlcOperation.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/submitPlcOperation.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/updateHandle.js.map +1 -1
- package/dist/lexicon/types/com/atproto/label/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/label/queryLabels.js.map +1 -1
- package/dist/lexicon/types/com/atproto/label/subscribeLabels.js.map +1 -1
- package/dist/lexicon/types/com/atproto/lexicon/schema.js.map +1 -1
- package/dist/lexicon/types/com/atproto/moderation/createReport.js.map +1 -1
- package/dist/lexicon/types/com/atproto/moderation/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/applyWrites.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/createRecord.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/deleteRecord.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/describeRepo.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/getRecord.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/importRepo.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/listMissingBlobs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/listRecords.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/putRecord.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/strongRef.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/uploadBlob.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/activateAccount.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/checkAccountStatus.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/confirmEmail.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/createAccount.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/createAppPassword.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/createInviteCode.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/createInviteCodes.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/createSession.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/deactivateAccount.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/deleteAccount.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/deleteSession.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/describeServer.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/getAccountInviteCodes.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/getServiceAuth.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/getSession.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/listAppPasswords.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/refreshSession.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/requestAccountDelete.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/requestEmailConfirmation.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/requestEmailUpdate.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/requestPasswordReset.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/reserveSigningKey.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/resetPassword.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/revokeAppPassword.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/updateEmail.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getBlob.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getBlocks.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getCheckout.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getHead.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getHostStatus.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getLatestCommit.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getRecord.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getRepo.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getRepoStatus.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/listBlobs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/listHosts.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/listRepos.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/listReposByCollection.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/notifyOfUpdate.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/requestCrawl.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/subscribeRepos.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/addReservedHandle.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/checkHandleAvailability.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/checkSignupQueue.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/dereferenceScope.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/fetchLabels.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/requestPhoneVerification.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/revokeAccountCredentials.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/communication/createTemplate.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/communication/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/communication/deleteTemplate.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/communication/listTemplates.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/communication/updateTemplate.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/hosting/getAccountHistory.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.d.ts +46 -0
- package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.js +25 -0
- package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +57 -2
- package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/defs.js +27 -0
- package/dist/lexicon/types/tools/ozone/moderation/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/emitEvent.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.d.ts +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getEvent.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getRecord.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getRecords.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getRepo.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getReporterStats.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getRepos.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getSubjects.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/listScheduledActions.d.ts +38 -0
- package/dist/lexicon/types/tools/ozone/moderation/listScheduledActions.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/moderation/listScheduledActions.js +7 -0
- package/dist/lexicon/types/tools/ozone/moderation/listScheduledActions.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/moderation/queryEvents.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.d.ts +75 -0
- package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.js +43 -0
- package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/moderation/searchRepos.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/report/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/safelink/addRule.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/safelink/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/safelink/queryEvents.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/safelink/queryRules.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/safelink/removeRule.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/safelink/updateRule.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/server/getConfig.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/set/addValues.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/set/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/set/deleteSet.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/set/deleteValues.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/set/getValues.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/set/querySets.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/set/upsertSet.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/setting/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/setting/listOptions.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/setting/removeOptions.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/setting/upsertOption.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/signature/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/signature/findCorrelation.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/signature/findRelatedAccounts.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/signature/searchAccounts.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/team/addMember.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/team/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/team/deleteMember.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/team/listMembers.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/team/updateMember.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/verification/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/verification/grantVerifications.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/verification/listVerifications.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/verification/revokeVerifications.js.map +1 -1
- package/dist/lexicon/util.js.map +1 -1
- package/dist/logger.js.map +1 -1
- package/dist/mailer/index.js.map +1 -1
- package/dist/mailer/moderation.js.map +1 -1
- package/dist/mailer/templates.js.map +1 -1
- package/dist/pipethrough.js +3 -0
- package/dist/pipethrough.js.map +1 -1
- package/dist/read-after-write/index.js.map +1 -1
- package/dist/read-after-write/types.js.map +1 -1
- package/dist/read-after-write/util.js.map +1 -1
- package/dist/read-after-write/viewer.js.map +1 -1
- package/dist/redis.js.map +1 -1
- package/dist/repo/index.js.map +1 -1
- package/dist/repo/prepare.js.map +1 -1
- package/dist/repo/types.js.map +1 -1
- package/dist/scripts/index.js.map +1 -1
- package/dist/scripts/publish-identity.js.map +1 -1
- package/dist/scripts/rebuild-repo.js.map +1 -1
- package/dist/scripts/rotate-keys.js.map +1 -1
- package/dist/scripts/sequencer-recovery/index.js.map +1 -1
- package/dist/scripts/sequencer-recovery/recoverer.js.map +1 -1
- package/dist/scripts/sequencer-recovery/recovery-db.js.map +1 -1
- package/dist/scripts/sequencer-recovery/repair-repos.js.map +1 -1
- package/dist/scripts/sequencer-recovery/user-queues.js.map +1 -1
- package/dist/scripts/util.js.map +1 -1
- package/dist/sequencer/db/index.js.map +1 -1
- package/dist/sequencer/db/migrations/001-init.js.map +1 -1
- package/dist/sequencer/db/migrations/index.js.map +1 -1
- package/dist/sequencer/db/schema.js.map +1 -1
- package/dist/sequencer/events.js.map +1 -1
- package/dist/sequencer/index.js.map +1 -1
- package/dist/sequencer/outbox.js.map +1 -1
- package/dist/sequencer/sequencer.js.map +1 -1
- package/dist/util/compression.js.map +1 -1
- package/dist/util/debug.js.map +1 -1
- package/dist/util/http.js.map +1 -1
- package/dist/util/params.js.map +1 -1
- package/dist/util/types.js.map +1 -1
- package/dist/well-known.js.map +1 -1
- package/package.json +6 -6
- package/src/lexicon/index.ts +39 -0
- package/src/lexicon/lexicons.ts +436 -0
- package/src/lexicon/types/app/bsky/actor/defs.ts +2 -0
- package/src/lexicon/types/tools/ozone/moderation/cancelScheduledActions.ts +79 -0
- package/src/lexicon/types/tools/ozone/moderation/defs.ts +88 -0
- package/src/lexicon/types/tools/ozone/moderation/emitEvent.ts +2 -0
- package/src/lexicon/types/tools/ozone/moderation/getAccountTimeline.ts +2 -0
- package/src/lexicon/types/tools/ozone/moderation/listScheduledActions.ts +57 -0
- package/src/lexicon/types/tools/ozone/moderation/scheduleAction.ts +123 -0
- package/src/pipethrough.ts +3 -0
- package/tsconfig.build.tsbuildinfo +1 -1
package/dist/context.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'node:assert'\nimport * as plc from '@did-plc/lib'\nimport express from 'express'\nimport { Redis } from 'ioredis'\nimport * as nodemailer from 'nodemailer'\nimport * as ui8 from 'uint8arrays'\nimport * as undici from 'undici'\nimport { AtpAgent } from '@atproto/api'\nimport { KmsKeypair, S3BlobStore } from '@atproto/aws'\nimport * as crypto from '@atproto/crypto'\nimport { IdResolver } from '@atproto/identity'\nimport {\n LexiconResolver,\n buildLexiconResolver,\n} from '@atproto/lexicon-resolver'\nimport {\n AccessTokenMode,\n JoseKey,\n OAuthProvider,\n OAuthVerifier,\n} from '@atproto/oauth-provider'\nimport { BlobStore } from '@atproto/repo'\nimport {\n createServiceAuthHeaders,\n createServiceJwt,\n} from '@atproto/xrpc-server'\nimport {\n Fetch,\n isUnicastIp,\n safeFetchWrap,\n unicastLookup,\n} from '@atproto-labs/fetch-node'\nimport { AccountManager } from './account-manager/account-manager'\nimport { OAuthStore } from './account-manager/oauth-store'\nimport { ScopeReferenceGetter } from './account-manager/scope-reference-getter'\nimport { ActorStore } from './actor-store/actor-store'\nimport { authPassthru, forwardedFor } from './api/proxy'\nimport {\n AuthVerifier,\n createPublicKeyObject,\n createSecretKeyObject,\n} from './auth-verifier'\nimport { BackgroundQueue } from './background'\nimport { BskyAppView } from './bsky-app-view'\nimport { ServerConfig, ServerSecrets } from './config'\nimport { Crawlers } from './crawlers'\nimport { DidSqliteCache } from './did-cache'\nimport { DiskBlobStore } from './disk-blobstore'\nimport { ImageUrlBuilder } from './image/image-url-builder'\nimport { fetchLogger, lexiconResolverLogger, oauthLogger } from './logger'\nimport { ServerMailer } from './mailer'\nimport { ModerationMailer } from './mailer/moderation'\nimport { LocalViewer, LocalViewerCreator } from './read-after-write/viewer'\nimport { getRedisClient } from './redis'\nimport { Sequencer } from './sequencer'\n\nexport type AppContextOptions = {\n actorStore: ActorStore\n blobstore: (did: string) => BlobStore\n localViewer: LocalViewerCreator\n mailer: ServerMailer\n moderationMailer: ModerationMailer\n didCache: DidSqliteCache\n idResolver: IdResolver\n plcClient: plc.Client\n accountManager: AccountManager\n sequencer: Sequencer\n backgroundQueue: BackgroundQueue\n redisScratch?: Redis\n crawlers: Crawlers\n bskyAppView?: BskyAppView\n moderationAgent?: AtpAgent\n reportingAgent?: AtpAgent\n entrywayAgent?: AtpAgent\n entrywayAdminAgent?: AtpAgent\n proxyAgent: undici.Dispatcher\n safeFetch: Fetch\n oauthProvider?: OAuthProvider\n authVerifier: AuthVerifier\n plcRotationKey: crypto.Keypair\n cfg: ServerConfig\n}\n\nexport class AppContext {\n public actorStore: ActorStore\n public blobstore: (did: string) => BlobStore\n public localViewer: LocalViewerCreator\n public mailer: ServerMailer\n public moderationMailer: ModerationMailer\n public didCache: DidSqliteCache\n public idResolver: IdResolver\n public plcClient: plc.Client\n public accountManager: AccountManager\n public sequencer: Sequencer\n public backgroundQueue: BackgroundQueue\n public redisScratch?: Redis\n public crawlers: Crawlers\n public bskyAppView?: BskyAppView\n public moderationAgent: AtpAgent | undefined\n public reportingAgent: AtpAgent | undefined\n public entrywayAgent: AtpAgent | undefined\n public entrywayAdminAgent: AtpAgent | undefined\n public proxyAgent: undici.Dispatcher\n public safeFetch: Fetch\n public authVerifier: AuthVerifier\n public oauthProvider?: OAuthProvider\n public plcRotationKey: crypto.Keypair\n public cfg: ServerConfig\n\n constructor(opts: AppContextOptions) {\n this.actorStore = opts.actorStore\n this.blobstore = opts.blobstore\n this.localViewer = opts.localViewer\n this.mailer = opts.mailer\n this.moderationMailer = opts.moderationMailer\n this.didCache = opts.didCache\n this.idResolver = opts.idResolver\n this.plcClient = opts.plcClient\n this.accountManager = opts.accountManager\n this.sequencer = opts.sequencer\n this.backgroundQueue = opts.backgroundQueue\n this.redisScratch = opts.redisScratch\n this.crawlers = opts.crawlers\n this.bskyAppView = opts.bskyAppView\n this.moderationAgent = opts.moderationAgent\n this.reportingAgent = opts.reportingAgent\n this.entrywayAgent = opts.entrywayAgent\n this.entrywayAdminAgent = opts.entrywayAdminAgent\n this.proxyAgent = opts.proxyAgent\n this.safeFetch = opts.safeFetch\n this.authVerifier = opts.authVerifier\n this.oauthProvider = opts.oauthProvider\n this.plcRotationKey = opts.plcRotationKey\n this.cfg = opts.cfg\n }\n\n static async fromConfig(\n cfg: ServerConfig,\n secrets: ServerSecrets,\n overrides?: Partial<AppContextOptions>,\n ): Promise<AppContext> {\n const blobstore =\n cfg.blobstore.provider === 's3'\n ? S3BlobStore.creator({\n bucket: cfg.blobstore.bucket,\n region: cfg.blobstore.region,\n endpoint: cfg.blobstore.endpoint,\n forcePathStyle: cfg.blobstore.forcePathStyle,\n credentials: cfg.blobstore.credentials,\n uploadTimeoutMs: cfg.blobstore.uploadTimeoutMs,\n })\n : DiskBlobStore.creator(\n cfg.blobstore.location,\n cfg.blobstore.tempLocation,\n )\n\n const mailTransport =\n cfg.email !== null\n ? nodemailer.createTransport(cfg.email.smtpUrl)\n : nodemailer.createTransport({ jsonTransport: true })\n\n const mailer = new ServerMailer(mailTransport, cfg)\n\n const modMailTransport =\n cfg.moderationEmail !== null\n ? nodemailer.createTransport(cfg.moderationEmail.smtpUrl)\n : nodemailer.createTransport({ jsonTransport: true })\n\n const moderationMailer = new ModerationMailer(modMailTransport, cfg)\n\n const didCache = new DidSqliteCache(\n cfg.db.didCacheDbLoc,\n cfg.identity.cacheStaleTTL,\n cfg.identity.cacheMaxTTL,\n cfg.db.disableWalAutoCheckpoint,\n )\n await didCache.migrateOrThrow()\n\n const idResolver = new IdResolver({\n plcUrl: cfg.identity.plcUrl,\n didCache,\n timeout: cfg.identity.resolverTimeout,\n backupNameservers: cfg.identity.handleBackupNameservers,\n })\n const plcClient = new plc.Client(cfg.identity.plcUrl)\n\n const backgroundQueue = new BackgroundQueue()\n const crawlers = new Crawlers(\n cfg.service.hostname,\n cfg.crawlers,\n backgroundQueue,\n )\n const sequencer = new Sequencer(\n cfg.db.sequencerDbLoc,\n crawlers,\n undefined,\n cfg.db.disableWalAutoCheckpoint,\n )\n const redisScratch = cfg.redis\n ? getRedisClient(cfg.redis.address, cfg.redis.password)\n : undefined\n\n const bskyAppView = cfg.bskyAppView\n ? new BskyAppView(cfg.bskyAppView)\n : undefined\n\n const moderationAgent = cfg.modService\n ? new AtpAgent({ service: cfg.modService.url })\n : undefined\n const reportingAgent = cfg.reportService\n ? new AtpAgent({ service: cfg.reportService.url })\n : undefined\n const entrywayAgent = cfg.entryway\n ? new AtpAgent({ service: cfg.entryway.url })\n : undefined\n let entrywayAdminAgent: AtpAgent | undefined\n if (cfg.entryway && secrets.entrywayAdminToken) {\n entrywayAdminAgent = new AtpAgent({ service: cfg.entryway.url })\n entrywayAdminAgent.api.setHeader(\n 'authorization',\n basicAuthHeader('admin', secrets.entrywayAdminToken),\n )\n }\n\n const jwtSecretKey = createSecretKeyObject(secrets.jwtSecret)\n const jwtPublicKey = cfg.entryway\n ? createPublicKeyObject(cfg.entryway.jwtPublicKeyHex)\n : null\n\n const imageUrlBuilder = new ImageUrlBuilder(\n cfg.service.hostname,\n bskyAppView,\n )\n\n const actorStore = new ActorStore(cfg.actorStore, {\n blobstore,\n backgroundQueue,\n })\n\n const accountManager = new AccountManager(\n idResolver,\n jwtSecretKey,\n cfg.service.did,\n cfg.identity.serviceHandleDomains,\n cfg.db,\n )\n await accountManager.migrateOrThrow()\n\n const plcRotationKey =\n secrets.plcRotationKey.provider === 'kms'\n ? await KmsKeypair.load({\n keyId: secrets.plcRotationKey.keyId,\n })\n : await crypto.Secp256k1Keypair.import(\n secrets.plcRotationKey.privateKeyHex,\n )\n\n const localViewer = LocalViewer.creator(\n accountManager,\n imageUrlBuilder,\n bskyAppView,\n )\n\n // An agent for performing HTTP requests based on user provided URLs.\n const proxyAgentBase = new undici.Agent({\n allowH2: cfg.proxy.allowHTTP2, // This is experimental\n headersTimeout: cfg.proxy.headersTimeout,\n maxResponseSize: cfg.proxy.maxResponseSize,\n bodyTimeout: cfg.proxy.bodyTimeout,\n factory: cfg.proxy.disableSsrfProtection\n ? undefined\n : (origin, opts) => {\n const { protocol, hostname } =\n origin instanceof URL ? origin : new URL(origin)\n if (protocol !== 'https:') {\n throw new Error(`Forbidden protocol \"${protocol}\"`)\n }\n if (isUnicastIp(hostname) === false) {\n throw new Error('Hostname resolved to non-unicast address')\n }\n return new undici.Pool(origin, opts)\n },\n connect: {\n lookup: cfg.proxy.disableSsrfProtection ? undefined : unicastLookup,\n },\n })\n const proxyAgent =\n cfg.proxy.maxRetries > 0\n ? new undici.RetryAgent(proxyAgentBase, {\n statusCodes: [], // Only retry on socket errors\n methods: ['GET', 'HEAD'],\n maxRetries: cfg.proxy.maxRetries,\n })\n : proxyAgentBase\n\n /**\n * A fetch() function that protects against SSRF attacks, large responses &\n * known bad domains. This function can safely be used to fetch user\n * provided URLs (unless \"disableSsrfProtection\" is true, of course).\n *\n * @note **DO NOT** wrap `safeFetch` with any logging or other transforms as\n * this might prevent the use of explicit `redirect: \"follow\"` init from\n * working. See {@link safeFetchWrap}.\n */\n const safeFetch = safeFetchWrap({\n allowIpHost: false,\n allowImplicitRedirect: false,\n responseMaxSize: cfg.fetch.maxResponseSize,\n ssrfProtection: !cfg.fetch.disableSsrfProtection,\n\n // @NOTE Since we are using NodeJS <= 20, unicastFetchWrap would normally\n // *not* be using a keep-alive agent if it we are providing a fetch\n // function that is different from `globalThis.fetch`. However, since the\n // fetch function below is indeed calling `globalThis.fetch` without\n // altering any argument, we can safely force the use of the keep-alive\n // agent. This would not be the case if we used \"loggedFetch\" as that\n // function does wrap the input & init arguments into a Request object,\n // which, on NodeJS<=20, results in init.dispatcher *not* being used.\n dangerouslyForceKeepAliveAgent: true,\n fetch: function (input, init) {\n const method =\n init?.method ?? (input instanceof Request ? input.method : 'GET')\n const uri = input instanceof Request ? input.url : String(input)\n\n fetchLogger.info({ method, uri }, 'fetch')\n\n return globalThis.fetch.call(this, input, init)\n },\n })\n\n const baseLexiconResolver = buildLexiconResolver({\n idResolver,\n rpc: { fetch: safeFetch },\n })\n\n const getLexiconAuthority = (_nsid: string): string | undefined => {\n // At the moment, only a single override strategy is supported by\n // specifying a did through which all the lexicons will be resolved. We\n // might need more granular control in the future (e.g. per-nsid\n // overrides)\n return cfg.lexicon.didAuthority\n }\n\n const lexiconResolver: LexiconResolver = async (input) => {\n const nsid: string = String(input)\n try {\n const result = await baseLexiconResolver(input, {\n didAuthority: getLexiconAuthority(nsid),\n // Right now, the lexicon resolver is only used by the oauth-provider,\n // which caches the responses internally (through the LexiconStore).\n // Since the `LexiconResolver` does not allow specifying a\n // `forceRefresh` option, we hard code it here. Should PDSs need to\n // resolve lexicons for other purposes (e.g. record validation), we'd\n // probably want to either implement caching as built into the\n // lexiconResolver here, or allow the caller (oauth-provider, etc.) to\n // specify a `forceRefresh` option by altering the LexiconResolver\n // interface.\n forceRefresh: true,\n })\n\n const cid = result.cid.toString()\n const uri = result.uri.toString()\n lexiconResolverLogger.info({ nsid, uri, cid }, 'Resolved lexicon')\n\n return result\n } catch (err) {\n lexiconResolverLogger.error({ nsid, err }, 'Lexicon resolution failed')\n\n throw err\n }\n }\n\n const oauthProvider = cfg.oauth.provider\n ? new OAuthProvider({\n issuer: cfg.oauth.issuer,\n keyset: [await JoseKey.fromKeyLike(jwtSecretKey, undefined, 'HS256')],\n store: new OAuthStore(\n accountManager,\n actorStore,\n imageUrlBuilder,\n backgroundQueue,\n mailer,\n sequencer,\n plcClient,\n plcRotationKey,\n cfg.service.publicUrl,\n cfg.identity.recoveryDidKey,\n ),\n redis: redisScratch,\n dpopSecret: secrets.dpopSecret,\n inviteCodeRequired: cfg.invites.required,\n availableUserDomains: cfg.identity.serviceHandleDomains,\n hcaptcha: cfg.oauth.provider.hcaptcha,\n branding: cfg.oauth.provider.branding,\n safeFetch,\n lexiconResolver,\n metadata: {\n protected_resources: [new URL(cfg.oauth.issuer).origin],\n },\n // If the PDS is both an authorization server & resource server (no\n // entryway), we can afford to check the token validity on every\n // request. This allows revoked tokens to be rejected immediately.\n // This also allows JWT to be shorter since some claims (notably the\n // \"scope\" claim) do not need to be included in the token.\n accessTokenMode: AccessTokenMode.stateful,\n\n getClientInfo(clientId) {\n return {\n isTrusted: cfg.oauth.provider?.trustedClients?.includes(clientId),\n }\n },\n })\n : undefined\n\n const scopeRefGetter = entrywayAgent\n ? new ScopeReferenceGetter(entrywayAgent, redisScratch)\n : undefined\n\n const oauthVerifier: OAuthVerifier =\n oauthProvider ?? // OAuthProvider extends OAuthVerifier\n new OAuthVerifier({\n issuer: cfg.oauth.issuer,\n keyset: [await JoseKey.fromKeyLike(jwtPublicKey!, undefined, 'ES256K')],\n dpopSecret: secrets.dpopSecret,\n redis: redisScratch,\n onDecodeToken: async ({ payload, dpopProof }) => {\n // @TODO drop this once oauth provider no longer accepts DPoP proof with\n // query or fragment in \"htu\" claim.\n if (dpopProof?.htu.match(/[?#]/)) {\n oauthLogger.info(\n { htu: dpopProof.htu, client_id: payload.client_id },\n 'DPoP proof \"htu\" contains query or fragment',\n )\n }\n\n if (scopeRefGetter) {\n payload.scope = await scopeRefGetter.dereference(payload.scope)\n }\n\n return payload\n },\n })\n\n const authVerifier = new AuthVerifier(\n accountManager,\n idResolver,\n oauthVerifier,\n {\n publicUrl: cfg.service.publicUrl,\n jwtKey: jwtPublicKey ?? jwtSecretKey,\n adminPass: secrets.adminPassword,\n dids: {\n pds: cfg.service.did,\n entryway: cfg.entryway?.did,\n modService: cfg.modService?.did,\n },\n },\n )\n\n return new AppContext({\n actorStore,\n blobstore,\n localViewer,\n mailer,\n moderationMailer,\n didCache,\n idResolver,\n plcClient,\n accountManager,\n sequencer,\n backgroundQueue,\n redisScratch,\n crawlers,\n bskyAppView,\n moderationAgent,\n reportingAgent,\n entrywayAgent,\n entrywayAdminAgent,\n proxyAgent,\n safeFetch,\n authVerifier,\n oauthProvider,\n plcRotationKey,\n cfg,\n ...(overrides ?? {}),\n })\n }\n\n async appviewAuthHeaders(did: string, lxm: string) {\n assert(this.bskyAppView)\n return this.serviceAuthHeaders(did, this.bskyAppView.did, lxm)\n }\n\n async entrywayAuthHeaders(req: express.Request, did: string, lxm: string) {\n assert(this.cfg.entryway)\n const headers = await this.serviceAuthHeaders(\n did,\n this.cfg.entryway.did,\n lxm,\n )\n return forwardedFor(req, headers)\n }\n\n entrywayPassthruHeaders(req: express.Request) {\n return forwardedFor(req, authPassthru(req))\n }\n\n async serviceAuthHeaders(did: string, aud: string, lxm: string) {\n const keypair = await this.actorStore.keypair(did)\n return createServiceAuthHeaders({\n iss: did,\n aud,\n lxm,\n keypair,\n })\n }\n\n async serviceAuthJwt(did: string, aud: string, lxm: string) {\n const keypair = await this.actorStore.keypair(did)\n return createServiceJwt({\n iss: did,\n aud,\n lxm,\n keypair,\n })\n }\n}\n\nconst basicAuthHeader = (username: string, password: string) => {\n const encoded = ui8.toString(\n ui8.fromString(`${username}:${password}`, 'utf8'),\n 'base64pad',\n )\n return `Basic ${encoded}`\n}\n\nexport default AppContext\n"]}
|
package/dist/crawlers.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"crawlers.js","sourceRoot":"","sources":["../src/crawlers.ts"],"names":[],"mappings":";;;AAAA,sCAAuC;AACvC,4CAAwC;AAExC,qCAA+C;AAE/C,MAAM,gBAAgB,GAAG,EAAE,GAAG,eAAM,CAAA;AAEpC,MAAa,QAAQ;IAInB,YACS,QAAgB,EAChB,QAAkB,EAClB,eAAgC;QAFvC;;;;mBAAO,QAAQ;WAAQ;QACvB;;;;mBAAO,QAAQ;WAAU;QACzB;;;;mBAAO,eAAe;WAAiB;QANlC;;;;;WAAkB;QAClB;;;;mBAAe,CAAC;WAAA;QAOrB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,cAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;IACpE,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,GAAG,gBAAgB,EAAE,CAAC;YAC/C,OAAM;QACR,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YAClC,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC9B,IAAI,CAAC;oBACH,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;wBAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ;qBACxB,CAAC,CAAA;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,sBAAG,CAAC,IAAI,CACN,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,EAC1C,yBAAyB,CAC1B,CAAA;gBACH,CAAC;YACH,CAAC,CAAC,CACH,CAAA;YACD,IAAI,CAAC,YAAY,GAAG,GAAG,CAAA;QACzB,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AApCD,4BAoCC"}
|
1
|
+
{"version":3,"file":"crawlers.js","sourceRoot":"","sources":["../src/crawlers.ts"],"names":[],"mappings":";;;AAAA,sCAAuC;AACvC,4CAAwC;AAExC,qCAA+C;AAE/C,MAAM,gBAAgB,GAAG,EAAE,GAAG,eAAM,CAAA;AAEpC,MAAa,QAAQ;IAInB,YACS,QAAgB,EAChB,QAAkB,EAClB,eAAgC;QAFvC;;;;mBAAO,QAAQ;WAAQ;QACvB;;;;mBAAO,QAAQ;WAAU;QACzB;;;;mBAAO,eAAe;WAAiB;QANlC;;;;;WAAkB;QAClB;;;;mBAAe,CAAC;WAAA;QAOrB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,cAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;IACpE,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,GAAG,gBAAgB,EAAE,CAAC;YAC/C,OAAM;QACR,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YAClC,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC9B,IAAI,CAAC;oBACH,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;wBAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ;qBACxB,CAAC,CAAA;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,sBAAG,CAAC,IAAI,CACN,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,EAC1C,yBAAyB,CAC1B,CAAA;gBACH,CAAC;YACH,CAAC,CAAC,CACH,CAAA;YACD,IAAI,CAAC,YAAY,GAAG,GAAG,CAAA;QACzB,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AApCD,4BAoCC","sourcesContent":["import { AtpAgent } from '@atproto/api'\nimport { MINUTE } from '@atproto/common'\nimport { BackgroundQueue } from './background'\nimport { crawlerLogger as log } from './logger'\n\nconst NOTIFY_THRESHOLD = 20 * MINUTE\n\nexport class Crawlers {\n public agents: AtpAgent[]\n public lastNotified = 0\n\n constructor(\n public hostname: string,\n public crawlers: string[],\n public backgroundQueue: BackgroundQueue,\n ) {\n this.agents = crawlers.map((service) => new AtpAgent({ service }))\n }\n\n async notifyOfUpdate() {\n const now = Date.now()\n if (now - this.lastNotified < NOTIFY_THRESHOLD) {\n return\n }\n\n this.backgroundQueue.add(async () => {\n await Promise.all(\n this.agents.map(async (agent) => {\n try {\n await agent.api.com.atproto.sync.requestCrawl({\n hostname: this.hostname,\n })\n } catch (err) {\n log.warn(\n { err, cralwer: agent.service.toString() },\n 'failed to request crawl',\n )\n }\n }),\n )\n this.lastNotified = now\n })\n }\n}\n"]}
|
package/dist/db/cast.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cast.js","sourceRoot":"","sources":["../../src/db/cast.ts"],"names":[],"mappings":";;AACA,8BAEC;AACD,kCAEC;AAiCD,wBAIC;AAED,4BAMC;AAlDD,SAAgB,SAAS,CAAC,IAAU;IAClC,OAAO,IAAI,CAAC,WAAW,EAAa,CAAA;AACtC,CAAC;AACD,SAAgB,WAAW,CAAC,OAAgB;IAC1C,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA;AAC1B,CAAC;AAiCD,SAAgB,MAAM,CAAsB,KAAQ;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,IAAI,KAAK,SAAS;QAAE,MAAM,IAAI,SAAS,CAAC,uBAAuB,CAAC,CAAA;IACpE,OAAO,IAAsB,CAAA;AAC/B,CAAC;AAED,SAAgB,QAAQ,CAAsB,OAAuB;IACnE,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAA;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,SAAS,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IAClE,CAAC;AACH,CAAC"}
|
1
|
+
{"version":3,"file":"cast.js","sourceRoot":"","sources":["../../src/db/cast.ts"],"names":[],"mappings":";;AACA,8BAEC;AACD,kCAEC;AAiCD,wBAIC;AAED,4BAMC;AAlDD,SAAgB,SAAS,CAAC,IAAU;IAClC,OAAO,IAAI,CAAC,WAAW,EAAa,CAAA;AACtC,CAAC;AACD,SAAgB,WAAW,CAAC,OAAgB;IAC1C,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA;AAC1B,CAAC;AAiCD,SAAgB,MAAM,CAAsB,KAAQ;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,IAAI,KAAK,SAAS;QAAE,MAAM,IAAI,SAAS,CAAC,uBAAuB,CAAC,CAAA;IACpE,OAAO,IAAsB,CAAA;AAC/B,CAAC;AAED,SAAgB,QAAQ,CAAsB,OAAuB;IACnE,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAA;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,SAAS,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IAClE,CAAC;AACH,CAAC","sourcesContent":["export type DateISO = `${string}T${string}Z`\nexport function toDateISO(date: Date) {\n return date.toISOString() as DateISO\n}\nexport function fromDateISO(dateStr: DateISO) {\n return new Date(dateStr)\n}\n\n/**\n * Allows to ensure that {@link JsonEncoded} is not used with non-JSON\n * serializable values (e.g. {@link Date} or {@link Function}s).\n */\nexport type Encodable =\n | string\n | number\n | boolean\n | null\n | readonly Encodable[]\n | { readonly [_ in string]?: Encodable }\n\nexport type JsonString<T extends Encodable> = T extends readonly unknown[]\n ? `[${string}]`\n : T extends object\n ? `{${string}}`\n : T extends string\n ? `\"${string}\"`\n : T extends number\n ? `${number}`\n : T extends boolean\n ? `true` | `false`\n : T extends null\n ? `null`\n : never\n\ndeclare const jsonEncodedType: unique symbol\nexport type JsonEncoded<T extends Encodable = Encodable> = JsonString<T> & {\n [jsonEncodedType]: T\n}\n\nexport function toJson<T extends Encodable>(value: T): JsonEncoded<T> {\n const json = JSON.stringify(value)\n if (json === undefined) throw new TypeError('Input not JSONifyable')\n return json as JsonEncoded<T>\n}\n\nexport function fromJson<T extends Encodable>(jsonStr: JsonEncoded<T>): T {\n try {\n return JSON.parse(jsonStr) as T\n } catch (cause) {\n throw new TypeError('Database contains invalid JSON', { cause })\n }\n}\n"]}
|
package/dist/db/db.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/db/db.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/db/db.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'node:assert'\nimport SqliteDB from 'better-sqlite3'\nimport {\n Kysely,\n KyselyPlugin,\n PluginTransformQueryArgs,\n PluginTransformResultArgs,\n QueryResult,\n RootOperationNode,\n SqliteDialect,\n UnknownRow,\n sql,\n} from 'kysely'\nimport { dbLogger } from '../logger'\nimport { retrySqlite } from './util'\n\nconst DEFAULT_PRAGMAS = {\n // strict: 'ON', // @TODO strictness should live on table defs instead\n}\n\nexport class Database<Schema> {\n destroyed = false\n commitHooks: CommitHook[] = []\n\n constructor(public db: Kysely<Schema>) {}\n\n static sqlite<T>(\n location: string,\n opts?: { pragmas?: Record<string, string> },\n ): Database<T> {\n const sqliteDb = new SqliteDB(location, {\n timeout: 0, // handled by application\n })\n const pragmas = {\n ...DEFAULT_PRAGMAS,\n ...(opts?.pragmas ?? {}),\n }\n for (const pragma of Object.keys(pragmas)) {\n sqliteDb.pragma(`${pragma} = ${pragmas[pragma]}`)\n }\n const db = new Kysely<T>({\n dialect: new SqliteDialect({\n database: sqliteDb,\n }),\n })\n return new Database(db)\n }\n\n async ensureWal() {\n await sql`PRAGMA journal_mode = WAL`.execute(this.db)\n }\n\n async transactionNoRetry<T>(\n fn: (db: Database<Schema>) => T | PromiseLike<T>,\n ): Promise<T> {\n this.assertNotTransaction()\n const leakyTxPlugin = new LeakyTxPlugin()\n const { hooks, txRes } = await this.db\n .withPlugin(leakyTxPlugin)\n .transaction()\n .execute(async (txn) => {\n const dbTxn = new Database(txn)\n try {\n const txRes = await fn(dbTxn)\n leakyTxPlugin.endTx()\n const hooks = dbTxn.commitHooks\n return { hooks, txRes }\n } catch (err) {\n leakyTxPlugin.endTx()\n // ensure that all in-flight queries are flushed & the connection is open\n await txn.getExecutor().provideConnection(async () => {})\n throw err\n }\n })\n hooks.map((hook) => hook())\n return txRes\n }\n\n async transaction<T>(\n fn: (db: Database<Schema>) => T | PromiseLike<T>,\n ): Promise<T> {\n return retrySqlite(() => this.transactionNoRetry(fn))\n }\n\n async executeWithRetry<T>(query: { execute: () => Promise<T> }) {\n if (this.isTransaction) {\n // transaction() ensures retry on entire transaction, no need to retry individual statements.\n return query.execute()\n }\n return retrySqlite(() => query.execute())\n }\n\n onCommit(fn: () => void) {\n this.assertTransaction()\n this.commitHooks.push(fn)\n }\n\n get isTransaction() {\n return this.db.isTransaction\n }\n\n assertTransaction() {\n assert(this.isTransaction, 'Transaction required')\n }\n\n assertNotTransaction() {\n assert(!this.isTransaction, 'Cannot be in a transaction')\n }\n\n close(): void {\n if (this.destroyed) return\n this.db\n .destroy()\n .then(() => (this.destroyed = true))\n .catch((err) => dbLogger.error({ err }, 'error closing db'))\n }\n}\n\ntype CommitHook = () => void\n\nclass LeakyTxPlugin implements KyselyPlugin {\n private txOver = false\n\n endTx() {\n this.txOver = true\n }\n\n transformQuery(args: PluginTransformQueryArgs): RootOperationNode {\n if (this.txOver) {\n throw new Error('tx already failed')\n }\n return args.node\n }\n\n async transformResult(\n args: PluginTransformResultArgs,\n ): Promise<QueryResult<UnknownRow>> {\n return args.result\n }\n}\n"]}
|
package/dist/db/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uCAAoB;AACpB,yCAAsB;AACtB,6CAA0B;AAC1B,yCAAsB"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uCAAoB;AACpB,yCAAsB;AACtB,6CAA0B;AAC1B,yCAAsB","sourcesContent":["export * from './db'\nexport * from './cast'\nexport * from './migrator'\nexport * from './util'\n"]}
|
package/dist/db/migrator.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"migrator.js","sourceRoot":"","sources":["../../src/db/migrator.ts"],"names":[],"mappings":";;;AAAA,mCAAsE;AAEtE,MAAa,QAAY,SAAQ,iBAAc;IAC7C,YACS,EAAa,EACpB,UAAqC;QAErC,KAAK,CAAC;YACJ,EAAE;YACF,QAAQ,EAAE;gBACR,KAAK,CAAC,aAAa;oBACjB,OAAO,UAAU,CAAA;gBACnB,CAAC;aACF;SACF,CAAC,CAAA;QAVF;;;;mBAAO,EAAE;WAAW;IAWtB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAAiB;QACtC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC1D,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,CAAA;QACb,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;QAChE,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;QACvD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,CAAA;QACb,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;QAChE,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF;AApCD,4BAoCC"}
|
1
|
+
{"version":3,"file":"migrator.js","sourceRoot":"","sources":["../../src/db/migrator.ts"],"names":[],"mappings":";;;AAAA,mCAAsE;AAEtE,MAAa,QAAY,SAAQ,iBAAc;IAC7C,YACS,EAAa,EACpB,UAAqC;QAErC,KAAK,CAAC;YACJ,EAAE;YACF,QAAQ,EAAE;gBACR,KAAK,CAAC,aAAa;oBACjB,OAAO,UAAU,CAAA;gBACnB,CAAC;aACF;SACF,CAAC,CAAA;QAVF;;;;mBAAO,EAAE;WAAW;IAWtB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAAiB;QACtC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC1D,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,CAAA;QACb,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;QAChE,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;QACvD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,CAAA;QACb,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;QAChE,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF;AApCD,4BAoCC","sourcesContent":["import { Kysely, Migration, Migrator as KyselyMigrator } from 'kysely'\n\nexport class Migrator<T> extends KyselyMigrator {\n constructor(\n public db: Kysely<T>,\n migrations: Record<string, Migration>,\n ) {\n super({\n db,\n provider: {\n async getMigrations() {\n return migrations\n },\n },\n })\n }\n\n async migrateToOrThrow(migration: string) {\n const { error, results } = await this.migrateTo(migration)\n if (error) {\n throw error\n }\n if (!results) {\n throw new Error('An unknown failure occurred while migrating')\n }\n return results\n }\n\n async migrateToLatestOrThrow() {\n const { error, results } = await this.migrateToLatest()\n if (error) {\n throw error\n }\n if (!results) {\n throw new Error('An unknown failure occurred while migrating')\n }\n return results\n }\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/db/pagination.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/db/pagination.ts"],"names":[],"mappings":"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","sourcesContent":["import { sql } from 'kysely'\nimport { InvalidRequestError } from '@atproto/xrpc-server'\nimport { AnyQb, DbRef } from './util'\n\nexport type Cursor = { primary: string; secondary: string }\nexport type LabeledResult = {\n primary: string | number\n secondary: string | number\n}\n\n/**\n * The GenericKeyset is an abstract class that sets-up the interface and partial implementation\n * of a keyset-paginated cursor with two parts. There are three types involved:\n * - Result: a raw result (i.e. a row from the db) containing data that will make-up a cursor.\n * - E.g. { createdAt: '2022-01-01T12:00:00Z', cid: 'bafyx' }\n * - LabeledResult: a Result processed such that the \"primary\" and \"secondary\" parts of the cursor are labeled.\n * - E.g. { primary: '2022-01-01T12:00:00Z', secondary: 'bafyx' }\n * - Cursor: the two string parts that make-up the packed/string cursor.\n * - E.g. packed cursor '1641038400000::bafyx' in parts { primary: '1641038400000', secondary: 'bafyx' }\n *\n * These types relate as such. Implementers define the relations marked with a *:\n * Result -*-> LabeledResult <-*-> Cursor <--> packed/string cursor\n * ↳ SQL Condition\n */\nexport abstract class GenericKeyset<R, LR extends LabeledResult> {\n constructor(\n public primary: DbRef,\n public secondary: DbRef,\n ) {}\n abstract labelResult(result: R): LR\n abstract labeledResultToCursor(labeled: LR): Cursor\n abstract cursorToLabeledResult(cursor: Cursor): LR\n packFromResult(results: R | R[]): string | undefined {\n const result = Array.isArray(results) ? results.at(-1) : results\n if (!result) return\n return this.pack(this.labelResult(result))\n }\n pack(labeled?: LR): string | undefined {\n if (!labeled) return\n const cursor = this.labeledResultToCursor(labeled)\n return this.packCursor(cursor)\n }\n unpack(cursorStr?: string): LR | undefined {\n const cursor = this.unpackCursor(cursorStr)\n if (!cursor) return\n return this.cursorToLabeledResult(cursor)\n }\n packCursor(cursor?: Cursor): string | undefined {\n if (!cursor) return\n return `${cursor.primary}::${cursor.secondary}`\n }\n unpackCursor(cursorStr?: string): Cursor | undefined {\n if (!cursorStr) return\n const result = cursorStr.split('::')\n const [primary, secondary, ...others] = result\n if (!primary || !secondary || others.length > 0) {\n throw new InvalidRequestError('Malformed cursor')\n }\n return {\n primary,\n secondary,\n }\n }\n getSql(labeled?: LR, direction?: 'asc' | 'desc', tryIndex?: boolean) {\n if (labeled === undefined) return\n if (tryIndex) {\n // The tryIndex param will likely disappear and become the default implementation: here for now for gradual rollout query-by-query.\n if (direction === 'asc') {\n return sql`((${this.primary}, ${this.secondary}) > (${labeled.primary}, ${labeled.secondary}))`\n } else {\n return sql`((${this.primary}, ${this.secondary}) < (${labeled.primary}, ${labeled.secondary}))`\n }\n } else {\n // @NOTE this implementation can struggle to use an index on (primary, secondary) for pagination due to the \"or\" usage.\n if (direction === 'asc') {\n return sql`((${this.primary} > ${labeled.primary}) or (${this.primary} = ${labeled.primary} and ${this.secondary} > ${labeled.secondary}))`\n } else {\n return sql`((${this.primary} < ${labeled.primary}) or (${this.primary} = ${labeled.primary} and ${this.secondary} < ${labeled.secondary}))`\n }\n }\n }\n}\n\ntype CreatedAtCidResult = { createdAt: string; cid: string }\ntype TimeCidLabeledResult = Cursor\n\nexport class TimeCidKeyset<\n TimeCidResult = CreatedAtCidResult,\n> extends GenericKeyset<TimeCidResult, TimeCidLabeledResult> {\n labelResult(result: TimeCidResult): TimeCidLabeledResult\n labelResult<TimeCidResult extends CreatedAtCidResult>(result: TimeCidResult) {\n return { primary: result.createdAt, secondary: result.cid }\n }\n labeledResultToCursor(labeled: TimeCidLabeledResult) {\n return {\n primary: new Date(labeled.primary).getTime().toString(),\n secondary: labeled.secondary,\n }\n }\n cursorToLabeledResult(cursor: Cursor) {\n const primaryDate = new Date(parseInt(cursor.primary, 10))\n if (isNaN(primaryDate.getTime())) {\n throw new InvalidRequestError('Malformed cursor')\n }\n return {\n primary: primaryDate.toISOString(),\n secondary: cursor.secondary,\n }\n }\n}\n\nexport const paginate = <\n QB extends AnyQb,\n K extends GenericKeyset<unknown, any>,\n>(\n qb: QB,\n opts: {\n limit?: number\n cursor?: string\n direction?: 'asc' | 'desc'\n keyset: K\n tryIndex?: boolean\n },\n): QB => {\n const { limit, cursor, keyset, direction = 'desc', tryIndex } = opts\n const keysetSql = keyset.getSql(keyset.unpack(cursor), direction, tryIndex)\n return qb\n .if(!!limit, (q) => q.limit(limit as number))\n .orderBy(keyset.primary, direction)\n .orderBy(keyset.secondary, direction)\n .if(!!keysetSql, (qb) => (keysetSql ? qb.where(keysetSql) : qb)) as QB\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"moderation.js","sourceRoot":"","sources":["../../../src/db/tables/moderation.ts"],"names":[],"mappings":";;;AAUa,QAAA,eAAe,GAAG,mBAAmB,CAAA;AACrC,QAAA,0BAA0B,GAAG,gCAAgC,CAAA;AAC7D,QAAA,eAAe,GAAG,mBAAmB,CAAA;AACrC,QAAA,yBAAyB,GAAG,8BAA8B,CAAA"}
|
1
|
+
{"version":3,"file":"moderation.js","sourceRoot":"","sources":["../../../src/db/tables/moderation.ts"],"names":[],"mappings":";;;AAUa,QAAA,eAAe,GAAG,mBAAmB,CAAA;AACrC,QAAA,0BAA0B,GAAG,gCAAgC,CAAA;AAC7D,QAAA,eAAe,GAAG,mBAAmB,CAAA;AACrC,QAAA,yBAAyB,GAAG,8BAA8B,CAAA","sourcesContent":["import { Generated } from 'kysely'\nimport {\n REASONMISLEADING,\n REASONOTHER,\n REASONRUDE,\n REASONSEXUAL,\n REASONSPAM,\n REASONVIOLATION,\n} from '../../lexicon/types/com/atproto/moderation/defs'\n\nexport const actionTableName = 'moderation_action'\nexport const actionSubjectBlobTableName = 'moderation_action_subject_blob'\nexport const reportTableName = 'moderation_report'\nexport const reportResolutionTableName = 'moderation_report_resolution'\n\nexport interface ModerationAction {\n id: Generated<number>\n action:\n | 'tools.ozone.moderation.defs#modEventTakedown'\n | 'tools.ozone.moderation.defs#modEventAcknowledge'\n | 'tools.ozone.moderation.defs#modEventEscalate'\n | 'tools.ozone.moderation.defs#modEventComment'\n | 'tools.ozone.moderation.defs#modEventLabel'\n | 'tools.ozone.moderation.defs#modEventReport'\n | 'tools.ozone.moderation.defs#modEventMute'\n | 'tools.ozone.moderation.defs#modEventUnmute'\n | 'tools.ozone.moderation.defs#modEventMuteReporter'\n | 'tools.ozone.moderation.defs#modEventUnmuteReporter'\n | 'tools.ozone.moderation.defs#modEventReverseTakedown'\n | 'tools.ozone.moderation.defs#modEventEmail'\n | 'tools.ozone.moderation.defs#modEventResolveAppeal'\n | 'tools.ozone.moderation.defs#modEventDivert'\n | 'tools.ozone.moderation.defs#accountEvent'\n | 'tools.ozone.moderation.defs#identityEvent'\n | 'tools.ozone.moderation.defs#recordEvent'\n | 'tools.ozone.moderation.defs#modEventPriorityScore'\n subjectType: 'com.atproto.admin.defs#repoRef' | 'com.atproto.repo.strongRef'\n subjectDid: string\n subjectUri: string | null\n subjectCid: string | null\n createLabelVals: string | null\n negateLabelVals: string | null\n comment: string | null\n createdAt: string\n createdBy: string\n durationInHours: number | null\n expiresAt: string | null\n meta: Record<string, string | boolean> | null\n}\n\nexport interface ModerationActionSubjectBlob {\n actionId: number\n cid: string\n recordUri: string\n}\n\nexport interface ModerationReport {\n id: Generated<number>\n subjectType: 'com.atproto.admin.defs#repoRef' | 'com.atproto.repo.strongRef'\n subjectDid: string\n subjectUri: string | null\n subjectCid: string | null\n reasonType:\n | typeof REASONSPAM\n | typeof REASONOTHER\n | typeof REASONMISLEADING\n | typeof REASONRUDE\n | typeof REASONSEXUAL\n | typeof REASONVIOLATION\n reason: string | null\n reportedByDid: string\n createdAt: string\n}\n\nexport interface ModerationReportResolution {\n reportId: number\n actionId: number\n createdAt: string\n createdBy: string\n}\n\nexport type PartialDB = {\n [actionTableName]: ModerationAction\n [actionSubjectBlobTableName]: ModerationActionSubjectBlob\n [reportTableName]: ModerationReport\n [reportResolutionTableName]: ModerationReportResolution\n}\n"]}
|
package/dist/db/util.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/db/util.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/db/util.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DummyDriver,\n DynamicModule,\n Kysely,\n RawBuilder,\n ReferenceExpression,\n SelectQueryBuilder,\n SqliteAdapter,\n SqliteIntrospector,\n SqliteQueryCompiler,\n sql,\n} from 'kysely'\nimport { retry } from '@atproto/common'\n\n// Applies to repo_root or record table\nexport const notSoftDeletedClause = (alias: DbRef) => {\n return sql`${alias}.\"takedownRef\" is null`\n}\n\nexport const softDeleted = (repoOrRecord: { takedownRef: string | null }) => {\n return repoOrRecord.takedownRef !== null\n}\n\nexport const countAll = sql<number>`count(*)`\nexport const countDistinct = (ref: DbRef) => sql<number>`count(distinct ${ref})`\n\n// For use with doUpdateSet()\nexport const excluded = <T, S>(db: Kysely<S>, col) => {\n return sql<T>`${db.dynamic.ref(`excluded.${col}`)}`\n}\n\n// Can be useful for large where-in clauses, to get the db to use a hash lookup on the list\nexport const valuesList = (vals: unknown[]) => {\n return sql`(values (${sql.join(vals, sql`), (`)}))`\n}\n\nexport const dummyDialect = {\n createAdapter() {\n return new SqliteAdapter()\n },\n createDriver() {\n return new DummyDriver()\n },\n createIntrospector(db) {\n return new SqliteIntrospector(db)\n },\n createQueryCompiler() {\n return new SqliteQueryCompiler()\n },\n}\n\nexport const retrySqlite = <T>(fn: () => Promise<T>): Promise<T> => {\n return retry(fn, {\n retryable: retryableSqlite,\n getWaitMs: getWaitMsSqlite,\n maxRetries: 60, // a safety measure: getWaitMsSqlite() times out before this after 5000ms of waiting.\n })\n}\n\nconst retryableSqlite = (err: unknown) => {\n return typeof err?.['code'] === 'string' && RETRY_ERRORS.has(err['code'])\n}\n\n// based on sqlite's backoff strategy https://github.com/sqlite/sqlite/blob/91c8e65dd4bf17d21fbf8f7073565fe1a71c8948/src/main.c#L1704-L1713\nconst getWaitMsSqlite = (n: number, timeout = 5000) => {\n if (n < 0) return null\n let delay: number\n let prior: number\n if (n < DELAYS.length) {\n delay = DELAYS[n]\n prior = TOTALS[n]\n } else {\n delay = last(DELAYS)\n prior = last(TOTALS) + delay * (n - (DELAYS.length - 1))\n }\n if (prior + delay > timeout) {\n delay = timeout - prior\n if (delay <= 0) return null\n }\n return delay\n}\n\nconst last = <T>(arr: T[]) => arr[arr.length - 1]\nconst DELAYS = [1, 2, 5, 10, 15, 20, 25, 25, 25, 50, 50, 100]\nconst TOTALS = [0, 1, 3, 8, 18, 33, 53, 78, 103, 128, 178, 228]\nconst RETRY_ERRORS = new Set([\n 'SQLITE_BUSY',\n 'SQLITE_BUSY_SNAPSHOT',\n 'SQLITE_BUSY_RECOVERY',\n 'SQLITE_BUSY_TIMEOUT',\n])\n\nexport type Ref = ReferenceExpression<any, any>\n\nexport type DbRef = RawBuilder | ReturnType<DynamicModule['ref']>\n\nexport type AnyQb = SelectQueryBuilder<any, any, any>\n\nexport const isErrUniqueViolation = (err: unknown) => {\n const code = err?.['code']\n return (\n code === '23505' || // postgres, see https://www.postgresql.org/docs/current/errcodes-appendix.html\n code === 'SQLITE_CONSTRAINT_UNIQUE' // sqlite, see https://www.sqlite.org/rescode.html#constraint_unique\n )\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/did-cache/db/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,iCAA6C;AAC7C,8DAAqC;AAGrC,2CAAwB;AAIjB,MAAM,KAAK,GAAG,CACnB,QAAgB,EAChB,wBAAwB,GAAG,KAAK,EACpB,EAAE;IACd,MAAM,OAAO,GAA2B,wBAAwB;QAC9D,CAAC,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE;QACpD,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAA;IAC7B,OAAO,aAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;AAC/C,CAAC,CAAA;AARY,QAAA,KAAK,SAQjB;AAEM,MAAM,WAAW,GAAG,CAAC,EAAc,EAAE,EAAE;IAC5C,OAAO,IAAI,aAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,oBAAU,CAAC,CAAA;AACxC,CAAC,CAAA;AAFY,QAAA,WAAW,eAEvB"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/did-cache/db/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,iCAA6C;AAC7C,8DAAqC;AAGrC,2CAAwB;AAIjB,MAAM,KAAK,GAAG,CACnB,QAAgB,EAChB,wBAAwB,GAAG,KAAK,EACpB,EAAE;IACd,MAAM,OAAO,GAA2B,wBAAwB;QAC9D,CAAC,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE;QACpD,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAA;IAC7B,OAAO,aAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;AAC/C,CAAC,CAAA;AARY,QAAA,KAAK,SAQjB;AAEM,MAAM,WAAW,GAAG,CAAC,EAAc,EAAE,EAAE;IAC5C,OAAO,IAAI,aAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,oBAAU,CAAC,CAAA;AACxC,CAAC,CAAA;AAFY,QAAA,WAAW,eAEvB","sourcesContent":["import { Database, Migrator } from '../../db'\nimport migrations from './migrations'\nimport { DidCacheSchema } from './schema'\n\nexport * from './schema'\n\nexport type DidCacheDb = Database<DidCacheSchema>\n\nexport const getDb = (\n location: string,\n disableWalAutoCheckpoint = false,\n): DidCacheDb => {\n const pragmas: Record<string, string> = disableWalAutoCheckpoint\n ? { wal_autocheckpoint: '0', synchronous: 'NORMAL' }\n : { synchronous: 'NORMAL' }\n return Database.sqlite(location, { pragmas })\n}\n\nexport const getMigrator = (db: DidCacheDb) => {\n return new Migrator(db.db, migrations)\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/did-cache/db/migrations.ts"],"names":[],"mappings":";;AAEA,kBAAe;IACb,KAAK,EAAE;QACL,EAAE,EAAE,KAAK,EAAE,EAAmB,EAAE,EAAE;YAChC,MAAM,EAAE,CAAC,MAAM;iBACZ,WAAW,CAAC,SAAS,CAAC;iBACtB,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;iBACtD,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;iBAChD,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;iBACxD,OAAO,EAAE,CAAA;QACd,CAAC;QACD,IAAI,EAAE,KAAK,EAAE,EAAmB,EAAE,EAAE;YAClC,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;QAChD,CAAC;KACF;CACF,CAAA"}
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/did-cache/db/migrations.ts"],"names":[],"mappings":";;AAEA,kBAAe;IACb,KAAK,EAAE;QACL,EAAE,EAAE,KAAK,EAAE,EAAmB,EAAE,EAAE;YAChC,MAAM,EAAE,CAAC,MAAM;iBACZ,WAAW,CAAC,SAAS,CAAC;iBACtB,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;iBACtD,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;iBAChD,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;iBACxD,OAAO,EAAE,CAAA;QACd,CAAC;QACD,IAAI,EAAE,KAAK,EAAE,EAAmB,EAAE,EAAE;YAClC,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;QAChD,CAAC;KACF;CACF,CAAA","sourcesContent":["import { Kysely } from 'kysely'\n\nexport default {\n '001': {\n up: async (db: Kysely<unknown>) => {\n await db.schema\n .createTable('did_doc')\n .addColumn('did', 'varchar', (col) => col.primaryKey())\n .addColumn('doc', 'text', (col) => col.notNull())\n .addColumn('updatedAt', 'bigint', (col) => col.notNull())\n .execute()\n },\n down: async (db: Kysely<unknown>) => {\n await db.schema.dropTable('did_doc').execute()\n },\n },\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/did-cache/db/schema.ts"],"names":[],"mappings":""}
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/did-cache/db/schema.ts"],"names":[],"mappings":"","sourcesContent":["export interface DidDoc {\n did: string\n doc: string // json representation of DidDocument\n updatedAt: number\n}\n\nexport type DidCacheSchema = {\n did_doc: DidDoc\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/did-cache/index.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/did-cache/index.ts"],"names":[],"mappings":"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","sourcesContent":["import PQueue from 'p-queue'\nimport { CacheResult, DidCache, DidDocument } from '@atproto/identity'\nimport { excluded } from '../db/util'\nimport { didCacheLogger } from '../logger'\nimport { DidCacheDb, getDb, getMigrator } from './db'\n\nexport class DidSqliteCache implements DidCache {\n db: DidCacheDb\n public pQueue: PQueue | null //null during teardown\n\n constructor(\n dbLocation: string,\n public staleTTL: number,\n public maxTTL: number,\n disableWalAutoCheckpoint = false,\n ) {\n this.db = getDb(dbLocation, disableWalAutoCheckpoint)\n this.pQueue = new PQueue()\n }\n\n async cacheDid(\n did: string,\n doc: DidDocument,\n prevResult?: CacheResult,\n ): Promise<void> {\n try {\n if (prevResult) {\n await this.db.executeWithRetry(\n this.db.db\n .updateTable('did_doc')\n .set({ doc: JSON.stringify(doc), updatedAt: Date.now() })\n .where('did', '=', did)\n .where('updatedAt', '=', prevResult.updatedAt),\n )\n } else {\n await this.db.executeWithRetry(\n this.db.db\n .insertInto('did_doc')\n .values({ did, doc: JSON.stringify(doc), updatedAt: Date.now() })\n .onConflict((oc) =>\n oc.column('did').doUpdateSet({\n doc: excluded(this.db.db, 'doc'),\n updatedAt: excluded(this.db.db, 'updatedAt'),\n }),\n ),\n )\n }\n } catch (err) {\n didCacheLogger.error({ did, doc, err }, 'failed to cache did')\n }\n }\n\n async refreshCache(\n did: string,\n getDoc: () => Promise<DidDocument | null>,\n prevResult?: CacheResult,\n ): Promise<void> {\n this.pQueue?.add(async () => {\n try {\n const doc = await getDoc()\n if (doc) {\n await this.cacheDid(did, doc, prevResult)\n } else {\n await this.clearEntry(did)\n }\n } catch (err) {\n didCacheLogger.error({ did, err }, 'refreshing did cache failed')\n }\n })\n }\n\n async checkCache(did: string): Promise<CacheResult | null> {\n try {\n return await this.checkCacheInternal(did)\n } catch (err) {\n didCacheLogger.error({ did, err }, 'failed to check did cache')\n return null\n }\n }\n\n async checkCacheInternal(did: string): Promise<CacheResult | null> {\n const res = await this.db.db\n .selectFrom('did_doc')\n .where('did', '=', did)\n .selectAll()\n .executeTakeFirst()\n if (!res) return null\n const now = Date.now()\n const updatedAt = new Date(res.updatedAt).getTime()\n const expired = now > updatedAt + this.maxTTL\n const stale = now > updatedAt + this.staleTTL\n return {\n doc: JSON.parse(res.doc) as DidDocument,\n updatedAt,\n did,\n stale,\n expired,\n }\n }\n\n async clearEntry(did: string): Promise<void> {\n try {\n await this.db.executeWithRetry(\n this.db.db.deleteFrom('did_doc').where('did', '=', did),\n )\n } catch (err) {\n didCacheLogger.error({ did, err }, 'clearing did cache entry failed')\n }\n }\n\n async clear(): Promise<void> {\n await this.db.db.deleteFrom('did_doc').execute()\n }\n\n async processAll() {\n await this.pQueue?.onIdle()\n }\n\n async migrateOrThrow() {\n await this.db.ensureWal()\n await getMigrator(this.db).migrateToLatestOrThrow()\n }\n\n async destroy() {\n const pQueue = this.pQueue\n this.pQueue = null\n pQueue?.pause()\n pQueue?.clear()\n await pQueue?.onIdle()\n }\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"disk-blobstore.js","sourceRoot":"","sources":["../src/disk-blobstore.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"disk-blobstore.js","sourceRoot":"","sources":["../src/disk-blobstore.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA4B;AAC5B,gEAAiC;AACjC,0DAA4B;AAG5B,4CAMwB;AACxB,4CAA2C;AAC3C,wCAA4D;AAC5D,qCAAiD;AAEjD,MAAa,aAAa;IACxB,YACS,GAAW,EACX,QAAgB,EAChB,WAAmB,EACnB,kBAA0B;QAHjC;;;;mBAAO,GAAG;WAAQ;QAClB;;;;mBAAO,QAAQ;WAAQ;QACvB;;;;mBAAO,WAAW;WAAQ;QAC1B;;;;mBAAO,kBAAkB;WAAQ;IAChC,CAAC;IAEJ,MAAM,CAAC,OAAO,CACZ,QAAgB,EAChB,WAAoB,EACpB,kBAA2B;QAE3B,OAAO,CAAC,GAAW,EAAE,EAAE;YACrB,MAAM,GAAG,GAAG,WAAW,IAAI,mBAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YACvD,MAAM,UAAU,GAAG,kBAAkB,IAAI,mBAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;YAC1E,OAAO,IAAI,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;QAC1D,CAAC,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,MAAM,kBAAE,CAAC,KAAK,CAAC,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACzE,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,MAAM,kBAAE,CAAC,KAAK,CAAC,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5E,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,MAAM,kBAAE,CAAC,KAAK,CAAC,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;YAC3D,SAAS,EAAE,IAAI;SAChB,CAAC,CAAA;IACJ,CAAC;IAEO,MAAM;QACZ,OAAO,IAAA,kBAAS,EAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;IAChC,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,OAAO,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACnD,CAAC;IAED,aAAa,CAAC,GAAQ;QACpB,OAAO,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC3D,CAAC;IAED,iBAAiB,CAAC,GAAQ;QACxB,OAAO,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IACrE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW;QACvB,OAAO,IAAA,mBAAU,EAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAQ;QACtB,OAAO,IAAA,mBAAU,EAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAmC;QAC/C,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;QACzB,MAAM,kBAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QAC/C,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAW,EAAE,GAAQ;QACvC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QAC1C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YACvC,MAAM,kBAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;QACtC,CAAC;QACD,IAAI,CAAC;YACH,MAAM,kBAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,wBAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,yCAAyC,CAAC,CAAA;QACxE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,GAAQ,EACR,KAAmC;QAEnC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QACtB,MAAM,kBAAE,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;IACpD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAQ;QACvB,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC7B,IAAI,CAAC;YACH,MAAM,kBAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;QACvE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAQ;QACzB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QACtB,IAAI,CAAC;YACH,MAAM,kBAAE,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;QACvE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAQ;QACrB,IAAI,CAAC;YACH,OAAO,MAAM,kBAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAQ;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QACpC,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAA;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,wBAAiB,EAAE,CAAA;QAC/B,CAAC;QACD,OAAO,iBAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAQ;QACnB,MAAM,IAAA,mBAAU,EAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAW;QAC1B,MAAM,MAAM,GAAc,EAAE,CAAA;QAC5B,KAAK,MAAM,KAAK,IAAI,IAAA,mBAAU,EAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC7B,wBAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,qBAAqB,CAAC,CAAA;gBAC9D,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAClB,CAAC,CAAC,CACH,CACF,CAAA;QACH,CAAC;QACD,IAAI,MAAM,CAAC,MAAM;YAAE,MAAM,IAAA,wBAAe,EAAC,MAAM,CAAC,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,IAAA,mBAAU,EAAC,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;QAC1D,MAAM,IAAA,mBAAU,EAAC,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;QAC7D,MAAM,IAAA,mBAAU,EAAC,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;IACtE,CAAC;CACF;AApJD,sCAoJC;AAED,MAAM,YAAY,GAAG,CAAC,GAAY,EAA+B,EAAE;IACjE,IAAI,IAAA,yBAAgB,EAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnD,OAAO,IAAI,wBAAiB,EAAE,CAAA;IAChC,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA","sourcesContent":["import fsSync from 'node:fs'\nimport fs from 'node:fs/promises'\nimport path from 'node:path'\nimport stream from 'node:stream'\nimport { CID } from 'multiformats/cid'\nimport {\n aggregateErrors,\n chunkArray,\n fileExists,\n isErrnoException,\n rmIfExists,\n} from '@atproto/common'\nimport { randomStr } from '@atproto/crypto'\nimport { BlobNotFoundError, BlobStore } from '@atproto/repo'\nimport { blobStoreLogger as log } from './logger'\n\nexport class DiskBlobStore implements BlobStore {\n constructor(\n public did: string,\n public location: string,\n public tmpLocation: string,\n public quarantineLocation: string,\n ) {}\n\n static creator(\n location: string,\n tmpLocation?: string,\n quarantineLocation?: string,\n ) {\n return (did: string) => {\n const tmp = tmpLocation || path.join(location, 'tempt')\n const quarantine = quarantineLocation || path.join(location, 'quarantine')\n return new DiskBlobStore(did, location, tmp, quarantine)\n }\n }\n\n private async ensureDir() {\n await fs.mkdir(path.join(this.location, this.did), { recursive: true })\n }\n\n private async ensureTemp() {\n await fs.mkdir(path.join(this.tmpLocation, this.did), { recursive: true })\n }\n\n private async ensureQuarantine() {\n await fs.mkdir(path.join(this.quarantineLocation, this.did), {\n recursive: true,\n })\n }\n\n private genKey() {\n return randomStr(32, 'base32')\n }\n\n getTmpPath(key: string): string {\n return path.join(this.tmpLocation, this.did, key)\n }\n\n getStoredPath(cid: CID): string {\n return path.join(this.location, this.did, cid.toString())\n }\n\n getQuarantinePath(cid: CID): string {\n return path.join(this.quarantineLocation, this.did, cid.toString())\n }\n\n async hasTemp(key: string): Promise<boolean> {\n return fileExists(this.getTmpPath(key))\n }\n\n async hasStored(cid: CID): Promise<boolean> {\n return fileExists(this.getStoredPath(cid))\n }\n\n async putTemp(bytes: Uint8Array | stream.Readable): Promise<string> {\n await this.ensureTemp()\n const key = this.genKey()\n await fs.writeFile(this.getTmpPath(key), bytes)\n return key\n }\n\n async makePermanent(key: string, cid: CID): Promise<void> {\n await this.ensureDir()\n const tmpPath = this.getTmpPath(key)\n const storedPath = this.getStoredPath(cid)\n const alreadyHas = await this.hasStored(cid)\n if (!alreadyHas) {\n const data = await fs.readFile(tmpPath)\n await fs.writeFile(storedPath, data)\n }\n try {\n await fs.rm(tmpPath)\n } catch (err) {\n log.error({ err, tmpPath }, 'could not delete file from temp storage')\n }\n }\n\n async putPermanent(\n cid: CID,\n bytes: Uint8Array | stream.Readable,\n ): Promise<void> {\n await this.ensureDir()\n await fs.writeFile(this.getStoredPath(cid), bytes)\n }\n\n async quarantine(cid: CID): Promise<void> {\n await this.ensureQuarantine()\n try {\n await fs.rename(this.getStoredPath(cid), this.getQuarantinePath(cid))\n } catch (err) {\n throw translateErr(err)\n }\n }\n\n async unquarantine(cid: CID): Promise<void> {\n await this.ensureDir()\n try {\n await fs.rename(this.getQuarantinePath(cid), this.getStoredPath(cid))\n } catch (err) {\n throw translateErr(err)\n }\n }\n\n async getBytes(cid: CID): Promise<Uint8Array> {\n try {\n return await fs.readFile(this.getStoredPath(cid))\n } catch (err) {\n throw translateErr(err)\n }\n }\n\n async getStream(cid: CID): Promise<stream.Readable> {\n const path = this.getStoredPath(cid)\n const exists = await fileExists(path)\n if (!exists) {\n throw new BlobNotFoundError()\n }\n return fsSync.createReadStream(path)\n }\n\n async delete(cid: CID): Promise<void> {\n await rmIfExists(this.getStoredPath(cid))\n }\n\n async deleteMany(cids: CID[]): Promise<void> {\n const errors: unknown[] = []\n for (const chunk of chunkArray(cids, 500)) {\n await Promise.all(\n chunk.map((cid) =>\n this.delete(cid).catch((err) => {\n log.error({ err, cid: cid.toString() }, 'error deleting blob')\n errors.push(err)\n }),\n ),\n )\n }\n if (errors.length) throw aggregateErrors(errors)\n }\n\n async deleteAll(): Promise<void> {\n await rmIfExists(path.join(this.location, this.did), true)\n await rmIfExists(path.join(this.tmpLocation, this.did), true)\n await rmIfExists(path.join(this.quarantineLocation, this.did), true)\n }\n}\n\nconst translateErr = (err: unknown): BlobNotFoundError | unknown => {\n if (isErrnoException(err) && err.code === 'ENOENT') {\n return new BlobNotFoundError()\n }\n return err\n}\n"]}
|
package/dist/error.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";;;AACA,4DAAoD;AACpD,sDAAgD;AAChD,qCAA4C;AAErC,MAAM,OAAO,GAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACnE,mBAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,kCAAkC,CAAC,CAAA;IACtD,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC;IAED,IAAI,GAAG,YAAY,2BAAU,EAAE,CAAC;QAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QACzC,OAAM;IACR,CAAC;IAED,MAAM,WAAW,GAAG,uBAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAC5C,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AACxD,CAAC,CAAA;AAbY,QAAA,OAAO,WAanB"}
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";;;AACA,4DAAoD;AACpD,sDAAgD;AAChD,qCAA4C;AAErC,MAAM,OAAO,GAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACnE,mBAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,kCAAkC,CAAC,CAAA;IACtD,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC;IAED,IAAI,GAAG,YAAY,2BAAU,EAAE,CAAC;QAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QACzC,OAAM;IACR,CAAC;IAED,MAAM,WAAW,GAAG,uBAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAC5C,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AACxD,CAAC,CAAA;AAbY,QAAA,OAAO,WAanB","sourcesContent":["import { ErrorRequestHandler } from 'express'\nimport { OAuthError } from '@atproto/oauth-provider'\nimport { XRPCError } from '@atproto/xrpc-server'\nimport { httpLogger as log } from './logger'\n\nexport const handler: ErrorRequestHandler = (err, _req, res, next) => {\n log.error({ err }, 'unexpected internal server error')\n if (res.headersSent) {\n return next(err)\n }\n\n if (err instanceof OAuthError) {\n res.status(err.status).json(err.toJSON())\n return\n }\n\n const serverError = XRPCError.fromError(err)\n res.status(serverError.type).json(serverError.payload)\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"explicit-slurs.js","sourceRoot":"","sources":["../../src/handle/explicit-slurs.ts"],"names":[],"mappings":";;;AAAA,4DAA4D;AAC5D,kDAAkD;AAClD,MAAM,mBAAmB,GAAG;IAC1B,yQAAyQ;IACzQ,sNAAsN;IACtN,4zBAA4zB;IAC5zB,wnBAAwnB;IACxnB,88BAA88B;IAC98B,ipBAAipB;IACjpB,8mBAA8mB;CAC/mB,CAAA;AAEM,MAAM,eAAe,GAAG,CAAC,MAAc,EAAW,EAAE;IACzD,OAAO,mBAAmB,CAAC,IAAI,CAC7B,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAChB,GAAG,CAAC,IAAI,CACN,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CACnE,CACJ,CAAA;AACH,CAAC,CAAA;AARY,QAAA,eAAe,mBAQ3B"}
|
1
|
+
{"version":3,"file":"explicit-slurs.js","sourceRoot":"","sources":["../../src/handle/explicit-slurs.ts"],"names":[],"mappings":";;;AAAA,4DAA4D;AAC5D,kDAAkD;AAClD,MAAM,mBAAmB,GAAG;IAC1B,yQAAyQ;IACzQ,sNAAsN;IACtN,4zBAA4zB;IAC5zB,wnBAAwnB;IACxnB,88BAA88B;IAC98B,ipBAAipB;IACjpB,8mBAA8mB;CAC/mB,CAAA;AAEM,MAAM,eAAe,GAAG,CAAC,MAAc,EAAW,EAAE;IACzD,OAAO,mBAAmB,CAAC,IAAI,CAC7B,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAChB,GAAG,CAAC,IAAI,CACN,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CACnE,CACJ,CAAA;AACH,CAAC,CAAA;AARY,QAAA,eAAe,mBAQ3B","sourcesContent":["// regexes taken from: https://github.com/Blank-Cheque/Slurs\n/* eslint-disable no-misleading-character-class */\nconst explicitSlurRegexes = [\n /\\b[cĆćĈĉČčĊċÇçḈḉȻȼꞒꞓꟄꞔƇƈɕ][hĤĥȞȟḦḧḢḣḨḩḤḥḪḫH̱ẖĦħⱧⱨꞪɦꞕΗНн][iÍíi̇́Ììi̇̀ĬĭÎîǏǐÏïḮḯĨĩi̇̃ĮįĮ́į̇́Į̃į̇̃ĪīĪ̀ī̀ỈỉȈȉI̋i̋ȊȋỊịꞼꞽḬḭƗɨᶖİiIıIi1lĺľļḷḹl̃ḽḻłŀƚꝉⱡɫɬꞎꬷꬸꬹᶅɭȴLl][nŃńǸǹŇňÑñṄṅŅņṆṇṊṋṈṉN̈n̈ƝɲŊŋꞐꞑꞤꞥᵰᶇɳȵꬻꬼИиПпNn][kḰḱǨǩĶķḲḳḴḵƘƙⱩⱪᶄꝀꝁꝂꝃꝄꝅꞢꞣ][sŚśṤṥŜŝŠšṦṧṠṡŞşṢṣṨṩȘșS̩s̩ꞨꞩⱾȿꟅʂᶊᵴ]?\\b/,\n /\\b[cĆćĈĉČčĊċÇçḈḉȻȼꞒꞓꟄꞔƇƈɕ][ÓóÒòŎŏÔôỐốỒồỖỗỔổǑǒÖöȪȫŐőÕõṌṍṎṏȬȭȮȯO͘o͘ȰȱØøǾǿǪǫǬǭŌōṒṓṐṑỎỏȌȍȎȏƠơỚớỜờỠỡỞởỢợỌọỘộO̩o̩Ò̩ò̩Ó̩ó̩ƟɵꝊꝋꝌꝍⱺOo0]{2}[nŃńǸǹŇňÑñṄṅŅņṆṇṊṋṈṉN̈n̈ƝɲŊŋꞐꞑꞤꞥᵰᶇɳȵꬻꬼИиПпNn][sŚśṤṥŜŝŠšṦṧṠṡŞşṢṣṨṩȘșS̩s̩ꞨꞩⱾȿꟅʂᶊᵴ]?\\b/,\n /\\b[fḞḟƑƒꞘꞙᵮᶂ][aÁáÀàĂăẮắẰằẴẵẲẳÂâẤấẦầẪẫẨẩǍǎÅåǺǻÄäǞǟÃãȦȧǠǡĄąĄ́ą́Ą̃ą̃ĀāĀ̀ā̀ẢảȀȁA̋a̋ȂȃẠạẶặẬậḀḁȺⱥꞺꞻᶏẚAa@4][gǴǵĞğĜĝǦǧĠġG̃g̃ĢģḠḡǤǥꞠꞡƓɠᶃꬶGgqꝖꝗꝘꝙɋʠ]{1,2}([ÓóÒòŎŏÔôỐốỒồỖỗỔổǑǒÖöȪȫŐőÕõṌṍṎṏȬȭȮȯO͘o͘ȰȱØøǾǿǪǫǬǭŌōṒṓṐṑỎỏȌȍȎȏƠơỚớỜờỠỡỞởỢợỌọỘộO̩o̩Ò̩ò̩Ó̩ó̩ƟɵꝊꝋꝌꝍⱺOo0e3ЄєЕеÉéÈèĔĕÊêẾếỀềỄễỂểÊ̄ê̄Ê̌ê̌ĚěËëẼẽĖėĖ́ė́Ė̃ė̃ȨȩḜḝĘęĘ́ę́Ę̃ę̃ĒēḖḗḔḕẺẻȄȅE̋e̋ȆȇẸẹỆệḘḙḚḛɆɇE̩e̩È̩è̩É̩é̩ᶒⱸꬴꬳEeiÍíi̇́Ììi̇̀ĬĭÎîǏǐÏïḮḯĨĩi̇̃ĮįĮ́į̇́Į̃į̇̃ĪīĪ̀ī̀ỈỉȈȉI̋i̋ȊȋỊịꞼꞽḬḭƗɨᶖİiIıIi1lĺľļḷḹl̃ḽḻłŀƚꝉⱡɫɬꞎꬷꬸꬹᶅɭȴLl][tŤťṪṫŢţṬṭȚțṰṱṮṯŦŧȾⱦƬƭƮʈT̈ẗᵵƫȶ]{1,2}([rŔŕŘřṘṙŖŗȐȑȒȓṚṛṜṝṞṟR̃r̃ɌɍꞦꞧⱤɽᵲᶉꭉ][yÝýỲỳŶŷY̊ẙŸÿỸỹẎẏȲȳỶỷỴỵɎɏƳƴỾỿ]|[rŔŕŘřṘṙŖŗȐȑȒȓṚṛṜṝṞṟR̃r̃ɌɍꞦꞧⱤɽᵲᶉꭉ][iÍíi̇́Ììi̇̀ĬĭÎîǏǐÏïḮḯĨĩi̇̃ĮįĮ́į̇́Į̃į̇̃ĪīĪ̀ī̀ỈỉȈȉI̋i̋ȊȋỊịꞼꞽḬḭƗɨᶖİiIıIi1lĺľļḷḹl̃ḽḻłŀƚꝉⱡɫɬꞎꬷꬸꬹᶅɭȴLl][e3ЄєЕеÉéÈèĔĕÊêẾếỀềỄễỂểÊ̄ê̄Ê̌ê̌ĚěËëẼẽĖėĖ́ė́Ė̃ė̃ȨȩḜḝĘęĘ́ę́Ę̃ę̃ĒēḖḗḔḕẺẻȄȅE̋e̋ȆȇẸẹỆệḘḙḚḛɆɇE̩e̩È̩è̩É̩é̩ᶒⱸꬴꬳEe])?)?[sŚśṤṥŜŝŠšṦṧṠṡŞşṢṣṨṩȘșS̩s̩ꞨꞩⱾȿꟅʂᶊᵴ]?\\b/,\n /\\b[kḰḱǨǩĶķḲḳḴḵƘƙⱩⱪᶄꝀꝁꝂꝃꝄꝅꞢꞣ][iÍíi̇́Ììi̇̀ĬĭÎîǏǐÏïḮḯĨĩi̇̃ĮįĮ́į̇́Į̃į̇̃ĪīĪ̀ī̀ỈỉȈȉI̋i̋ȊȋỊịꞼꞽḬḭƗɨᶖİiIıIi1lĺľļḷḹl̃ḽḻłŀƚꝉⱡɫɬꞎꬷꬸꬹᶅɭȴLlyÝýỲỳŶŷY̊ẙŸÿỸỹẎẏȲȳỶỷỴỵɎɏƳƴỾỿ][kḰḱǨǩĶķḲḳḴḵƘƙⱩⱪᶄꝀꝁꝂꝃꝄꝅꞢꞣ][e3ЄєЕеÉéÈèĔĕÊêẾếỀềỄễỂểÊ̄ê̄Ê̌ê̌ĚěËëẼẽĖėĖ́ė́Ė̃ė̃ȨȩḜḝĘęĘ́ę́Ę̃ę̃ĒēḖḗḔḕẺẻȄȅE̋e̋ȆȇẸẹỆệḘḙḚḛɆɇE̩e̩È̩è̩É̩é̩ᶒⱸꬴꬳEe]([rŔŕŘřṘṙŖŗȐȑȒȓṚṛṜṝṞṟR̃r̃ɌɍꞦꞧⱤɽᵲᶉꭉ][yÝýỲỳŶŷY̊ẙŸÿỸỹẎẏȲȳỶỷỴỵɎɏƳƴỾỿ]|[rŔŕŘřṘṙŖŗȐȑȒȓṚṛṜṝṞṟR̃r̃ɌɍꞦꞧⱤɽᵲᶉꭉ][iÍíi̇́Ììi̇̀ĬĭÎîǏǐÏïḮḯĨĩi̇̃ĮįĮ́į̇́Į̃į̇̃ĪīĪ̀ī̀ỈỉȈȉI̋i̋ȊȋỊịꞼꞽḬḭƗɨᶖİiIıIi1lĺľļḷḹl̃ḽḻłŀƚꝉⱡɫɬꞎꬷꬸꬹᶅɭȴLl][e3ЄєЕеÉéÈèĔĕÊêẾếỀềỄễỂểÊ̄ê̄Ê̌ê̌ĚěËëẼẽĖėĖ́ė́Ė̃ė̃ȨȩḜḝĘęĘ́ę́Ę̃ę̃ĒēḖḗḔḕẺẻȄȅE̋e̋ȆȇẸẹỆệḘḙḚḛɆɇE̩e̩È̩è̩É̩é̩ᶒⱸꬴꬳEe])?[sŚśṤṥŜŝŠšṦṧṠṡŞşṢṣṨṩȘșS̩s̩ꞨꞩⱾȿꟅʂᶊᵴ]*\\b/,\n /\\b[nŃńǸǹŇňÑñṄṅŅņṆṇṊṋṈṉN̈n̈ƝɲŊŋꞐꞑꞤꞥᵰᶇɳȵꬻꬼИиПпNn][iÍíi̇́Ììi̇̀ĬĭÎîǏǐÏïḮḯĨĩi̇̃ĮįĮ́į̇́Į̃į̇̃ĪīĪ̀ī̀ỈỉȈȉI̋i̋ȊȋỊịꞼꞽḬḭƗɨᶖİiIıIi1lĺľļḷḹl̃ḽḻłŀƚꝉⱡɫɬꞎꬷꬸꬹᶅɭȴLloÓóÒòŎŏÔôỐốỒồỖỗỔổǑǒÖöȪȫŐőÕõṌṍṎṏȬȭȮȯO͘o͘ȰȱØøǾǿǪǫǬǭŌōṒṓṐṑỎỏȌȍȎȏƠơỚớỜờỠỡỞởỢợỌọỘộO̩o̩Ò̩ò̩Ó̩ó̩ƟɵꝊꝋꝌꝍⱺOoІіa4ÁáÀàĂăẮắẰằẴẵẲẳÂâẤấẦầẪẫẨẩǍǎÅåǺǻÄäǞǟÃãȦȧǠǡĄąĄ́ą́Ą̃ą̃ĀāĀ̀ā̀ẢảȀȁA̋a̋ȂȃẠạẶặẬậḀḁȺⱥꞺꞻᶏẚAa][gǴǵĞğĜĝǦǧĠġG̃g̃ĢģḠḡǤǥꞠꞡƓɠᶃꬶGgqꝖꝗꝘꝙɋʠ]{2}(l[e3ЄєЕеÉéÈèĔĕÊêẾếỀềỄễỂểÊ̄ê̄Ê̌ê̌ĚěËëẼẽĖėĖ́ė́Ė̃ė̃ȨȩḜḝĘęĘ́ę́Ę̃ę̃ĒēḖḗḔḕẺẻȄȅE̋e̋ȆȇẸẹỆệḘḙḚḛɆɇE̩e̩È̩è̩É̩é̩ᶒⱸꬴꬳEe]t|[e3ЄєЕеÉéÈèĔĕÊêẾếỀềỄễỂểÊ̄ê̄Ê̌ê̌ĚěËëẼẽĖėĖ́ė́Ė̃ė̃ȨȩḜḝĘęĘ́ę́Ę̃ę̃ĒēḖḗḔḕẺẻȄȅE̋e̋ȆȇẸẹỆệḘḙḚḛɆɇE̩e̩È̩è̩É̩é̩ᶒⱸꬴꬳEeaÁáÀàĂăẮắẰằẴẵẲẳÂâẤấẦầẪẫẨẩǍǎÅåǺǻÄäǞǟÃãȦȧǠǡĄąĄ́ą́Ą̃ą̃ĀāĀ̀ā̀ẢảȀȁA̋a̋ȂȃẠạẶặẬậḀḁȺⱥꞺꞻᶏẚAa][rŔŕŘřṘṙŖŗȐȑȒȓṚṛṜṝṞṟR̃r̃ɌɍꞦꞧⱤɽᵲᶉꭉ]?|n[ÓóÒòŎŏÔôỐốỒồỖỗỔổǑǒÖöȪȫŐőÕõṌṍṎṏȬȭȮȯO͘o͘ȰȱØøǾǿǪǫǬǭŌōṒṓṐṑỎỏȌȍȎȏƠơỚớỜờỠỡỞởỢợỌọỘộO̩o̩Ò̩ò̩Ó̩ó̩ƟɵꝊꝋꝌꝍⱺOo0][gǴǵĞğĜĝǦǧĠġG̃g̃ĢģḠḡǤǥꞠꞡƓɠᶃꬶGgqꝖꝗꝘꝙɋʠ]|[a4ÁáÀàĂăẮắẰằẴẵẲẳÂâẤấẦầẪẫẨẩǍǎÅåǺǻÄäǞǟÃãȦȧǠǡĄąĄ́ą́Ą̃ą̃ĀāĀ̀ā̀ẢảȀȁA̋a̋ȂȃẠạẶặẬậḀḁȺⱥꞺꞻᶏẚAa]?)?[sŚśṤṥŜŝŠšṦṧṠṡŞşṢṣṨṩȘșS̩s̩ꞨꞩⱾȿꟅʂᶊᵴ]?\\b/,\n /[nŃńǸǹŇňÑñṄṅŅņṆṇṊṋṈṉN̈n̈ƝɲŊŋꞐꞑꞤꞥᵰᶇɳȵꬻꬼИиПпNn][iÍíi̇́Ììi̇̀ĬĭÎîǏǐÏïḮḯĨĩi̇̃ĮįĮ́į̇́Į̃į̇̃ĪīĪ̀ī̀ỈỉȈȉI̋i̋ȊȋỊịꞼꞽḬḭƗɨᶖİiIıIi1lĺľļḷḹl̃ḽḻłŀƚꝉⱡɫɬꞎꬷꬸꬹᶅɭȴLloÓóÒòŎŏÔôỐốỒồỖỗỔổǑǒÖöȪȫŐőÕõṌṍṎṏȬȭȮȯO͘o͘ȰȱØøǾǿǪǫǬǭŌōṒṓṐṑỎỏȌȍȎȏƠơỚớỜờỠỡỞởỢợỌọỘộO̩o̩Ò̩ò̩Ó̩ó̩ƟɵꝊꝋꝌꝍⱺOoІіa4ÁáÀàĂăẮắẰằẴẵẲẳÂâẤấẦầẪẫẨẩǍǎÅåǺǻÄäǞǟÃãȦȧǠǡĄąĄ́ą́Ą̃ą̃ĀāĀ̀ā̀ẢảȀȁA̋a̋ȂȃẠạẶặẬậḀḁȺⱥꞺꞻᶏẚAa][gǴǵĞğĜĝǦǧĠġG̃g̃ĢģḠḡǤǥꞠꞡƓɠᶃꬶGgqꝖꝗꝘꝙɋʠ]{2}(l[e3ЄєЕеÉéÈèĔĕÊêẾếỀềỄễỂểÊ̄ê̄Ê̌ê̌ĚěËëẼẽĖėĖ́ė́Ė̃ė̃ȨȩḜḝĘęĘ́ę́Ę̃ę̃ĒēḖḗḔḕẺẻȄȅE̋e̋ȆȇẸẹỆệḘḙḚḛɆɇE̩e̩È̩è̩É̩é̩ᶒⱸꬴꬳEe]t|[e3ЄєЕеÉéÈèĔĕÊêẾếỀềỄễỂểÊ̄ê̄Ê̌ê̌ĚěËëẼẽĖėĖ́ė́Ė̃ė̃ȨȩḜḝĘęĘ́ę́Ę̃ę̃ĒēḖḗḔḕẺẻȄȅE̋e̋ȆȇẸẹỆệḘḙḚḛɆɇE̩e̩È̩è̩É̩é̩ᶒⱸꬴꬳEe][rŔŕŘřṘṙŖŗȐȑȒȓṚṛṜṝṞṟR̃r̃ɌɍꞦꞧⱤɽᵲᶉꭉ])[sŚśṤṥŜŝŠšṦṧṠṡŞşṢṣṨṩȘșS̩s̩ꞨꞩⱾȿꟅʂᶊᵴ]?/,\n /\\b[tŤťṪṫŢţṬṭȚțṰṱṮṯŦŧȾⱦƬƭƮʈT̈ẗᵵƫȶ][rŔŕŘřṘṙŖŗȐȑȒȓṚṛṜṝṞṟR̃r̃ɌɍꞦꞧⱤɽᵲᶉꭉ][aÁáÀàĂăẮắẰằẴẵẲẳÂâẤấẦầẪẫẨẩǍǎÅåǺǻÄäǞǟÃãȦȧǠǡĄąĄ́ą́Ą̃ą̃ĀāĀ̀ā̀ẢảȀȁA̋a̋ȂȃẠạẶặẬậḀḁȺⱥꞺꞻᶏẚAa4]+[nŃńǸǹŇňÑñṄṅŅņṆṇṊṋṈṉN̈n̈ƝɲŊŋꞐꞑꞤꞥᵰᶇɳȵꬻꬼИиПпNn]{1,2}([iÍíi̇́Ììi̇̀ĬĭÎîǏǐÏïḮḯĨĩi̇̃ĮįĮ́į̇́Į̃į̇̃ĪīĪ̀ī̀ỈỉȈȉI̋i̋ȊȋỊịꞼꞽḬḭƗɨᶖİiIıIi1lĺľļḷḹl̃ḽḻłŀƚꝉⱡɫɬꞎꬷꬸꬹᶅɭȴLl][e3ЄєЕеÉéÈèĔĕÊêẾếỀềỄễỂểÊ̄ê̄Ê̌ê̌ĚěËëẼẽĖėĖ́ė́Ė̃ė̃ȨȩḜḝĘęĘ́ę́Ę̃ę̃ĒēḖḗḔḕẺẻȄȅE̋e̋ȆȇẸẹỆệḘḙḚḛɆɇE̩e̩È̩è̩É̩é̩ᶒⱸꬴꬳEe]|[yÝýỲỳŶŷY̊ẙŸÿỸỹẎẏȲȳỶỷỴỵɎɏƳƴỾỿ]|[e3ЄєЕеÉéÈèĔĕÊêẾếỀềỄễỂểÊ̄ê̄Ê̌ê̌ĚěËëẼẽĖėĖ́ė́Ė̃ė̃ȨȩḜḝĘęĘ́ę́Ę̃ę̃ĒēḖḗḔḕẺẻȄȅE̋e̋ȆȇẸẹỆệḘḙḚḛɆɇE̩e̩È̩è̩É̩é̩ᶒⱸꬴꬳEe][rŔŕŘřṘṙŖŗȐȑȒȓṚṛṜṝṞṟR̃r̃ɌɍꞦꞧⱤɽᵲᶉꭉ])[sŚśṤṥŜŝŠšṦṧṠṡŞşṢṣṨṩȘșS̩s̩ꞨꞩⱾȿꟅʂᶊᵴ]?\\b/,\n]\n\nexport const hasExplicitSlur = (handle: string): boolean => {\n return explicitSlurRegexes.some(\n (reg) =>\n reg.test(handle) ||\n reg.test(\n handle.replaceAll('.', '').replaceAll('-', '').replaceAll('_', ''),\n ),\n )\n}\n"]}
|
package/dist/handle/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handle/index.ts"],"names":[],"mappings":";;;AAAA,4CAGwB;AACxB,sDAA0D;AAC1D,yCAA+C;AAExC,MAAM,wBAAwB,GAAG,CAAC,MAAc,EAAE,EAAE;IACzD,IAAI,CAAC;QACH,OAAO,IAAA,sCAA6B,EAAC,MAAM,CAAC,CAAA;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,2BAAkB,EAAE,CAAC;YACtC,MAAM,IAAI,iCAAmB,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;QAC7D,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC,CAAA;AATY,QAAA,wBAAwB,4BASpC;AAEM,MAAM,eAAe,GAAG,CAC7B,MAAc,EACd,oBAA8B,EACrB,EAAE;IACX,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;AACvE,CAAC,CAAA;AALY,QAAA,eAAe,mBAK3B;AAEM,MAAM,8BAA8B,GAAG,CAC5C,MAAc,EACd,oBAA8B,EAC9B,aAAa,GAAG,KAAK,EACf,EAAE;IACR,MAAM,eAAe,GACnB,oBAAoB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IACtE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IACrE,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,iCAAmB,CAC3B,8BAA8B,EAC9B,eAAe,CAChB,CAAA;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,iCAAmB,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAA;IACpE,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,iCAAmB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAA;IACnE,CAAC;IACD,IAAI,CAAC,aAAa,IAAI,6BAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,iCAAmB,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAA;IACxE,CAAC;AACH,CAAC,CAAA;AAvBY,QAAA,8BAA8B,kCAuB1C"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handle/index.ts"],"names":[],"mappings":";;;AAAA,4CAGwB;AACxB,sDAA0D;AAC1D,yCAA+C;AAExC,MAAM,wBAAwB,GAAG,CAAC,MAAc,EAAE,EAAE;IACzD,IAAI,CAAC;QACH,OAAO,IAAA,sCAA6B,EAAC,MAAM,CAAC,CAAA;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,2BAAkB,EAAE,CAAC;YACtC,MAAM,IAAI,iCAAmB,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;QAC7D,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC,CAAA;AATY,QAAA,wBAAwB,4BASpC;AAEM,MAAM,eAAe,GAAG,CAC7B,MAAc,EACd,oBAA8B,EACrB,EAAE;IACX,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;AACvE,CAAC,CAAA;AALY,QAAA,eAAe,mBAK3B;AAEM,MAAM,8BAA8B,GAAG,CAC5C,MAAc,EACd,oBAA8B,EAC9B,aAAa,GAAG,KAAK,EACf,EAAE;IACR,MAAM,eAAe,GACnB,oBAAoB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IACtE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IACrE,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,iCAAmB,CAC3B,8BAA8B,EAC9B,eAAe,CAChB,CAAA;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,iCAAmB,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAA;IACpE,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,iCAAmB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAA;IACnE,CAAC;IACD,IAAI,CAAC,aAAa,IAAI,6BAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,iCAAmB,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAA;IACxE,CAAC;AACH,CAAC,CAAA;AAvBY,QAAA,8BAA8B,kCAuB1C","sourcesContent":["import {\n InvalidHandleError,\n normalizeAndEnsureValidHandle,\n} from '@atproto/syntax'\nimport { InvalidRequestError } from '@atproto/xrpc-server'\nimport { reservedSubdomains } from './reserved'\n\nexport const baseNormalizeAndValidate = (handle: string) => {\n try {\n return normalizeAndEnsureValidHandle(handle)\n } catch (err) {\n if (err instanceof InvalidHandleError) {\n throw new InvalidRequestError(err.message, 'InvalidHandle')\n }\n throw err\n }\n}\n\nexport const isServiceDomain = (\n handle: string,\n availableUserDomains: string[],\n): boolean => {\n return availableUserDomains.some((domain) => handle.endsWith(domain))\n}\n\nexport const ensureHandleServiceConstraints = (\n handle: string,\n availableUserDomains: string[],\n allowReserved = false,\n): void => {\n const supportedDomain =\n availableUserDomains.find((domain) => handle.endsWith(domain)) ?? ''\n const front = handle.slice(0, handle.length - supportedDomain.length)\n if (front.includes('.')) {\n throw new InvalidRequestError(\n 'Invalid characters in handle',\n 'InvalidHandle',\n )\n }\n if (front.length < 3) {\n throw new InvalidRequestError('Handle too short', 'InvalidHandle')\n }\n if (front.length > 18) {\n throw new InvalidRequestError('Handle too long', 'InvalidHandle')\n }\n if (!allowReserved && reservedSubdomains[front]) {\n throw new InvalidRequestError('Reserved handle', 'HandleNotAvailable')\n }\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"reserved.js","sourceRoot":"","sources":["../../src/handle/reserved.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"reserved.js","sourceRoot":"","sources":["../../src/handle/reserved.ts"],"names":[],"mappings":"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","sourcesContent":["const atpSpecific = [\n 'at',\n 'atp',\n 'plc',\n 'pds',\n 'did',\n 'repo',\n 'tid',\n 'nsid',\n 'xrpc',\n 'lex',\n 'lexicon',\n 'bsky',\n 'bluesky',\n 'handle',\n]\n\n// naively pulled from: https://radwebhosting.com/client_area/knowledgebase/196/List-of-Banned-Subdomain-Prefixes.html\nconst commonlyReserved = [\n 'about',\n 'abuse',\n 'access',\n 'account',\n 'accounts',\n 'acme',\n 'activate',\n 'activities',\n 'activity',\n 'ad',\n 'add',\n 'address',\n 'adm',\n 'admanager',\n 'admin',\n 'administration',\n 'administrator',\n 'administrators',\n 'admins',\n 'ads',\n 'adsense',\n 'adult',\n 'advertising',\n 'adwords',\n 'affiliate',\n 'affiliatepage',\n 'affiliates',\n 'afp',\n 'ajax',\n 'all',\n 'alpha',\n 'analysis',\n 'analytics',\n 'android',\n 'anon',\n 'anonymous',\n 'answer',\n 'answers',\n 'ap',\n 'api',\n 'apis',\n 'app',\n 'appengine',\n 'appnews',\n 'apps',\n 'archive',\n 'archives',\n 'article',\n 'asdf',\n 'asset',\n 'assets',\n 'auth',\n 'authentication',\n 'avatar',\n 'backup',\n 'bank',\n 'banner',\n 'banners',\n 'base',\n 'beginners',\n 'beta',\n 'billing',\n 'bin',\n 'binaries',\n 'binary',\n 'blackberry',\n 'blog',\n 'blogs',\n 'blogsearch',\n 'board',\n 'book',\n 'bookmark',\n 'bookmarks',\n 'books',\n 'bot',\n 'bots',\n 'bug',\n 'bugs',\n 'business',\n 'buy',\n 'buzz',\n 'cache',\n 'calendar',\n 'call',\n 'campaign',\n 'cancel',\n 'captcha',\n 'career',\n 'careers',\n 'cart',\n 'catalog',\n 'catalogs',\n 'categories',\n 'category',\n 'cdn',\n 'cgi',\n 'cgi-bin',\n 'changelog',\n 'chart',\n 'charts',\n 'chat',\n 'check',\n 'checked',\n 'checking',\n 'checkout',\n 'client',\n 'cliente',\n 'clients',\n 'clients1',\n 'cnarne',\n 'code',\n 'comercial',\n 'comment',\n 'comments',\n 'communities',\n 'community',\n 'company',\n 'compare',\n 'compras',\n 'config',\n 'configuration',\n 'confirm',\n 'confirmation',\n 'connect',\n 'contact',\n 'contacts',\n 'contactus',\n 'contact-us',\n 'contact_us',\n 'content',\n 'contest',\n 'contribute',\n 'contributor',\n 'contributors',\n 'coppa',\n 'copyright',\n 'copyrights',\n 'core',\n 'corp',\n 'countries',\n 'country',\n 'cpanel',\n 'create',\n 'css',\n 'cssproxy',\n 'customise',\n 'customize',\n 'dashboard',\n 'data',\n 'db',\n 'default',\n 'delete',\n 'demo',\n 'design',\n 'designer',\n 'desktop',\n 'destroy',\n 'dev',\n 'devel',\n 'developer',\n 'developers',\n 'devs',\n 'diagram',\n 'diary',\n 'dict',\n 'dictionary',\n 'die',\n 'dir',\n 'directory',\n 'direct_messages',\n 'direct-messages',\n 'dist',\n 'diversity',\n 'dl',\n 'dmca',\n 'doc',\n 'docs',\n 'documentation',\n 'documentations',\n 'documents',\n 'domain',\n 'domains',\n 'donate',\n 'download',\n 'downloads',\n 'e',\n 'e-mail',\n 'earth',\n 'ecommerce',\n 'edit',\n 'edits',\n 'editor',\n 'edu',\n 'education',\n 'email',\n 'embed',\n 'embedded',\n 'employment',\n 'employments',\n 'empty',\n 'enable',\n 'encrypted',\n 'end',\n 'engine',\n 'enterprise',\n 'enterprises',\n 'entries',\n 'entry',\n 'error',\n 'errorlog',\n 'errors',\n 'eval',\n 'event',\n 'example',\n 'examplecommunity',\n 'exampleopenid',\n 'examplesyn',\n 'examplesyndicated',\n 'exampleusername',\n 'exchange',\n 'exit',\n 'explore',\n 'faq',\n 'faqs',\n 'favorite',\n 'favorites',\n 'favourite',\n 'favourites',\n 'feature',\n 'features',\n 'feed',\n 'feedback',\n 'feedburner',\n 'feedproxy',\n 'feeds',\n 'file',\n 'files',\n 'finance',\n 'folder',\n 'folders',\n 'first',\n 'following',\n 'forgot',\n 'form',\n 'forms',\n 'forum',\n 'forums',\n 'founder',\n 'free',\n 'friend',\n 'friends',\n 'ftp',\n 'fuck',\n 'fun',\n 'fusion',\n 'gadget',\n 'gadgets',\n 'game',\n 'games',\n 'gears',\n 'general',\n 'geographic',\n 'get',\n 'gettingstarted',\n 'gift',\n 'gifts',\n 'gist',\n 'git',\n 'github',\n 'gmail',\n 'go',\n 'golang',\n 'goto',\n 'gov',\n 'graph',\n 'graphs',\n 'group',\n 'groups',\n 'guest',\n 'guests',\n 'guide',\n 'guides',\n 'hack',\n 'hacks',\n 'head',\n 'help',\n 'home',\n 'homepage',\n 'host',\n 'hosting',\n 'hostmaster',\n 'hostname',\n 'howto',\n 'how-to',\n 'how_to',\n 'html',\n 'htrnl',\n 'http',\n 'httpd',\n 'https',\n 'i',\n 'iamges',\n 'icon',\n 'icons',\n 'id',\n 'idea',\n 'ideas',\n 'im',\n 'image',\n 'images',\n 'img',\n 'imap',\n 'inbox',\n 'inboxes',\n 'index',\n 'indexes',\n 'info',\n 'information',\n 'inquiry',\n 'intranet',\n 'investor',\n 'investors',\n 'invitation',\n 'invitations',\n 'invite',\n 'invoice',\n 'invoices',\n 'imac',\n 'ios',\n 'ipad',\n 'iphone',\n 'irc',\n 'irnages',\n 'irng',\n 'is',\n 'issue',\n 'issues',\n 'it',\n 'item',\n 'items',\n 'java',\n 'javascript',\n 'job',\n 'jobs',\n 'join',\n 'js',\n 'json',\n 'jump',\n 'kb',\n 'knowledge-base',\n 'knowledgebase',\n 'lab',\n 'labs',\n 'language',\n 'languages',\n 'last',\n 'ldap_status',\n 'ldap-status',\n 'ldapstatus',\n 'legal',\n 'license',\n 'licenses',\n 'link',\n 'links',\n 'linux',\n 'list',\n 'lists',\n 'livejournal',\n 'lj',\n 'local',\n 'locale',\n 'location',\n 'log',\n 'log-in',\n 'log-out',\n 'login',\n 'logout',\n 'logs',\n 'log_in',\n 'log_out',\n 'm',\n 'mac',\n 'macos',\n 'macosx',\n 'mac-os',\n 'mac-os-x',\n 'mac_os_x',\n 'mail',\n 'mailer',\n 'mailing',\n 'main',\n 'maintenance',\n 'manage',\n 'manager',\n 'manual',\n 'map',\n 'maps',\n 'marketing',\n 'master',\n 'me',\n 'media',\n 'member',\n 'members',\n 'memories',\n 'memory',\n 'merchandise',\n 'message',\n 'messages',\n 'messenger',\n 'mg',\n 'microblog',\n 'microblogs',\n 'mine',\n 'mis',\n 'misc',\n 'mms',\n 'mob',\n 'mobile',\n 'model',\n 'models',\n 'money',\n 'movie',\n 'movies',\n 'mp3',\n 'mp4',\n 'msg',\n 'msn',\n 'music',\n 'mx',\n 'my',\n 'mymme',\n 'mysql',\n 'name',\n 'named',\n 'nan',\n 'navi',\n 'navigation',\n 'net',\n 'network',\n 'networks',\n 'new',\n 'news',\n 'newsletter',\n 'nick',\n 'nickname',\n 'nil',\n 'none',\n 'notes',\n 'noticias',\n 'notification',\n 'notifications',\n 'notify',\n 'ns',\n 'ns1',\n 'ns2',\n 'ns3',\n 'ns4',\n 'ns5',\n 'null',\n 'oauth',\n 'oauth-clients',\n 'oauth_clients',\n 'ocsp',\n 'offer',\n 'offers',\n 'official',\n 'old',\n 'online',\n 'openid',\n 'operator',\n 'option',\n 'options',\n 'order',\n 'orders',\n 'org',\n 'organization',\n 'organizations',\n 'other',\n 'overview',\n 'owner',\n 'owners',\n 'p0rn',\n 'pack',\n 'page',\n 'pager',\n 'pages',\n 'paid',\n 'panel',\n 'partner',\n 'partnerpage',\n 'partners',\n 'password',\n 'patch',\n 'pay',\n 'payment',\n 'people',\n 'perl',\n 'person',\n 'phone',\n 'photo',\n 'photoalbum',\n 'photos',\n 'php',\n 'phpmyadmin',\n 'phppgadmin',\n 'phpredisadmin',\n 'pic',\n 'pics',\n 'picture',\n 'pictures',\n 'ping',\n 'pixel',\n 'places',\n 'plan',\n 'plans',\n 'plugin',\n 'plugins',\n 'podcasts',\n 'policies',\n 'policy',\n 'pop',\n 'pop3',\n 'popular',\n 'porn',\n 'portal',\n 'portals',\n 'post',\n 'postfix',\n 'postmaster',\n 'posts',\n 'pr',\n 'pr0n',\n 'premium',\n 'press',\n 'price',\n 'pricing',\n 'principles',\n 'print',\n 'privacy',\n 'privacy-policy',\n 'privacypolicy',\n 'privacy_policy',\n 'private',\n 'prod',\n 'product',\n 'production',\n 'products',\n 'profile',\n 'profiles',\n 'project',\n 'projects',\n 'promo',\n 'promotions',\n 'proxies',\n 'proxy',\n 'pub',\n 'public',\n 'purchase',\n 'purpose',\n 'put',\n 'python',\n 'queries',\n 'query',\n 'radio',\n 'random',\n 'ranking',\n 'read',\n 'reader',\n 'readme',\n 'recent',\n 'recruit',\n 'recruitment',\n 'redirect',\n 'register',\n 'registration',\n 'release',\n 'remove',\n 'replies',\n 'report',\n 'reports',\n 'repositories',\n 'repository',\n 'req',\n 'request',\n 'requests',\n 'research',\n 'reset',\n 'resolve',\n 'resolver',\n 'review',\n 'rnail',\n 'rnicrosoft',\n 'roc',\n 'root',\n 'rss',\n 'ruby',\n 'rule',\n 'sag',\n 'sale',\n 'sales',\n 'sample',\n 'samples',\n 'sandbox',\n 'save',\n 'scholar',\n 'school',\n 'schools',\n 'script',\n 'scripts',\n 'search',\n 'secure',\n 'security',\n 'self',\n 'seminars',\n 'send',\n 'server',\n 'server-info',\n 'server_info',\n 'server-status',\n 'server_status',\n 'servers',\n 'service',\n 'services',\n 'session',\n 'sessions',\n 'setting',\n 'settings',\n 'setup',\n 'share',\n 'shop',\n 'shopping',\n 'shortcut',\n 'shortcuts',\n 'show',\n 'sign-in',\n 'sign-up',\n 'signin',\n 'signout',\n 'signup',\n 'sign_in',\n 'sign_up',\n 'site',\n 'sitemap',\n 'sitemaps',\n 'sitenews',\n 'sites',\n 'sketchup',\n 'sky',\n 'slash',\n 'slashinvoice',\n 'slut',\n 'smartphone',\n 'sms',\n 'smtp',\n 'soap',\n 'software',\n 'sorry',\n 'source',\n 'spec',\n 'special',\n 'spreadsheet',\n 'spreadsheets',\n 'sql',\n 'src',\n 'srntp',\n 'ssh',\n 'ssl',\n 'ssladmin',\n 'ssladministrator',\n 'sslwebmaster',\n 'ssytem',\n 'staff',\n 'stage',\n 'staging',\n 'start',\n 'stat',\n 'state',\n 'static',\n 'statistics',\n 'stats',\n 'status',\n 'store',\n 'stores',\n 'stories',\n 'style',\n 'styleguide',\n 'styles',\n 'stylesheet',\n 'stylesheets',\n 'subdomain',\n 'subscribe',\n 'subscription',\n 'subscriptions',\n 'suggest',\n 'suggestqueries',\n 'support',\n 'survey',\n 'surveys',\n 'surveytool',\n 'svn',\n 'swf',\n 'syn',\n 'sync',\n 'syndicated',\n 'sys',\n 'sysadmin',\n 'sysadministrator',\n 'sysadmins',\n 'system',\n 'tablet',\n 'tablets',\n 'tag',\n 'tags',\n 'talk',\n 'talkgadget',\n 'task',\n 'tasks',\n 'team',\n 'teams',\n 'tech',\n 'telnet',\n 'term',\n 'terms',\n 'terms-of-service',\n 'termsofservice',\n 'terms_of_service',\n 'test',\n 'testing',\n 'tests',\n 'text',\n 'theme',\n 'themes',\n 'thread',\n 'threads',\n 'ticket',\n 'tickets',\n 'tmp',\n 'todo',\n 'to-do',\n 'to_do',\n 'toml',\n 'tool',\n 'toolbar',\n 'toolbars',\n 'tools',\n 'top',\n 'topic',\n 'topics',\n 'tos',\n 'tour',\n 'trac',\n 'translate',\n 'trace',\n 'translation',\n 'translations',\n 'translator',\n 'trends',\n 'tutorial',\n 'tux',\n 'tv',\n 'twitter',\n 'txt',\n 'ul',\n 'undef',\n 'unfollow',\n 'unsubscribe',\n 'update',\n 'updates',\n 'upgrade',\n 'upgrades',\n 'upi',\n 'upload',\n 'uploads',\n 'url',\n 'usage',\n 'user',\n 'username',\n 'usernames',\n 'users',\n 'uuid',\n 'validation',\n 'validations',\n 'ver',\n 'version',\n 'video',\n 'videos',\n 'video-stats',\n 'visitor',\n 'visitors',\n 'voice',\n 'volunteer',\n 'volunteers',\n 'w',\n 'watch',\n 'wave',\n 'weather',\n 'web',\n 'webdisk',\n 'webhook',\n 'webhooks',\n 'webmail',\n 'webmaster',\n 'webmasters',\n 'webrnail',\n 'website',\n 'websites',\n 'welcome',\n 'whm',\n 'whois',\n 'widget',\n 'widgets',\n 'wifi',\n 'wiki',\n 'wikis',\n 'win',\n 'windows',\n 'word',\n 'work',\n 'works',\n 'workshop',\n 'wpad',\n 'ww',\n 'wws',\n 'www',\n 'wwws',\n 'wwww',\n 'xfn',\n 'xhtml',\n 'xhtrnl',\n 'xml',\n 'xmpp',\n 'xpg',\n 'xxx',\n 'yaml',\n 'year',\n 'yml',\n 'you',\n 'yourdomain',\n 'yourname',\n 'yoursite',\n 'yourusername',\n]\n\nconst famousAccounts = [\n // reserving some large twitter accounts (top 100 by followers according to wikidata dump)\n '10ronaldinho',\n '3gerardpique',\n 'aclu',\n 'adele',\n 'akshaykumar',\n 'aliaa08',\n 'aliciakeys',\n 'amitshah',\n 'andresiniesta8',\n 'anushkasharma',\n 'arianagrande',\n 'arrahman',\n 'arvindkejriwal',\n 'avrillavigne',\n 'barackobama',\n 'bbcbreaking',\n 'bbcworld',\n 'beingsalmankhan',\n 'billgates',\n 'britneyspears',\n 'brunomars',\n 'bts_bighit',\n 'bts_twt',\n 'championsleague',\n 'chrisbrown',\n 'cnnbrk',\n 'coldplay',\n 'conanobrien',\n 'cristiano',\n 'danieltosh',\n 'davidguetta',\n 'ddlovato',\n 'deepikapadukone',\n 'drake',\n 'elisapie',\n 'ellendegeneres',\n 'elonmusk',\n 'eminem',\n 'emmawatson',\n 'fcbarcelona',\n 'foxnews',\n 'harry_styles',\n 'hillaryclinton',\n 'iamsrk',\n 'ihrithik',\n 'imvkohli',\n 'instagram',\n 'jimmyfallon',\n 'jlo',\n 'joebiden',\n 'jtimberlake',\n 'justinbieber',\n 'kaka',\n 'kanyewest',\n 'katyperry',\n 'kendalljenner',\n 'kevinhart4real',\n 'khloekardashian',\n 'kimkardashian',\n 'kingjames',\n 'kourtneykardash',\n 'kyliejenner',\n 'ladygaga',\n 'liampayne',\n 'liltunechi',\n 'manutd',\n 'mariahcarey',\n 'mileycyrus',\n 'mohamadalarefe',\n 'narendramodi',\n 'nasa',\n 'nba',\n 'neymarjr',\n 'nfl',\n 'niallofficial',\n 'nickiminaj',\n 'npr',\n 'nytimes',\n 'onedirection',\n 'oprah',\n 'pink',\n 'pitbull',\n 'playstation',\n 'pmoindia',\n 'premierleague',\n 'priyankachopra',\n 'realdonaldtrump',\n 'ricky_martin',\n 'rihanna',\n 'sachin_rt',\n 'selenagomez',\n 'shakira',\n 'shawnmendes',\n 'sportscenter',\n 'srbachchan',\n 'subhisharma100',\n 'taylorswift13',\n 'theeconomist',\n 'twitter',\n 'virendersehwag',\n 'whitehouse45',\n 'wizkhalifa',\n 'youtube',\n 'zaynmalik',\n\n // some top instagram (https://en.wikipedia.org/wiki/List_of_most-followed_Instagram_accounts)\n 'beyonce',\n 'billieeilish',\n 'leomessi',\n 'natgeo',\n 'nike',\n 'snoopdogg',\n 'taylorswift',\n 'therock',\n\n // ... and a couple more prominent accounts, subjectively\n '10downingstreet',\n 'aoc',\n 'carterjwm',\n 'dril',\n 'gretathunberg',\n 'kamalaharris',\n 'kremlinrussia_e',\n 'potus',\n 'rondesantisfl',\n 'ukraine',\n 'washingtonpost',\n 'yousuck2020',\n 'zelenskyyua',\n\n // top japan-specific accounts\n 'akiko_lawson',\n 'ariyoshihiroiki',\n 'asahi',\n 'dozle_official',\n 'famima_now',\n 'ff_xiv_jp',\n 'fujitv',\n 'gigazine',\n 'hajimesyacho',\n 'hikakin',\n 'jocx',\n 'jotx',\n 'kiyo_saiore',\n 'mainichi',\n 'matsu_bouzu',\n 'naomiosaka',\n 'nhk',\n 'nikkei',\n 'nintendo',\n 'ntv',\n 'oowareware1945',\n 'pamyurin',\n 'poke_times',\n 'rolaworld',\n 'seikintv',\n 'starbucksjapan',\n 'tbs',\n 'tbs_pr',\n 'tvasahi',\n 'tvtokyo',\n 'yokoono',\n 'yomiuri_online',\n\n // top brazil-specific accounts\n 'brasildefato',\n 'claudialeitte',\n 'correio',\n 'em_com',\n 'estadao',\n 'folha',\n 'gazetadopovo',\n 'ivetesangalo',\n 'jairbolsonaro',\n 'jornaldobrasil',\n 'jornaloglobo',\n 'lucianohuck',\n 'lulaoficial',\n 'marcosmion',\n 'paulocoelho',\n 'portalr7',\n 'rede_globo',\n 'zerohora',\n]\n\nexport const reservedSubdomains: Record<string, boolean> = [\n ...atpSpecific,\n ...commonlyReserved,\n ...famousAccounts,\n].reduce((acc, cur) => {\n return {\n ...acc,\n [cur]: true,\n }\n}, {})\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"image-url-builder.js","sourceRoot":"","sources":["../../src/image/image-url-builder.ts"],"names":[],"mappings":";;;AACA,kDAAyC;AAEzC,MAAa,eAAe;IAC1B,YACW,WAAmB,EACnB,WAAyB;QADlC;;;;mBAAS,WAAW;WAAQ;QAC5B;;;;mBAAS,WAAW;WAAc;IACjC,CAAC;IAEJ,KAAK,CAAC,OAAe,EAAE,GAAW,EAAE,GAAW;QAC7C,OAAO,CACL,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC;YAChD,WAAW,IAAI,CAAC,WAAW,SAAS,cAAG,CAAC,qBAAqB,QAAQ,GAAG,QAAQ,GAAG,EAAE,CACtF,CAAA;IACH,CAAC;CACF;AAZD,0CAYC"}
|
1
|
+
{"version":3,"file":"image-url-builder.js","sourceRoot":"","sources":["../../src/image/image-url-builder.ts"],"names":[],"mappings":";;;AACA,kDAAyC;AAEzC,MAAa,eAAe;IAC1B,YACW,WAAmB,EACnB,WAAyB;QADlC;;;;mBAAS,WAAW;WAAQ;QAC5B;;;;mBAAS,WAAW;WAAc;IACjC,CAAC;IAEJ,KAAK,CAAC,OAAe,EAAE,GAAW,EAAE,GAAW;QAC7C,OAAO,CACL,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC;YAChD,WAAW,IAAI,CAAC,WAAW,SAAS,cAAG,CAAC,qBAAqB,QAAQ,GAAG,QAAQ,GAAG,EAAE,CACtF,CAAA;IACH,CAAC;CACF;AAZD,0CAYC","sourcesContent":["import { BskyAppView } from '../bsky-app-view'\nimport { ids } from '../lexicon/lexicons'\n\nexport class ImageUrlBuilder {\n constructor(\n readonly pdsHostname: string,\n readonly bskyAppView?: BskyAppView,\n ) {}\n\n build(pattern: string, did: string, cid: string): string {\n return (\n this.bskyAppView?.getImageUrl(pattern, did, cid) ??\n `https://${this.pdsHostname}/xrpc/${ids.ComAtprotoSyncGetBlob}?did=${did}&cid=${cid}`\n )\n }\n}\n"]}
|
package/dist/image/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/image/index.ts"],"names":[],"mappings":";;;;;;AAKA,oCAiCC;AAED,0BAMC;AA7CD,mDAA+C;AAC/C,kDAAyB;AACzB,4CAA2C;AAEpC,KAAK,UAAU,YAAY,CAChC,MAAgB;IAEhB,IAAI,QAAwB,CAAA;IAC5B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAA,eAAK,GAAE,CAAA;QACzB,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjC,SAAS,CAAC,QAAQ,EAAE;YACpB,IAAA,mBAAQ,EAAC,MAAM,EAAE,SAAS,CAAC,EAAE,4BAA4B;SAC1D,CAAC,CAAA;QACF,QAAQ,GAAG,MAAM,CAAA;IACnB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,IAAA,kBAAS,EAAC,GAAG,EAAE,gDAAgD,CAAC,EAAE,CAAC;YACrE,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAA;IAChD,IACE,IAAI,KAAK,SAAS;QAClB,MAAM,KAAK,SAAS;QACpB,KAAK,KAAK,SAAS;QACnB,MAAM,KAAK,SAAS,EACpB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,IAAI,EAAE,sBAAc,CAAC,MAAM,CAAC,IAAK,SAAmB;KACrD,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,OAAO,CAAC,MAAgB;IAC5C,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAA;IAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AASY,QAAA,cAAc,GAEvB;IACF,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;CACnB,CAAA"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/image/index.ts"],"names":[],"mappings":";;;;;;AAKA,oCAiCC;AAED,0BAMC;AA7CD,mDAA+C;AAC/C,kDAAyB;AACzB,4CAA2C;AAEpC,KAAK,UAAU,YAAY,CAChC,MAAgB;IAEhB,IAAI,QAAwB,CAAA;IAC5B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAA,eAAK,GAAE,CAAA;QACzB,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjC,SAAS,CAAC,QAAQ,EAAE;YACpB,IAAA,mBAAQ,EAAC,MAAM,EAAE,SAAS,CAAC,EAAE,4BAA4B;SAC1D,CAAC,CAAA;QACF,QAAQ,GAAG,MAAM,CAAA;IACnB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,IAAA,kBAAS,EAAC,GAAG,EAAE,gDAAgD,CAAC,EAAE,CAAC;YACrE,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAA;IAChD,IACE,IAAI,KAAK,SAAS;QAClB,MAAM,KAAK,SAAS;QACpB,KAAK,KAAK,SAAS;QACnB,MAAM,KAAK,SAAS,EACpB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,IAAI,EAAE,sBAAc,CAAC,MAAM,CAAC,IAAK,SAAmB;KACrD,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,OAAO,CAAC,MAAgB;IAC5C,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAA;IAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AASY,QAAA,cAAc,GAEvB;IACF,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;CACnB,CAAA","sourcesContent":["import { Readable } from 'node:stream'\nimport { pipeline } from 'node:stream/promises'\nimport sharp from 'sharp'\nimport { errHasMsg } from '@atproto/common'\n\nexport async function maybeGetInfo(\n stream: Readable,\n): Promise<ImageInfo | null> {\n let metadata: sharp.Metadata\n try {\n const processor = sharp()\n const [result] = await Promise.all([\n processor.metadata(),\n pipeline(stream, processor), // Handles error propagation\n ])\n metadata = result\n } catch (err) {\n if (errHasMsg(err, 'Input buffer contains unsupported image format')) {\n return null\n }\n throw err\n }\n const { size, height, width, format } = metadata\n if (\n size === undefined ||\n height === undefined ||\n width === undefined ||\n format === undefined\n ) {\n return null\n }\n\n return {\n height,\n width,\n size,\n mime: formatsToMimes[format] ?? ('unknown' as const),\n }\n}\n\nexport async function getInfo(stream: Readable): Promise<ImageInfo> {\n const maybeInfo = await maybeGetInfo(stream)\n if (!maybeInfo) {\n throw new Error('could not obtain all image metadata')\n }\n return maybeInfo\n}\n\nexport type Dimensions = { height: number; width: number }\n\nexport type ImageInfo = Dimensions & {\n size: number\n mime: `image/${string}` | 'unknown'\n}\n\nexport const formatsToMimes: {\n [s in keyof sharp.FormatEnum]?: `image/${string}`\n} = {\n jpg: 'image/jpeg',\n jpeg: 'image/jpeg',\n png: 'image/png',\n gif: 'image/gif',\n svg: 'image/svg+xml',\n tif: 'image/tiff',\n tiff: 'image/tiff',\n webp: 'image/webp',\n}\n"]}
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["// catch errors that get thrown in async route handlers\n// this is a relatively non-invasive change to express\n// they get handled in the error.handler middleware\n// leave at top of file before importing Routes\nimport 'express-async-errors'\n\nimport events from 'node:events'\nimport http from 'node:http'\nimport { PlcClientError } from '@did-plc/lib'\nimport cors from 'cors'\nimport express from 'express'\nimport { HttpTerminator, createHttpTerminator } from 'http-terminator'\nimport { DAY, HOUR, MINUTE, SECOND } from '@atproto/common'\nimport {\n MemoryRateLimiter,\n MethodHandler,\n RedisRateLimiter,\n ResponseType,\n XRPCError,\n} from '@atproto/xrpc-server'\nimport apiRoutes from './api'\nimport * as authRoutes from './auth-routes'\nimport * as basicRoutes from './basic-routes'\nimport { ServerConfig, ServerSecrets } from './config'\nimport { AppContext, AppContextOptions } from './context'\nimport * as error from './error'\nimport { createServer } from './lexicon'\nimport * as AppBskyFeedGetFeedSkeleton from './lexicon/types/app/bsky/feed/getFeedSkeleton'\nimport { loggerMiddleware } from './logger'\nimport { proxyHandler } from './pipethrough'\nimport compression from './util/compression'\nimport * as wellKnown from './well-known'\n\nexport { createSecretKeyObject } from './auth-verifier'\nexport * from './config'\nexport { AppContext } from './context'\nexport { Database } from './db'\nexport { DiskBlobStore } from './disk-blobstore'\nexport { createServer as createLexiconServer } from './lexicon'\nexport { httpLogger } from './logger'\nexport { type CommitDataWithOps, type PreparedWrite } from './repo'\nexport * as repoPrepare from './repo/prepare'\nexport { scripts } from './scripts'\nexport * as sequencer from './sequencer'\n\n// Legacy export for backwards compatibility\nexport type SkeletonHandler = MethodHandler<\n void,\n AppBskyFeedGetFeedSkeleton.QueryParams,\n AppBskyFeedGetFeedSkeleton.HandlerInput,\n AppBskyFeedGetFeedSkeleton.HandlerOutput\n>\n\nexport class PDS {\n public ctx: AppContext\n public app: express.Application\n public server?: http.Server\n private terminator?: HttpTerminator\n private dbStatsInterval?: NodeJS.Timeout\n private sequencerStatsInterval?: NodeJS.Timeout\n\n constructor(opts: { ctx: AppContext; app: express.Application }) {\n this.ctx = opts.ctx\n this.app = opts.app\n }\n\n static async create(\n cfg: ServerConfig,\n secrets: ServerSecrets,\n overrides?: Partial<AppContextOptions>,\n ): Promise<PDS> {\n const ctx = await AppContext.fromConfig(cfg, secrets, overrides)\n\n const { rateLimits } = ctx.cfg\n\n const server = createServer({\n validateResponse: false,\n payload: {\n jsonLimit: 150 * 1024, // 150kb\n textLimit: 100 * 1024, // 100kb\n blobLimit: cfg.service.blobUploadLimit,\n },\n catchall: proxyHandler(ctx),\n errorParser: (err) => {\n if (err instanceof PlcClientError) {\n const payloadMessage =\n typeof err.data === 'object' &&\n err.data != null &&\n 'message' in err.data &&\n typeof err.data.message === 'string' &&\n err.data.message\n\n const type =\n err.status >= 500\n ? ResponseType.UpstreamFailure\n : ResponseType.InvalidRequest\n\n return new XRPCError(\n type,\n payloadMessage || 'Unable to perform PLC operation',\n )\n }\n\n return XRPCError.fromError(err)\n },\n rateLimits: rateLimits.enabled\n ? {\n creator: ctx.redisScratch\n ? (opts) => new RedisRateLimiter(ctx.redisScratch, opts)\n : (opts) => new MemoryRateLimiter(opts),\n bypass: ({ req }) => {\n const { bypassKey, bypassIps } = rateLimits\n if (\n bypassKey &&\n bypassKey === req.headers['x-ratelimit-bypass']\n ) {\n return true\n }\n if (bypassIps && bypassIps.includes(req.ip)) {\n return true\n }\n return false\n },\n global: [\n {\n name: 'global-ip',\n durationMs: 5 * MINUTE,\n points: 3000,\n },\n ],\n shared: [\n {\n name: 'repo-write-hour',\n durationMs: HOUR,\n points: 5000, // creates=3, puts=2, deletes=1\n },\n {\n name: 'repo-write-day',\n durationMs: DAY,\n points: 35000, // creates=3, puts=2, deletes=1\n },\n ],\n }\n : undefined,\n })\n\n apiRoutes(server, ctx)\n\n const app = express()\n app.set('trust proxy', [\n // e.g. load balancer\n 'loopback',\n 'linklocal',\n 'uniquelocal',\n // e.g. trust x-forwarded-for via entryway ip\n ...getTrustedIps(cfg),\n ])\n app.use(loggerMiddleware)\n app.use(compression())\n app.use(authRoutes.createRouter(ctx)) // Before CORS\n app.use(cors({ maxAge: DAY / SECOND }))\n app.use(basicRoutes.createRouter(ctx))\n app.use(wellKnown.createRouter(ctx))\n app.use(server.xrpc.router)\n app.use(error.handler)\n\n return new PDS({\n ctx,\n app,\n })\n }\n\n async start(): Promise<http.Server> {\n await this.ctx.sequencer.start()\n const server = this.app.listen(this.ctx.cfg.service.port)\n this.server = server\n this.server.keepAliveTimeout = 90000\n this.terminator = createHttpTerminator({ server })\n await events.once(server, 'listening')\n return server\n }\n\n async destroy(): Promise<void> {\n await this.ctx.sequencer.destroy()\n await this.terminator?.terminate()\n await this.ctx.backgroundQueue.destroy()\n await this.ctx.accountManager.close()\n await this.ctx.redisScratch?.quit()\n await this.ctx.proxyAgent.destroy()\n clearInterval(this.dbStatsInterval)\n clearInterval(this.sequencerStatsInterval)\n }\n}\n\nexport default PDS\n\nconst getTrustedIps = (cfg: ServerConfig) => {\n if (!cfg.rateLimits.enabled) return []\n return cfg.rateLimits.bypassIps ?? []\n}\n"]}
|