@atproto/pds 0.4.168 → 0.4.170

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.
Files changed (35) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/api/com/atproto/repo/applyWrites.d.ts.map +1 -1
  3. package/dist/api/com/atproto/repo/applyWrites.js +14 -4
  4. package/dist/api/com/atproto/repo/applyWrites.js.map +1 -1
  5. package/dist/api/com/atproto/repo/createRecord.d.ts.map +1 -1
  6. package/dist/api/com/atproto/repo/createRecord.js +16 -15
  7. package/dist/api/com/atproto/repo/createRecord.js.map +1 -1
  8. package/dist/api/com/atproto/repo/deleteRecord.d.ts.map +1 -1
  9. package/dist/api/com/atproto/repo/deleteRecord.js +16 -15
  10. package/dist/api/com/atproto/repo/deleteRecord.js.map +1 -1
  11. package/dist/api/com/atproto/repo/putRecord.d.ts.map +1 -1
  12. package/dist/api/com/atproto/repo/putRecord.js +16 -6
  13. package/dist/api/com/atproto/repo/putRecord.js.map +1 -1
  14. package/dist/auth-verifier.d.ts +8 -1
  15. package/dist/auth-verifier.d.ts.map +1 -1
  16. package/dist/auth-verifier.js +25 -16
  17. package/dist/auth-verifier.js.map +1 -1
  18. package/dist/lexicon/lexicons.d.ts +8 -0
  19. package/dist/lexicon/lexicons.d.ts.map +1 -1
  20. package/dist/lexicon/lexicons.js +4 -0
  21. package/dist/lexicon/lexicons.js.map +1 -1
  22. package/dist/lexicon/types/tools/ozone/moderation/queryEvents.d.ts +2 -0
  23. package/dist/lexicon/types/tools/ozone/moderation/queryEvents.d.ts.map +1 -1
  24. package/dist/scripts/sequencer-recovery/recoverer.js +1 -1
  25. package/dist/scripts/sequencer-recovery/recoverer.js.map +1 -1
  26. package/package.json +12 -12
  27. package/src/api/com/atproto/repo/applyWrites.ts +17 -4
  28. package/src/api/com/atproto/repo/createRecord.ts +19 -15
  29. package/src/api/com/atproto/repo/deleteRecord.ts +19 -16
  30. package/src/api/com/atproto/repo/putRecord.ts +19 -7
  31. package/src/auth-verifier.ts +36 -22
  32. package/src/lexicon/lexicons.ts +5 -0
  33. package/src/lexicon/types/tools/ozone/moderation/queryEvents.ts +2 -0
  34. package/src/scripts/sequencer-recovery/recoverer.ts +1 -1
  35. package/tests/crud.test.ts +12 -0
@@ -33,6 +33,8 @@ export type QueryParams = {
33
33
  policies?: string[];
34
34
  /** If specified, only events where the modTool name matches any of the given values are returned */
35
35
  modTool?: string[];
36
+ /** If specified, only events where the batchId matches the given value are returned */
37
+ batchId?: string;
36
38
  /** If specified, only events where the age assurance state matches the given value are returned */
37
39
  ageAssuranceState?: 'pending' | 'assured' | 'unknown' | 'reset' | 'blocked' | (string & {});
38
40
  cursor?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"queryEvents.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/moderation/queryEvents.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,KAAK,wBAAwB,MAAM,WAAW,CAAA;AAM1D,MAAM,MAAM,WAAW,GAAG;IACxB,wKAAwK;IACxK,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2FAA2F;IAC3F,aAAa,EAAE,KAAK,GAAG,MAAM,CAAA;IAC7B,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,uDAAuD;IACvD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iKAAiK;IACjK,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,4PAA4P;IAC5P,WAAW,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IAClD,iJAAiJ;IACjJ,qBAAqB,EAAE,OAAO,CAAA;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,sDAAsD;IACtD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,6JAA6J;IAC7J,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,oGAAoG;IACpG,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,mGAAmG;IACnG,iBAAiB,CAAC,EACd,SAAS,GACT,SAAS,GACT,SAAS,GACT,OAAO,GACP,SAAS,GACT,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AACD,MAAM,MAAM,WAAW,GAAG,SAAS,CAAA;AAEnC,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,wBAAwB,CAAC,YAAY,EAAE,CAAA;CAChD;AAED,MAAM,MAAM,YAAY,GAAG,IAAI,CAAA;AAE/B,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,IAAI,EAAE,YAAY,CAAA;IAClB,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,CAAA"}
1
+ {"version":3,"file":"queryEvents.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/moderation/queryEvents.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,KAAK,wBAAwB,MAAM,WAAW,CAAA;AAM1D,MAAM,MAAM,WAAW,GAAG;IACxB,wKAAwK;IACxK,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2FAA2F;IAC3F,aAAa,EAAE,KAAK,GAAG,MAAM,CAAA;IAC7B,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,uDAAuD;IACvD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iKAAiK;IACjK,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,4PAA4P;IAC5P,WAAW,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IAClD,iJAAiJ;IACjJ,qBAAqB,EAAE,OAAO,CAAA;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,sDAAsD;IACtD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,6JAA6J;IAC7J,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,oGAAoG;IACpG,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mGAAmG;IACnG,iBAAiB,CAAC,EACd,SAAS,GACT,SAAS,GACT,SAAS,GACT,OAAO,GACP,SAAS,GACT,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AACD,MAAM,MAAM,WAAW,GAAG,SAAS,CAAA;AAEnC,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,wBAAwB,CAAC,YAAY,EAAE,CAAA;CAChD;AAED,MAAM,MAAM,YAAY,GAAG,IAAI,CAAA;AAE/B,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,IAAI,EAAE,YAAY,CAAA;IAClB,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,CAAA"}
@@ -184,7 +184,7 @@ const trackNewAccount = async (recoveryDb, did) => {
184
184
  };
185
185
  const parseCommitEvt = async (evt) => {
186
186
  const did = evt.repo;
187
- const evtCar = await (0, repo_1.readCar)(evt.blocks);
187
+ const evtCar = await (0, repo_1.readCar)(evt.blocks, { skipCidVerification: true });
188
188
  const writesUnfiltered = await Promise.all(evt.ops.map(async (op) => {
189
189
  const { collection, rkey } = (0, repo_1.parseDataKey)(op.path);
190
190
  if (op.action === 'delete') {
@@ -1 +1 @@
1
- {"version":3,"file":"recoverer.js","sourceRoot":"","sources":["../../../src/scripts/sequencer-recovery/recoverer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recoverer.js","sourceRoot":"","sources":["../../../src/scripts/sequencer-recovery/recoverer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/pds",
3
- "version": "0.4.168",
3
+ "version": "0.4.170",
4
4
  "license": "MIT",
5
5
  "description": "Reference implementation of atproto Personal Data Server (PDS)",
6
6
  "keywords": [
@@ -48,19 +48,19 @@
48
48
  "undici": "^6.19.8",
49
49
  "zod": "^3.23.8",
50
50
  "@atproto-labs/fetch-node": "0.1.9",
51
- "@atproto/api": "^0.16.2",
52
- "@atproto/aws": "^0.2.25",
51
+ "@atproto-labs/xrpc-utils": "0.0.19",
52
+ "@atproto/api": "^0.16.3",
53
+ "@atproto/aws": "^0.2.26",
53
54
  "@atproto/common": "^0.4.11",
54
- "@atproto-labs/xrpc-utils": "0.0.18",
55
55
  "@atproto/crypto": "^0.4.4",
56
56
  "@atproto/identity": "^0.4.8",
57
- "@atproto/lexicon": "^0.4.12",
57
+ "@atproto/lexicon": "^0.4.13",
58
58
  "@atproto/oauth-scopes": "^0.0.2",
59
59
  "@atproto/oauth-provider": "^0.10.2",
60
- "@atproto/repo": "^0.8.5",
60
+ "@atproto/repo": "^0.8.6",
61
61
  "@atproto/syntax": "^0.4.0",
62
- "@atproto/xrpc": "^0.7.1",
63
- "@atproto/xrpc-server": "^0.9.1"
62
+ "@atproto/xrpc": "^0.7.2",
63
+ "@atproto/xrpc-server": "^0.9.2"
64
64
  },
65
65
  "devDependencies": {
66
66
  "@atproto/pds-entryway": "npm:@atproto/pds@0.3.0-entryway.3",
@@ -78,10 +78,10 @@
78
78
  "ts-node": "^10.8.2",
79
79
  "typescript": "^5.6.3",
80
80
  "ws": "^8.12.0",
81
- "@atproto/api": "^0.16.2",
82
- "@atproto/bsky": "^0.0.177",
83
- "@atproto/dev-env": "^0.3.163",
84
- "@atproto/lex-cli": "^0.9.1",
81
+ "@atproto/api": "^0.16.3",
82
+ "@atproto/bsky": "^0.0.178",
83
+ "@atproto/dev-env": "^0.3.165",
84
+ "@atproto/lex-cli": "^0.9.2",
85
85
  "@atproto/oauth-client-browser-example": "0.0.5"
86
86
  },
87
87
  "scripts": {
@@ -39,8 +39,15 @@ const ratelimitPoints = ({ input }: { input: HandlerInput }) => {
39
39
  export default function (server: Server, ctx: AppContext) {
40
40
  server.com.atproto.repo.applyWrites({
41
41
  auth: ctx.authVerifier.authorization({
42
- checkTakedown: true,
43
- checkDeactivated: true,
42
+ // @NOTE the "checkTakedown" and "checkDeactivated" checks are typically
43
+ // performed during auth. However, since this method's "repo" parameter
44
+ // can be a handle, we will need to fetch the account again to ensure that
45
+ // the handle matches the DID from the request's credentials. In order to
46
+ // avoid fetching the account twice (during auth, and then again in the
47
+ // controller), the checks are disabled here:
48
+
49
+ // checkTakedown: true,
50
+ // checkDeactivated: true,
44
51
  authorize: () => {
45
52
  // Performed in the handler as it is based on the request body
46
53
  },
@@ -62,10 +69,16 @@ export default function (server: Server, ctx: AppContext) {
62
69
  handler: async ({ input, auth }) => {
63
70
  const { repo, validate, swapCommit, writes } = input.body
64
71
 
65
- const { did } = auth.credentials
66
- if (repo !== did) {
72
+ const account = await ctx.authVerifier.findAccount(repo, {
73
+ checkDeactivated: true,
74
+ checkTakedown: true,
75
+ })
76
+
77
+ const did = account.did
78
+ if (did !== auth.credentials.did) {
67
79
  throw new AuthRequiredError()
68
80
  }
81
+
69
82
  if (writes.length > 200) {
70
83
  throw new InvalidRequestError('Too many writes. Max: 200')
71
84
  }
@@ -15,8 +15,15 @@ import {
15
15
  export default function (server: Server, ctx: AppContext) {
16
16
  server.com.atproto.repo.createRecord({
17
17
  auth: ctx.authVerifier.authorization({
18
- checkTakedown: true,
19
- checkDeactivated: true,
18
+ // @NOTE the "checkTakedown" and "checkDeactivated" checks are typically
19
+ // performed during auth. However, since this method's "repo" parameter
20
+ // can be a handle, we will need to fetch the account again to ensure that
21
+ // the handle matches the DID from the request's credentials. In order to
22
+ // avoid fetching the account twice (during auth, and then again in the
23
+ // controller), the checks are disabled here:
24
+
25
+ // checkTakedown: true,
26
+ // checkDeactivated: true,
20
27
  authorize: () => {
21
28
  // Performed in the handler as it requires the request body
22
29
  },
@@ -37,6 +44,16 @@ export default function (server: Server, ctx: AppContext) {
37
44
  const { repo, collection, rkey, record, swapCommit, validate } =
38
45
  input.body
39
46
 
47
+ const account = await ctx.authVerifier.findAccount(repo, {
48
+ checkDeactivated: true,
49
+ checkTakedown: true,
50
+ })
51
+
52
+ const did = account.did
53
+ if (did !== auth.credentials.did) {
54
+ throw new AuthRequiredError()
55
+ }
56
+
40
57
  if (auth.credentials.type === 'oauth') {
41
58
  auth.credentials.permissions.assertRepo({
42
59
  action: 'create',
@@ -44,19 +61,6 @@ export default function (server: Server, ctx: AppContext) {
44
61
  })
45
62
  }
46
63
 
47
- const account = await ctx.accountManager.getAccount(repo, {
48
- includeDeactivated: true,
49
- })
50
-
51
- if (!account) {
52
- throw new InvalidRequestError(`Could not find repo: ${repo}`)
53
- } else if (account.deactivatedAt) {
54
- throw new InvalidRequestError('Account is deactivated')
55
- }
56
- const did = account.did
57
- if (did !== auth.credentials.did) {
58
- throw new AuthRequiredError()
59
- }
60
64
  const swapCommitCid = swapCommit ? CID.parse(swapCommit) : undefined
61
65
 
62
66
  let write: PreparedCreate
@@ -12,8 +12,15 @@ import {
12
12
  export default function (server: Server, ctx: AppContext) {
13
13
  server.com.atproto.repo.deleteRecord({
14
14
  auth: ctx.authVerifier.authorization({
15
- checkTakedown: true,
16
- checkDeactivated: true,
15
+ // @NOTE the "checkTakedown" and "checkDeactivated" checks are typically
16
+ // performed during auth. However, since this method's "repo" parameter
17
+ // can be a handle, we will need to fetch the account again to ensure that
18
+ // the handle matches the DID from the request's credentials. In order to
19
+ // avoid fetching the account twice (during auth, and then again in the
20
+ // controller), the checks are disabled here:
21
+
22
+ // checkTakedown: true,
23
+ // checkDeactivated: true,
17
24
  authorize: () => {
18
25
  // Performed in the handler as it requires the request body
19
26
  },
@@ -33,6 +40,16 @@ export default function (server: Server, ctx: AppContext) {
33
40
  handler: async ({ input, auth }) => {
34
41
  const { repo, collection, rkey, swapCommit, swapRecord } = input.body
35
42
 
43
+ const account = await ctx.authVerifier.findAccount(repo, {
44
+ checkDeactivated: true,
45
+ checkTakedown: true,
46
+ })
47
+
48
+ const did = account.did
49
+ if (did !== auth.credentials.did) {
50
+ throw new AuthRequiredError()
51
+ }
52
+
36
53
  // We can't compute permissions based on the request payload ("input") in
37
54
  // the 'auth' phase, so we do it here.
38
55
  if (auth.credentials.type === 'oauth') {
@@ -42,20 +59,6 @@ export default function (server: Server, ctx: AppContext) {
42
59
  })
43
60
  }
44
61
 
45
- const account = await ctx.accountManager.getAccount(repo, {
46
- includeDeactivated: true,
47
- })
48
-
49
- if (!account) {
50
- throw new InvalidRequestError(`Could not find repo: ${repo}`)
51
- } else if (account.deactivatedAt) {
52
- throw new InvalidRequestError('Account is deactivated')
53
- }
54
- const did = account.did
55
- if (did !== auth.credentials.did) {
56
- throw new AuthRequiredError()
57
- }
58
-
59
62
  const swapCommitCid = swapCommit ? CID.parse(swapCommit) : undefined
60
63
  const swapRecordCid = swapRecord ? CID.parse(swapRecord) : undefined
61
64
 
@@ -21,8 +21,15 @@ import {
21
21
  export default function (server: Server, ctx: AppContext) {
22
22
  server.com.atproto.repo.putRecord({
23
23
  auth: ctx.authVerifier.authorization({
24
- checkTakedown: true,
25
- checkDeactivated: true,
24
+ // @NOTE the "checkTakedown" and "checkDeactivated" checks are typically
25
+ // performed during auth. However, since this method's "repo" parameter
26
+ // can be a handle, we will need to fetch the account again to ensure that
27
+ // the handle matches the DID from the request's credentials. In order to
28
+ // avoid fetching the account twice (during auth, and then again in the
29
+ // controller), the checks are disabled here:
30
+
31
+ // checkTakedown: true,
32
+ // checkDeactivated: true,
26
33
  authorize: () => {
27
34
  // Performed in the handler as it requires the request body
28
35
  },
@@ -50,6 +57,16 @@ export default function (server: Server, ctx: AppContext) {
50
57
  swapRecord,
51
58
  } = input.body
52
59
 
60
+ const account = await ctx.authVerifier.findAccount(repo, {
61
+ checkDeactivated: true,
62
+ checkTakedown: true,
63
+ })
64
+
65
+ const did = account.did
66
+ if (did !== auth.credentials.did) {
67
+ throw new AuthRequiredError()
68
+ }
69
+
53
70
  // We can't compute permissions based on the request payload ("input") in
54
71
  // the 'auth' phase, so we do it here.
55
72
  if (auth.credentials.type === 'oauth') {
@@ -63,11 +80,6 @@ export default function (server: Server, ctx: AppContext) {
63
80
  })
64
81
  }
65
82
 
66
- const { did } = auth.credentials
67
- if (did !== repo) {
68
- throw new AuthRequiredError()
69
- }
70
-
71
83
  const uri = AtUri.make(did, collection, rkey)
72
84
  const swapCommitCid = swapCommit ? CID.parse(swapCommit) : undefined
73
85
  const swapRecordCid =
@@ -24,6 +24,7 @@ import {
24
24
  verifyJwt as verifyServiceJwt,
25
25
  } from '@atproto/xrpc-server'
26
26
  import { AccountManager } from './account-manager/account-manager'
27
+ import { ActorAccount } from './account-manager/helpers/account'
27
28
  import {
28
29
  AccessOutput,
29
30
  AdminTokenOutput,
@@ -424,30 +425,43 @@ export class AuthVerifier {
424
425
 
425
426
  protected async verifyStatus(
426
427
  did: string,
427
- { checkTakedown = false, checkDeactivated = false }: VerifiedOptions,
428
+ options: VerifiedOptions,
428
429
  ): Promise<void> {
429
- if (checkTakedown || checkDeactivated) {
430
- const found = await this.accountManager.getAccount(did, {
431
- includeDeactivated: true,
432
- includeTakenDown: true,
433
- })
434
- if (!found) {
435
- // will be turned into ExpiredToken for the client if proxied by entryway
436
- throw new ForbiddenError('Account not found', 'AccountNotFound')
437
- }
438
- if (checkTakedown && softDeleted(found)) {
439
- throw new AuthRequiredError(
440
- 'Account has been taken down',
441
- 'AccountTakedown',
442
- )
443
- }
444
- if (checkDeactivated && found.deactivatedAt) {
445
- throw new AuthRequiredError(
446
- 'Account is deactivated',
447
- 'AccountDeactivated',
448
- )
449
- }
430
+ if (options.checkDeactivated || options.checkTakedown) {
431
+ await this.findAccount(did, options)
432
+ }
433
+ }
434
+
435
+ /**
436
+ * Finds an account by its handle or DID, returning possibly deactivated or
437
+ * taken down accounts (unless `options.checkDeactivated` or
438
+ * `options.checkTakedown` are set to true, respectively).
439
+ */
440
+ public async findAccount(
441
+ handleOrDid: string,
442
+ options: VerifiedOptions,
443
+ ): Promise<ActorAccount> {
444
+ const account = await this.accountManager.getAccount(handleOrDid, {
445
+ includeDeactivated: true,
446
+ includeTakenDown: true,
447
+ })
448
+ if (!account) {
449
+ // will be turned into ExpiredToken for the client if proxied by entryway
450
+ throw new ForbiddenError('Account not found', 'AccountNotFound')
451
+ }
452
+ if (options.checkTakedown && softDeleted(account)) {
453
+ throw new AuthRequiredError(
454
+ 'Account has been taken down',
455
+ 'AccountTakedown',
456
+ )
457
+ }
458
+ if (options.checkDeactivated && account.deactivatedAt) {
459
+ throw new AuthRequiredError(
460
+ 'Account is deactivated',
461
+ 'AccountDeactivated',
462
+ )
450
463
  }
464
+ return account
451
465
  }
452
466
 
453
467
  /**
@@ -15760,6 +15760,11 @@ export const schemaDict = {
15760
15760
  description:
15761
15761
  'If specified, only events where the modTool name matches any of the given values are returned',
15762
15762
  },
15763
+ batchId: {
15764
+ type: 'string',
15765
+ description:
15766
+ 'If specified, only events where the batchId matches the given value are returned',
15767
+ },
15763
15768
  ageAssuranceState: {
15764
15769
  type: 'string',
15765
15770
  description:
@@ -49,6 +49,8 @@ export type QueryParams = {
49
49
  policies?: string[]
50
50
  /** If specified, only events where the modTool name matches any of the given values are returned */
51
51
  modTool?: string[]
52
+ /** If specified, only events where the batchId matches the given value are returned */
53
+ batchId?: string
52
54
  /** If specified, only events where the age assurance state matches the given value are returned */
53
55
  ageAssuranceState?:
54
56
  | 'pending'
@@ -238,7 +238,7 @@ const parseCommitEvt = async (
238
238
  blocks: BlockMap
239
239
  }> => {
240
240
  const did = evt.repo
241
- const evtCar = await readCar(evt.blocks)
241
+ const evtCar = await readCar(evt.blocks, { skipCidVerification: true })
242
242
  const writesUnfiltered = await Promise.all(
243
243
  evt.ops.map(async (op) => {
244
244
  const { collection, rkey } = parseDataKey(op.path)
@@ -455,6 +455,18 @@ describe('crud operations', () => {
455
455
  })
456
456
  })
457
457
 
458
+ it('still works if repo is specified by handle', async () => {
459
+ await bobAgent.api.com.atproto.repo.putRecord({
460
+ repo: 'bob.test',
461
+ collection: ids.AppBskyGraphFollow,
462
+ rkey: TID.nextStr(),
463
+ record: {
464
+ subject: aliceAgent.accountDid,
465
+ createdAt: new Date().toISOString(),
466
+ },
467
+ })
468
+ })
469
+
458
470
  it('does not produce commit on no-op update', async () => {
459
471
  const { repo } = bobAgent.api.com.atproto
460
472
  const rootRes1 = await bobAgent.api.com.atproto.sync.getLatestCommit({