@atproto/ozone 0.1.140 → 0.1.142

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 (103) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/api/moderation/emitEvent.d.ts.map +1 -1
  3. package/dist/api/moderation/emitEvent.js +16 -0
  4. package/dist/api/moderation/emitEvent.js.map +1 -1
  5. package/dist/api/proxied.d.ts.map +1 -1
  6. package/dist/api/proxied.js +9 -0
  7. package/dist/api/proxied.js.map +1 -1
  8. package/dist/api/report/createReport.d.ts.map +1 -1
  9. package/dist/api/report/createReport.js +7 -5
  10. package/dist/api/report/createReport.js.map +1 -1
  11. package/dist/api/util.d.ts +3 -4
  12. package/dist/api/util.d.ts.map +1 -1
  13. package/dist/api/util.js +8 -17
  14. package/dist/api/util.js.map +1 -1
  15. package/dist/config/config.d.ts +1 -0
  16. package/dist/config/config.d.ts.map +1 -1
  17. package/dist/config/config.js +1 -0
  18. package/dist/config/config.js.map +1 -1
  19. package/dist/config/env.d.ts +1 -0
  20. package/dist/config/env.d.ts.map +1 -1
  21. package/dist/config/env.js +1 -0
  22. package/dist/config/env.js.map +1 -1
  23. package/dist/context.d.ts +3 -0
  24. package/dist/context.d.ts.map +1 -1
  25. package/dist/context.js +6 -0
  26. package/dist/context.js.map +1 -1
  27. package/dist/db/migrations/20250718T150931000Z-update-appeal-reason-stats.d.ts +5 -0
  28. package/dist/db/migrations/20250718T150931000Z-update-appeal-reason-stats.d.ts.map +1 -0
  29. package/dist/db/migrations/20250718T150931000Z-update-appeal-reason-stats.js +228 -0
  30. package/dist/db/migrations/20250718T150931000Z-update-appeal-reason-stats.js.map +1 -0
  31. package/dist/db/migrations/index.d.ts +1 -0
  32. package/dist/db/migrations/index.d.ts.map +1 -1
  33. package/dist/db/migrations/index.js +2 -1
  34. package/dist/db/migrations/index.js.map +1 -1
  35. package/dist/db/schema/moderation_event.d.ts +1 -1
  36. package/dist/db/schema/moderation_event.d.ts.map +1 -1
  37. package/dist/lexicon/index.d.ts +49 -0
  38. package/dist/lexicon/index.d.ts.map +1 -1
  39. package/dist/lexicon/index.js +52 -1
  40. package/dist/lexicon/index.js.map +1 -1
  41. package/dist/lexicon/lexicons.d.ts +500 -24
  42. package/dist/lexicon/lexicons.d.ts.map +1 -1
  43. package/dist/lexicon/lexicons.js +344 -7
  44. package/dist/lexicon/lexicons.js.map +1 -1
  45. package/dist/lexicon/types/com/atproto/moderation/defs.d.ts +8 -8
  46. package/dist/lexicon/types/com/atproto/moderation/defs.d.ts.map +1 -1
  47. package/dist/lexicon/types/com/atproto/moderation/defs.js +7 -7
  48. package/dist/lexicon/types/com/atproto/moderation/defs.js.map +1 -1
  49. package/dist/lexicon/types/com/atproto/temp/dereferenceScope.d.ts +24 -0
  50. package/dist/lexicon/types/com/atproto/temp/dereferenceScope.d.ts.map +1 -0
  51. package/dist/lexicon/types/com/atproto/temp/dereferenceScope.js +7 -0
  52. package/dist/lexicon/types/com/atproto/temp/dereferenceScope.js.map +1 -0
  53. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +10 -2
  54. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts.map +1 -1
  55. package/dist/lexicon/types/tools/ozone/moderation/defs.js +9 -0
  56. package/dist/lexicon/types/tools/ozone/moderation/defs.js.map +1 -1
  57. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts +1 -1
  58. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts.map +1 -1
  59. package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.d.ts +1 -1
  60. package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.d.ts.map +1 -1
  61. package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.js.map +1 -1
  62. package/dist/lexicon/types/tools/ozone/report/defs.d.ts +92 -0
  63. package/dist/lexicon/types/tools/ozone/report/defs.d.ts.map +1 -0
  64. package/dist/lexicon/types/tools/ozone/report/defs.js +98 -0
  65. package/dist/lexicon/types/tools/ozone/report/defs.js.map +1 -0
  66. package/dist/mod-service/index.d.ts +2 -2
  67. package/dist/mod-service/profile.d.ts +15 -0
  68. package/dist/mod-service/profile.d.ts.map +1 -0
  69. package/dist/mod-service/profile.js +135 -0
  70. package/dist/mod-service/profile.js.map +1 -0
  71. package/dist/mod-service/status.d.ts.map +1 -1
  72. package/dist/mod-service/status.js +18 -17
  73. package/dist/mod-service/status.js.map +1 -1
  74. package/dist/tag-service/util.d.ts.map +1 -1
  75. package/dist/tag-service/util.js +7 -1
  76. package/dist/tag-service/util.js.map +1 -1
  77. package/package.json +9 -9
  78. package/src/api/moderation/emitEvent.ts +27 -0
  79. package/src/api/proxied.ts +13 -0
  80. package/src/api/report/createReport.ts +9 -9
  81. package/src/api/util.ts +8 -28
  82. package/src/config/config.ts +3 -1
  83. package/src/config/env.ts +2 -0
  84. package/src/context.ts +14 -0
  85. package/src/db/migrations/20250718T150931000Z-update-appeal-reason-stats.ts +311 -0
  86. package/src/db/migrations/index.ts +1 -0
  87. package/src/db/schema/moderation_event.ts +1 -0
  88. package/src/lexicon/index.ts +82 -0
  89. package/src/lexicon/lexicons.ts +357 -7
  90. package/src/lexicon/types/com/atproto/moderation/defs.ts +52 -7
  91. package/src/lexicon/types/com/atproto/temp/dereferenceScope.ts +42 -0
  92. package/src/lexicon/types/tools/ozone/moderation/defs.ts +23 -0
  93. package/src/lexicon/types/tools/ozone/moderation/emitEvent.ts +1 -0
  94. package/src/lexicon/types/tools/ozone/moderation/getAccountTimeline.ts +1 -0
  95. package/src/lexicon/types/tools/ozone/report/defs.ts +154 -0
  96. package/src/mod-service/profile.ts +143 -0
  97. package/src/mod-service/status.ts +3 -2
  98. package/src/tag-service/util.ts +9 -1
  99. package/tests/__snapshots__/report-reason.test.ts.snap +14 -0
  100. package/tests/report-reason.test.ts +154 -0
  101. package/tests/revoke-account-credentials.test.ts +54 -0
  102. package/tsconfig.build.tsbuildinfo +1 -1
  103. package/tsconfig.tests.tsbuildinfo +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defs.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/report/defs.ts"],"names":[],"mappings":"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"}
@@ -113,7 +113,7 @@ export declare class ModerationService {
113
113
  }>;
114
114
  getLastReversibleEventForSubject(subject: ReversalSubject): Promise<{
115
115
  id: number;
116
- 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#ageAssuranceEvent" | "tools.ozone.moderation.defs#ageAssuranceOverrideEvent";
116
+ 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";
117
117
  subjectType: "com.atproto.repo.strongRef" | "com.atproto.admin.defs#repoRef" | "chat.bsky.convo.defs#messageRef";
118
118
  subjectDid: string;
119
119
  subjectUri: string | null;
@@ -181,7 +181,7 @@ export declare class ModerationService {
181
181
  })[]>;
182
182
  getReporterStats(dids: string[]): Promise<ReporterStats[]>;
183
183
  getAccountTimeline(did: string): Promise<{
184
- 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#ageAssuranceEvent" | "tools.ozone.moderation.defs#ageAssuranceOverrideEvent";
184
+ 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";
185
185
  subjectUri: string | null;
186
186
  count: number;
187
187
  day: string;
@@ -0,0 +1,15 @@
1
+ import AtpAgent, { AppBskyLabelerDefs } from '@atproto/api';
2
+ import { OzoneConfig } from '../config';
3
+ export declare const NEW_TO_OLD_REASON_MAPPING: Record<string, string>;
4
+ export type ModerationServiceProfileCreator = () => ModerationServiceProfile;
5
+ export declare class ModerationServiceProfile {
6
+ private cfg;
7
+ private appviewAgent;
8
+ private cache;
9
+ private CACHE_TTL;
10
+ constructor(cfg: OzoneConfig, appviewAgent: AtpAgent, cacheTTL?: number);
11
+ static creator(cfg: OzoneConfig, appviewAgent: AtpAgent): ModerationServiceProfileCreator;
12
+ getProfile(): Promise<AppBskyLabelerDefs.LabelerViewDetailed | null>;
13
+ validateReasonType(reasonType: string): Promise<string>;
14
+ }
15
+ //# sourceMappingURL=profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/mod-service/profile.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,EAAE,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAYvC,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqD5D,CAAA;AAOD,MAAM,MAAM,+BAA+B,GAAG,MAAM,wBAAwB,CAAA;AAE5E,qBAAa,wBAAwB;IAKjC,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,YAAY;IALtB,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,SAAS,CAAQ;gBAGf,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,QAAQ,EAC9B,QAAQ,CAAC,EAAE,MAAM;IAKnB,MAAM,CAAC,OAAO,CACZ,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,QAAQ,GACrB,+BAA+B;IAI5B,UAAU;IAyBV,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAsB9D"}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModerationServiceProfile = exports.NEW_TO_OLD_REASON_MAPPING = void 0;
4
+ const api_1 = require("@atproto/api");
5
+ const xrpc_server_1 = require("@atproto/xrpc-server");
6
+ const defs_1 = require("../lexicon/types/com/atproto/moderation/defs");
7
+ const logger_1 = require("../logger");
8
+ // Reverse mapping from new ozone namespaced reason types to old com.atproto namespaced reason types
9
+ exports.NEW_TO_OLD_REASON_MAPPING = {
10
+ 'tools.ozone.report.defs#reasonMisleadingSpam': defs_1.REASONSPAM,
11
+ 'tools.ozone.report.defs#reasonRuleOther': defs_1.REASONVIOLATION,
12
+ 'tools.ozone.report.defs#reasonMisleadingOther': defs_1.REASONMISLEADING,
13
+ 'tools.ozone.report.defs#reasonSexualUnlabeled': defs_1.REASONSEXUAL,
14
+ 'tools.ozone.report.defs#reasonHarassmentOther': defs_1.REASONRUDE,
15
+ 'tools.ozone.report.defs#reasonAppeal': defs_1.REASONAPPEAL,
16
+ // Map all violence-related reasons to REASONVIOLATION
17
+ 'tools.ozone.report.defs#reasonViolenceAnimalWelfare': defs_1.REASONVIOLATION,
18
+ 'tools.ozone.report.defs#reasonViolenceThreats': defs_1.REASONVIOLATION,
19
+ 'tools.ozone.report.defs#reasonViolenceGraphicContent': defs_1.REASONVIOLATION,
20
+ 'tools.ozone.report.defs#reasonViolenceSelfHarm': defs_1.REASONVIOLATION,
21
+ 'tools.ozone.report.defs#reasonViolenceGlorification': defs_1.REASONVIOLATION,
22
+ 'tools.ozone.report.defs#reasonViolenceExtremistContent': defs_1.REASONVIOLATION,
23
+ 'tools.ozone.report.defs#reasonViolenceTrafficking': defs_1.REASONVIOLATION,
24
+ 'tools.ozone.report.defs#reasonViolenceOther': defs_1.REASONVIOLATION,
25
+ // Map all sexual-related reasons to REASONSEXUAL
26
+ 'tools.ozone.report.defs#reasonSexualAbuseContent': defs_1.REASONSEXUAL,
27
+ 'tools.ozone.report.defs#reasonSexualNCII': defs_1.REASONSEXUAL,
28
+ 'tools.ozone.report.defs#reasonSexualSextortion': defs_1.REASONSEXUAL,
29
+ 'tools.ozone.report.defs#reasonSexualDeepfake': defs_1.REASONSEXUAL,
30
+ 'tools.ozone.report.defs#reasonSexualAnimal': defs_1.REASONSEXUAL,
31
+ 'tools.ozone.report.defs#reasonSexualOther': defs_1.REASONSEXUAL,
32
+ // Map all child safety reasons to REASONVIOLATION
33
+ 'tools.ozone.report.defs#reasonChildSafetyCSAM': defs_1.REASONVIOLATION,
34
+ 'tools.ozone.report.defs#reasonChildSafetyGroom': defs_1.REASONVIOLATION,
35
+ 'tools.ozone.report.defs#reasonChildSafetyMinorPrivacy': defs_1.REASONVIOLATION,
36
+ 'tools.ozone.report.defs#reasonChildSafetyEndangerment': defs_1.REASONVIOLATION,
37
+ 'tools.ozone.report.defs#reasonChildSafetyHarassment': defs_1.REASONVIOLATION,
38
+ 'tools.ozone.report.defs#reasonChildSafetyPromotion': defs_1.REASONVIOLATION,
39
+ 'tools.ozone.report.defs#reasonChildSafetyOther': defs_1.REASONVIOLATION,
40
+ // Map all harassment reasons to REASONRUDE
41
+ 'tools.ozone.report.defs#reasonHarassmentTroll': defs_1.REASONRUDE,
42
+ 'tools.ozone.report.defs#reasonHarassmentTargeted': defs_1.REASONRUDE,
43
+ 'tools.ozone.report.defs#reasonHarassmentHateSpeech': defs_1.REASONRUDE,
44
+ 'tools.ozone.report.defs#reasonHarassmentDoxxing': defs_1.REASONRUDE,
45
+ // Map all misleading reasons to REASONMISLEADING
46
+ 'tools.ozone.report.defs#reasonMisleadingBot': defs_1.REASONMISLEADING,
47
+ 'tools.ozone.report.defs#reasonMisleadingImpersonation': defs_1.REASONMISLEADING,
48
+ 'tools.ozone.report.defs#reasonMisleadingScam': defs_1.REASONMISLEADING,
49
+ 'tools.ozone.report.defs#reasonMisleadingSyntheticContent': defs_1.REASONMISLEADING,
50
+ 'tools.ozone.report.defs#reasonMisleadingMisinformation': defs_1.REASONMISLEADING,
51
+ // Map all rule-related reasons to REASONVIOLATION
52
+ 'tools.ozone.report.defs#reasonRuleSiteSecurity': defs_1.REASONVIOLATION,
53
+ 'tools.ozone.report.defs#reasonRuleStolenContent': defs_1.REASONVIOLATION,
54
+ 'tools.ozone.report.defs#reasonRuleProhibitedSales': defs_1.REASONVIOLATION,
55
+ 'tools.ozone.report.defs#reasonRuleBanEvasion': defs_1.REASONVIOLATION,
56
+ // Map all civic reasons to REASONMISLEADING
57
+ 'tools.ozone.report.defs#reasonCivicElectoralProcess': defs_1.REASONMISLEADING,
58
+ 'tools.ozone.report.defs#reasonCivicDisclosure': defs_1.REASONMISLEADING,
59
+ 'tools.ozone.report.defs#reasonCivicInterference': defs_1.REASONMISLEADING,
60
+ 'tools.ozone.report.defs#reasonCivicMisinformation': defs_1.REASONMISLEADING,
61
+ 'tools.ozone.report.defs#reasonCivicImpersonation': defs_1.REASONMISLEADING,
62
+ };
63
+ class ModerationServiceProfile {
64
+ constructor(cfg, appviewAgent, cacheTTL) {
65
+ Object.defineProperty(this, "cfg", {
66
+ enumerable: true,
67
+ configurable: true,
68
+ writable: true,
69
+ value: cfg
70
+ });
71
+ Object.defineProperty(this, "appviewAgent", {
72
+ enumerable: true,
73
+ configurable: true,
74
+ writable: true,
75
+ value: appviewAgent
76
+ });
77
+ Object.defineProperty(this, "cache", {
78
+ enumerable: true,
79
+ configurable: true,
80
+ writable: true,
81
+ value: null
82
+ });
83
+ Object.defineProperty(this, "CACHE_TTL", {
84
+ enumerable: true,
85
+ configurable: true,
86
+ writable: true,
87
+ value: void 0
88
+ });
89
+ this.CACHE_TTL = cacheTTL || cfg.service.serviceRecordCacheTTL;
90
+ }
91
+ static creator(cfg, appviewAgent) {
92
+ return () => new ModerationServiceProfile(cfg, appviewAgent);
93
+ }
94
+ async getProfile() {
95
+ const now = Date.now();
96
+ if (!this.cache || now - this.cache.timestamp > this.CACHE_TTL) {
97
+ try {
98
+ const { data } = await this.appviewAgent.app.bsky.labeler.getServices({
99
+ dids: [this.cfg.service.did],
100
+ detailed: true,
101
+ });
102
+ if (api_1.AppBskyLabelerDefs.isLabelerViewDetailed(data.views?.[0])) {
103
+ this.cache = {
104
+ profile: data.views[0],
105
+ timestamp: now,
106
+ };
107
+ }
108
+ }
109
+ catch (e) {
110
+ // On error, fail open
111
+ logger_1.httpLogger.error(`Failed to fetch labeler profile: ${e?.['message']}`);
112
+ }
113
+ }
114
+ return this.cache?.profile || null;
115
+ }
116
+ async validateReasonType(reasonType) {
117
+ const profile = await this.getProfile();
118
+ if (!Array.isArray(profile?.reasonTypes)) {
119
+ return reasonType;
120
+ }
121
+ const supportedReasonTypes = profile.reasonTypes;
122
+ // Check if the reason type is directly supported
123
+ if (supportedReasonTypes.includes(reasonType)) {
124
+ return reasonType;
125
+ }
126
+ // Allow new reason types only if they map to a supported old reason type
127
+ const mappedOldReason = exports.NEW_TO_OLD_REASON_MAPPING[reasonType];
128
+ if (mappedOldReason && supportedReasonTypes.includes(mappedOldReason)) {
129
+ return reasonType;
130
+ }
131
+ throw new xrpc_server_1.InvalidRequestError(`Invalid reason type: ${reasonType}`);
132
+ }
133
+ }
134
+ exports.ModerationServiceProfile = ModerationServiceProfile;
135
+ //# sourceMappingURL=profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/mod-service/profile.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/mod-service/status.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAS7C,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAsMxE,eAAO,MAAM,mCAAmC,GAAI,IAAI,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ucAgDrE,CAAA;AAKD,eAAO,MAAM,6BAA6B,GACxC,IAAI,QAAQ,EACZ,iBAAiB,kBAAkB,EACnC,WAAW,MAAM,EAAE,KAClB,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAyN3C,CAAA;AAED,eAAO,MAAM,8BAA8B,GACzC,SAAS,MAAM,GAAG,KAAK,KACtB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAkBnC,CAAA"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/mod-service/status.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAQ7C,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAsMxE,eAAO,MAAM,mCAAmC,GAAI,IAAI,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ucAgDrE,CAAA;AAKD,eAAO,MAAM,6BAA6B,GACxC,IAAI,QAAQ,EACZ,iBAAiB,kBAAkB,EACnC,WAAW,MAAM,EAAE,KAClB,OAAO,CAAC,0BAA0B,GAAG,IAAI,CA0N3C,CAAA;AAED,eAAO,MAAM,8BAA8B,GACzC,SAAS,MAAM,GAAG,KAAK,KACtB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAkBnC,CAAA"}
@@ -4,35 +4,35 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.getStatusIdentifierFromSubject = exports.adjustModerationSubjectStatus = exports.moderationSubjectStatusQueryBuilder = void 0;
5
5
  const common_1 = require("@atproto/common");
6
6
  const syntax_1 = require("@atproto/syntax");
7
+ const util_1 = require("../api/util");
7
8
  const types_1 = require("../db/types");
8
- const defs_1 = require("../lexicon/types/com/atproto/moderation/defs");
9
- const defs_2 = require("../lexicon/types/tools/ozone/moderation/defs");
9
+ const defs_1 = require("../lexicon/types/tools/ozone/moderation/defs");
10
10
  const getSubjectStatusForModerationEvent = ({ currentStatus, action, createdBy, createdAt, durationInHours, }) => {
11
11
  const defaultReviewState = currentStatus
12
12
  ? currentStatus.reviewState
13
- : defs_2.REVIEWNONE;
13
+ : defs_1.REVIEWNONE;
14
14
  switch (action) {
15
15
  case 'tools.ozone.moderation.defs#modEventAcknowledge':
16
16
  return {
17
17
  lastReviewedBy: createdBy,
18
- reviewState: defs_2.REVIEWCLOSED,
18
+ reviewState: defs_1.REVIEWCLOSED,
19
19
  lastReviewedAt: createdAt,
20
20
  };
21
21
  case 'tools.ozone.moderation.defs#modEventReport':
22
22
  return {
23
- reviewState: defs_2.REVIEWOPEN,
23
+ reviewState: defs_1.REVIEWOPEN,
24
24
  lastReportedAt: createdAt,
25
25
  };
26
26
  case 'tools.ozone.moderation.defs#modEventEscalate':
27
27
  return {
28
28
  lastReviewedBy: createdBy,
29
- reviewState: defs_2.REVIEWESCALATED,
29
+ reviewState: defs_1.REVIEWESCALATED,
30
30
  lastReviewedAt: createdAt,
31
31
  };
32
32
  case 'tools.ozone.moderation.defs#modEventReverseTakedown':
33
33
  return {
34
34
  lastReviewedBy: createdBy,
35
- reviewState: defs_2.REVIEWCLOSED,
35
+ reviewState: defs_1.REVIEWCLOSED,
36
36
  takendown: false,
37
37
  suspendUntil: null,
38
38
  lastReviewedAt: createdAt,
@@ -61,7 +61,7 @@ const getSubjectStatusForModerationEvent = ({ currentStatus, action, createdBy,
61
61
  ...(currentStatus?.appealed ? { appealed: false } : {}),
62
62
  takendown: true,
63
63
  lastReviewedBy: createdBy,
64
- reviewState: defs_2.REVIEWCLOSED,
64
+ reviewState: defs_1.REVIEWCLOSED,
65
65
  lastReviewedAt: createdAt,
66
66
  suspendUntil: durationInHours
67
67
  ? new Date(Date.now() + durationInHours * common_1.HOUR).toISOString()
@@ -232,7 +232,7 @@ const adjustModerationSubjectStatus = async (db, moderationEvent, blobCids) => {
232
232
  ...newStatus,
233
233
  // newStatus doesn't contain a reviewState or takendown so in case this is a new entry
234
234
  // we need to set a default values so that the insert doesn't fail
235
- reviewState: currentStatus ? currentStatus.reviewState : defs_2.REVIEWNONE,
235
+ reviewState: currentStatus ? currentStatus.reviewState : defs_1.REVIEWNONE,
236
236
  // @TODO: should we try to update this based on status property of account event?
237
237
  // For now we're the only one emitting takedowns so i don't think it makes too much of a difference
238
238
  takendown: currentStatus ? currentStatus.takendown : false,
@@ -255,7 +255,8 @@ const adjustModerationSubjectStatus = async (db, moderationEvent, blobCids) => {
255
255
  return currentStatus || null;
256
256
  }
257
257
  const isAppealEvent = action === 'tools.ozone.moderation.defs#modEventReport' &&
258
- meta?.reportType === defs_1.REASONAPPEAL;
258
+ meta?.reportType &&
259
+ (0, util_1.isAppealReport)(`${meta.reportType}`);
259
260
  const subjectStatus = getSubjectStatusForModerationEvent({
260
261
  currentStatus,
261
262
  action,
@@ -263,13 +264,13 @@ const adjustModerationSubjectStatus = async (db, moderationEvent, blobCids) => {
263
264
  createdAt,
264
265
  durationInHours: moderationEvent.durationInHours,
265
266
  });
266
- if (currentStatus?.reviewState === defs_2.REVIEWESCALATED &&
267
- subjectStatus.reviewState !== defs_2.REVIEWCLOSED) {
267
+ if (currentStatus?.reviewState === defs_1.REVIEWESCALATED &&
268
+ subjectStatus.reviewState !== defs_1.REVIEWCLOSED) {
268
269
  // If the current status is escalated only allow incoming events to move the state to
269
270
  // reviewClosed because escalated subjects should never move to any other state
270
- subjectStatus.reviewState = defs_2.REVIEWESCALATED;
271
+ subjectStatus.reviewState = defs_1.REVIEWESCALATED;
271
272
  }
272
- if (currentStatus && subjectStatus.reviewState === defs_2.REVIEWNONE) {
273
+ if (currentStatus && subjectStatus.reviewState === defs_1.REVIEWNONE) {
273
274
  // reviewNone is ONLY allowed when there is no current status
274
275
  // If there is a current status, it should not be allowed to move back to reviewNone
275
276
  subjectStatus.reviewState = currentStatus.reviewState;
@@ -280,7 +281,7 @@ const adjustModerationSubjectStatus = async (db, moderationEvent, blobCids) => {
280
281
  // Defaulting reviewState to open for any event may not be the desired behavior.
281
282
  // For instance, if a subject never had any event and we just want to leave a comment to keep an eye on it
282
283
  // that shouldn't mean we want to review the subject
283
- reviewState: defs_2.REVIEWNONE,
284
+ reviewState: defs_1.REVIEWNONE,
284
285
  recordCid: subjectCid || null,
285
286
  ageAssuranceState: currentStatus?.ageAssuranceState || 'unknown',
286
287
  };
@@ -304,8 +305,8 @@ const adjustModerationSubjectStatus = async (db, moderationEvent, blobCids) => {
304
305
  newStatus.lastAppealedAt = createdAt;
305
306
  subjectStatus.lastAppealedAt = createdAt;
306
307
  // Set reviewState to escalated when appeal events are emitted
307
- subjectStatus.reviewState = defs_2.REVIEWESCALATED;
308
- newStatus.reviewState = defs_2.REVIEWESCALATED;
308
+ subjectStatus.reviewState = defs_1.REVIEWESCALATED;
309
+ newStatus.reviewState = defs_1.REVIEWESCALATED;
309
310
  }
310
311
  if (action === 'tools.ozone.moderation.defs#modEventResolveAppeal' &&
311
312
  subjectStatus.appealed) {
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/mod-service/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/mod-service/status.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/tag-service/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAA;AAEzE,eAAO,MAAM,eAAe,GAAI,YAAY,UAAU,WAErD,CAAA"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/tag-service/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAA;AAEzE,eAAO,MAAM,eAAe,GAAI,YAAY,UAAU,WAUrD,CAAA"}
@@ -2,7 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTagForReport = void 0;
4
4
  const getTagForReport = (reasonType) => {
5
- return `report:${reasonType.replace('com.atproto.moderation.defs#reason', '').toLowerCase()}`;
5
+ const reasonWithoutPrefix = reasonType
6
+ .replace('com.atproto.moderation.defs#reason', '')
7
+ .replace('tools.ozone.report.defs#reason', '');
8
+ const kebabCase = reasonWithoutPrefix
9
+ .replace(/([a-z])([A-Z])/g, '$1-$2')
10
+ .toLowerCase();
11
+ return `report:${kebabCase}`;
6
12
  };
7
13
  exports.getTagForReport = getTagForReport;
8
14
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/tag-service/util.ts"],"names":[],"mappings":";;;AAEO,MAAM,eAAe,GAAG,CAAC,UAAsB,EAAE,EAAE;IACxD,OAAO,UAAU,UAAU,CAAC,OAAO,CAAC,oCAAoC,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAA;AAC/F,CAAC,CAAA;AAFY,QAAA,eAAe,mBAE3B"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/tag-service/util.ts"],"names":[],"mappings":";;;AAEO,MAAM,eAAe,GAAG,CAAC,UAAsB,EAAE,EAAE;IACxD,MAAM,mBAAmB,GAAG,UAAU;SACnC,OAAO,CAAC,oCAAoC,EAAE,EAAE,CAAC;SACjD,OAAO,CAAC,gCAAgC,EAAE,EAAE,CAAC,CAAA;IAEhD,MAAM,SAAS,GAAG,mBAAmB;SAClC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;SACnC,WAAW,EAAE,CAAA;IAEhB,OAAO,UAAU,SAAS,EAAE,CAAA;AAC9B,CAAC,CAAA;AAVY,QAAA,eAAe,mBAU3B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/ozone",
3
- "version": "0.1.140",
3
+ "version": "0.1.142",
4
4
  "license": "MIT",
5
5
  "description": "Backend service for moderating the Bluesky network.",
6
6
  "keywords": [
@@ -35,14 +35,14 @@
35
35
  "uint8arrays": "3.0.0",
36
36
  "undici": "^6.14.1",
37
37
  "ws": "^8.12.0",
38
- "@atproto/api": "^0.16.7",
39
- "@atproto/common": "^0.4.11",
38
+ "@atproto/api": "^0.16.8",
40
39
  "@atproto/crypto": "^0.4.4",
41
- "@atproto/identity": "^0.4.8",
42
- "@atproto/lexicon": "^0.5.0",
40
+ "@atproto/common": "^0.4.12",
41
+ "@atproto/identity": "^0.4.9",
42
+ "@atproto/lexicon": "^0.5.1",
43
43
  "@atproto/syntax": "^0.4.1",
44
- "@atproto/xrpc": "^0.7.4",
45
- "@atproto/xrpc-server": "^0.9.4"
44
+ "@atproto/xrpc": "^0.7.5",
45
+ "@atproto/xrpc-server": "^0.9.5"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@did-plc/server": "^0.0.1",
@@ -54,8 +54,8 @@
54
54
  "jest": "^28.1.2",
55
55
  "ts-node": "^10.8.2",
56
56
  "typescript": "^5.6.3",
57
- "@atproto/lex-cli": "^0.9.4",
58
- "@atproto/pds": "^0.4.176"
57
+ "@atproto/lex-cli": "^0.9.5",
58
+ "@atproto/pds": "^0.4.177"
59
59
  },
60
60
  "scripts": {
61
61
  "codegen": "lex gen-server --yes ./src/lexicon ../../lexicons/com/atproto/*/* ../../lexicons/app/bsky/*/* ../../lexicons/chat/bsky/*/* ../../lexicons/tools/ozone/*/*",
@@ -3,6 +3,7 @@ import { AuthRequiredError, InvalidRequestError } from '@atproto/xrpc-server'
3
3
  import { AdminTokenOutput, ModeratorOutput } from '../../auth-verifier'
4
4
  import { AppContext } from '../../context'
5
5
  import { Server } from '../../lexicon'
6
+ import { ids } from '../../lexicon/lexicons'
6
7
  import {
7
8
  ModEventTag,
8
9
  isAgeAssuranceEvent,
@@ -16,6 +17,7 @@ import {
16
17
  isModEventTag,
17
18
  isModEventTakedown,
18
19
  isModEventUnmuteReporter,
20
+ isRevokeAccountCredentialsEvent,
19
21
  } from '../../lexicon/types/tools/ozone/moderation/defs'
20
22
  import { HandlerInput } from '../../lexicon/types/tools/ozone/moderation/emitEvent'
21
23
  import { subjectFromInput } from '../../mod-service/subject'
@@ -69,6 +71,27 @@ const handleModerationEvent = async ({
69
71
  }
70
72
  }
71
73
 
74
+ if (isRevokeAccountCredentialsEvent(event)) {
75
+ if (!subject.isRepo()) {
76
+ throw new InvalidRequestError('Invalid subject type')
77
+ }
78
+
79
+ if (!auth.credentials.isAdmin) {
80
+ throw new AuthRequiredError(
81
+ 'Must be an admin to revoke account credentials',
82
+ )
83
+ }
84
+
85
+ if (!ctx.pdsAgent) {
86
+ throw new InvalidRequestError('PDS not configured')
87
+ }
88
+
89
+ await ctx.pdsAgent.com.atproto.temp.revokeAccountCredentials(
90
+ { account: subject.did },
91
+ await ctx.pdsAuth(ids.ComAtprotoTempRevokeAccountCredentials),
92
+ )
93
+ }
94
+
72
95
  // if less than moderator access then can only take ack and escalation actions
73
96
  if (isTakedownEvent || isReverseTakedownEvent) {
74
97
  if (!access.isModerator) {
@@ -163,6 +186,10 @@ const handleModerationEvent = async ({
163
186
  await assertTagAuth(settingService, ctx.cfg.service.did, event, auth)
164
187
  }
165
188
 
189
+ if (isModEventReport(event)) {
190
+ await ctx.moderationServiceProfile().validateReasonType(event.reportType)
191
+ }
192
+
166
193
  const moderationEvent = await db.transaction(async (dbTxn) => {
167
194
  const moderationTxn = ctx.modService(dbTxn)
168
195
 
@@ -160,6 +160,19 @@ export default function (server: Server, ctx: AppContext) {
160
160
  },
161
161
  })
162
162
 
163
+ server.com.atproto.temp.revokeAccountCredentials({
164
+ auth: ctx.authVerifier.moderator,
165
+ handler: async (request) => {
166
+ if (!ctx.pdsAgent) {
167
+ throw new Error('PDS not configured')
168
+ }
169
+ await ctx.pdsAgent.com.atproto.temp.revokeAccountCredentials(
170
+ request.input.body,
171
+ await ctx.pdsAuth(ids.ComAtprotoTempRevokeAccountCredentials),
172
+ )
173
+ },
174
+ })
175
+
163
176
  server.tools.ozone.hosting.getAccountHistory({
164
177
  auth: ctx.authVerifier.moderator,
165
178
  handler: async (request) => {
@@ -1,15 +1,12 @@
1
1
  import { ForbiddenError } from '@atproto/xrpc-server'
2
2
  import { AppContext } from '../../context'
3
3
  import { Server } from '../../lexicon'
4
- import {
5
- REASONAPPEAL,
6
- ReasonType,
7
- } from '../../lexicon/types/com/atproto/moderation/defs'
4
+ import { ReasonType } from '../../lexicon/types/com/atproto/moderation/defs'
8
5
  import { ModerationService } from '../../mod-service'
9
6
  import { subjectFromInput } from '../../mod-service/subject'
10
7
  import { TagService } from '../../tag-service'
11
8
  import { getTagForReport } from '../../tag-service/util'
12
- import { getReasonType } from '../util'
9
+ import { isAppealReport } from '../util'
13
10
 
14
11
  export default function (server: Server, ctx: AppContext) {
15
12
  server.com.atproto.moderation.createReport({
@@ -21,21 +18,24 @@ export default function (server: Server, ctx: AppContext) {
21
18
  const subject = subjectFromInput(input.body.subject)
22
19
 
23
20
  // If the report is an appeal, the requester must be the author of the subject
24
- if (reasonType === REASONAPPEAL && requester !== subject.did) {
21
+ if (isAppealReport(reasonType) && requester !== subject.did) {
25
22
  throw new ForbiddenError('You cannot appeal this report')
26
23
  }
27
24
 
28
25
  const db = ctx.db
29
26
 
30
- await assertValidReporter(ctx.modService(db), reasonType, requester)
27
+ await Promise.all([
28
+ assertValidReporter(ctx.modService(db), reasonType, requester),
29
+ ctx.moderationServiceProfile().validateReasonType(reasonType),
30
+ ])
31
31
 
32
32
  const report = await db.transaction(async (dbTxn) => {
33
33
  const moderationTxn = ctx.modService(dbTxn)
34
34
  const { event: reportEvent, subjectStatus } =
35
35
  await moderationTxn.report({
36
- reasonType: getReasonType(reasonType),
37
36
  reason,
38
37
  subject,
38
+ reasonType,
39
39
  reportedBy: requester || ctx.cfg.service.did,
40
40
  modTool,
41
41
  })
@@ -73,7 +73,7 @@ const assertValidReporter = async (
73
73
  }
74
74
 
75
75
  // For appeals, we just need to make sure that the account does not have pending appeal
76
- if (reasonType === REASONAPPEAL) {
76
+ if (isAppealReport(reasonType)) {
77
77
  if (reporterStatus[0]?.appealed) {
78
78
  throw new ForbiddenError(
79
79
  'Awaiting decision on previous appeal',
package/src/api/util.ts CHANGED
@@ -4,17 +4,7 @@ import { Member } from '../db/schema/member'
4
4
  import { ModerationEvent } from '../db/schema/moderation_event'
5
5
  import { ids } from '../lexicon/lexicons'
6
6
  import { AccountView } from '../lexicon/types/com/atproto/admin/defs'
7
- import { InputSchema as ReportInput } from '../lexicon/types/com/atproto/moderation/createReport'
8
- import {
9
- REASONAPPEAL,
10
- REASONMISLEADING,
11
- REASONOTHER,
12
- REASONRUDE,
13
- REASONSEXUAL,
14
- REASONSPAM,
15
- REASONVIOLATION,
16
- ReasonType,
17
- } from '../lexicon/types/com/atproto/moderation/defs'
7
+ import { REASONAPPEAL } from '../lexicon/types/com/atproto/moderation/defs'
18
8
  import {
19
9
  REVIEWCLOSED,
20
10
  REVIEWESCALATED,
@@ -122,13 +112,6 @@ export const addAccountInfoToRepoView = (
122
112
  }
123
113
  }
124
114
 
125
- export const getReasonType = (reasonType: ReportInput['reasonType']) => {
126
- if (reasonTypes.has(reasonType)) {
127
- return reasonType
128
- }
129
- throw new InvalidRequestError('Invalid reason type')
130
- }
131
-
132
115
  export const getEventType = (type: string) => {
133
116
  if (eventTypes.has(type)) {
134
117
  return type as ModerationEvent['action']
@@ -146,16 +129,6 @@ export const getReviewState = (reviewState?: string) => {
146
129
 
147
130
  const reviewStates = new Set([REVIEWCLOSED, REVIEWESCALATED, REVIEWOPEN])
148
131
 
149
- const reasonTypes = new Set<ReasonType>([
150
- REASONOTHER,
151
- REASONSPAM,
152
- REASONMISLEADING,
153
- REASONRUDE,
154
- REASONSEXUAL,
155
- REASONVIOLATION,
156
- REASONAPPEAL,
157
- ])
158
-
159
132
  const eventTypes = new Set([
160
133
  'tools.ozone.moderation.defs#modEventTakedown',
161
134
  'tools.ozone.moderation.defs#modEventAcknowledge',
@@ -178,6 +151,7 @@ const eventTypes = new Set([
178
151
  'tools.ozone.moderation.defs#modEventPriorityScore',
179
152
  'tools.ozone.moderation.defs#ageAssuranceEvent',
180
153
  'tools.ozone.moderation.defs#ageAssuranceOverrideEvent',
154
+ 'tools.ozone.moderation.defs#revokeAccountCredentialsEvent',
181
155
  ])
182
156
 
183
157
  export const getMemberRole = (role: string) => {
@@ -194,6 +168,12 @@ const memberRoles = new Set([
194
168
  ROLEVERIFIER,
195
169
  ])
196
170
 
171
+ export const OZONE_APPEAL_REASON_TYPE = 'tools.ozone.report.defs#reasonAppeal'
172
+ const APPEAL_REASON_TYPES = [REASONAPPEAL, OZONE_APPEAL_REASON_TYPE]
173
+ export const isAppealReport = (reasonType?: string): boolean => {
174
+ return !!reasonType && APPEAL_REASON_TYPES.includes(reasonType)
175
+ }
176
+
197
177
  export const getSafelinkPattern = (pattern: string): SafelinkPatternType => {
198
178
  if (safelinkPatterns.has(pattern)) {
199
179
  return pattern as SafelinkPatternType