@atproto/ozone 0.1.176 → 0.2.0
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 +13 -0
- package/dist/api/chat/getConvo.d.ts +4 -0
- package/dist/api/chat/getConvo.d.ts.map +1 -0
- package/dist/api/chat/getConvo.js +18 -0
- package/dist/api/chat/getConvo.js.map +1 -0
- package/dist/api/chat/getConvoMembers.d.ts +4 -0
- package/dist/api/chat/getConvoMembers.d.ts.map +1 -0
- package/dist/api/chat/getConvoMembers.js +18 -0
- package/dist/api/chat/getConvoMembers.js.map +1 -0
- package/dist/api/chat/index.d.ts.map +1 -1
- package/dist/api/chat/index.js +4 -0
- package/dist/api/chat/index.js.map +1 -1
- package/dist/daemon/event-reverser.d.ts.map +1 -1
- package/dist/daemon/event-reverser.js +1 -0
- package/dist/daemon/event-reverser.js.map +1 -1
- package/dist/db/migrations/20260513T202941104Z-add-subject-convo-id.d.ts +4 -0
- package/dist/db/migrations/20260513T202941104Z-add-subject-convo-id.d.ts.map +1 -0
- package/dist/db/migrations/20260513T202941104Z-add-subject-convo-id.js +107 -0
- package/dist/db/migrations/20260513T202941104Z-add-subject-convo-id.js.map +1 -0
- package/dist/db/migrations/index.d.ts +1 -0
- package/dist/db/migrations/index.d.ts.map +1 -1
- package/dist/db/migrations/index.js +1 -0
- package/dist/db/migrations/index.js.map +1 -1
- package/dist/db/schema/expiring_tag.d.ts +1 -0
- package/dist/db/schema/expiring_tag.d.ts.map +1 -1
- package/dist/db/schema/expiring_tag.js.map +1 -1
- package/dist/db/schema/moderation_event.d.ts +2 -1
- package/dist/db/schema/moderation_event.d.ts.map +1 -1
- package/dist/db/schema/moderation_event.js.map +1 -1
- package/dist/db/schema/moderation_subject_status.d.ts +1 -0
- package/dist/db/schema/moderation_subject_status.d.ts.map +1 -1
- package/dist/db/schema/moderation_subject_status.js.map +1 -1
- package/dist/db/schema/report.d.ts +1 -0
- package/dist/db/schema/report.d.ts.map +1 -1
- package/dist/db/schema/report.js.map +1 -1
- package/dist/lexicon/index.d.ts +19 -2
- package/dist/lexicon/index.d.ts.map +1 -1
- package/dist/lexicon/index.js +32 -2
- package/dist/lexicon/index.js.map +1 -1
- package/dist/lexicon/lexicons.d.ts +1364 -132
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +721 -44
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/defs.d.ts +4 -0
- package/dist/lexicon/types/app/bsky/actor/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/external.d.ts +48 -2
- package/dist/lexicon/types/app/bsky/embed/external.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/external.js +21 -0
- package/dist/lexicon/types/app/bsky/embed/external.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/getEmbedExternalView.d.ts +31 -0
- package/dist/lexicon/types/app/bsky/embed/getEmbedExternalView.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/embed/getEmbedExternalView.js +5 -0
- package/dist/lexicon/types/app/bsky/embed/getEmbedExternalView.js.map +1 -0
- package/dist/lexicon/types/chat/bsky/actor/getStatus.d.ts +24 -0
- package/dist/lexicon/types/chat/bsky/actor/getStatus.d.ts.map +1 -0
- package/dist/lexicon/types/chat/bsky/{group/getJoinLinkPreview.js → actor/getStatus.js} +2 -2
- package/dist/lexicon/types/chat/bsky/actor/getStatus.js.map +1 -0
- package/dist/lexicon/types/chat/bsky/convo/defs.d.ts +39 -7
- package/dist/lexicon/types/chat/bsky/convo/defs.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/defs.js +21 -0
- package/dist/lexicon/types/chat/bsky/convo/defs.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.d.ts +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getLog.d.ts +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getLog.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getLog.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/listConvoRequests.d.ts +1 -1
- package/dist/lexicon/types/chat/bsky/convo/listConvoRequests.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/listConvoRequests.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/embed/joinLink.d.ts +19 -0
- package/dist/lexicon/types/chat/bsky/embed/joinLink.d.ts.map +1 -0
- package/dist/lexicon/types/chat/bsky/embed/joinLink.js +19 -0
- package/dist/lexicon/types/chat/bsky/embed/joinLink.js.map +1 -0
- package/dist/lexicon/types/chat/bsky/group/addMembers.d.ts +1 -1
- package/dist/lexicon/types/chat/bsky/group/addMembers.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/addMembers.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/createGroup.d.ts +1 -1
- package/dist/lexicon/types/chat/bsky/group/createGroup.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/createGroup.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/defs.d.ts +23 -0
- package/dist/lexicon/types/chat/bsky/group/defs.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/defs.js +14 -0
- package/dist/lexicon/types/chat/bsky/group/defs.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/{getJoinLinkPreview.d.ts → getJoinLinkPreviews.d.ts} +3 -4
- package/dist/lexicon/types/chat/bsky/group/getJoinLinkPreviews.d.ts.map +1 -0
- package/dist/lexicon/types/chat/bsky/group/getJoinLinkPreviews.js +5 -0
- package/dist/lexicon/types/chat/bsky/group/getJoinLinkPreviews.js.map +1 -0
- package/dist/lexicon/types/chat/bsky/group/updateJoinRequestsRead.d.ts +24 -0
- package/dist/lexicon/types/chat/bsky/group/updateJoinRequestsRead.d.ts.map +1 -0
- package/dist/lexicon/types/chat/bsky/group/updateJoinRequestsRead.js +5 -0
- package/dist/lexicon/types/chat/bsky/group/updateJoinRequestsRead.js.map +1 -0
- package/dist/lexicon/types/chat/bsky/group/withdrawJoinRequest.d.ts +24 -0
- package/dist/lexicon/types/chat/bsky/group/withdrawJoinRequest.d.ts.map +1 -0
- package/dist/lexicon/types/chat/bsky/group/withdrawJoinRequest.js +5 -0
- package/dist/lexicon/types/chat/bsky/group/withdrawJoinRequest.js.map +1 -0
- package/dist/lexicon/types/chat/bsky/moderation/defs.d.ts +42 -0
- package/dist/lexicon/types/chat/bsky/moderation/defs.d.ts.map +1 -0
- package/dist/lexicon/types/chat/bsky/moderation/defs.js +26 -0
- package/dist/lexicon/types/chat/bsky/moderation/defs.js.map +1 -0
- package/dist/lexicon/types/chat/bsky/moderation/getConvo.d.ts +23 -0
- package/dist/lexicon/types/chat/bsky/moderation/getConvo.d.ts.map +1 -0
- package/dist/lexicon/types/chat/bsky/moderation/getConvo.js +5 -0
- package/dist/lexicon/types/chat/bsky/moderation/getConvo.js.map +1 -0
- package/dist/lexicon/types/chat/bsky/moderation/getConvoMembers.d.ts +26 -0
- package/dist/lexicon/types/chat/bsky/moderation/getConvoMembers.d.ts.map +1 -0
- package/dist/lexicon/types/chat/bsky/moderation/getConvoMembers.js +5 -0
- package/dist/lexicon/types/chat/bsky/moderation/getConvoMembers.js.map +1 -0
- package/dist/lexicon/types/chat/bsky/moderation/subscribeModEvents.d.ts +13 -1
- package/dist/lexicon/types/chat/bsky/moderation/subscribeModEvents.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/moderation/subscribeModEvents.js +7 -0
- package/dist/lexicon/types/chat/bsky/moderation/subscribeModEvents.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/getServiceAuth.d.ts +1 -1
- package/dist/lexicon/types/com/atproto/server/getServiceAuth.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/server/getServiceAuth.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +10 -3
- package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/defs.js +7 -0
- package/dist/lexicon/types/tools/ozone/moderation/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/queryEvents.d.ts +2 -2
- package/dist/lexicon/types/tools/ozone/moderation/queryEvents.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/queryEvents.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.d.ts +2 -2
- 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/mod-service/expiring-tags.d.ts +3 -0
- package/dist/mod-service/expiring-tags.d.ts.map +1 -1
- package/dist/mod-service/expiring-tags.js +5 -2
- package/dist/mod-service/expiring-tags.js.map +1 -1
- package/dist/mod-service/index.d.ts +3 -1
- package/dist/mod-service/index.d.ts.map +1 -1
- package/dist/mod-service/index.js +48 -10
- package/dist/mod-service/index.js.map +1 -1
- package/dist/mod-service/status.d.ts +7 -1
- package/dist/mod-service/status.d.ts.map +1 -1
- package/dist/mod-service/status.js +18 -3
- package/dist/mod-service/status.js.map +1 -1
- package/dist/mod-service/subject.d.ts +38 -2
- package/dist/mod-service/subject.d.ts.map +1 -1
- package/dist/mod-service/subject.js +67 -0
- package/dist/mod-service/subject.js.map +1 -1
- package/dist/mod-service/views.d.ts +2 -1
- package/dist/mod-service/views.d.ts.map +1 -1
- package/dist/mod-service/views.js +24 -22
- package/dist/mod-service/views.js.map +1 -1
- package/dist/queue/service.d.ts.map +1 -1
- package/dist/queue/service.js +7 -3
- package/dist/queue/service.js.map +1 -1
- package/dist/safelink/service.d.ts +1 -1
- package/package.json +5 -5
- package/src/api/chat/getConvo.ts +23 -0
- package/src/api/chat/getConvoMembers.ts +23 -0
- package/src/api/chat/index.ts +4 -0
- package/src/daemon/event-reverser.ts +1 -0
- package/src/db/migrations/20260513T202941104Z-add-subject-convo-id.ts +114 -0
- package/src/db/migrations/index.ts +1 -0
- package/src/db/schema/expiring_tag.ts +1 -0
- package/src/db/schema/moderation_event.ts +2 -0
- package/src/db/schema/moderation_subject_status.ts +4 -0
- package/src/db/schema/report.ts +2 -1
- package/src/mod-service/expiring-tags.ts +8 -2
- package/src/mod-service/index.ts +52 -16
- package/src/mod-service/status.ts +24 -2
- package/src/mod-service/subject.ts +79 -1
- package/src/mod-service/views.ts +28 -23
- package/src/queue/service.ts +8 -4
- package/tests/__snapshots__/verification.test.ts.snap +2 -0
- package/tests/expiring-tags.test.ts +1 -0
- package/tests/moderation-events.test.ts +108 -1
- package/tests/moderation-status-tags.test.ts +23 -0
- package/tests/moderation-statuses.test.ts +82 -0
- package/tests/moderation.test.ts +73 -0
- package/tsconfig.build.tsbuildinfo +1 -1
- package/dist/lexicon/types/chat/bsky/group/getJoinLinkPreview.d.ts.map +0 -1
- package/dist/lexicon/types/chat/bsky/group/getJoinLinkPreview.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expiring-tags.js","sourceRoot":"","sources":["../../src/mod-service/expiring-tags.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"expiring-tags.js","sourceRoot":"","sources":["../../src/mod-service/expiring-tags.ts"],"names":[],"mappings":"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","sourcesContent":["import { Selectable } from 'kysely'\nimport { Database } from '../db/index.js'\nimport { ExpiringTag } from '../db/schema/expiring_tag.js'\n\nexport type ExpiringTagRow = Selectable<ExpiringTag>\n\nexport type ExpiringTagGroup = {\n did: string\n recordPath: string\n convoId: string\n createdBy: string\n tags: string[]\n ids: number[]\n}\n\nexport async function insertExpiringTags(\n db: Database,\n params: {\n eventId: number\n did: string\n recordPath: string\n convoId: string\n tags: string[]\n expiresAt: string\n createdBy: string\n },\n): Promise<void> {\n await db.db\n .insertInto('expiring_tag')\n .values(\n params.tags.map((tag) => ({\n eventId: params.eventId,\n did: params.did,\n recordPath: params.recordPath,\n convoId: params.convoId,\n tag,\n expiresAt: params.expiresAt,\n createdBy: params.createdBy,\n })),\n )\n .execute()\n}\n\nexport async function removeExpiringTags(\n db: Database,\n params: {\n did: string\n recordPath: string\n convoId: string\n tags: string[]\n },\n): Promise<void> {\n await db.db\n .deleteFrom('expiring_tag')\n .where('did', '=', params.did)\n .where('recordPath', '=', params.recordPath)\n .where('convoId', '=', params.convoId)\n .where('tag', 'in', params.tags)\n .execute()\n}\n\nexport async function deleteExpiringTagsByIds(\n db: Database,\n ids: number[],\n): Promise<void> {\n await db.db.deleteFrom('expiring_tag').where('id', 'in', ids).execute()\n}\n\nexport async function getExpiredTags(\n db: Database,\n): Promise<ExpiringTagGroup[]> {\n const now = new Date().toISOString()\n const rows = await db.db\n .selectFrom('expiring_tag')\n .where('expiresAt', '<', now)\n .selectAll()\n .execute()\n\n if (!rows.length) return []\n\n // Group by (did, recordPath, convoId, createdBy) so each reversal event has the correct author\n const grouped = new Map<string, ExpiringTagGroup>()\n for (const row of rows) {\n const key = `${row.did}|${row.recordPath}|${row.convoId}|${row.createdBy}`\n let group = grouped.get(key)\n if (!group) {\n group = {\n did: row.did,\n recordPath: row.recordPath,\n convoId: row.convoId,\n createdBy: row.createdBy,\n tags: [],\n ids: [],\n }\n grouped.set(key, group)\n }\n if (!group.tags.includes(row.tag)) {\n group.tags.push(row.tag)\n }\n group.ids.push(row.id)\n }\n\n return [...grouped.values()]\n}\n"]}
|
|
@@ -100,6 +100,7 @@ export declare class ModerationService {
|
|
|
100
100
|
hostingDeactivatedAt: string | null;
|
|
101
101
|
hostingReactivatedAt: string | null;
|
|
102
102
|
ageAssuranceState: string;
|
|
103
|
+
convoId: string;
|
|
103
104
|
priorityScore: number | undefined;
|
|
104
105
|
ageAssuranceUpdatedBy: string | null | undefined;
|
|
105
106
|
}[]>;
|
|
@@ -119,7 +120,7 @@ export declare class ModerationService {
|
|
|
119
120
|
getLastReversibleEventForSubject(subject: ReversalSubject): Promise<{
|
|
120
121
|
id: number;
|
|
121
122
|
action: "tools.ozone.moderation.defs#modEventTakedown" | "tools.ozone.moderation.defs#modEventReverseTakedown" | "tools.ozone.moderation.defs#modEventComment" | "tools.ozone.moderation.defs#modEventReport" | "tools.ozone.moderation.defs#modEventLabel" | "tools.ozone.moderation.defs#modEventAcknowledge" | "tools.ozone.moderation.defs#modEventEscalate" | "tools.ozone.moderation.defs#modEventMute" | "tools.ozone.moderation.defs#modEventUnmute" | "tools.ozone.moderation.defs#modEventMuteReporter" | "tools.ozone.moderation.defs#modEventUnmuteReporter" | "tools.ozone.moderation.defs#modEventEmail" | "tools.ozone.moderation.defs#modEventResolveAppeal" | "tools.ozone.moderation.defs#modEventTag" | "tools.ozone.moderation.defs#accountEvent" | "tools.ozone.moderation.defs#identityEvent" | "tools.ozone.moderation.defs#recordEvent" | "tools.ozone.moderation.defs#modEventPriorityScore" | "tools.ozone.moderation.defs#revokeAccountCredentialsEvent" | "tools.ozone.moderation.defs#ageAssuranceEvent" | "tools.ozone.moderation.defs#ageAssuranceOverrideEvent" | "tools.ozone.moderation.defs#ageAssurancePurgeEvent";
|
|
122
|
-
subjectType: "com.atproto.repo.strongRef" | "com.atproto.admin.defs#repoRef" | "chat.bsky.convo.defs#messageRef";
|
|
123
|
+
subjectType: "com.atproto.repo.strongRef" | "com.atproto.admin.defs#repoRef" | "chat.bsky.convo.defs#convoRef" | "chat.bsky.convo.defs#messageRef";
|
|
123
124
|
subjectDid: string;
|
|
124
125
|
subjectUri: string | null;
|
|
125
126
|
subjectCid: string | null;
|
|
@@ -144,6 +145,7 @@ export declare class ModerationService {
|
|
|
144
145
|
strikeCount: number | null;
|
|
145
146
|
strikeExpiresAt: string | null;
|
|
146
147
|
externalId: string | null;
|
|
148
|
+
subjectConvoId: string | null;
|
|
147
149
|
} | null | undefined>;
|
|
148
150
|
getSubjectsDueForReversal(): Promise<ReversalSubject[]>;
|
|
149
151
|
isSubjectSuspended(did: string): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mod-service/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mod-service/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAEjE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,KAAK,EAAkB,MAAM,iBAAiB,CAAA;AAGvD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAIzC,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE1D,OAAO,EACL,WAAW,EACX,OAAO,EACR,MAAM,4CAA4C,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,4CAA4C,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,iDAAiD,CAAA;AAC5E,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,gDAAgD,CAAA;AAsBlF,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,0DAA0D,CAAA;AAS3G,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACjE,OAAO,EACL,UAAU,EACV,aAAa,EACb,WAAW,EAEZ,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,4BAA4B,EAC5B,0BAA0B,EAC1B,oCAAoC,EACpC,aAAa,EACb,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,YAAY,CAAA;AAQnB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEzD,MAAM,MAAM,wBAAwB,GAAG,CAAC,EAAE,EAAE,QAAQ,KAAK,iBAAiB,CAAA;AAE1E,qBAAa,iBAAiB;IAEnB,EAAE,EAAE,QAAQ;IACZ,UAAU,EAAE,OAAO;IACnB,YAAY,EAAE,MAAM;IACpB,GAAG,EAAE,WAAW;IAChB,eAAe,EAAE,eAAe;IAChC,UAAU,EAAE,UAAU;IACtB,WAAW,EAAE,WAAW;IACxB,YAAY,EAAE,QAAQ;IAC7B,OAAO,CAAC,iBAAiB;IAIlB,aAAa,EAAE,aAAa;IAC5B,cAAc,CAAC,EAAE,gBAAgB;gBAbjC,EAAE,EAAE,QAAQ,EACZ,UAAU,EAAE,OAAO,EACnB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,WAAW,EAChB,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,QAAQ,EACrB,iBAAiB,EAAE,CACzB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,WAAW,CAAC,EAClB,aAAa,EAAE,aAAa,EAC5B,cAAc,CAAC,EAAE,gBAAgB,YAAA;IAG1C,MAAM,CAAC,OAAO,CACZ,UAAU,EAAE,OAAO,EACnB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,WAAW,EAChB,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,QAAQ,EACtB,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,EACxE,oBAAoB,EAAE,oBAAoB,EAC1C,cAAc,CAAC,EAAE,gBAAgB,IAEzB,IAAI,QAAQ;IAkBtB,KAAK,kBAiBJ;IAEK,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAQ7D,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAMxD,oBAAoB,CACxB,SAAS,EAAE,eAAe,CAAC,QAAQ,CAAC,EACpC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,OAAO,CAAC;IAYb,SAAS,CAAC,IAAI,EAAE;QACpB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,qBAAqB,EAAE,OAAO,CAAA;QAC9B,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAA;QAClC,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;QAC9B,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,WAAW,EAAE,MAAM,EAAE,CAAA;QACrB,aAAa,EAAE,MAAM,EAAE,CAAA;QACvB,SAAS,EAAE,MAAM,EAAE,CAAA;QACnB,WAAW,EAAE,MAAM,EAAE,CAAA;QACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;QACtB,WAAW,EAAE,MAAM,EAAE,CAAA;QACrB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;QAClB,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,UAAU,CAAC,EAAE,OAAO,CAAA;KACrB,GAAG,OAAO,CAAC;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,kBAAkB,EAAE,CAAA;KAAE,CAAC;IA6LxD,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,4BAA4B,EAAE,CAAC;IAuBtE,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAS9D,gBAAgB,CACpB,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,GAAG,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,GAAG,EAAE,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYvD,yBAAyB,CAC7B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,kBAAkB;IAoD5B,QAAQ,CAAC,IAAI,EAAE;QACnB,KAAK,EAAE,YAAY,CAAA;QACnB,OAAO,EAAE,UAAU,CAAA;QACnB,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,CAAC,EAAE,IAAI,CAAA;QAChB,OAAO,CAAC,EAAE,wBAAwB,CAAC,OAAO,CAAA;QAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,GAAG,OAAO,CAAC;QACV,KAAK,EAAE,kBAAkB,CAAA;QACzB,aAAa,EAAE,0BAA0B,GAAG,IAAI,CAAA;KACjD,CAAC;IAqQI,uBAAuB,CAAC,UAAU,EAAE,MAAM;IAS1C,gCAAgC,CAAC,OAAO,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuCzD,yBAAyB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAgBvD,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAajD,WAAW,CAAC,EAChB,SAAS,EACT,SAAS,EACT,OAAO,EACP,MAAM,EACN,OAAO,GACR,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA2BpD,YAAY,CAChB,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,EAC3B,SAAS,UAAQ;IAiDb,mBAAmB,CAAC,OAAO,EAAE,WAAW;IAoCxC,cAAc,CAClB,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC;IA+DvB,qBAAqB,CAAC,OAAO,EAAE,aAAa;IAoC5C,MAAM,CAAC,IAAI,EAAE;QACjB,UAAU,EAAE,UAAU,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,UAAU,CAAA;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,SAAS,CAAC,EAAE,IAAI,CAAA;QAChB,OAAO,CAAC,EAAE;YACR,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,CAAC,EAAE;iBAAG,CAAC,IAAI,MAAM,GAAG,OAAO;aAAE,CAAA;SAClC,CAAA;KACF,GAAG,OAAO,CAAC;QACV,KAAK,EAAE,kBAAkB,CAAA;QACzB,aAAa,EAAE,0BAA0B,GAAG,IAAI,CAAA;KACjD,CAAC;IAuBI,kBAAkB,CAAC,EACvB,UAAU,EACV,UAAU,EACV,SAAc,EACd,qBAAqB,EACrB,MAAM,EACN,KAAU,EACV,SAAS,EACT,QAAQ,EACR,WAAW,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,cAAc,EACd,YAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,SAAiB,EACjB,cAAc,EACd,aAAsB,EACtB,cAAc,EACd,SAA4B,EAC5B,OAAO,EACP,IAAI,EACJ,WAAW,EACX,WAAW,EACX,WAAW,EACX,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,GAClB,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAC7B,QAAQ,EAAE,oCAAoC,EAAE,CAAA;QAChD,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAC;IAoUI,SAAS,CACb,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC;IAavC,0BAA0B,CAAC,GAAG,EAAE,MAAM;IActC,cAAc,CAAC,GAAG,EAAE,MAAM;IAa1B,qBAAqB,CACzB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAChD,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,KAAK,EAAE,CAAC;IA0Bb,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IA2B/C,SAAS,CAAC,IAAI,EAAE;QACpB,OAAO,EAAE,MAAM,CAAA;QACf,YAAY,EAAE,MAAM,CAAA;QACpB,OAAO,EAAE,MAAM,CAAA;KAChB;IAqCK,oBAAoB,CACxB,WAAW,EAAE,SAAS,GAAG,QAAQ,EACjC,aAAa,EAAE,MAAM,EAAE,EACvB,aAAa,EAAE,OAAO,GACrB,OAAO,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IA+GxD,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE;IA8D/B,kBAAkB,CAAC,GAAG,EAAE,MAAM;;;;;;CAsBrC;AAgBD,eAAO,MAAM,cAAc,cAAc,CAAA;AACzC,eAAO,MAAM,aAAa,aAAa,CAAA;AAEvC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,CAAC,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC,EAAE,CAAA;CAChD,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,UAAU,CAAA;IACnB,cAAc,EAAE,OAAO,CAAA;IACvB,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA"}
|
|
@@ -72,23 +72,39 @@ export class ModerationService {
|
|
|
72
72
|
let builder = this.db.db.selectFrom('moderation_event').selectAll();
|
|
73
73
|
if (subject) {
|
|
74
74
|
const isSubjectAtUri = subject.startsWith('at://');
|
|
75
|
+
const subjectAtUri = isSubjectAtUri ? new AtUri(subject) : null;
|
|
75
76
|
const subjectDid = isSubjectAtUri ? new AtUri(subject).hostname : subject;
|
|
76
77
|
const subjectUri = isSubjectAtUri ? subject : null;
|
|
77
78
|
// regardless of subjectUri check, we always want to query against subjectDid column since that's indexed
|
|
78
79
|
builder = builder.where('subjectDid', '=', subjectDid);
|
|
79
|
-
//
|
|
80
|
+
// subjectUri or subjectConvoId
|
|
80
81
|
if (!includeAllUserRecords) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
if (subjectAtUri?.collection === 'chat.bsky.convo') {
|
|
83
|
+
builder = builder.where('subjectConvoId', '=', subjectAtUri.rkey);
|
|
84
|
+
}
|
|
85
|
+
else if (subjectUri) {
|
|
86
|
+
builder = builder.where('subjectUri', '=', subjectUri);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
// Account-level: subjectUri IS NULL also matches conversation events,
|
|
90
|
+
// so explicitly exclude them.
|
|
91
|
+
builder = builder
|
|
92
|
+
.where('subjectUri', 'is', null)
|
|
93
|
+
.where('subjectConvoId', 'is', null);
|
|
94
|
+
}
|
|
84
95
|
}
|
|
85
96
|
}
|
|
86
97
|
else if (subjectType === 'account') {
|
|
87
|
-
builder = builder
|
|
98
|
+
builder = builder
|
|
99
|
+
.where('subjectUri', 'is', null)
|
|
100
|
+
.where('subjectConvoId', 'is', null);
|
|
88
101
|
}
|
|
89
102
|
else if (subjectType === 'record') {
|
|
90
103
|
builder = builder.where('subjectUri', 'is not', null);
|
|
91
104
|
}
|
|
105
|
+
else if (subjectType === 'conversation') {
|
|
106
|
+
builder = builder.where('subjectConvoId', 'is not', null);
|
|
107
|
+
}
|
|
92
108
|
// If subjectType is set to 'account' let that take priority and ignore collections filter
|
|
93
109
|
if (collections.length && subjectType !== 'account') {
|
|
94
110
|
builder = builder.where('subjectUri', 'is not', null).where((qb) => {
|
|
@@ -245,7 +261,7 @@ export class ModerationService {
|
|
|
245
261
|
const subjectsToBeResolved = await this.db.db
|
|
246
262
|
.selectFrom('moderation_subject_status')
|
|
247
263
|
.where('did', '=', did)
|
|
248
|
-
.where('recordPath', '!=', '')
|
|
264
|
+
.where((qb) => qb.where('recordPath', '!=', '').orWhere('convoId', '!=', ''))
|
|
249
265
|
.where('reviewState', 'in', [REVIEWESCALATED, REVIEWOPEN])
|
|
250
266
|
.selectAll()
|
|
251
267
|
.execute();
|
|
@@ -449,6 +465,7 @@ export class ModerationService {
|
|
|
449
465
|
subjectCid: subjectInfo.subjectCid,
|
|
450
466
|
subjectBlobCids: jsonb(subjectInfo.subjectBlobCids),
|
|
451
467
|
subjectMessageId: subjectInfo.subjectMessageId,
|
|
468
|
+
subjectConvoId: subjectInfo.subjectConvoId,
|
|
452
469
|
modTool: modTool ? jsonb(modTool) : null,
|
|
453
470
|
externalId: externalId ?? null,
|
|
454
471
|
severityLevel,
|
|
@@ -466,6 +483,7 @@ export class ModerationService {
|
|
|
466
483
|
eventId: modEvent.id,
|
|
467
484
|
did: subjectInfo.subjectDid,
|
|
468
485
|
recordPath: subjectInfo.subjectUri ?? '',
|
|
486
|
+
convoId: subjectInfo.subjectConvoId ?? '',
|
|
469
487
|
tags: event.add,
|
|
470
488
|
expiresAt,
|
|
471
489
|
createdBy,
|
|
@@ -475,6 +493,7 @@ export class ModerationService {
|
|
|
475
493
|
await removeExpiringTags(this.db, {
|
|
476
494
|
did: subjectInfo.subjectDid,
|
|
477
495
|
recordPath: subjectInfo.subjectUri ?? '',
|
|
496
|
+
convoId: subjectInfo.subjectConvoId ?? '',
|
|
478
497
|
tags: event.remove,
|
|
479
498
|
});
|
|
480
499
|
}
|
|
@@ -551,6 +570,7 @@ export class ModerationService {
|
|
|
551
570
|
.selectFrom('moderation_subject_status')
|
|
552
571
|
.where('did', '=', did)
|
|
553
572
|
.where('recordPath', '=', '')
|
|
573
|
+
.where('convoId', '=', '')
|
|
554
574
|
.where('suspendUntil', '>', new Date().toISOString())
|
|
555
575
|
.select('did')
|
|
556
576
|
.limit(1)
|
|
@@ -733,17 +753,32 @@ export class ModerationService {
|
|
|
733
753
|
const subjectInfo = getStatusIdentifierFromSubject(subject);
|
|
734
754
|
builder = builder.where('moderation_subject_status.did', '=', subjectInfo.did);
|
|
735
755
|
if (!includeAllUserRecords) {
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
756
|
+
if (subjectInfo.convoId) {
|
|
757
|
+
builder = builder.where('moderation_subject_status.convoId', '=', subjectInfo.convoId);
|
|
758
|
+
}
|
|
759
|
+
else if (subjectInfo.recordPath) {
|
|
760
|
+
builder = builder.where('moderation_subject_status.recordPath', '=', subjectInfo.recordPath);
|
|
761
|
+
}
|
|
762
|
+
else {
|
|
763
|
+
// Account-level: recordPath = '' also matches conversation statuses,
|
|
764
|
+
// so explicitly exclude them.
|
|
765
|
+
builder = builder
|
|
766
|
+
.where('moderation_subject_status.recordPath', '=', '')
|
|
767
|
+
.where('moderation_subject_status.convoId', '=', '');
|
|
768
|
+
}
|
|
739
769
|
}
|
|
740
770
|
}
|
|
741
771
|
else if (subjectType === 'account') {
|
|
742
|
-
builder = builder
|
|
772
|
+
builder = builder
|
|
773
|
+
.where('moderation_subject_status.recordPath', '=', '')
|
|
774
|
+
.where('moderation_subject_status.convoId', '=', '');
|
|
743
775
|
}
|
|
744
776
|
else if (subjectType === 'record') {
|
|
745
777
|
builder = builder.where('moderation_subject_status.recordPath', '!=', '');
|
|
746
778
|
}
|
|
779
|
+
else if (subjectType === 'conversation') {
|
|
780
|
+
builder = builder.where('moderation_subject_status.convoId', '!=', '');
|
|
781
|
+
}
|
|
747
782
|
// Only fetch items that belongs to the specified queue when specified
|
|
748
783
|
if (!subject &&
|
|
749
784
|
queueCount &&
|
|
@@ -895,6 +930,7 @@ export class ModerationService {
|
|
|
895
930
|
.selectFrom('moderation_subject_status')
|
|
896
931
|
.where('did', '=', subject.did)
|
|
897
932
|
.where('recordPath', '=', subject.recordPath ?? '')
|
|
933
|
+
.where('convoId', '=', subject.convoId ?? '')
|
|
898
934
|
.selectAll()
|
|
899
935
|
.executeTakeFirst();
|
|
900
936
|
return result ?? null;
|
|
@@ -906,6 +942,7 @@ export class ModerationService {
|
|
|
906
942
|
.selectFrom('moderation_subject_status')
|
|
907
943
|
.where('did', '=', did)
|
|
908
944
|
.where('recordPath', '=', '')
|
|
945
|
+
.where('convoId', '=', '')
|
|
909
946
|
.where('muteReportingUntil', '>', new Date().toISOString())
|
|
910
947
|
.select(sql `true`.as('status'))
|
|
911
948
|
.executeTakeFirst();
|
|
@@ -917,6 +954,7 @@ export class ModerationService {
|
|
|
917
954
|
.selectFrom('moderation_subject_status')
|
|
918
955
|
.where('did', '=', did)
|
|
919
956
|
.where('recordPath', '=', '')
|
|
957
|
+
.where('convoId', '=', '')
|
|
920
958
|
.where('muteUntil', '>', new Date().toISOString())
|
|
921
959
|
.select(sql `true`.as('status'))
|
|
922
960
|
.executeTakeFirst();
|