@atproto/pds 0.4.16 → 0.4.18

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 (45) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/api/com/atproto/repo/uploadBlob.d.ts.map +1 -1
  3. package/dist/api/com/atproto/repo/uploadBlob.js +11 -1
  4. package/dist/api/com/atproto/repo/uploadBlob.js.map +1 -1
  5. package/dist/config/config.d.ts +1 -0
  6. package/dist/config/config.d.ts.map +1 -1
  7. package/dist/config/config.js +1 -0
  8. package/dist/config/config.js.map +1 -1
  9. package/dist/config/env.d.ts +1 -0
  10. package/dist/config/env.d.ts.map +1 -1
  11. package/dist/config/env.js +1 -0
  12. package/dist/config/env.js.map +1 -1
  13. package/dist/context.d.ts.map +1 -1
  14. package/dist/context.js +1 -0
  15. package/dist/context.js.map +1 -1
  16. package/dist/db/tables/moderation.d.ts +1 -1
  17. package/dist/db/tables/moderation.d.ts.map +1 -1
  18. package/dist/lexicon/lexicons.d.ts +68 -0
  19. package/dist/lexicon/lexicons.d.ts.map +1 -1
  20. package/dist/lexicon/lexicons.js +78 -0
  21. package/dist/lexicon/lexicons.js.map +1 -1
  22. package/dist/lexicon/types/app/bsky/actor/defs.d.ts +16 -1
  23. package/dist/lexicon/types/app/bsky/actor/defs.d.ts.map +1 -1
  24. package/dist/lexicon/types/app/bsky/actor/defs.js +21 -1
  25. package/dist/lexicon/types/app/bsky/actor/defs.js.map +1 -1
  26. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +22 -2
  27. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts.map +1 -1
  28. package/dist/lexicon/types/tools/ozone/moderation/defs.js +22 -2
  29. package/dist/lexicon/types/tools/ozone/moderation/defs.js.map +1 -1
  30. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts +1 -1
  31. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts.map +1 -1
  32. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.d.ts +2 -0
  33. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.d.ts.map +1 -1
  34. package/package.json +4 -4
  35. package/src/api/com/atproto/repo/uploadBlob.ts +17 -5
  36. package/src/config/config.ts +2 -0
  37. package/src/config/env.ts +2 -0
  38. package/src/context.ts +1 -0
  39. package/src/db/tables/moderation.ts +6 -0
  40. package/src/lexicon/lexicons.ts +80 -0
  41. package/src/lexicon/types/app/bsky/actor/defs.ts +38 -0
  42. package/src/lexicon/types/tools/ozone/moderation/defs.ts +56 -0
  43. package/src/lexicon/types/tools/ozone/moderation/emitEvent.ts +3 -0
  44. package/src/lexicon/types/tools/ozone/moderation/queryStatuses.ts +2 -0
  45. package/tests/proxied/__snapshots__/admin.test.ts.snap +4 -2
@@ -3822,6 +3822,7 @@ export const schemaDict = {
3822
3822
  'lex:app.bsky.actor.defs#adultContentPref',
3823
3823
  'lex:app.bsky.actor.defs#contentLabelPref',
3824
3824
  'lex:app.bsky.actor.defs#savedFeedsPref',
3825
+ 'lex:app.bsky.actor.defs#savedFeedsPrefV2',
3825
3826
  'lex:app.bsky.actor.defs#personalDetailsPref',
3826
3827
  'lex:app.bsky.actor.defs#feedViewPref',
3827
3828
  'lex:app.bsky.actor.defs#threadViewPref',
@@ -3860,6 +3861,38 @@ export const schemaDict = {
3860
3861
  },
3861
3862
  },
3862
3863
  },
3864
+ savedFeed: {
3865
+ type: 'object',
3866
+ required: ['id', 'type', 'value', 'pinned'],
3867
+ properties: {
3868
+ id: {
3869
+ type: 'string',
3870
+ },
3871
+ type: {
3872
+ type: 'string',
3873
+ knownValues: ['feed', 'list', 'timeline'],
3874
+ },
3875
+ value: {
3876
+ type: 'string',
3877
+ },
3878
+ pinned: {
3879
+ type: 'boolean',
3880
+ },
3881
+ },
3882
+ },
3883
+ savedFeedsPrefV2: {
3884
+ type: 'object',
3885
+ required: ['items'],
3886
+ properties: {
3887
+ items: {
3888
+ type: 'array',
3889
+ items: {
3890
+ type: 'ref',
3891
+ ref: 'lex:app.bsky.actor.defs#savedFeed',
3892
+ },
3893
+ },
3894
+ },
3895
+ },
3863
3896
  savedFeedsPref: {
3864
3897
  type: 'object',
3865
3898
  required: ['pinned', 'saved'],
@@ -8375,6 +8408,9 @@ export const schemaDict = {
8375
8408
  'lex:tools.ozone.moderation.defs#modEventAcknowledge',
8376
8409
  'lex:tools.ozone.moderation.defs#modEventEscalate',
8377
8410
  'lex:tools.ozone.moderation.defs#modEventMute',
8411
+ 'lex:tools.ozone.moderation.defs#modEventUnmute',
8412
+ 'lex:tools.ozone.moderation.defs#modEventMuteReporter',
8413
+ 'lex:tools.ozone.moderation.defs#modEventUnmuteReporter',
8378
8414
  'lex:tools.ozone.moderation.defs#modEventEmail',
8379
8415
  'lex:tools.ozone.moderation.defs#modEventResolveAppeal',
8380
8416
  'lex:tools.ozone.moderation.defs#modEventDivert',
@@ -8434,6 +8470,9 @@ export const schemaDict = {
8434
8470
  'lex:tools.ozone.moderation.defs#modEventAcknowledge',
8435
8471
  'lex:tools.ozone.moderation.defs#modEventEscalate',
8436
8472
  'lex:tools.ozone.moderation.defs#modEventMute',
8473
+ 'lex:tools.ozone.moderation.defs#modEventUnmute',
8474
+ 'lex:tools.ozone.moderation.defs#modEventMuteReporter',
8475
+ 'lex:tools.ozone.moderation.defs#modEventUnmuteReporter',
8437
8476
  'lex:tools.ozone.moderation.defs#modEventEmail',
8438
8477
  'lex:tools.ozone.moderation.defs#modEventResolveAppeal',
8439
8478
  'lex:tools.ozone.moderation.defs#modEventDivert',
@@ -8513,6 +8552,10 @@ export const schemaDict = {
8513
8552
  type: 'string',
8514
8553
  format: 'datetime',
8515
8554
  },
8555
+ muteReportingUntil: {
8556
+ type: 'string',
8557
+ format: 'datetime',
8558
+ },
8516
8559
  lastReviewedBy: {
8517
8560
  type: 'string',
8518
8561
  format: 'did',
@@ -8636,6 +8679,11 @@ export const schemaDict = {
8636
8679
  comment: {
8637
8680
  type: 'string',
8638
8681
  },
8682
+ isReporterMuted: {
8683
+ type: 'boolean',
8684
+ description:
8685
+ "Set to true if the reporter was muted from reporting at the time of the event. These reports won't impact the reviewState of the subject.",
8686
+ },
8639
8687
  reportType: {
8640
8688
  type: 'ref',
8641
8689
  ref: 'lex:com.atproto.moderation.defs#reasonType',
@@ -8704,6 +8752,30 @@ export const schemaDict = {
8704
8752
  },
8705
8753
  },
8706
8754
  },
8755
+ modEventMuteReporter: {
8756
+ type: 'object',
8757
+ description: 'Mute incoming reports from an account',
8758
+ required: ['durationInHours'],
8759
+ properties: {
8760
+ comment: {
8761
+ type: 'string',
8762
+ },
8763
+ durationInHours: {
8764
+ type: 'integer',
8765
+ description: 'Indicates how long the account should remain muted.',
8766
+ },
8767
+ },
8768
+ },
8769
+ modEventUnmuteReporter: {
8770
+ type: 'object',
8771
+ description: 'Unmute incoming reports from an account',
8772
+ properties: {
8773
+ comment: {
8774
+ type: 'string',
8775
+ description: 'Describe reasoning behind the reversal.',
8776
+ },
8777
+ },
8778
+ },
8707
8779
  modEventEmail: {
8708
8780
  type: 'object',
8709
8781
  description: 'Keep a log of outgoing email to a user',
@@ -9088,6 +9160,9 @@ export const schemaDict = {
9088
9160
  'lex:tools.ozone.moderation.defs#modEventLabel',
9089
9161
  'lex:tools.ozone.moderation.defs#modEventReport',
9090
9162
  'lex:tools.ozone.moderation.defs#modEventMute',
9163
+ 'lex:tools.ozone.moderation.defs#modEventUnmute',
9164
+ 'lex:tools.ozone.moderation.defs#modEventMuteReporter',
9165
+ 'lex:tools.ozone.moderation.defs#modEventUnmuteReporter',
9091
9166
  'lex:tools.ozone.moderation.defs#modEventReverseTakedown',
9092
9167
  'lex:tools.ozone.moderation.defs#modEventUnmute',
9093
9168
  'lex:tools.ozone.moderation.defs#modEventEmail',
@@ -9396,6 +9471,11 @@ export const schemaDict = {
9396
9471
  description:
9397
9472
  "By default, we don't include muted subjects in the results. Set this to true to include them.",
9398
9473
  },
9474
+ onlyMuted: {
9475
+ type: 'boolean',
9476
+ description:
9477
+ 'When set to true, only muted subjects and reporters will be returned.',
9478
+ },
9399
9479
  reviewState: {
9400
9480
  type: 'string',
9401
9481
  description: 'Specify when fetching subjects in a certain state',
@@ -132,6 +132,7 @@ export type Preferences = (
132
132
  | AdultContentPref
133
133
  | ContentLabelPref
134
134
  | SavedFeedsPref
135
+ | SavedFeedsPrefV2
135
136
  | PersonalDetailsPref
136
137
  | FeedViewPref
137
138
  | ThreadViewPref
@@ -178,6 +179,43 @@ export function validateContentLabelPref(v: unknown): ValidationResult {
178
179
  return lexicons.validate('app.bsky.actor.defs#contentLabelPref', v)
179
180
  }
180
181
 
182
+ export interface SavedFeed {
183
+ id: string
184
+ type: 'feed' | 'list' | 'timeline' | (string & {})
185
+ value: string
186
+ pinned: boolean
187
+ [k: string]: unknown
188
+ }
189
+
190
+ export function isSavedFeed(v: unknown): v is SavedFeed {
191
+ return (
192
+ isObj(v) &&
193
+ hasProp(v, '$type') &&
194
+ v.$type === 'app.bsky.actor.defs#savedFeed'
195
+ )
196
+ }
197
+
198
+ export function validateSavedFeed(v: unknown): ValidationResult {
199
+ return lexicons.validate('app.bsky.actor.defs#savedFeed', v)
200
+ }
201
+
202
+ export interface SavedFeedsPrefV2 {
203
+ items: SavedFeed[]
204
+ [k: string]: unknown
205
+ }
206
+
207
+ export function isSavedFeedsPrefV2(v: unknown): v is SavedFeedsPrefV2 {
208
+ return (
209
+ isObj(v) &&
210
+ hasProp(v, '$type') &&
211
+ v.$type === 'app.bsky.actor.defs#savedFeedsPrefV2'
212
+ )
213
+ }
214
+
215
+ export function validateSavedFeedsPrefV2(v: unknown): ValidationResult {
216
+ return lexicons.validate('app.bsky.actor.defs#savedFeedsPrefV2', v)
217
+ }
218
+
181
219
  export interface SavedFeedsPref {
182
220
  pinned: string[]
183
221
  saved: string[]
@@ -22,6 +22,9 @@ export interface ModEventView {
22
22
  | ModEventAcknowledge
23
23
  | ModEventEscalate
24
24
  | ModEventMute
25
+ | ModEventUnmute
26
+ | ModEventMuteReporter
27
+ | ModEventUnmuteReporter
25
28
  | ModEventEmail
26
29
  | ModEventResolveAppeal
27
30
  | ModEventDivert
@@ -61,6 +64,9 @@ export interface ModEventViewDetail {
61
64
  | ModEventAcknowledge
62
65
  | ModEventEscalate
63
66
  | ModEventMute
67
+ | ModEventUnmute
68
+ | ModEventMuteReporter
69
+ | ModEventUnmuteReporter
64
70
  | ModEventEmail
65
71
  | ModEventResolveAppeal
66
72
  | ModEventDivert
@@ -105,6 +111,7 @@ export interface SubjectStatusView {
105
111
  /** Sticky comment on the subject. */
106
112
  comment?: string
107
113
  muteUntil?: string
114
+ muteReportingUntil?: string
108
115
  lastReviewedBy?: string
109
116
  lastReviewedAt?: string
110
117
  lastReportedAt?: string
@@ -237,6 +244,8 @@ export function validateModEventComment(v: unknown): ValidationResult {
237
244
  /** Report a subject */
238
245
  export interface ModEventReport {
239
246
  comment?: string
247
+ /** Set to true if the reporter was muted from reporting at the time of the event. These reports won't impact the reviewState of the subject. */
248
+ isReporterMuted?: boolean
240
249
  reportType: ComAtprotoModerationDefs.ReasonType
241
250
  [k: string]: unknown
242
251
  }
@@ -346,6 +355,53 @@ export function validateModEventUnmute(v: unknown): ValidationResult {
346
355
  return lexicons.validate('tools.ozone.moderation.defs#modEventUnmute', v)
347
356
  }
348
357
 
358
+ /** Mute incoming reports from an account */
359
+ export interface ModEventMuteReporter {
360
+ comment?: string
361
+ /** Indicates how long the account should remain muted. */
362
+ durationInHours: number
363
+ [k: string]: unknown
364
+ }
365
+
366
+ export function isModEventMuteReporter(v: unknown): v is ModEventMuteReporter {
367
+ return (
368
+ isObj(v) &&
369
+ hasProp(v, '$type') &&
370
+ v.$type === 'tools.ozone.moderation.defs#modEventMuteReporter'
371
+ )
372
+ }
373
+
374
+ export function validateModEventMuteReporter(v: unknown): ValidationResult {
375
+ return lexicons.validate(
376
+ 'tools.ozone.moderation.defs#modEventMuteReporter',
377
+ v,
378
+ )
379
+ }
380
+
381
+ /** Unmute incoming reports from an account */
382
+ export interface ModEventUnmuteReporter {
383
+ /** Describe reasoning behind the reversal. */
384
+ comment?: string
385
+ [k: string]: unknown
386
+ }
387
+
388
+ export function isModEventUnmuteReporter(
389
+ v: unknown,
390
+ ): v is ModEventUnmuteReporter {
391
+ return (
392
+ isObj(v) &&
393
+ hasProp(v, '$type') &&
394
+ v.$type === 'tools.ozone.moderation.defs#modEventUnmuteReporter'
395
+ )
396
+ }
397
+
398
+ export function validateModEventUnmuteReporter(v: unknown): ValidationResult {
399
+ return lexicons.validate(
400
+ 'tools.ozone.moderation.defs#modEventUnmuteReporter',
401
+ v,
402
+ )
403
+ }
404
+
349
405
  /** Keep a log of outgoing email to a user */
350
406
  export interface ModEventEmail {
351
407
  /** The subject line of the email sent to the user. */
@@ -22,6 +22,9 @@ export interface InputSchema {
22
22
  | ToolsOzoneModerationDefs.ModEventLabel
23
23
  | ToolsOzoneModerationDefs.ModEventReport
24
24
  | ToolsOzoneModerationDefs.ModEventMute
25
+ | ToolsOzoneModerationDefs.ModEventUnmute
26
+ | ToolsOzoneModerationDefs.ModEventMuteReporter
27
+ | ToolsOzoneModerationDefs.ModEventUnmuteReporter
25
28
  | ToolsOzoneModerationDefs.ModEventReverseTakedown
26
29
  | ToolsOzoneModerationDefs.ModEventUnmute
27
30
  | ToolsOzoneModerationDefs.ModEventEmail
@@ -23,6 +23,8 @@ export interface QueryParams {
23
23
  reviewedBefore?: string
24
24
  /** By default, we don't include muted subjects in the results. Set this to true to include them. */
25
25
  includeMuted?: boolean
26
+ /** When set to true, only muted subjects and reporters will be returned. */
27
+ onlyMuted?: boolean
26
28
  /** Specify when fetching subjects in a certain state */
27
29
  reviewState?: string
28
30
  ignoreSubjects?: string[]
@@ -50,6 +50,7 @@ Array [
50
50
  "event": Object {
51
51
  "$type": "tools.ozone.moderation.defs#modEventReport",
52
52
  "comment": "impersonation",
53
+ "isReporterMuted": false,
53
54
  "reportType": "com.atproto.moderation.defs#reasonOther",
54
55
  },
55
56
  "id": 3,
@@ -85,6 +86,7 @@ Array [
85
86
  "creatorHandle": "alice.test",
86
87
  "event": Object {
87
88
  "$type": "tools.ozone.moderation.defs#modEventReport",
89
+ "isReporterMuted": false,
88
90
  "reportType": "com.atproto.moderation.defs#reasonSpam",
89
91
  },
90
92
  "id": 1,
@@ -167,7 +169,7 @@ Array [
167
169
  "event": Object {
168
170
  "$type": "tools.ozone.moderation.defs#modEventTag",
169
171
  "add": Array [
170
- "lang:und",
172
+ "lang:en",
171
173
  ],
172
174
  "remove": Array [],
173
175
  },
@@ -221,7 +223,7 @@ Object {
221
223
  "subjectBlobCids": Array [],
222
224
  "subjectRepoHandle": "bob.test",
223
225
  "tags": Array [
224
- "lang:und",
226
+ "lang:en",
225
227
  ],
226
228
  "takendown": false,
227
229
  "updatedAt": "1970-01-01T00:00:00.000Z",