@atproto/ozone 0.1.155 → 0.1.157

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 (90) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/api/moderation/emitEvent.d.ts.map +1 -1
  3. package/dist/api/moderation/emitEvent.js +20 -7
  4. package/dist/api/moderation/emitEvent.js.map +1 -1
  5. package/dist/api/util.d.ts +1 -1
  6. package/dist/api/util.d.ts.map +1 -1
  7. package/dist/api/util.js +6 -1
  8. package/dist/api/util.js.map +1 -1
  9. package/dist/daemon/event-pusher.d.ts +1 -1
  10. package/dist/daemon/event-pusher.d.ts.map +1 -1
  11. package/dist/daemon/event-pusher.js +17 -5
  12. package/dist/daemon/event-pusher.js.map +1 -1
  13. package/dist/daemon/scheduled-action-processor.d.ts +5 -1
  14. package/dist/daemon/scheduled-action-processor.d.ts.map +1 -1
  15. package/dist/daemon/scheduled-action-processor.js +44 -2
  16. package/dist/daemon/scheduled-action-processor.js.map +1 -1
  17. package/dist/jetstream/service.d.ts +1 -1
  18. package/dist/jetstream/service.d.ts.map +1 -1
  19. package/dist/jetstream/service.js +2 -2
  20. package/dist/jetstream/service.js.map +1 -1
  21. package/dist/lexicon/index.d.ts +11 -0
  22. package/dist/lexicon/index.d.ts.map +1 -1
  23. package/dist/lexicon/index.js +32 -1
  24. package/dist/lexicon/index.js.map +1 -1
  25. package/dist/lexicon/lexicons.d.ts +806 -6
  26. package/dist/lexicon/lexicons.d.ts.map +1 -1
  27. package/dist/lexicon/lexicons.js +425 -3
  28. package/dist/lexicon/lexicons.js.map +1 -1
  29. package/dist/lexicon/types/app/bsky/ageassurance/begin.d.ts +31 -0
  30. package/dist/lexicon/types/app/bsky/ageassurance/begin.d.ts.map +1 -0
  31. package/dist/lexicon/types/app/bsky/ageassurance/begin.js +7 -0
  32. package/dist/lexicon/types/app/bsky/ageassurance/begin.js.map +1 -0
  33. package/dist/lexicon/types/app/bsky/ageassurance/defs.d.ts +138 -0
  34. package/dist/lexicon/types/app/bsky/ageassurance/defs.d.ts.map +1 -0
  35. package/dist/lexicon/types/app/bsky/ageassurance/defs.js +115 -0
  36. package/dist/lexicon/types/app/bsky/ageassurance/defs.js.map +1 -0
  37. package/dist/lexicon/types/app/bsky/ageassurance/getConfig.d.ts +18 -0
  38. package/dist/lexicon/types/app/bsky/ageassurance/getConfig.d.ts.map +1 -0
  39. package/dist/lexicon/types/app/bsky/ageassurance/getConfig.js +7 -0
  40. package/dist/lexicon/types/app/bsky/ageassurance/getConfig.js.map +1 -0
  41. package/dist/lexicon/types/app/bsky/ageassurance/getState.d.ts +24 -0
  42. package/dist/lexicon/types/app/bsky/ageassurance/getState.d.ts.map +1 -0
  43. package/dist/lexicon/types/app/bsky/ageassurance/getState.js +7 -0
  44. package/dist/lexicon/types/app/bsky/ageassurance/getState.js.map +1 -0
  45. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +13 -2
  46. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts.map +1 -1
  47. package/dist/lexicon/types/tools/ozone/moderation/defs.js.map +1 -1
  48. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.d.ts +1 -1
  49. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.d.ts.map +1 -1
  50. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.js.map +1 -1
  51. package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.d.ts +10 -0
  52. package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.d.ts.map +1 -1
  53. package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.js.map +1 -1
  54. package/dist/mod-service/index.d.ts +3 -3
  55. package/dist/mod-service/index.d.ts.map +1 -1
  56. package/dist/mod-service/index.js +10 -4
  57. package/dist/mod-service/index.js.map +1 -1
  58. package/dist/mod-service/status.d.ts +1 -1
  59. package/dist/mod-service/util.d.ts.map +1 -1
  60. package/dist/mod-service/util.js +1 -0
  61. package/dist/mod-service/util.js.map +1 -1
  62. package/dist/mod-service/views.d.ts.map +1 -1
  63. package/dist/mod-service/views.js +7 -0
  64. package/dist/mod-service/views.js.map +1 -1
  65. package/dist/setting/validators.d.ts.map +1 -1
  66. package/dist/setting/validators.js +10 -0
  67. package/dist/setting/validators.js.map +1 -1
  68. package/package.json +10 -9
  69. package/src/api/moderation/emitEvent.ts +34 -9
  70. package/src/api/util.ts +7 -1
  71. package/src/daemon/event-pusher.ts +22 -5
  72. package/src/daemon/scheduled-action-processor.ts +59 -1
  73. package/src/jetstream/service.ts +1 -1
  74. package/src/lexicon/index.ts +49 -0
  75. package/src/lexicon/lexicons.ts +458 -3
  76. package/src/lexicon/types/app/bsky/ageassurance/begin.ts +54 -0
  77. package/src/lexicon/types/app/bsky/ageassurance/defs.ts +301 -0
  78. package/src/lexicon/types/app/bsky/ageassurance/getConfig.ts +34 -0
  79. package/src/lexicon/types/app/bsky/ageassurance/getState.ts +42 -0
  80. package/src/lexicon/types/tools/ozone/moderation/defs.ts +13 -2
  81. package/src/lexicon/types/tools/ozone/moderation/queryStatuses.ts +6 -1
  82. package/src/lexicon/types/tools/ozone/moderation/scheduleAction.ts +10 -0
  83. package/src/mod-service/index.ts +21 -7
  84. package/src/mod-service/util.ts +2 -0
  85. package/src/mod-service/views.ts +10 -0
  86. package/src/setting/validators.ts +15 -0
  87. package/tests/query-labels.test.ts +4 -1
  88. package/tests/scheduled-action-processor.test.ts +30 -6
  89. package/tests/takedown.test.ts +43 -1
  90. package/tsconfig.build.tsbuildinfo +1 -1
@@ -16,6 +16,7 @@ import { RepoSubject } from '../mod-service/subject'
16
16
  import { ModEventType } from '../mod-service/types'
17
17
  import { ScheduledActionServiceCreator } from '../scheduled-action/service'
18
18
  import { SettingService, SettingServiceCreator } from '../setting/service'
19
+ import { retryHttp } from '../util'
19
20
 
20
21
  export class ScheduledActionProcessor {
21
22
  destroyed = false
@@ -75,6 +76,10 @@ export class ScheduledActionProcessor {
75
76
  }
76
77
 
77
78
  let event: ModEventType
79
+ const email = {
80
+ subject: '',
81
+ content: '',
82
+ }
78
83
  let modTool: ModTool | undefined
79
84
 
80
85
  // Create the appropriate moderation action based on the scheduled action type
@@ -83,6 +88,8 @@ export class ScheduledActionProcessor {
83
88
  {
84
89
  const eventData = action.eventData as ModEventTakedown & {
85
90
  modTool?: ModTool
91
+ emailSubject?: string
92
+ emailContent?: string
86
93
  }
87
94
  modTool = eventData.modTool
88
95
  event = {
@@ -92,6 +99,13 @@ export class ScheduledActionProcessor {
92
99
  acknowledgeAccountSubjects:
93
100
  eventData.acknowledgeAccountSubjects,
94
101
  policies: eventData.policies,
102
+ severityLevel: eventData.severityLevel,
103
+ strikeCount: eventData.strikeCount,
104
+ }
105
+
106
+ if (eventData.emailSubject && eventData.emailContent) {
107
+ email.subject = eventData.emailSubject
108
+ email.content = eventData.emailContent
95
109
  }
96
110
  }
97
111
  break
@@ -107,6 +121,7 @@ export class ScheduledActionProcessor {
107
121
  modTool,
108
122
  moderationTxn,
109
123
  settingService,
124
+ email,
110
125
  })
111
126
 
112
127
  // Mark the scheduled action as executed
@@ -142,12 +157,14 @@ export class ScheduledActionProcessor {
142
157
  }
143
158
 
144
159
  async performTakedown({
160
+ email,
145
161
  action,
146
162
  event,
147
163
  modTool,
148
164
  moderationTxn,
149
165
  settingService,
150
166
  }: {
167
+ email: { subject: string; content: string }
151
168
  action: Selectable<ScheduledAction>
152
169
  event: ModEventType
153
170
  modTool: ModTool | undefined
@@ -190,7 +207,48 @@ export class ScheduledActionProcessor {
190
207
  })
191
208
 
192
209
  // register the takedown in event pusher
193
- await moderationTxn.takedownRepo(subject, moderationEvent.event.id)
210
+ await moderationTxn.takedownRepo(
211
+ subject,
212
+ moderationEvent.event.id,
213
+ new Set(
214
+ moderationEvent.event.meta?.targetServices
215
+ ? `${moderationEvent.event.meta.targetServices}`.split(',')
216
+ : undefined,
217
+ ),
218
+ )
219
+
220
+ if (email.content && email.subject) {
221
+ let isDelivered = false
222
+ try {
223
+ await retryHttp(() =>
224
+ moderationTxn.sendEmail({
225
+ ...email,
226
+ recipientDid: action.did,
227
+ }),
228
+ )
229
+ isDelivered = true
230
+ } catch (err) {
231
+ dbLogger.error(
232
+ { err, did: action.did },
233
+ 'failed to send takedown email',
234
+ )
235
+ }
236
+ await moderationTxn.logEvent({
237
+ event: {
238
+ content: email.content,
239
+ subjectLine: email.subject,
240
+ $type: 'tools.ozone.moderation.defs#modEventEmail',
241
+ comment: [
242
+ 'Communication attached to scheduled action',
243
+ isDelivered ? '' : 'Email delivery failed',
244
+ ].join('.'),
245
+ isDelivered,
246
+ },
247
+ subject,
248
+ modTool,
249
+ createdBy: action.createdBy,
250
+ })
251
+ }
194
252
 
195
253
  return moderationEvent
196
254
  }
@@ -1,4 +1,4 @@
1
- import { WebSocketKeepAlive } from '@atproto/xrpc-server'
1
+ import { WebSocketKeepAlive } from '@atproto/ws-client'
2
2
 
3
3
  type JetstreamRecord = Record<string, unknown>
4
4
  type OnCreateCallback<T extends JetstreamRecord> = (
@@ -17,6 +17,9 @@ import * as AppBskyActorGetSuggestions from './types/app/bsky/actor/getSuggestio
17
17
  import * as AppBskyActorPutPreferences from './types/app/bsky/actor/putPreferences.js'
18
18
  import * as AppBskyActorSearchActors from './types/app/bsky/actor/searchActors.js'
19
19
  import * as AppBskyActorSearchActorsTypeahead from './types/app/bsky/actor/searchActorsTypeahead.js'
20
+ import * as AppBskyAgeassuranceBegin from './types/app/bsky/ageassurance/begin.js'
21
+ import * as AppBskyAgeassuranceGetConfig from './types/app/bsky/ageassurance/getConfig.js'
22
+ import * as AppBskyAgeassuranceGetState from './types/app/bsky/ageassurance/getState.js'
20
23
  import * as AppBskyBookmarkCreateBookmark from './types/app/bsky/bookmark/createBookmark.js'
21
24
  import * as AppBskyBookmarkDeleteBookmark from './types/app/bsky/bookmark/deleteBookmark.js'
22
25
  import * as AppBskyBookmarkGetBookmarks from './types/app/bsky/bookmark/getBookmarks.js'
@@ -392,6 +395,7 @@ export class AppNS {
392
395
  export class AppBskyNS {
393
396
  _server: Server
394
397
  actor: AppBskyActorNS
398
+ ageassurance: AppBskyAgeassuranceNS
395
399
  bookmark: AppBskyBookmarkNS
396
400
  embed: AppBskyEmbedNS
397
401
  feed: AppBskyFeedNS
@@ -405,6 +409,7 @@ export class AppBskyNS {
405
409
  constructor(server: Server) {
406
410
  this._server = server
407
411
  this.actor = new AppBskyActorNS(server)
412
+ this.ageassurance = new AppBskyAgeassuranceNS(server)
408
413
  this.bookmark = new AppBskyBookmarkNS(server)
409
414
  this.embed = new AppBskyEmbedNS(server)
410
415
  this.feed = new AppBskyFeedNS(server)
@@ -509,6 +514,50 @@ export class AppBskyActorNS {
509
514
  }
510
515
  }
511
516
 
517
+ export class AppBskyAgeassuranceNS {
518
+ _server: Server
519
+
520
+ constructor(server: Server) {
521
+ this._server = server
522
+ }
523
+
524
+ begin<A extends Auth = void>(
525
+ cfg: MethodConfigOrHandler<
526
+ A,
527
+ AppBskyAgeassuranceBegin.QueryParams,
528
+ AppBskyAgeassuranceBegin.HandlerInput,
529
+ AppBskyAgeassuranceBegin.HandlerOutput
530
+ >,
531
+ ) {
532
+ const nsid = 'app.bsky.ageassurance.begin' // @ts-ignore
533
+ return this._server.xrpc.method(nsid, cfg)
534
+ }
535
+
536
+ getConfig<A extends Auth = void>(
537
+ cfg: MethodConfigOrHandler<
538
+ A,
539
+ AppBskyAgeassuranceGetConfig.QueryParams,
540
+ AppBskyAgeassuranceGetConfig.HandlerInput,
541
+ AppBskyAgeassuranceGetConfig.HandlerOutput
542
+ >,
543
+ ) {
544
+ const nsid = 'app.bsky.ageassurance.getConfig' // @ts-ignore
545
+ return this._server.xrpc.method(nsid, cfg)
546
+ }
547
+
548
+ getState<A extends Auth = void>(
549
+ cfg: MethodConfigOrHandler<
550
+ A,
551
+ AppBskyAgeassuranceGetState.QueryParams,
552
+ AppBskyAgeassuranceGetState.HandlerInput,
553
+ AppBskyAgeassuranceGetState.HandlerOutput
554
+ >,
555
+ ) {
556
+ const nsid = 'app.bsky.ageassurance.getState' // @ts-ignore
557
+ return this._server.xrpc.method(nsid, cfg)
558
+ }
559
+ }
560
+
512
561
  export class AppBskyBookmarkNS {
513
562
  _server: Server
514
563