@atproto/ozone 0.1.43 → 0.1.45

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 (51) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/api/moderation/emitEvent.d.ts.map +1 -1
  3. package/dist/api/moderation/emitEvent.js +3 -0
  4. package/dist/api/moderation/emitEvent.js.map +1 -1
  5. package/dist/api/moderation/queryStatuses.d.ts.map +1 -1
  6. package/dist/api/moderation/queryStatuses.js +2 -1
  7. package/dist/api/moderation/queryStatuses.js.map +1 -1
  8. package/dist/api/util.d.ts.map +1 -1
  9. package/dist/api/util.js +11 -7
  10. package/dist/api/util.js.map +1 -1
  11. package/dist/db/migrations/20240904T205730722Z-add-subject-did-index.d.ts +4 -0
  12. package/dist/db/migrations/20240904T205730722Z-add-subject-did-index.d.ts.map +1 -0
  13. package/dist/db/migrations/20240904T205730722Z-add-subject-did-index.js +16 -0
  14. package/dist/db/migrations/20240904T205730722Z-add-subject-did-index.js.map +1 -0
  15. package/dist/db/migrations/index.d.ts +1 -0
  16. package/dist/db/migrations/index.d.ts.map +1 -1
  17. package/dist/db/migrations/index.js +2 -1
  18. package/dist/db/migrations/index.js.map +1 -1
  19. package/dist/lexicon/lexicons.d.ts +44 -0
  20. package/dist/lexicon/lexicons.d.ts.map +1 -1
  21. package/dist/lexicon/lexicons.js +44 -0
  22. package/dist/lexicon/lexicons.js.map +1 -1
  23. package/dist/lexicon/types/app/bsky/actor/defs.d.ts +14 -0
  24. package/dist/lexicon/types/app/bsky/actor/defs.d.ts.map +1 -1
  25. package/dist/lexicon/types/app/bsky/actor/defs.js +9 -1
  26. package/dist/lexicon/types/app/bsky/actor/defs.js.map +1 -1
  27. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +2 -0
  28. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts.map +1 -1
  29. package/dist/lexicon/types/tools/ozone/moderation/defs.js.map +1 -1
  30. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.d.ts +3 -0
  31. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.d.ts.map +1 -1
  32. package/dist/mod-service/index.d.ts +3 -1
  33. package/dist/mod-service/index.d.ts.map +1 -1
  34. package/dist/mod-service/index.js +59 -22
  35. package/dist/mod-service/index.js.map +1 -1
  36. package/dist/mod-service/views.d.ts.map +1 -1
  37. package/dist/mod-service/views.js +7 -0
  38. package/dist/mod-service/views.js.map +1 -1
  39. package/package.json +6 -6
  40. package/src/api/moderation/emitEvent.ts +4 -0
  41. package/src/api/moderation/queryStatuses.ts +2 -0
  42. package/src/api/util.ts +23 -7
  43. package/src/db/migrations/20240904T205730722Z-add-subject-did-index.ts +13 -0
  44. package/src/db/migrations/index.ts +1 -0
  45. package/src/lexicon/lexicons.ts +48 -0
  46. package/src/lexicon/types/app/bsky/actor/defs.ts +23 -0
  47. package/src/lexicon/types/tools/ozone/moderation/defs.ts +2 -0
  48. package/src/lexicon/types/tools/ozone/moderation/queryStatuses.ts +3 -0
  49. package/src/mod-service/index.ts +78 -22
  50. package/src/mod-service/views.ts +10 -0
  51. package/tests/ack-all-subjects-of-account.test.ts +131 -0
@@ -1 +1 @@
1
- {"version":3,"file":"views.js","sourceRoot":"","sources":["../../src/mod-service/views.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"views.js","sourceRoot":"","sources":["../../src/mod-service/views.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/ozone",
3
- "version": "0.1.43",
3
+ "version": "0.1.45",
4
4
  "license": "MIT",
5
5
  "description": "Backend service for moderating the Bluesky network.",
6
6
  "keywords": [
@@ -32,14 +32,14 @@
32
32
  "structured-headers": "^1.0.1",
33
33
  "typed-emitter": "^2.1.0",
34
34
  "uint8arrays": "3.0.0",
35
- "@atproto/api": "^0.13.6",
36
- "@atproto/common": "^0.4.1",
35
+ "@atproto/api": "^0.13.7",
36
+ "@atproto/common": "^0.4.2",
37
37
  "@atproto/crypto": "^0.4.1",
38
38
  "@atproto/identity": "^0.4.1",
39
39
  "@atproto/lexicon": "^0.4.1",
40
40
  "@atproto/syntax": "^0.3.0",
41
- "@atproto/xrpc": "^0.6.1",
42
- "@atproto/xrpc-server": "^0.6.3"
41
+ "@atproto/xrpc": "^0.6.2",
42
+ "@atproto/xrpc-server": "^0.6.4"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@did-plc/server": "^0.0.1",
@@ -52,7 +52,7 @@
52
52
  "jest": "^28.1.2",
53
53
  "ts-node": "^10.8.2",
54
54
  "@atproto/lex-cli": "^0.5.0",
55
- "@atproto/pds": "^0.4.57"
55
+ "@atproto/pds": "^0.4.59"
56
56
  },
57
57
  "scripts": {
58
58
  "codegen": "lex gen-server --yes ./src/lexicon ../../lexicons/com/atproto/*/* ../../lexicons/app/bsky/*/* ../../lexicons/chat/bsky/*/* ../../lexicons/tools/ozone/*/*",
@@ -162,6 +162,10 @@ const handleModerationEvent = async ({
162
162
  }
163
163
  }
164
164
 
165
+ if (isTakedownEvent && result.event.meta?.acknowledgeAccountSubjects) {
166
+ await moderationTxn.resolveSubjectsForAccount(subject.did, createdBy)
167
+ }
168
+
165
169
  if (isLabelEvent) {
166
170
  await moderationTxn.formatAndCreateLabels(
167
171
  result.event.subjectUri ?? result.event.subjectDid,
@@ -7,6 +7,7 @@ export default function (server: Server, ctx: AppContext) {
7
7
  auth: ctx.authVerifier.modOrAdminToken,
8
8
  handler: async ({ params }) => {
9
9
  const {
10
+ includeAllUserRecords,
10
11
  subject,
11
12
  takendown,
12
13
  appealed,
@@ -30,6 +31,7 @@ export default function (server: Server, ctx: AppContext) {
30
31
  const modService = ctx.modService(db)
31
32
  const results = await modService.getSubjectStatuses({
32
33
  reviewState: getReviewState(reviewState),
34
+ includeAllUserRecords,
33
35
  subject,
34
36
  takendown,
35
37
  appealed,
package/src/api/util.ts CHANGED
@@ -50,15 +50,31 @@ export const addAccountInfoToRepoViewDetail = (
50
50
  includeEmail = false,
51
51
  ): RepoViewDetail => {
52
52
  if (!accountInfo) return repoView
53
+ const {
54
+ email,
55
+ deactivatedAt,
56
+ emailConfirmedAt,
57
+ inviteNote,
58
+ invitedBy,
59
+ invites,
60
+ invitesDisabled,
61
+ // pick some duplicate/unwanted details out
62
+ did: _did,
63
+ handle: _handle,
64
+ indexedAt: _indexedAt,
65
+ relatedRecords: _relatedRecords,
66
+ ...otherAccountInfo
67
+ } = accountInfo
53
68
  return {
69
+ ...otherAccountInfo,
54
70
  ...repoView,
55
- email: includeEmail ? accountInfo.email : undefined,
56
- invitedBy: accountInfo.invitedBy,
57
- invitesDisabled: accountInfo.invitesDisabled,
58
- inviteNote: accountInfo.inviteNote,
59
- invites: accountInfo.invites,
60
- emailConfirmedAt: accountInfo.emailConfirmedAt,
61
- deactivatedAt: accountInfo.deactivatedAt,
71
+ email: includeEmail ? email : undefined,
72
+ invitedBy,
73
+ invitesDisabled,
74
+ inviteNote,
75
+ invites,
76
+ emailConfirmedAt,
77
+ deactivatedAt,
62
78
  }
63
79
  }
64
80
 
@@ -0,0 +1,13 @@
1
+ import { Kysely } from 'kysely'
2
+
3
+ export async function up(db: Kysely<unknown>): Promise<void> {
4
+ await db.schema
5
+ .createIndex('moderation_event_subject_did_idx')
6
+ .on('moderation_event')
7
+ .column('subjectDid')
8
+ .execute()
9
+ }
10
+
11
+ export async function down(db: Kysely<unknown>): Promise<void> {
12
+ await db.schema.dropIndex('moderation_event_subject_did_idx').execute()
13
+ }
@@ -12,3 +12,4 @@ export * as _20240506T225055595Z from './20240506T225055595Z-message-subject'
12
12
  export * as _20240430T211332580Z from './20240521T211332580Z-member'
13
13
  export * as _20240814T003647759Z from './20240814T003647759Z-event-created-at-index'
14
14
  export * as _20240903T205730722Z from './20240903T205730722Z-add-template-lang'
15
+ export * as _20240904T205730722Z from './20240904T205730722Z-add-subject-did-index'
@@ -4572,6 +4572,15 @@ export const schemaDict = {
4572
4572
  maxLength: 100,
4573
4573
  },
4574
4574
  },
4575
+ nuxs: {
4576
+ description: 'Storage for NUXs the user has encountered.',
4577
+ type: 'array',
4578
+ maxLength: 100,
4579
+ items: {
4580
+ type: 'ref',
4581
+ ref: 'lex:app.bsky.actor.defs#nux',
4582
+ },
4583
+ },
4575
4584
  },
4576
4585
  },
4577
4586
  bskyAppProgressGuide: {
@@ -4586,6 +4595,34 @@ export const schemaDict = {
4586
4595
  },
4587
4596
  },
4588
4597
  },
4598
+ nux: {
4599
+ type: 'object',
4600
+ description: 'A new user experiences (NUX) storage object',
4601
+ required: ['id', 'completed'],
4602
+ properties: {
4603
+ id: {
4604
+ type: 'string',
4605
+ maxLength: 100,
4606
+ },
4607
+ completed: {
4608
+ type: 'boolean',
4609
+ default: false,
4610
+ },
4611
+ data: {
4612
+ description:
4613
+ 'Arbitrary data for the NUX. The structure is defined by the NUX itself. Limited to 300 characters.',
4614
+ type: 'string',
4615
+ maxLength: 3000,
4616
+ maxGraphemes: 300,
4617
+ },
4618
+ expiresAt: {
4619
+ type: 'string',
4620
+ format: 'datetime',
4621
+ description:
4622
+ 'The date and time at which the NUX will expire and should be considered completed.',
4623
+ },
4624
+ },
4625
+ },
4589
4626
  },
4590
4627
  },
4591
4628
  AppBskyActorGetPreferences: {
@@ -10920,6 +10957,11 @@ export const schemaDict = {
10920
10957
  description:
10921
10958
  'Indicates how long the takedown should be in effect before automatically expiring.',
10922
10959
  },
10960
+ acknowledgeAccountSubjects: {
10961
+ type: 'boolean',
10962
+ description:
10963
+ 'If true, all other reports on content authored by this account will be resolved (acknowledged).',
10964
+ },
10923
10965
  },
10924
10966
  },
10925
10967
  modEventReverseTakedown: {
@@ -11731,9 +11773,15 @@ export const schemaDict = {
11731
11773
  parameters: {
11732
11774
  type: 'params',
11733
11775
  properties: {
11776
+ includeAllUserRecords: {
11777
+ type: 'boolean',
11778
+ description:
11779
+ "All subjects belonging to the account specified in the 'subject' param will be returned.",
11780
+ },
11734
11781
  subject: {
11735
11782
  type: 'string',
11736
11783
  format: 'uri',
11784
+ description: 'The subject to get the status for.',
11737
11785
  },
11738
11786
  comment: {
11739
11787
  type: 'string',
@@ -469,6 +469,8 @@ export interface BskyAppStatePref {
469
469
  activeProgressGuide?: BskyAppProgressGuide
470
470
  /** An array of tokens which identify nudges (modals, popups, tours, highlight dots) that should be shown to the user. */
471
471
  queuedNudges?: string[]
472
+ /** Storage for NUXs the user has encountered. */
473
+ nuxs?: Nux[]
472
474
  [k: string]: unknown
473
475
  }
474
476
 
@@ -501,3 +503,24 @@ export function isBskyAppProgressGuide(v: unknown): v is BskyAppProgressGuide {
501
503
  export function validateBskyAppProgressGuide(v: unknown): ValidationResult {
502
504
  return lexicons.validate('app.bsky.actor.defs#bskyAppProgressGuide', v)
503
505
  }
506
+
507
+ /** A new user experiences (NUX) storage object */
508
+ export interface Nux {
509
+ id: string
510
+ completed: boolean
511
+ /** Arbitrary data for the NUX. The structure is defined by the NUX itself. Limited to 300 characters. */
512
+ data?: string
513
+ /** The date and time at which the NUX will expire and should be considered completed. */
514
+ expiresAt?: string
515
+ [k: string]: unknown
516
+ }
517
+
518
+ export function isNux(v: unknown): v is Nux {
519
+ return (
520
+ isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.actor.defs#nux'
521
+ )
522
+ }
523
+
524
+ export function validateNux(v: unknown): ValidationResult {
525
+ return lexicons.validate('app.bsky.actor.defs#nux', v)
526
+ }
@@ -162,6 +162,8 @@ export interface ModEventTakedown {
162
162
  comment?: string
163
163
  /** Indicates how long the takedown should be in effect before automatically expiring. */
164
164
  durationInHours?: number
165
+ /** If true, all other reports on content authored by this account will be resolved (acknowledged). */
166
+ acknowledgeAccountSubjects?: boolean
165
167
  [k: string]: unknown
166
168
  }
167
169
 
@@ -10,6 +10,9 @@ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server'
10
10
  import * as ToolsOzoneModerationDefs from './defs'
11
11
 
12
12
  export interface QueryParams {
13
+ /** All subjects belonging to the account specified in the 'subject' param will be returned. */
14
+ includeAllUserRecords?: boolean
15
+ /** The subject to get the status for. */
13
16
  subject?: string
14
17
  /** Search subjects by keyword from comments */
15
18
  comment?: string
@@ -3,7 +3,7 @@ import { Insertable, sql } from 'kysely'
3
3
  import { CID } from 'multiformats/cid'
4
4
  import { AtUri, INVALID_HANDLE } from '@atproto/syntax'
5
5
  import { InvalidRequestError } from '@atproto/xrpc-server'
6
- import { addHoursToDate } from '@atproto/common'
6
+ import { addHoursToDate, chunkArray } from '@atproto/common'
7
7
  import { Keypair } from '@atproto/crypto'
8
8
  import { IdResolver } from '@atproto/identity'
9
9
  import { AtpAgent } from '@atproto/api'
@@ -18,6 +18,8 @@ import {
18
18
  isModEventTakedown,
19
19
  isModEventEmail,
20
20
  isModEventTag,
21
+ REVIEWESCALATED,
22
+ REVIEWOPEN,
21
23
  } from '../lexicon/types/tools/ozone/moderation/defs'
22
24
  import { RepoRef, RepoBlobRef } from '../lexicon/types/com/atproto/admin/defs'
23
25
  import {
@@ -165,26 +167,22 @@ export class ModerationService {
165
167
  } = opts
166
168
  const { ref } = this.db.db.dynamic
167
169
  let builder = this.db.db.selectFrom('moderation_event').selectAll()
170
+
168
171
  if (subject) {
169
- builder = builder.where((qb) => {
170
- if (includeAllUserRecords) {
171
- // If subject is an at-uri, we need to extract the DID from the at-uri
172
- // otherwise, subject is probably a DID already
173
- if (subject.startsWith('at://')) {
174
- const uri = new AtUri(subject)
175
- return qb.where('subjectDid', '=', uri.hostname)
176
- }
177
- return qb.where('subjectDid', '=', subject)
178
- }
179
- return qb
180
- .where((subQb) =>
181
- subQb
182
- .where('subjectDid', '=', subject)
183
- .where('subjectUri', 'is', null),
184
- )
185
- .orWhere('subjectUri', '=', subject)
186
- })
172
+ const isSubjectAtUri = subject.startsWith('at://')
173
+ const subjectDid = isSubjectAtUri ? new AtUri(subject).hostname : subject
174
+ const subjectUri = isSubjectAtUri ? subject : null
175
+ // regardless of subjectUri check, we always want to query against subjectDid column since that's indexed
176
+ builder = builder.where('subjectDid', '=', subjectDid)
177
+
178
+ // if requester wants to include all user records, let's ignore matching on subjectUri
179
+ if (!includeAllUserRecords) {
180
+ builder = builder
181
+ .if(!subjectUri, (q) => q.where('subjectUri', 'is', null))
182
+ .if(!!subjectUri, (q) => q.where('subjectUri', '=', subjectUri))
183
+ }
187
184
  }
185
+
188
186
  if (types.length) {
189
187
  builder = builder.where((qb) => {
190
188
  if (types.length === 1) {
@@ -283,6 +281,52 @@ export class ModerationService {
283
281
  return await builder.execute()
284
282
  }
285
283
 
284
+ async resolveSubjectsForAccount(did: string, createdBy: string) {
285
+ const subjectsToBeResolved = await this.db.db
286
+ .selectFrom('moderation_subject_status')
287
+ .where('did', '=', did)
288
+ .where('recordPath', '!=', '')
289
+ .where('reviewState', 'in', [REVIEWESCALATED, REVIEWOPEN])
290
+ .selectAll()
291
+ .execute()
292
+
293
+ if (subjectsToBeResolved.length === 0) {
294
+ return
295
+ }
296
+
297
+ // Process subjects in chunks of 100 since each of these will trigger multiple db queries
298
+ for (const subjects of chunkArray(subjectsToBeResolved, 100)) {
299
+ await Promise.all(
300
+ subjects.map(async (subject) => {
301
+ const eventData = {
302
+ createdBy,
303
+ subject: subjectFromStatusRow(subject),
304
+ }
305
+ // For consistency's sake, when acknowledging appealed subjects, we should first resolve the appeal
306
+ if (subject.appealed) {
307
+ await this.logEvent({
308
+ event: {
309
+ $type: 'tools.ozone.moderation.defs#modEventResolveAppeal',
310
+ comment:
311
+ '[AUTO_RESOLVE_FOR_TAKENDOWN_ACCOUNT]: Automatically resolving all appealed content for a takendown account',
312
+ },
313
+ ...eventData,
314
+ })
315
+ }
316
+
317
+ await this.logEvent({
318
+ event: {
319
+ $type: 'tools.ozone.moderation.defs#modEventAcknowledge',
320
+ comment:
321
+ '[AUTO_RESOLVE_FOR_TAKENDOWN_ACCOUNT]: Automatically resolving all reported content for a takendown account',
322
+ },
323
+ ...eventData,
324
+ })
325
+ }),
326
+ )
327
+ }
328
+ }
329
+
286
330
  async logEvent(info: {
287
331
  event: ModEventType
288
332
  subject: ModSubject
@@ -324,6 +368,10 @@ export class ModerationService {
324
368
  }
325
369
  }
326
370
 
371
+ if (isModEventTakedown(event) && event.acknowledgeAccountSubjects) {
372
+ meta.acknowledgeAccountSubjects = true
373
+ }
374
+
327
375
  // Keep trace of reports that came in while the reporter was in muted stated
328
376
  if (isModEventReport(event)) {
329
377
  const isReportingMuted = await this.isReportingMutedForSubject(createdBy)
@@ -681,6 +729,7 @@ export class ModerationService {
681
729
  }
682
730
 
683
731
  async getSubjectStatuses({
732
+ includeAllUserRecords,
684
733
  cursor,
685
734
  limit = 50,
686
735
  takendown,
@@ -700,6 +749,7 @@ export class ModerationService {
700
749
  tags,
701
750
  excludeTags,
702
751
  }: {
752
+ includeAllUserRecords?: boolean
703
753
  cursor?: string
704
754
  limit?: number
705
755
  takendown?: boolean
@@ -724,13 +774,19 @@ export class ModerationService {
724
774
 
725
775
  if (subject) {
726
776
  const subjectInfo = getStatusIdentifierFromSubject(subject)
727
- builder = builder
728
- .where('moderation_subject_status.did', '=', subjectInfo.did)
729
- .where((qb) =>
777
+ builder = builder.where(
778
+ 'moderation_subject_status.did',
779
+ '=',
780
+ subjectInfo.did,
781
+ )
782
+
783
+ if (!includeAllUserRecords) {
784
+ builder = builder.where((qb) =>
730
785
  subjectInfo.recordPath
731
786
  ? qb.where('recordPath', '=', subjectInfo.recordPath)
732
787
  : qb.where('recordPath', '=', ''),
733
788
  )
789
+ }
734
790
  }
735
791
 
736
792
  if (ignoreSubjects?.length) {
@@ -122,6 +122,16 @@ export class ModerationViews {
122
122
  }
123
123
  }
124
124
 
125
+ if (
126
+ event.action === 'tools.ozone.moderation.defs#modEventTakedown' &&
127
+ event.meta?.acknowledgeAccountSubjects
128
+ ) {
129
+ eventView.event = {
130
+ ...eventView.event,
131
+ acknowledgeAccountSubjects: event.meta?.acknowledgeAccountSubjects,
132
+ }
133
+ }
134
+
125
135
  if (event.action === 'tools.ozone.moderation.defs#modEventLabel') {
126
136
  eventView.event = {
127
137
  ...eventView.event,
@@ -0,0 +1,131 @@
1
+ import {
2
+ TestNetwork,
3
+ RecordRef,
4
+ SeedClient,
5
+ basicSeed,
6
+ ModeratorClient,
7
+ } from '@atproto/dev-env'
8
+ import {
9
+ REASONAPPEAL,
10
+ REASONOTHER,
11
+ REASONSPAM,
12
+ } from '../src/lexicon/types/com/atproto/moderation/defs'
13
+ import {
14
+ REVIEWCLOSED,
15
+ REVIEWESCALATED,
16
+ REVIEWOPEN,
17
+ SubjectStatusView,
18
+ } from '../src/lexicon/types/tools/ozone/moderation/defs'
19
+ import { isRepoRef } from '../src/lexicon/types/com/atproto/admin/defs'
20
+ import { ComAtprotoRepoStrongRef } from '@atproto/api'
21
+
22
+ describe('moderation', () => {
23
+ let network: TestNetwork
24
+ let sc: SeedClient
25
+ let modClient: ModeratorClient
26
+
27
+ const repoSubject = (did: string) => ({
28
+ $type: 'com.atproto.admin.defs#repoRef',
29
+ did,
30
+ })
31
+
32
+ const recordSubject = (ref: RecordRef) => ({
33
+ $type: 'com.atproto.repo.strongRef',
34
+ uri: ref.uriStr,
35
+ cid: ref.cidStr,
36
+ })
37
+
38
+ beforeAll(async () => {
39
+ network = await TestNetwork.create({
40
+ dbPostgresSchema: 'ozone_ack_all_subjects_of_account',
41
+ })
42
+ sc = network.getSeedClient()
43
+ modClient = network.ozone.getModClient()
44
+ await basicSeed(sc)
45
+ await network.processAll()
46
+ })
47
+
48
+ afterAll(async () => {
49
+ await network.close()
50
+ })
51
+
52
+ it('acknowledges all open/escalated review subjects.', async () => {
53
+ const postOne = sc.posts[sc.dids.bob][0].ref
54
+ const postTwo = sc.posts[sc.dids.bob][1].ref
55
+ await Promise.all([
56
+ sc.createReport({
57
+ reasonType: REASONSPAM,
58
+ subject: repoSubject(sc.dids.bob),
59
+ reportedBy: sc.dids.alice,
60
+ }),
61
+ sc.createReport({
62
+ reasonType: REASONOTHER,
63
+ reason: 'defamation',
64
+ subject: recordSubject(postOne),
65
+ reportedBy: sc.dids.carol,
66
+ }),
67
+ sc.createReport({
68
+ reasonType: REASONOTHER,
69
+ reason: 'defamation',
70
+ subject: recordSubject(postTwo),
71
+ reportedBy: sc.dids.carol,
72
+ }),
73
+ ])
74
+
75
+ await modClient.emitEvent({
76
+ event: {
77
+ $type: 'tools.ozone.moderation.defs#modEventReport',
78
+ reportType: REASONAPPEAL,
79
+ },
80
+ subject: recordSubject(postTwo),
81
+ })
82
+
83
+ const { subjectStatuses: statusesBefore } = await modClient.queryStatuses({
84
+ subject: sc.dids.bob,
85
+ includeAllUserRecords: true,
86
+ })
87
+
88
+ await modClient.performTakedown({
89
+ subject: repoSubject(sc.dids.bob),
90
+ acknowledgeAccountSubjects: true,
91
+ })
92
+
93
+ const { subjectStatuses: statusesAfter } = await modClient.queryStatuses({
94
+ subject: sc.dids.bob,
95
+ includeAllUserRecords: true,
96
+ })
97
+
98
+ const getReviewStateBySubject = (subjects: SubjectStatusView[]) => {
99
+ const states = new Map<string, SubjectStatusView>()
100
+
101
+ subjects.forEach((item) => {
102
+ if (ComAtprotoRepoStrongRef.isMain(item.subject)) {
103
+ states.set(item.subject.uri, item)
104
+ } else if (isRepoRef(item.subject)) {
105
+ states.set(item.subject.did, item)
106
+ }
107
+ })
108
+
109
+ return states
110
+ }
111
+
112
+ const reviewStatesBefore = getReviewStateBySubject(statusesBefore)
113
+ const reviewStatesAfter = getReviewStateBySubject(statusesAfter)
114
+
115
+ // Check that review states before were different for different subjects
116
+ expect(reviewStatesBefore.get(postOne.uriStr)?.reviewState).toBe(REVIEWOPEN)
117
+ expect(reviewStatesBefore.get(postTwo.uriStr)?.reviewState).toBe(
118
+ REVIEWESCALATED,
119
+ )
120
+ expect(reviewStatesBefore.get(sc.dids.bob)?.reviewState).toBe(REVIEWOPEN)
121
+
122
+ // Check that review states after are all closed
123
+ expect(reviewStatesAfter.get(postOne.uriStr)?.reviewState).toBe(
124
+ REVIEWCLOSED,
125
+ )
126
+ expect(reviewStatesAfter.get(postTwo.uriStr)?.reviewState).toBe(
127
+ REVIEWCLOSED,
128
+ )
129
+ expect(reviewStatesAfter.get(sc.dids.bob)?.reviewState).toBe(REVIEWCLOSED)
130
+ })
131
+ })