@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.
- package/CHANGELOG.md +27 -0
- package/dist/api/moderation/emitEvent.d.ts.map +1 -1
- package/dist/api/moderation/emitEvent.js +20 -7
- package/dist/api/moderation/emitEvent.js.map +1 -1
- package/dist/api/util.d.ts +1 -1
- package/dist/api/util.d.ts.map +1 -1
- package/dist/api/util.js +6 -1
- package/dist/api/util.js.map +1 -1
- package/dist/daemon/event-pusher.d.ts +1 -1
- package/dist/daemon/event-pusher.d.ts.map +1 -1
- package/dist/daemon/event-pusher.js +17 -5
- package/dist/daemon/event-pusher.js.map +1 -1
- package/dist/daemon/scheduled-action-processor.d.ts +5 -1
- package/dist/daemon/scheduled-action-processor.d.ts.map +1 -1
- package/dist/daemon/scheduled-action-processor.js +44 -2
- package/dist/daemon/scheduled-action-processor.js.map +1 -1
- package/dist/jetstream/service.d.ts +1 -1
- package/dist/jetstream/service.d.ts.map +1 -1
- package/dist/jetstream/service.js +2 -2
- package/dist/jetstream/service.js.map +1 -1
- package/dist/lexicon/index.d.ts +11 -0
- package/dist/lexicon/index.d.ts.map +1 -1
- package/dist/lexicon/index.js +32 -1
- package/dist/lexicon/index.js.map +1 -1
- package/dist/lexicon/lexicons.d.ts +806 -6
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +425 -3
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/ageassurance/begin.d.ts +31 -0
- package/dist/lexicon/types/app/bsky/ageassurance/begin.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/ageassurance/begin.js +7 -0
- package/dist/lexicon/types/app/bsky/ageassurance/begin.js.map +1 -0
- package/dist/lexicon/types/app/bsky/ageassurance/defs.d.ts +138 -0
- package/dist/lexicon/types/app/bsky/ageassurance/defs.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/ageassurance/defs.js +115 -0
- package/dist/lexicon/types/app/bsky/ageassurance/defs.js.map +1 -0
- package/dist/lexicon/types/app/bsky/ageassurance/getConfig.d.ts +18 -0
- package/dist/lexicon/types/app/bsky/ageassurance/getConfig.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/ageassurance/getConfig.js +7 -0
- package/dist/lexicon/types/app/bsky/ageassurance/getConfig.js.map +1 -0
- package/dist/lexicon/types/app/bsky/ageassurance/getState.d.ts +24 -0
- package/dist/lexicon/types/app/bsky/ageassurance/getState.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/ageassurance/getState.js +7 -0
- package/dist/lexicon/types/app/bsky/ageassurance/getState.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +13 -2
- package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.d.ts +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.d.ts +10 -0
- package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.js.map +1 -1
- package/dist/mod-service/index.d.ts +3 -3
- package/dist/mod-service/index.d.ts.map +1 -1
- package/dist/mod-service/index.js +10 -4
- package/dist/mod-service/index.js.map +1 -1
- package/dist/mod-service/status.d.ts +1 -1
- package/dist/mod-service/util.d.ts.map +1 -1
- package/dist/mod-service/util.js +1 -0
- package/dist/mod-service/util.js.map +1 -1
- package/dist/mod-service/views.d.ts.map +1 -1
- package/dist/mod-service/views.js +7 -0
- package/dist/mod-service/views.js.map +1 -1
- package/dist/setting/validators.d.ts.map +1 -1
- package/dist/setting/validators.js +10 -0
- package/dist/setting/validators.js.map +1 -1
- package/package.json +10 -9
- package/src/api/moderation/emitEvent.ts +34 -9
- package/src/api/util.ts +7 -1
- package/src/daemon/event-pusher.ts +22 -5
- package/src/daemon/scheduled-action-processor.ts +59 -1
- package/src/jetstream/service.ts +1 -1
- package/src/lexicon/index.ts +49 -0
- package/src/lexicon/lexicons.ts +458 -3
- package/src/lexicon/types/app/bsky/ageassurance/begin.ts +54 -0
- package/src/lexicon/types/app/bsky/ageassurance/defs.ts +301 -0
- package/src/lexicon/types/app/bsky/ageassurance/getConfig.ts +34 -0
- package/src/lexicon/types/app/bsky/ageassurance/getState.ts +42 -0
- package/src/lexicon/types/tools/ozone/moderation/defs.ts +13 -2
- package/src/lexicon/types/tools/ozone/moderation/queryStatuses.ts +6 -1
- package/src/lexicon/types/tools/ozone/moderation/scheduleAction.ts +10 -0
- package/src/mod-service/index.ts +21 -7
- package/src/mod-service/util.ts +2 -0
- package/src/mod-service/views.ts +10 -0
- package/src/setting/validators.ts +15 -0
- package/tests/query-labels.test.ts +4 -1
- package/tests/scheduled-action-processor.test.ts +30 -6
- package/tests/takedown.test.ts +43 -1
- 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(
|
|
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
|
}
|
package/src/jetstream/service.ts
CHANGED
package/src/lexicon/index.ts
CHANGED
|
@@ -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
|
|