Add linting rule to sort imports ()

* Add linting rule to sort imports

* remove spacing between import groups

* changeset

* changeset

* prettier config fine tuning

* forbid use of deprecated imports

* tidy
This commit is contained in:
Matthieu Sieben 2025-02-05 15:06:58 +01:00 committed by GitHub
parent 53a577fd4b
commit 61dc0d60e1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
818 changed files with 3643 additions and 2797 deletions
.changeset
.eslintrc.gitignore.prettierignore.prettierrc
.vscode
package.json
packages
api
aws
bsky

@ -0,0 +1,41 @@
---
"@atproto-labs/rollup-plugin-bundle-manifest": patch
"@atproto/oauth-client-browser-example": patch
"@atproto-labs/handle-resolver-node": patch
"@atproto-labs/simple-store-memory": patch
"@atproto-labs/identity-resolver": patch
"@atproto/oauth-client-browser": patch
"@atproto-labs/handle-resolver": patch
"@atproto/oauth-client-node": patch
"@atproto-labs/did-resolver": patch
"@atproto-labs/simple-store": patch
"@atproto/oauth-provider": patch
"@atproto-labs/fetch-node": patch
"@atproto/jwk-webcrypto": patch
"@atproto/oauth-client": patch
"@atproto/oauth-types": patch
"@atproto-labs/fetch": patch
"@atproto/jwk-jose": patch
"@atproto/xrpc-server": patch
"@atproto/common-web": patch
"@atproto/jwk": patch
"@atproto/identity": patch
"@atproto/dev-env": patch
"@atproto/lex-cli": patch
"@atproto/lexicon": patch
"@atproto/common": patch
"@atproto/crypto": patch
"@atproto/syntax": patch
"@atproto/bsync": patch
"@atproto/ozone": patch
"@atproto/bsky": patch
"@atproto/repo": patch
"@atproto/sync": patch
"@atproto/xrpc": patch
"@atproto/api": patch
"@atproto/aws": patch
"@atproto/did": patch
"@atproto/pds": patch
---
Apply new linting rules regarding import order

@ -0,0 +1,22 @@
---
"@atproto-labs/rollup-plugin-bundle-manifest": patch
"@atproto-labs/handle-resolver-node": patch
"@atproto/oauth-client-node": patch
"@atproto/oauth-provider": patch
"@atproto-labs/fetch-node": patch
"@atproto/xrpc-server": patch
"@atproto/identity": patch
"@atproto/dev-env": patch
"@atproto/lex-cli": patch
"@atproto/common": patch
"@atproto/crypto": patch
"@atproto/bsync": patch
"@atproto/ozone": patch
"@atproto/bsky": patch
"@atproto/repo": patch
"@atproto/sync": patch
"@atproto/aws": patch
"@atproto/pds": patch
---
Update NodeJS engine requirement to >=18.7.0

@ -0,0 +1,5 @@
---
"@atproto/oauth-types": patch
---
Support environments not providing URL.canParse

@ -1,24 +1,48 @@
{
"root": true,
// parse TypeScript files
// https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/parser
"parser": "@typescript-eslint/parser",
// configure eslint using options described at
// https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/eslint-plugin
"plugins": ["@typescript-eslint"],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/base",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended",
"prettier"
"plugin:import/recommended",
"plugin:import/typescript"
],
"plugins": ["n"],
"ignorePatterns": ["dist", "node_modules"],
"rules": {
"no-var": "error",
"prefer-const": "warn",
"no-misleading-character-class": "warn",
"eqeqeq": ["error", "always", { "null": "ignore" }],
"n/global-require": "error",
"n/no-extraneous-import": "error",
"n/prefer-node-protocol": "error",
"import/extensions": ["off", "ignorePackages"],
"import/export": "off",
"import/namespace": "off",
"import/no-deprecated": "error",
"import/no-absolute-path": "error",
"import/no-dynamic-require": "error",
"import/no-self-import": "error",
"import/order": [
"error",
{
"named": true,
"distinctGroup": true,
"alphabetize": { "order": "asc" },
"newlines-between": "never",
"groups": [
"builtin",
"external",
"internal",
"parent",
["index", "sibling"],
"object"
]
}
],
"@typescript-eslint/no-unused-vars": [
"warn",
{ "argsIgnorePattern": "^_", "varsIgnorePattern": "^_" }
@ -43,6 +67,33 @@
"rules": {
"@typescript-eslint/no-var-requires": "off"
}
},
{
"files": ["**/*.test.ts", "**/tests/**/*.ts"],
"rules": {
"n/no-extraneous-import": [
"error",
{ "allowModules": ["@atproto/dev-env"] }
]
}
}
]
],
"settings": {
"node": { "version": ">=18.7.0" },
"import/internal-regex": "^@atproto(?:-labs)?/",
"import/parsers": { "@typescript-eslint/parser": [".ts", ".tsx"] },
"import/resolver": {
"typescript": {
"project": [
"tsconfig.json",
"packages/oauth/*/tsconfig.json",
"packages/internal/*/tsconfig.json",
"packages/*/tsconfig.json"
]
},
"node": {
"extensions": [".js", ".jsx", ".json"]
}
}
}
}

2
.gitignore vendored

@ -5,12 +5,12 @@ yarn-error.log
packages/**/dist
.idea
packages/*/coverage
.vscode/
test.sqlite
.DS_Store
*.log
*.tsbuildinfo
.*.env
.env.*
.env
\#*\#
*~

@ -1,12 +1,8 @@
node_modules
interop-test-files
__snapshots__
dist
build
.nyc_output
coverage
pnpm-lock.yaml
.pnpm*
.changeset
*.d.ts
packages/bsky/src/data-plane/gen
CHANGELOG.md

@ -9,6 +9,13 @@
"options": {
"singleQuote": false
}
},
{
"files": [".eslintrc"],
"options": {
"parser": "json",
"trailingComma": "none"
}
}
]
}

6
.vscode/settings.json vendored Normal file

@ -0,0 +1,6 @@
{
"typescript.tsdk": "node_modules/typescript/lib",
"files.associations": {
"**/tsconfig/*.json": "jsonc"
}
}

@ -6,7 +6,7 @@
"license": "MIT",
"private": true,
"engines": {
"node": "18"
"node": ">=18.7.0"
},
"packageManager": "pnpm@8.15.9",
"scripts": {
@ -43,6 +43,9 @@
"dotenv": "^16.0.3",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-import-resolver-typescript": "^3.7.0",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-n": "^17.15.0",
"eslint-plugin-prettier": "^5.1.3",
"jest": "^28.1.2",
"node-gyp": "^9.3.1",

@ -1,9 +0,0 @@
import { BskyAgent } from '@atproto/api'
describe('Agent Benchmarks', () => {
it('Creates new Agent instance 10 times', () => {
for (let i = 0; i < 10; i++) {
new BskyAgent({ service: 'https://bsky.social' })
}
})
})

@ -1,12 +1,7 @@
import AwaitLock from 'await-lock'
import { TID } from '@atproto/common-web'
import { AtUri, ensureValidDid } from '@atproto/syntax'
import {
buildFetchHandler,
BuildFetchHandlerOptions,
FetchHandler,
XrpcClient,
} from '@atproto/xrpc'
import AwaitLock from 'await-lock'
import { FetchHandler, XrpcClient, buildFetchHandler } from '@atproto/xrpc'
import {
AppBskyActorDefs,
AppBskyActorProfile,
@ -38,14 +33,14 @@ import {
BskyThreadViewPreference,
} from './types'
import {
asDid,
Did,
asDid,
getSavedFeedType,
isDid,
sanitizeMutedWordValue,
savedFeedsToUriArrays,
validateSavedFeed,
validateNux,
validateSavedFeed,
} from './util'
const FEED_VIEW_PREF_DEFAULTS = {

@ -4,10 +4,10 @@ import { lexicons as internalLexicons } from './client/lexicons'
export { AtUri } from '@atproto/syntax'
export {
BlobRef,
jsonStringToLex,
jsonToLex,
lexToJson,
stringifyLex,
jsonToLex,
jsonStringToLex,
} from '@atproto/lexicon'
export { parseLanguage } from '@atproto/common-web'
export * from './types'
@ -22,7 +22,7 @@ export * from './rich-text/util'
export * from './moderation'
export * from './moderation/types'
export * from './mocker'
export { LABELS, DEFAULT_LABEL_SETTINGS } from './moderation/const/labels'
export { DEFAULT_LABEL_SETTINGS, LABELS } from './moderation/const/labels'
export { Agent } from './agent'
export { AtpAgent, type AtpAgentOptions } from './atp-agent'

@ -1,11 +1,11 @@
import {
ComAtprotoLabelDefs,
AppBskyFeedDefs,
AppBskyActorDefs,
AppBskyFeedPost,
AppBskyEmbedRecord,
AppBskyFeedDefs,
AppBskyFeedPost,
AppBskyGraphDefs,
AppBskyNotificationListNotifications,
ComAtprotoLabelDefs,
} from './client'
const FAKE_CID = 'bafyreiclp443lavogvhj3d2ob2cxbfuscni2k5jk7bebjzg7khl3esabwq'

@ -1,20 +1,20 @@
import { AppBskyGraphDefs } from '../client/index'
import { LABELS } from './const/labels'
import {
BLOCK_BEHAVIOR,
MUTE_BEHAVIOR,
MUTEWORD_BEHAVIOR,
CUSTOM_LABEL_VALUE_RE,
HIDE_BEHAVIOR,
NOOP_BEHAVIOR,
Label,
LabelPreference,
LabelTarget,
MUTEWORD_BEHAVIOR,
MUTE_BEHAVIOR,
ModerationBehavior,
ModerationCause,
ModerationOpts,
LabelTarget,
ModerationBehavior,
CUSTOM_LABEL_VALUE_RE,
NOOP_BEHAVIOR,
} from './types'
import { ModerationUI } from './ui'
import { LABELS } from './const/labels'
enum ModerationBehaviorSeverity {
High,

@ -1,18 +1,18 @@
import {
ModerationSubjectProfile,
ModerationSubjectPost,
ModerationSubjectNotification,
ModerationSubjectFeedGenerator,
ModerationSubjectUserList,
ModerationOpts,
} from './types'
import { ModerationDecision } from './decision'
import { decideAccount } from './subjects/account'
import { decideProfile } from './subjects/profile'
import { decideFeedGenerator } from './subjects/feed-generator'
import { decideNotification } from './subjects/notification'
import { decidePost } from './subjects/post'
import { decideFeedGenerator } from './subjects/feed-generator'
import { decideProfile } from './subjects/profile'
import { decideUserList } from './subjects/user-list'
import { ModerationDecision } from './decision'
import {
ModerationOpts,
ModerationSubjectFeedGenerator,
ModerationSubjectNotification,
ModerationSubjectPost,
ModerationSubjectProfile,
ModerationSubjectUserList,
} from './types'
export { ModerationUI } from './ui'
export { ModerationDecision } from './decision'

@ -1,5 +1,5 @@
import { ModerationDecision } from '../decision'
import { Label, ModerationSubjectProfile, ModerationOpts } from '../types'
import { Label, ModerationOpts, ModerationSubjectProfile } from '../types'
export function decideAccount(
subject: ModerationSubjectProfile,

@ -1,5 +1,5 @@
import { ModerationDecision } from '../decision'
import { ModerationSubjectFeedGenerator, ModerationOpts } from '../types'
import { ModerationOpts, ModerationSubjectFeedGenerator } from '../types'
import { decideAccount } from './account'
import { decideProfile } from './profile'

@ -1,5 +1,5 @@
import { ModerationDecision } from '../decision'
import { ModerationSubjectNotification, ModerationOpts } from '../types'
import { ModerationOpts, ModerationSubjectNotification } from '../types'
import { decideAccount } from './account'
import { decideProfile } from './profile'

@ -1,14 +1,14 @@
import { ModerationDecision } from '../decision'
import {
AppBskyFeedPost,
AppBskyActorDefs,
AppBskyEmbedExternal,
AppBskyEmbedImages,
AppBskyEmbedRecord,
AppBskyEmbedRecordWithMedia,
AppBskyEmbedExternal,
AppBskyActorDefs,
AppBskyFeedPost,
} from '../../client'
import { ModerationSubjectPost, ModerationOpts } from '../types'
import { ModerationDecision } from '../decision'
import { hasMutedWord } from '../mutewords'
import { ModerationOpts, ModerationSubjectPost } from '../types'
import { decideAccount } from './account'
import { decideProfile } from './profile'

@ -1,5 +1,5 @@
import { ModerationDecision } from '../decision'
import { Label, ModerationSubjectProfile, ModerationOpts } from '../types'
import { Label, ModerationOpts, ModerationSubjectProfile } from '../types'
export function decideProfile(
subject: ModerationSubjectProfile,

@ -1,7 +1,7 @@
import { AtUri } from '@atproto/syntax'
import { AppBskyActorDefs } from '../../client/index'
import { ModerationDecision } from '../decision'
import { ModerationSubjectUserList, ModerationOpts } from '../types'
import { ModerationOpts, ModerationSubjectUserList } from '../types'
import { decideAccount } from './account'
import { decideProfile } from './profile'

@ -1,8 +1,8 @@
import {
AppBskyActorDefs,
AppBskyFeedDefs,
AppBskyNotificationListNotifications,
AppBskyGraphDefs,
AppBskyNotificationListNotifications,
ComAtprotoLabelDefs,
} from '../client/index'
import { KnownLabelValue } from './const/labels'

@ -6,9 +6,9 @@ import {
} from '../client'
import {
InterpretedLabelValueDefinition,
ModerationBehavior,
LabelPreference,
LabelValueDefinitionFlag,
ModerationBehavior,
} from './types'
export function isQuotedPost(embed: unknown): embed is AppBskyEmbedRecord.View {

@ -2,10 +2,10 @@ import TLDs from 'tlds'
import { AppBskyRichtextFacet } from '../client'
import { UnicodeString } from './unicode'
import {
URL_REGEX,
MENTION_REGEX,
TAG_REGEX,
TRAILING_PUNCTUATION_REGEX,
URL_REGEX,
} from './util'
export type Facet = AppBskyRichtextFacet.Main

@ -92,9 +92,9 @@ F: 0 1 2 3 4 5 6 7 8 910 // string indices
*/
import { AppBskyFeedPost, AppBskyRichtextFacet, AtpBaseClient } from '../client'
import { UnicodeString } from './unicode'
import { sanitizeRichText } from './sanitization'
import { detectFacets } from './detection'
import { sanitizeRichText } from './sanitization'
import { UnicodeString } from './unicode'
export type Facet = AppBskyRichtextFacet.Main
export type FacetLink = AppBskyRichtextFacet.Link

@ -1,9 +1,8 @@
import { AtUri } from '@atproto/syntax'
import { z } from 'zod'
import { TID } from '@atproto/common-web'
import zod from 'zod'
import { Nux } from './client/types/app/bsky/actor/defs'
import { AtUri } from '@atproto/syntax'
import { AppBskyActorDefs } from './client'
import { Nux } from './client/types/app/bsky/actor/defs'
export function sanitizeMutedWordValue(value: string) {
return (
@ -97,12 +96,12 @@ export const asDid = (value: string): Did => {
throw new TypeError(`Invalid DID: ${value}`)
}
export const nuxSchema = zod
export const nuxSchema = z
.object({
id: zod.string().max(64),
completed: zod.boolean(),
data: zod.string().max(300).optional(),
expiresAt: zod.string().datetime().optional(),
id: z.string().max(64),
completed: z.boolean(),
data: z.string().max(300).optional(),
expiresAt: z.string().datetime().optional(),
})
.strict()

@ -1,5 +1,5 @@
import { TestNetworkNoAppView } from '@atproto/dev-env'
import { TID } from '@atproto/common-web'
import { TestNetworkNoAppView } from '@atproto/dev-env'
import {
AppBskyActorDefs,
AppBskyActorProfile,

@ -1,13 +1,13 @@
import assert from 'node:assert'
import { AddressInfo } from 'node:net'
import assert from 'assert'
import { getPdsEndpoint, isValidDidDoc } from '@atproto/common-web'
import { TestNetworkNoAppView } from '@atproto/dev-env'
import {
AtpAgent,
AtpSessionEvent,
AtpSessionData,
AtpSessionEvent,
BSKY_LABELER_DID,
} from '../src'
import { TestNetworkNoAppView } from '@atproto/dev-env'
import { getPdsEndpoint, isValidDidDoc } from '@atproto/common-web'
import { createHeaderEchoServer } from './util/echo-server'
const getPdsEndpointUrl = (...args: Parameters<typeof getPdsEndpoint>) => {

@ -1,5 +1,5 @@
import { AtpAgent, ComAtprotoServerCreateAccount } from '..'
import { TestNetworkNoAppView } from '@atproto/dev-env'
import { AtpAgent, ComAtprotoServerCreateAccount } from '..'
describe('errors', () => {
let network: TestNetworkNoAppView

@ -1,10 +1,10 @@
import { moderateProfile, moderatePost } from '../src'
import { moderatePost, moderateProfile } from '../src'
import {
ModerationBehaviorSuiteRunner,
SuiteUsers,
ModerationTestSuiteScenario,
SuiteConfigurations,
SuiteScenarios,
ModerationTestSuiteScenario,
SuiteUsers,
} from './util/moderation-behavior'
const USERS: SuiteUsers = {

@ -1,10 +1,10 @@
import {
moderateProfile,
moderatePost,
mock,
ModerationOpts,
InterpretedLabelValueDefinition,
ModerationOpts,
interpretLabelValueDefinition,
mock,
moderatePost,
moderateProfile,
} from '../src'
import './util/moderation-behavior'

@ -1,5 +1,4 @@
import { RichText, mock, moderatePost } from '../src/'
import { hasMutedWord } from '../src/moderation/mutewords'
describe(`hasMutedWord`, () => {

@ -1,9 +1,9 @@
import {
moderatePost,
mock,
ModerationOpts,
InterpretedLabelValueDefinition,
ModerationOpts,
interpretLabelValueDefinition,
mock,
moderatePost,
} from '../src'
import './util/moderation-behavior'

@ -1,11 +1,11 @@
import { ModerationOpts } from '../dist'
import {
moderateProfile,
moderatePost,
mock,
interpretLabelValueDefinition,
mock,
moderatePost,
moderateProfile,
} from '../src'
import './util/moderation-behavior'
import { ModerationOpts } from '../dist'
describe('Moderation', () => {
it('Applies self-labels on profiles according to the global preferences', () => {

@ -1,4 +1,4 @@
import { RichText, sanitizeRichText, Facet, UnicodeString } from '../src'
import { Facet, RichText, UnicodeString, sanitizeRichText } from '../src'
describe('sanitizeRichText: cleanNewlines', () => {
it('removes more than two consecutive new lines', () => {

@ -1,8 +1,8 @@
import {
ModerationUI,
ModerationOpts,
ComAtprotoLabelDefs,
LabelPreference,
ModerationOpts,
ModerationUI,
} from '../../src'
import { mock as m } from '../../src/mocker'

@ -18,6 +18,9 @@
"scripts": {
"build": "tsc --build tsconfig.build.json"
},
"engines": {
"node": ">=18.7.0"
},
"dependencies": {
"@atproto/common": "workspace:^",
"@atproto/crypto": "workspace:^",

@ -1,8 +1,8 @@
import * as aws from '@aws-sdk/client-kms'
import { secp256k1 as noble } from '@noble/curves/secp256k1'
import KeyEncoder from 'key-encoder'
import * as ui8 from 'uint8arrays'
import * as crypto from '@atproto/crypto'
import KeyEncoder from 'key-encoder'
const keyEncoder = new KeyEncoder('secp256k1')

@ -1,9 +1,9 @@
import stream from 'node:stream'
import * as aws from '@aws-sdk/client-s3'
import { Upload } from '@aws-sdk/lib-storage'
import { BlobStore, BlobNotFoundError } from '@atproto/repo'
import { randomStr } from '@atproto/crypto'
import { CID } from 'multiformats/cid'
import stream from 'stream'
import { randomStr } from '@atproto/crypto'
import { BlobNotFoundError, BlobStore } from '@atproto/repo'
export type S3Config = { bucket: string; uploadTimeoutMs?: number } & Omit<
aws.S3ClientConfig,

@ -1,7 +1,7 @@
#!/usr/bin/env ts-node
import * as fs from 'fs/promises'
import * as path from 'path'
import * as fs from 'node:fs/promises'
import * as path from 'node:path'
export async function main() {
const now = new Date()

@ -26,6 +26,9 @@
"migration:create": "ts-node ./bin/migration-create.ts",
"buf:gen": "buf generate ../bsync/proto && buf generate ./proto"
},
"engines": {
"node": ">=18.7.0"
},
"dependencies": {
"@atproto-labs/fetch-node": "workspace:*",
"@atproto-labs/xrpc-utils": "workspace:*",

@ -1,15 +1,15 @@
import { InvalidRequestError } from '@atproto/xrpc-server'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/actor/getProfile'
import AppContext from '../../../../context'
import { resHeaders } from '../../../util'
import { createPipeline, noRules } from '../../../../pipeline'
import { AppContext } from '../../../../context'
import {
HydrateCtx,
HydrationState,
Hydrator,
} from '../../../../hydration/hydrator'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/actor/getProfile'
import { createPipeline, noRules } from '../../../../pipeline'
import { Views } from '../../../../views'
import { resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {
const getProfile = createPipeline(skeleton, hydration, noRules, presentation)

@ -1,16 +1,16 @@
import { mapDefined } from '@atproto/common'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/actor/getProfiles'
import AppContext from '../../../../context'
import { resHeaders } from '../../../util'
import { createPipeline, noRules } from '../../../../pipeline'
import { AppContext } from '../../../../context'
import {
HydrateCtx,
HydrationState,
Hydrator,
} from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { Server } from '../../../../lexicon'
import { ids } from '../../../../lexicon/lexicons'
import { QueryParams } from '../../../../lexicon/types/app/bsky/actor/getProfiles'
import { createPipeline, noRules } from '../../../../pipeline'
import { Views } from '../../../../views'
import { resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {
const getProfile = createPipeline(skeleton, hydration, noRules, presentation)

@ -1,18 +1,18 @@
import { mapDefined, noUndefinedVals } from '@atproto/common'
import { AtpAgent } from '@atproto/api'
import { mapDefined, noUndefinedVals } from '@atproto/common'
import { HeadersMap } from '@atproto/xrpc'
import AppContext from '../../../../context'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/actor/getSuggestions'
import { createPipeline } from '../../../../pipeline'
import { AppContext } from '../../../../context'
import { DataPlaneClient } from '../../../../data-plane'
import {
HydrateCtx,
HydrationState,
Hydrator,
} from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { DataPlaneClient } from '../../../../data-plane'
import { parseString } from '../../../../hydration/util'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/actor/getSuggestions'
import { createPipeline } from '../../../../pipeline'
import { Views } from '../../../../views'
import { resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {

@ -1,7 +1,10 @@
import AppContext from '../../../../context'
import { Server } from '../../../../lexicon'
import { mapDefined } from '@atproto/common'
import { AtpAgent } from '@atproto/api'
import { mapDefined } from '@atproto/common'
import { AppContext } from '../../../../context'
import { DataPlaneClient } from '../../../../data-plane'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { parseString } from '../../../../hydration/util'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/actor/searchActors'
import {
HydrationFnInput,
@ -10,10 +13,7 @@ import {
SkeletonFnInput,
createPipeline,
} from '../../../../pipeline'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { DataPlaneClient } from '../../../../data-plane'
import { parseString } from '../../../../hydration/util'
import { resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {

@ -1,7 +1,10 @@
import AppContext from '../../../../context'
import { Server } from '../../../../lexicon'
import { AtpAgent } from '@atproto/api'
import { mapDefined } from '@atproto/common'
import { AppContext } from '../../../../context'
import { DataPlaneClient } from '../../../../data-plane'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { parseString } from '../../../../hydration/util'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/actor/searchActorsTypeahead'
import {
HydrationFnInput,
@ -10,10 +13,7 @@ import {
SkeletonFnInput,
createPipeline,
} from '../../../../pipeline'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { DataPlaneClient } from '../../../../data-plane'
import { parseString } from '../../../../hydration/util'
import { resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {

@ -1,17 +1,17 @@
import { InvalidRequestError } from '@atproto/xrpc-server'
import { mapDefined } from '@atproto/common'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getActorFeeds'
import AppContext from '../../../../context'
import { createPipeline, noRules } from '../../../../pipeline'
import { InvalidRequestError } from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import { DataPlaneClient } from '../../../../data-plane'
import {
HydrateCtx,
HydrationState,
Hydrator,
} from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { DataPlaneClient } from '../../../../data-plane'
import { parseString } from '../../../../hydration/util'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getActorFeeds'
import { createPipeline, noRules } from '../../../../pipeline'
import { Views } from '../../../../views'
import { clearlyBadCursor, resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {

@ -1,20 +1,20 @@
import { InvalidRequestError } from '@atproto/xrpc-server'
import { mapDefined } from '@atproto/common'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getActorLikes'
import AppContext from '../../../../context'
import { clearlyBadCursor, resHeaders } from '../../../util'
import { createPipeline } from '../../../../pipeline'
import { InvalidRequestError } from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import { DataPlaneClient } from '../../../../data-plane'
import { FeedItem } from '../../../../hydration/feed'
import {
HydrateCtx,
HydrationState,
Hydrator,
} from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { DataPlaneClient } from '../../../../data-plane'
import { parseString } from '../../../../hydration/util'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getActorLikes'
import { createPipeline } from '../../../../pipeline'
import { uriToDid as creatorFromUri } from '../../../../util/uris'
import { FeedItem } from '../../../../hydration/feed'
import { Views } from '../../../../views'
import { clearlyBadCursor, resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {
const getActorLikes = createPipeline(

@ -1,23 +1,23 @@
import { mapDefined } from '@atproto/common'
import { InvalidRequestError } from '@atproto/xrpc-server'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getAuthorFeed'
import AppContext from '../../../../context'
import { clearlyBadCursor, resHeaders } from '../../../util'
import { createPipeline } from '../../../../pipeline'
import { AppContext } from '../../../../context'
import { DataPlaneClient } from '../../../../data-plane'
import { Actor } from '../../../../hydration/actor'
import { FeedItem, Post } from '../../../../hydration/feed'
import {
HydrateCtx,
HydrationState,
Hydrator,
mergeStates,
} from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { DataPlaneClient } from '../../../../data-plane'
import { parseString } from '../../../../hydration/util'
import { safePinnedPost, uriToDid } from '../../../../util/uris'
import { Actor } from '../../../../hydration/actor'
import { FeedItem, Post } from '../../../../hydration/feed'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getAuthorFeed'
import { createPipeline } from '../../../../pipeline'
import { FeedType } from '../../../../proto/bsky_pb'
import { safePinnedPost, uriToDid } from '../../../../util/uris'
import { Views } from '../../../../views'
import { clearlyBadCursor, resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {
const getAuthorFeed = createPipeline(

@ -1,17 +1,25 @@
import { mapDefined } from '@atproto/common'
import { AppBskyFeedGetFeedSkeleton, AtpAgent } from '@atproto/api'
import { mapDefined, noUndefinedVals } from '@atproto/common'
import { ResponseType, XRPCError } from '@atproto/xrpc'
import {
InvalidRequestError,
UpstreamFailureError,
ServerTimer,
UpstreamFailureError,
serverTimingHeader,
} from '@atproto/xrpc-server'
import { ResponseType, XRPCError } from '@atproto/xrpc'
import { AtpAgent, AppBskyFeedGetFeedSkeleton } from '@atproto/api'
import { noUndefinedVals } from '@atproto/common'
import { AppContext } from '../../../../context'
import {
Code,
getServiceEndpoint,
isDataplaneError,
unpackIdentityServices,
} from '../../../../data-plane'
import { FeedItem } from '../../../../hydration/feed'
import { HydrateCtx } from '../../../../hydration/hydrator'
import { Server } from '../../../../lexicon'
import { ids } from '../../../../lexicon/lexicons'
import { QueryParams as GetFeedParams } from '../../../../lexicon/types/app/bsky/feed/getFeed'
import { OutputSchema as SkeletonOutput } from '../../../../lexicon/types/app/bsky/feed/getFeedSkeleton'
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
import {
HydrationFnInput,
PresentationFnInput,
@ -19,17 +27,8 @@ import {
SkeletonFnInput,
createPipeline,
} from '../../../../pipeline'
import { HydrateCtx } from '../../../../hydration/hydrator'
import { FeedItem } from '../../../../hydration/feed'
import { GetIdentityByDidResponse } from '../../../../proto/bsky_pb'
import {
Code,
getServiceEndpoint,
isDataplaneError,
unpackIdentityServices,
} from '../../../../data-plane'
import { BSKY_USER_AGENT, resHeaders } from '../../../util'
import { ids } from '../../../../lexicon/lexicons'
export default function (server: Server, ctx: AppContext) {
const getFeed = createPipeline(

@ -1,13 +1,13 @@
import { InvalidRequestError } from '@atproto/xrpc-server'
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
import { GetIdentityByDidResponse } from '../../../../proto/bsky_pb'
import { AppContext } from '../../../../context'
import {
Code,
getServiceEndpoint,
isDataplaneError,
unpackIdentityServices,
} from '../../../../data-plane'
import { Server } from '../../../../lexicon'
import { GetIdentityByDidResponse } from '../../../../proto/bsky_pb'
import { resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {

@ -1,13 +1,13 @@
import { mapDefined } from '@atproto/common'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getFeedGenerators'
import AppContext from '../../../../context'
import { createPipeline, noRules } from '../../../../pipeline'
import { AppContext } from '../../../../context'
import {
HydrateCtx,
HydrationState,
Hydrator,
} from '../../../../hydration/hydrator'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getFeedGenerators'
import { createPipeline, noRules } from '../../../../pipeline'
import { Views } from '../../../../views'
import { resHeaders } from '../../../util'

@ -1,20 +1,19 @@
import { mapDefined } from '@atproto/common'
import { normalizeDatetimeAlways } from '@atproto/syntax'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getLikes'
import AppContext from '../../../../context'
import { createPipeline, RulesFnInput } from '../../../../pipeline'
import { InvalidRequestError } from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import {
HydrateCtx,
HydrationState,
Hydrator,
mergeStates,
} from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { parseString } from '../../../../hydration/util'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getLikes'
import { RulesFnInput, createPipeline } from '../../../../pipeline'
import { uriToDid as creatorFromUri } from '../../../../util/uris'
import { Views } from '../../../../views'
import { clearlyBadCursor, resHeaders } from '../../../util'
import { InvalidRequestError } from '@atproto/xrpc-server'
export default function (server: Server, ctx: AppContext) {
const getLikes = createPipeline(skeleton, hydration, noBlocks, presentation)

@ -1,20 +1,20 @@
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getListFeed'
import AppContext from '../../../../context'
import { clearlyBadCursor, resHeaders } from '../../../util'
import { createPipeline } from '../../../../pipeline'
import { mapDefined } from '@atproto/common'
import { AppContext } from '../../../../context'
import { DataPlaneClient } from '../../../../data-plane'
import { FeedItem } from '../../../../hydration/feed'
import {
HydrateCtx,
HydrationState,
Hydrator,
mergeStates,
} from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { DataPlaneClient } from '../../../../data-plane'
import { mapDefined } from '@atproto/common'
import { parseString } from '../../../../hydration/util'
import { FeedItem } from '../../../../hydration/feed'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getListFeed'
import { createPipeline } from '../../../../pipeline'
import { uriToDid } from '../../../../util/uris'
import { Views } from '../../../../views'
import { clearlyBadCursor, resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {
const getListFeed = createPipeline(

@ -1,12 +1,14 @@
import { InvalidRequestError } from '@atproto/xrpc-server'
import { ServerConfig } from '../../../../config'
import { AppContext } from '../../../../context'
import { Code, DataPlaneClient, isDataplaneError } from '../../../../data-plane'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Server } from '../../../../lexicon'
import { isNotFoundPost } from '../../../../lexicon/types/app/bsky/feed/defs'
import {
QueryParams,
OutputSchema,
QueryParams,
} from '../../../../lexicon/types/app/bsky/feed/getPostThread'
import AppContext from '../../../../context'
import { ATPROTO_REPO_REV, resHeaders } from '../../../util'
import {
HydrationFnInput,
PresentationFnInput,
@ -14,11 +16,9 @@ import {
createPipeline,
noRules,
} from '../../../../pipeline'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { DataPlaneClient, isDataplaneError, Code } from '../../../../data-plane'
import { postUriToThreadgateUri } from '../../../../util/uris'
import { ServerConfig } from '../../../../config'
import { Views } from '../../../../views'
import { ATPROTO_REPO_REV, resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {
const getPostThread = createPipeline(

@ -1,17 +1,17 @@
import { dedupeStrs, mapDefined } from '@atproto/common'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getPosts'
import AppContext from '../../../../context'
import { createPipeline } from '../../../../pipeline'
import { AppContext } from '../../../../context'
import {
HydrateCtx,
HydrationState,
Hydrator,
} from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { uriToDid as creatorFromUri } from '../../../../util/uris'
import { resHeaders } from '../../../util'
import { Server } from '../../../../lexicon'
import { ids } from '../../../../lexicon/lexicons'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getPosts'
import { createPipeline } from '../../../../pipeline'
import { uriToDid as creatorFromUri } from '../../../../util/uris'
import { Views } from '../../../../views'
import { resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {
const getPosts = createPipeline(skeleton, hydration, noBlocks, presentation)

@ -1,17 +1,17 @@
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
import { createPipeline } from '../../../../pipeline'
import { clearlyBadCursor, resHeaders } from '../../../util'
import { mapDefined } from '@atproto/common'
import { AppContext } from '../../../../context'
import {
HydrateCtx,
HydrationState,
Hydrator,
} from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { mapDefined } from '@atproto/common'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getQuotes'
import { parseString } from '../../../../hydration/util'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getQuotes'
import { createPipeline } from '../../../../pipeline'
import { uriToDid } from '../../../../util/uris'
import { Views } from '../../../../views'
import { clearlyBadCursor, resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {
const getQuotes = createPipeline(

@ -1,16 +1,16 @@
import { mapDefined } from '@atproto/common'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getRepostedBy'
import AppContext from '../../../../context'
import { createPipeline } from '../../../../pipeline'
import { AppContext } from '../../../../context'
import {
HydrateCtx,
HydrationState,
Hydrator,
} from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { parseString } from '../../../../hydration/util'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getRepostedBy'
import { createPipeline } from '../../../../pipeline'
import { uriToDid as creatorFromUri } from '../../../../util/uris'
import { Views } from '../../../../views'
import { clearlyBadCursor, resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {

@ -1,7 +1,7 @@
import { mapDefined } from '@atproto/common'
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
import { AppContext } from '../../../../context'
import { parseString } from '../../../../hydration/util'
import { Server } from '../../../../lexicon'
import { resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {

@ -1,18 +1,18 @@
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getTimeline'
import { clearlyBadCursor, resHeaders } from '../../../util'
import { createPipeline } from '../../../../pipeline'
import { mapDefined } from '@atproto/common'
import { AppContext } from '../../../../context'
import { DataPlaneClient } from '../../../../data-plane'
import { FeedItem } from '../../../../hydration/feed'
import {
HydrateCtx,
HydrationState,
Hydrator,
} from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { DataPlaneClient } from '../../../../data-plane'
import { parseString } from '../../../../hydration/util'
import { mapDefined } from '@atproto/common'
import { FeedItem } from '../../../../hydration/feed'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/getTimeline'
import { createPipeline } from '../../../../pipeline'
import { Views } from '../../../../views'
import { clearlyBadCursor, resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {
const getTimeline = createPipeline(

@ -1,7 +1,10 @@
import AppContext from '../../../../context'
import { Server } from '../../../../lexicon'
import { AtpAgent } from '@atproto/api'
import { mapDefined } from '@atproto/common'
import { AppContext } from '../../../../context'
import { DataPlaneClient } from '../../../../data-plane'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { parseString } from '../../../../hydration/util'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/feed/searchPosts'
import {
HydrationFnInput,
@ -10,11 +13,8 @@ import {
SkeletonFnInput,
createPipeline,
} from '../../../../pipeline'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { DataPlaneClient } from '../../../../data-plane'
import { parseString } from '../../../../hydration/util'
import { uriToDid as creatorFromUri } from '../../../../util/uris'
import { Views } from '../../../../views'
import { resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {

@ -1,20 +1,20 @@
import { mapDefined } from '@atproto/common'
import { InvalidRequestError } from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import { DataPlaneClient } from '../../../../data-plane'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { parseString } from '../../../../hydration/util'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/graph/getActorStarterPacks'
import AppContext from '../../../../context'
import {
createPipeline,
HydrationFnInput,
noRules,
PresentationFnInput,
SkeletonFnInput,
createPipeline,
noRules,
} from '../../../../pipeline'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { resHeaders } from '../../../util'
import { DataPlaneClient } from '../../../../data-plane'
import { parseString } from '../../../../hydration/util'
import { mapDefined } from '@atproto/common'
export default function (server: Server, ctx: AppContext) {
const getActorStarterPacks = createPipeline(

@ -1,15 +1,15 @@
import { mapDefined } from '@atproto/common'
import { AppContext } from '../../../../context'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/graph/getBlocks'
import AppContext from '../../../../context'
import {
createPipeline,
HydrationFnInput,
noRules,
PresentationFnInput,
SkeletonFnInput,
createPipeline,
noRules,
} from '../../../../pipeline'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { clearlyBadCursor, resHeaders } from '../../../util'

@ -1,8 +1,13 @@
import { mapDefined } from '@atproto/common'
import { InvalidRequestError } from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import {
HydrateCtx,
Hydrator,
mergeStates,
} from '../../../../hydration/hydrator'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/graph/getFollowers'
import AppContext from '../../../../context'
import {
HydrationFnInput,
PresentationFnInput,
@ -11,11 +16,6 @@ import {
createPipeline,
} from '../../../../pipeline'
import { uriToDid as didFromUri } from '../../../../util/uris'
import {
HydrateCtx,
Hydrator,
mergeStates,
} from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { clearlyBadCursor, resHeaders } from '../../../util'

@ -1,8 +1,13 @@
import { mapDefined } from '@atproto/common'
import { InvalidRequestError } from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import {
HydrateCtx,
Hydrator,
mergeStates,
} from '../../../../hydration/hydrator'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/graph/getFollowers'
import AppContext from '../../../../context'
import {
HydrationFnInput,
PresentationFnInput,
@ -10,11 +15,6 @@ import {
SkeletonFnInput,
createPipeline,
} from '../../../../pipeline'
import {
HydrateCtx,
Hydrator,
mergeStates,
} from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { clearlyBadCursor, resHeaders } from '../../../util'

@ -1,8 +1,9 @@
import { mapDefined } from '@atproto/common'
import { InvalidRequestError } from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/graph/getKnownFollowers'
import AppContext from '../../../../context'
import {
HydrationFnInput,
PresentationFnInput,
@ -10,7 +11,6 @@ import {
SkeletonFnInput,
createPipeline,
} from '../../../../pipeline'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { clearlyBadCursor, resHeaders } from '../../../util'

@ -1,25 +1,25 @@
import { mapDefined } from '@atproto/common'
import { InvalidRequestError } from '@atproto/xrpc-server'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/graph/getList'
import AppContext from '../../../../context'
import {
createPipeline,
HydrationFnInput,
PresentationFnInput,
RulesFnInput,
SkeletonFnInput,
} from '../../../../pipeline'
import { AppContext } from '../../../../context'
import {
HydrateCtx,
HydrationState,
Hydrator,
mergeManyStates,
} from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { clearlyBadCursor, resHeaders } from '../../../util'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/graph/getList'
import {
HydrationFnInput,
PresentationFnInput,
RulesFnInput,
SkeletonFnInput,
createPipeline,
} from '../../../../pipeline'
import { ListItemInfo } from '../../../../proto/bsky_pb'
import { uriToDid as didFromUri } from '../../../../util/uris'
import { Views } from '../../../../views'
import { clearlyBadCursor, resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {
const getList = createPipeline(skeleton, hydration, noBlocks, presentation)

@ -1,15 +1,15 @@
import { mapDefined } from '@atproto/common'
import { AppContext } from '../../../../context'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/graph/getListBlocks'
import AppContext from '../../../../context'
import {
createPipeline,
HydrationFnInput,
noRules,
PresentationFnInput,
SkeletonFnInput,
createPipeline,
noRules,
} from '../../../../pipeline'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { clearlyBadCursor, resHeaders } from '../../../util'

@ -1,15 +1,15 @@
import { mapDefined } from '@atproto/common'
import { AppContext } from '../../../../context'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/graph/getListBlocks'
import AppContext from '../../../../context'
import {
createPipeline,
HydrationFnInput,
noRules,
PresentationFnInput,
SkeletonFnInput,
createPipeline,
noRules,
} from '../../../../pipeline'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { clearlyBadCursor, resHeaders } from '../../../util'

@ -1,17 +1,17 @@
import { mapDefined } from '@atproto/common'
import { InvalidRequestError } from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/graph/getLists'
import { REFERENCELIST } from '../../../../lexicon/types/app/bsky/graph/defs'
import AppContext from '../../../../context'
import { QueryParams } from '../../../../lexicon/types/app/bsky/graph/getLists'
import {
createPipeline,
HydrationFnInput,
PresentationFnInput,
RulesFnInput,
SkeletonFnInput,
createPipeline,
} from '../../../../pipeline'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { clearlyBadCursor, resHeaders } from '../../../util'

@ -1,9 +1,8 @@
import { mapDefined } from '@atproto/common'
import { AppContext } from '../../../../context'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/graph/getMutes'
import AppContext from '../../../../context'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import {
HydrationFnInput,
PresentationFnInput,
@ -11,6 +10,7 @@ import {
createPipeline,
noRules,
} from '../../../../pipeline'
import { Views } from '../../../../views'
import { clearlyBadCursor, resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {

@ -1,5 +1,5 @@
import { AppContext } from '../../../../context'
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
export default function (server: Server, ctx: AppContext) {
server.app.bsky.graph.getRelationships({

@ -1,15 +1,15 @@
import { InvalidRequestError } from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/graph/getStarterPack'
import AppContext from '../../../../context'
import {
createPipeline,
HydrationFnInput,
noRules,
PresentationFnInput,
SkeletonFnInput,
createPipeline,
noRules,
} from '../../../../pipeline'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { resHeaders } from '../../../util'

@ -1,15 +1,15 @@
import { dedupeStrs, mapDefined } from '@atproto/common'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/graph/getStarterPacks'
import AppContext from '../../../../context'
import { resHeaders } from '../../../util'
import { createPipeline, noRules } from '../../../../pipeline'
import { AppContext } from '../../../../context'
import {
HydrateCtx,
HydrationState,
Hydrator,
} from '../../../../hydration/hydrator'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/graph/getStarterPacks'
import { createPipeline, noRules } from '../../../../pipeline'
import { Views } from '../../../../views'
import { resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {
const getStarterPacks = createPipeline(

@ -1,10 +1,11 @@
import { AtpAgent } from '@atproto/api'
import { mapDefined, noUndefinedVals } from '@atproto/common'
import { InvalidRequestError } from '@atproto/xrpc-server'
import AtpAgent from '@atproto/api'
import { HeadersMap } from '@atproto/xrpc'
import { InvalidRequestError } from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/graph/getSuggestedFollowsByActor'
import AppContext from '../../../../context'
import {
HydrationFnInput,
PresentationFnInput,
@ -12,7 +13,6 @@ import {
SkeletonFnInput,
createPipeline,
} from '../../../../pipeline'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { resHeaders } from '../../../util'

@ -1,6 +1,6 @@
import { InvalidRequestError } from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
import { MuteOperation_Type } from '../../../../proto/bsync_pb'
export default function (server: Server, ctx: AppContext) {

@ -1,5 +1,5 @@
import { AppContext } from '../../../../context'
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
import { MuteOperation_Type } from '../../../../proto/bsync_pb'
export default function (server: Server, ctx: AppContext) {

@ -1,5 +1,5 @@
import { AppContext } from '../../../../context'
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
import { MuteOperation_Type } from '../../../../proto/bsync_pb'
export default function (server: Server, ctx: AppContext) {

@ -1,7 +1,10 @@
import AppContext from '../../../../context'
import { Server } from '../../../../lexicon'
import { AtpAgent } from '@atproto/api'
import { mapDefined } from '@atproto/common'
import { AtpAgent, AtUri } from '@atproto/api'
import { AppContext } from '../../../../context'
import { DataPlaneClient } from '../../../../data-plane'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { parseString } from '../../../../hydration/util'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/graph/searchStarterPacks'
import {
HydrationFnInput,
@ -10,12 +13,9 @@ import {
SkeletonFnInput,
createPipeline,
} from '../../../../pipeline'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { DataPlaneClient } from '../../../../data-plane'
import { parseString } from '../../../../hydration/util'
import { resHeaders } from '../../../util'
import { uriToDid as creatorFromUri } from '../../../../util/uris'
import { Views } from '../../../../views'
import { resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {
const searchStarterPacks = createPipeline(

@ -1,6 +1,6 @@
import { InvalidRequestError } from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
import { MuteOperation_Type } from '../../../../proto/bsync_pb'
export default function (server: Server, ctx: AppContext) {

@ -1,5 +1,5 @@
import { AppContext } from '../../../../context'
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
import { MuteOperation_Type } from '../../../../proto/bsync_pb'
export default function (server: Server, ctx: AppContext) {

@ -1,5 +1,5 @@
import { AppContext } from '../../../../context'
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
import { MuteOperation_Type } from '../../../../proto/bsync_pb'
export default function (server: Server, ctx: AppContext) {

@ -1,6 +1,6 @@
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
import { mapDefined } from '@atproto/common'
import { AppContext } from '../../../../context'
import { Server } from '../../../../lexicon'
import { resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {

@ -1,7 +1,8 @@
import { InvalidRequestError } from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import { Hydrator } from '../../../../hydration/hydrator'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/notification/getUnreadCount'
import AppContext from '../../../../context'
import {
HydrationFnInput,
PresentationFnInput,
@ -9,7 +10,6 @@ import {
createPipeline,
noRules,
} from '../../../../pipeline'
import { Hydrator } from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
export default function (server: Server, ctx: AppContext) {

@ -1,20 +1,20 @@
import { InvalidRequestError } from '@atproto/xrpc-server'
import { mapDefined } from '@atproto/common'
import { InvalidRequestError } from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Server } from '../../../../lexicon'
import { QueryParams } from '../../../../lexicon/types/app/bsky/notification/listNotifications'
import { isRecord as isPostRecord } from '../../../../lexicon/types/app/bsky/feed/post'
import AppContext from '../../../../context'
import { QueryParams } from '../../../../lexicon/types/app/bsky/notification/listNotifications'
import {
createPipeline,
HydrationFnInput,
PresentationFnInput,
RulesFnInput,
SkeletonFnInput,
createPipeline,
} from '../../../../pipeline'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { Notification } from '../../../../proto/bsky_pb'
import { uriToDid as didFromUri } from '../../../../util/uris'
import { Views } from '../../../../views'
import { clearlyBadCursor, resHeaders } from '../../../util'
export default function (server: Server, ctx: AppContext) {

@ -1,5 +1,5 @@
import { AppContext } from '../../../../context'
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
export default function (server: Server, ctx: AppContext) {
server.app.bsky.notification.putPreferences({

@ -2,8 +2,8 @@ import {
InvalidRequestError,
MethodNotImplementedError,
} from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
import { AppPlatform } from '../../../../proto/courier_pb'
export default function (server: Server, ctx: AppContext) {

@ -1,7 +1,7 @@
import murmur from 'murmurhash'
import { Struct, Timestamp } from '@bufbuild/protobuf'
import { v3 as murmurV3 } from 'murmurhash'
import { AppContext } from '../../../../context'
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
export default function (server: Server, ctx: AppContext) {
server.app.bsky.notification.updateSeen({
@ -45,5 +45,5 @@ function getNotifId(viewer: string, seenAt: Date) {
const key = ['mark-read-generic', viewer, seenAt.getTime().toString()].join(
'::',
)
return murmur.v3(key).toString(16)
return murmurV3(key).toString(16)
}

@ -1,5 +1,5 @@
import { AppContext } from '../../../../context'
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
// THIS IS A TEMPORARY UNSPECCED ROUTE
export default function (server: Server, ctx: AppContext) {

@ -1,7 +1,7 @@
import { mapDefined } from '@atproto/common'
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
import { AppContext } from '../../../../context'
import { parseString } from '../../../../hydration/util'
import { Server } from '../../../../lexicon'
import { clearlyBadCursor, resHeaders } from '../../../util'
// THIS IS A TEMPORARY UNSPECCED ROUTE

@ -1,5 +1,5 @@
import { AppContext } from '../../../../context'
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
// THIS IS A TEMPORARY UNSPECCED ROUTE
export default function (server: Server, ctx: AppContext) {

@ -1,19 +1,19 @@
import AtpAgent from '@atproto/api'
import { noUndefinedVals } from '@atproto/common'
import AppContext from '../../../../context'
import { InternalServerError } from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Server } from '../../../../lexicon'
import { TrendingTopic } from '../../../../lexicon/types/app/bsky/unspecced/defs'
import { QueryParams } from '../../../../lexicon/types/app/bsky/unspecced/getTrendingTopics'
import {
createPipeline,
HydrationFnInput,
PresentationFnInput,
RulesFnInput,
SkeletonFnInput,
createPipeline,
} from '../../../../pipeline'
import { HydrateCtx, Hydrator } from '../../../../hydration/hydrator'
import { Views } from '../../../../views'
import { QueryParams } from '../../../../lexicon/types/app/bsky/unspecced/getTrendingTopics'
import AtpAgent from '@atproto/api'
import { TrendingTopic } from '../../../../lexicon/types/app/bsky/unspecced/defs'
import { InternalServerError } from '@atproto/xrpc-server'
export default function (server: Server, ctx: AppContext) {
const getTrendingTopics = createPipeline(

@ -1,6 +1,5 @@
import { isUnicastIp, unicastLookup } from '@atproto-labs/fetch-node'
import { Agent, Dispatcher, Pool, RetryAgent } from 'undici'
import { isUnicastIp, unicastLookup } from '@atproto-labs/fetch-node'
import { ServerConfig } from '../config'
import { RETRYABLE_HTTP_STATUS_CODES } from '../util/retry'

@ -1,23 +1,22 @@
import { Duplex, Transform, Writable } from 'node:stream'
import { pipeline } from 'node:stream/promises'
import createError, { isHttpError } from 'http-errors'
import { CID } from 'multiformats/cid'
import { Dispatcher } from 'undici'
import {
VerifyCidError,
VerifyCidTransform,
createDecoders,
} from '@atproto/common'
import { AtprotoDid, isAtprotoDid } from '@atproto/did'
import {
ACCEPT_ENCODING_COMPRESSED,
ACCEPT_ENCODING_UNCOMPRESSED,
buildProxiedContentEncoding,
formatAcceptHeader,
} from '@atproto-labs/xrpc-utils'
import {
createDecoders,
VerifyCidError,
VerifyCidTransform,
} from '@atproto/common'
import { AtprotoDid, isAtprotoDid } from '@atproto/did'
import createError, { isHttpError } from 'http-errors'
import { CID } from 'multiformats/cid'
import { Duplex, Transform, Writable } from 'node:stream'
import { pipeline } from 'node:stream/promises'
import { Dispatcher } from 'undici'
import { ServerConfig } from '../config'
import AppContext from '../context'
import { AppContext } from '../context'
import {
Code,
DataPlaneClient,

@ -1,7 +1,7 @@
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
import { mapDefined } from '@atproto/common'
import { INVALID_HANDLE } from '@atproto/syntax'
import { AppContext } from '../../../../context'
import { Server } from '../../../../lexicon'
export default function (server: Server, ctx: AppContext) {
server.com.atproto.admin.getAccountInfos({

@ -1,6 +1,6 @@
import { InvalidRequestError } from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
import { OutputSchema } from '../../../../lexicon/types/com/atproto/admin/getSubjectStatus'
export default function (server: Server, ctx: AppContext) {

@ -1,10 +1,10 @@
import { Timestamp } from '@bufbuild/protobuf'
import { AuthRequiredError, InvalidRequestError } from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
import {
isRepoRef,
isRepoBlobRef,
isRepoRef,
} from '../../../../lexicon/types/com/atproto/admin/defs'
import { isMain as isStrongRef } from '../../../../lexicon/types/com/atproto/repo/strongRef'

@ -1,7 +1,7 @@
import { InvalidRequestError } from '@atproto/xrpc-server'
import * as ident from '@atproto/syntax'
import { InvalidRequestError } from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
export default function (server: Server, ctx: AppContext) {
server.com.atproto.identity.resolveHandle(async ({ req, params }) => {

@ -1,6 +1,6 @@
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
import { InvalidRequestError } from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import { Server } from '../../../../lexicon'
export default function (server: Server, ctx: AppContext) {
server.com.atproto.label.queryLabels(async ({ params }) => {

@ -1,7 +1,7 @@
import { InvalidRequestError } from '@atproto/xrpc-server'
import { AtUri } from '@atproto/syntax'
import { InvalidRequestError } from '@atproto/xrpc-server'
import { AppContext } from '../../../../context'
import { Server } from '../../../../lexicon'
import AppContext from '../../../../context'
export default function (server: Server, ctx: AppContext) {
server.com.atproto.repo.getRecord({

Some files were not shown because too many files have changed in this diff Show More