@amatiscorp/disguard 1.3.0 → 1.5.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/README.md +173 -15
- package/dist/AntiSpam.d.ts +4 -0
- package/dist/AntiSpam.d.ts.map +1 -1
- package/dist/AntiSpam.js +82 -2
- package/dist/AntiSpam.js.map +1 -1
- package/dist/defaults.d.ts.map +1 -1
- package/dist/defaults.js +75 -1
- package/dist/defaults.js.map +1 -1
- package/dist/detectors/accounts.d.ts.map +1 -1
- package/dist/detectors/accounts.js +14 -0
- package/dist/detectors/accounts.js.map +1 -1
- package/dist/detectors/attach.d.ts +3 -0
- package/dist/detectors/attach.d.ts.map +1 -0
- package/dist/detectors/attach.js +31 -0
- package/dist/detectors/attach.js.map +1 -0
- package/dist/detectors/blank.d.ts +3 -0
- package/dist/detectors/blank.d.ts.map +1 -0
- package/dist/detectors/blank.js +25 -0
- package/dist/detectors/blank.js.map +1 -0
- package/dist/detectors/duplicates.js +1 -1
- package/dist/detectors/duplicates.js.map +1 -1
- package/dist/detectors/echo.d.ts +3 -0
- package/dist/detectors/echo.d.ts.map +1 -0
- package/dist/detectors/echo.js +37 -0
- package/dist/detectors/echo.js.map +1 -0
- package/dist/detectors/embed.d.ts +3 -0
- package/dist/detectors/embed.d.ts.map +1 -0
- package/dist/detectors/embed.js +25 -0
- package/dist/detectors/embed.js.map +1 -0
- package/dist/detectors/emojis.d.ts.map +1 -1
- package/dist/detectors/emojis.js +19 -1
- package/dist/detectors/emojis.js.map +1 -1
- package/dist/detectors/files.d.ts.map +1 -1
- package/dist/detectors/files.js +15 -1
- package/dist/detectors/files.js.map +1 -1
- package/dist/detectors/ghost.d.ts.map +1 -1
- package/dist/detectors/ghost.js +5 -0
- package/dist/detectors/ghost.js.map +1 -1
- package/dist/detectors/invisible.d.ts +3 -0
- package/dist/detectors/invisible.d.ts.map +1 -0
- package/dist/detectors/invisible.js +25 -0
- package/dist/detectors/invisible.js.map +1 -0
- package/dist/detectors/mentions.d.ts.map +1 -1
- package/dist/detectors/mentions.js +19 -1
- package/dist/detectors/mentions.js.map +1 -1
- package/dist/detectors/raid.d.ts +3 -0
- package/dist/detectors/raid.d.ts.map +1 -0
- package/dist/detectors/raid.js +23 -0
- package/dist/detectors/raid.js.map +1 -0
- package/dist/detectors/replies.d.ts +3 -0
- package/dist/detectors/replies.d.ts.map +1 -0
- package/dist/detectors/replies.js +32 -0
- package/dist/detectors/replies.js.map +1 -0
- package/dist/detectors/secrets.d.ts +3 -0
- package/dist/detectors/secrets.d.ts.map +1 -0
- package/dist/detectors/secrets.js +59 -0
- package/dist/detectors/secrets.js.map +1 -0
- package/dist/enforcement.d.ts.map +1 -1
- package/dist/enforcement.js +44 -6
- package/dist/enforcement.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/store/MemoryStore.d.ts +3 -0
- package/dist/store/MemoryStore.d.ts.map +1 -1
- package/dist/store/MemoryStore.js +21 -0
- package/dist/store/MemoryStore.js.map +1 -1
- package/dist/types.d.ts +102 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/normalize.d.ts +1 -0
- package/dist/utils/normalize.d.ts.map +1 -1
- package/dist/utils/normalize.js +4 -0
- package/dist/utils/normalize.js.map +1 -1
- package/package.json +5 -5
package/dist/defaults.js
CHANGED
|
@@ -33,6 +33,7 @@ const BASE = {
|
|
|
33
33
|
windowMs: 12_000,
|
|
34
34
|
similarity: 0.9,
|
|
35
35
|
sameChannelOnly: false,
|
|
36
|
+
minLength: 8,
|
|
36
37
|
severity: "medium",
|
|
37
38
|
},
|
|
38
39
|
links: {
|
|
@@ -89,6 +90,8 @@ const BASE = {
|
|
|
89
90
|
blockEveryone: true,
|
|
90
91
|
blockHere: true,
|
|
91
92
|
maxRepeatsOfSame: 0,
|
|
93
|
+
maxInWindow: 0,
|
|
94
|
+
windowMs: 12_000,
|
|
92
95
|
severity: "high",
|
|
93
96
|
},
|
|
94
97
|
caps: {
|
|
@@ -101,6 +104,8 @@ const BASE = {
|
|
|
101
104
|
enabled: true,
|
|
102
105
|
maxEmojis: 12,
|
|
103
106
|
maxStickers: 3,
|
|
107
|
+
maxInWindow: 0,
|
|
108
|
+
windowMs: 10_000,
|
|
104
109
|
severity: "low",
|
|
105
110
|
},
|
|
106
111
|
files: {
|
|
@@ -118,6 +123,7 @@ const BASE = {
|
|
|
118
123
|
"jar",
|
|
119
124
|
"apk",
|
|
120
125
|
],
|
|
126
|
+
allowedExtensions: [],
|
|
121
127
|
maxBytes: 0,
|
|
122
128
|
severity: "critical",
|
|
123
129
|
},
|
|
@@ -136,6 +142,7 @@ const BASE = {
|
|
|
136
142
|
minAgeDays: 3,
|
|
137
143
|
blockDefaultAvatar: false,
|
|
138
144
|
minGuildAgeDays: 0,
|
|
145
|
+
onlyWithLinks: false,
|
|
139
146
|
severity: "medium",
|
|
140
147
|
},
|
|
141
148
|
length: {
|
|
@@ -173,6 +180,54 @@ const BASE = {
|
|
|
173
180
|
maxAgeMs: 15_000,
|
|
174
181
|
severity: "high",
|
|
175
182
|
},
|
|
183
|
+
invisible: {
|
|
184
|
+
enabled: true,
|
|
185
|
+
maxInvisible: 8,
|
|
186
|
+
severity: "medium",
|
|
187
|
+
},
|
|
188
|
+
echo: {
|
|
189
|
+
enabled: true,
|
|
190
|
+
maxChannels: 3,
|
|
191
|
+
windowMs: 12_000,
|
|
192
|
+
similarity: 0.92,
|
|
193
|
+
minLength: 12,
|
|
194
|
+
severity: "high",
|
|
195
|
+
},
|
|
196
|
+
secrets: {
|
|
197
|
+
enabled: true,
|
|
198
|
+
botTokens: true,
|
|
199
|
+
webhooks: true,
|
|
200
|
+
extraPatterns: [],
|
|
201
|
+
scanEmbeds: true,
|
|
202
|
+
severity: "critical",
|
|
203
|
+
},
|
|
204
|
+
attach: {
|
|
205
|
+
enabled: true,
|
|
206
|
+
maxAttachments: 8,
|
|
207
|
+
windowMs: 10_000,
|
|
208
|
+
severity: "medium",
|
|
209
|
+
},
|
|
210
|
+
replies: {
|
|
211
|
+
enabled: true,
|
|
212
|
+
maxReplies: 6,
|
|
213
|
+
windowMs: 8_000,
|
|
214
|
+
severity: "medium",
|
|
215
|
+
},
|
|
216
|
+
blank: {
|
|
217
|
+
enabled: true,
|
|
218
|
+
severity: "low",
|
|
219
|
+
},
|
|
220
|
+
embeds: {
|
|
221
|
+
enabled: true,
|
|
222
|
+
maxEmbeds: 6,
|
|
223
|
+
severity: "low",
|
|
224
|
+
},
|
|
225
|
+
raid: {
|
|
226
|
+
enabled: false,
|
|
227
|
+
maxUsers: 8,
|
|
228
|
+
windowMs: 6_000,
|
|
229
|
+
severity: "high",
|
|
230
|
+
},
|
|
176
231
|
punishment: {
|
|
177
232
|
deleteMessage: true,
|
|
178
233
|
warnUser: true,
|
|
@@ -202,16 +257,23 @@ const BASE = {
|
|
|
202
257
|
addRoleIds: [],
|
|
203
258
|
removeRoleIds: [],
|
|
204
259
|
minStrikesForRoles: 1,
|
|
260
|
+
purgeCount: 0,
|
|
261
|
+
logWebhookUrl: null,
|
|
205
262
|
},
|
|
206
263
|
checkEdits: true,
|
|
207
264
|
checkDeletes: true,
|
|
208
265
|
ignoreThreads: false,
|
|
209
266
|
ignoreSystem: true,
|
|
267
|
+
ignorePinned: false,
|
|
268
|
+
ignoreOlderThanMs: 0,
|
|
269
|
+
ignoreNsfw: false,
|
|
270
|
+
graceMessages: 0,
|
|
210
271
|
cleanupIntervalMs: 60_000,
|
|
211
272
|
disabledDetectors: [],
|
|
212
273
|
detectorOrder: [],
|
|
213
274
|
channelOverrides: {},
|
|
214
275
|
roleOverrides: {},
|
|
276
|
+
userOverrides: {},
|
|
215
277
|
};
|
|
216
278
|
const PRESET_OVERRIDES = {
|
|
217
279
|
lenient: {
|
|
@@ -226,6 +288,12 @@ const PRESET_OVERRIDES = {
|
|
|
226
288
|
hop: { enabled: false },
|
|
227
289
|
punctuation: { enabled: false },
|
|
228
290
|
spoilers: { maxSpoilers: 15 },
|
|
291
|
+
invisible: { enabled: false },
|
|
292
|
+
echo: { enabled: false },
|
|
293
|
+
attach: { maxAttachments: 15 },
|
|
294
|
+
replies: { enabled: false },
|
|
295
|
+
blank: { enabled: false },
|
|
296
|
+
raid: { enabled: false },
|
|
229
297
|
links: {
|
|
230
298
|
blockInvites: false,
|
|
231
299
|
blockShorteners: false,
|
|
@@ -251,11 +319,17 @@ const PRESET_OVERRIDES = {
|
|
|
251
319
|
maxLinks: 4,
|
|
252
320
|
severity: "critical",
|
|
253
321
|
},
|
|
254
|
-
accounts: { enabled: true, minAgeDays: 1, minGuildAgeDays: 0 },
|
|
322
|
+
accounts: { enabled: true, minAgeDays: 1, minGuildAgeDays: 0, onlyWithLinks: true },
|
|
255
323
|
length: { enabled: true, maxCharacters: 800 },
|
|
256
324
|
hop: { maxChannels: 3, windowMs: 6_000 },
|
|
257
325
|
ghostPing: { enabled: true },
|
|
258
326
|
words: { enabled: false },
|
|
327
|
+
echo: { maxChannels: 2, windowMs: 8_000 },
|
|
328
|
+
invisible: { maxInvisible: 4 },
|
|
329
|
+
attach: { maxAttachments: 5 },
|
|
330
|
+
raid: { enabled: true, maxUsers: 6, windowMs: 5_000 },
|
|
331
|
+
replies: { maxReplies: 4 },
|
|
332
|
+
embeds: { maxEmbeds: 4 },
|
|
259
333
|
punishment: {
|
|
260
334
|
timeout: { enabled: true, durationMs: 5 * 60_000, minStrikes: 1, scale: "linear" },
|
|
261
335
|
kick: { enabled: false, minStrikes: 4 },
|
package/dist/defaults.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/detectors/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAA2B,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/detectors/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAA2B,MAAM,UAAU,CAAC;AAelE,eAAO,MAAM,eAAe,EAAE,QA+C7B,CAAC"}
|
|
@@ -2,7 +2,19 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.accountDetector = void 0;
|
|
4
4
|
const incident_1 = require("./incident");
|
|
5
|
+
const urls_1 = require("../utils/urls");
|
|
5
6
|
const DAY_MS = 24 * 60 * 60 * 1000;
|
|
7
|
+
function messageHasUrl(message) {
|
|
8
|
+
if ((0, urls_1.extractUrls)(message.content).length > 0)
|
|
9
|
+
return true;
|
|
10
|
+
for (const embed of message.embeds) {
|
|
11
|
+
if (embed.url)
|
|
12
|
+
return true;
|
|
13
|
+
if (embed.description && (0, urls_1.extractUrls)(embed.description).length > 0)
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
6
18
|
exports.accountDetector = {
|
|
7
19
|
type: "account",
|
|
8
20
|
inspect({ message, snapshot, config, now }) {
|
|
@@ -18,6 +30,8 @@ exports.accountDetector = {
|
|
|
18
30
|
recommendedActions: ["delete", "warn"],
|
|
19
31
|
});
|
|
20
32
|
}
|
|
33
|
+
if (rules.onlyWithLinks && !messageHasUrl(message))
|
|
34
|
+
return null;
|
|
21
35
|
if (rules.minGuildAgeDays > 0 && message.member?.joinedTimestamp) {
|
|
22
36
|
const guildAgeDays = (now - message.member.joinedTimestamp) / DAY_MS;
|
|
23
37
|
if (guildAgeDays < rules.minGuildAgeDays) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/detectors/accounts.ts"],"names":[],"mappings":";;;AACA,yCAA4C;AAE5C,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/detectors/accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attach.d.ts","sourceRoot":"","sources":["../../src/detectors/attach.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAA2B,MAAM,UAAU,CAAC;AAGlE,eAAO,MAAM,cAAc,EAAE,QAwB5B,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.attachDetector = void 0;
|
|
4
|
+
const incident_1 = require("./incident");
|
|
5
|
+
exports.attachDetector = {
|
|
6
|
+
type: "attach",
|
|
7
|
+
inspect({ message, snapshot, history, config }) {
|
|
8
|
+
const rules = config.attach;
|
|
9
|
+
if (!rules.enabled || !message.guild)
|
|
10
|
+
return null;
|
|
11
|
+
if (snapshot.attachmentCount === 0)
|
|
12
|
+
return null;
|
|
13
|
+
let total = 0;
|
|
14
|
+
for (const item of history) {
|
|
15
|
+
if (snapshot.timestamp - item.timestamp > rules.windowMs)
|
|
16
|
+
continue;
|
|
17
|
+
total += item.attachmentCount ?? 0;
|
|
18
|
+
}
|
|
19
|
+
if (total < rules.maxAttachments)
|
|
20
|
+
return null;
|
|
21
|
+
return (0, incident_1.createIncident)("attach", snapshot, {
|
|
22
|
+
userId: message.author.id,
|
|
23
|
+
guildId: message.guild.id,
|
|
24
|
+
severity: rules.severity,
|
|
25
|
+
reason: `Demasiados adjuntos seguidos (${total}/${rules.maxAttachments} en ${rules.windowMs}ms)`,
|
|
26
|
+
details: { count: total, windowMs: rules.windowMs },
|
|
27
|
+
recommendedActions: ["delete", "warn"],
|
|
28
|
+
});
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=attach.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attach.js","sourceRoot":"","sources":["../../src/detectors/attach.ts"],"names":[],"mappings":";;;AACA,yCAA4C;AAE/B,QAAA,cAAc,GAAa;IACtC,IAAI,EAAE,QAAQ;IACd,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAiB;QAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAClD,IAAI,QAAQ,CAAC,eAAe,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEhD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ;gBAAE,SAAS;YACnE,KAAK,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,KAAK,GAAG,KAAK,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC;QAE9C,OAAO,IAAA,yBAAc,EAAC,QAAQ,EAAE,QAAQ,EAAE;YACxC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;YACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,iCAAiC,KAAK,IAAI,KAAK,CAAC,cAAc,OAAO,KAAK,CAAC,QAAQ,KAAK;YAChG,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;YACnD,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blank.d.ts","sourceRoot":"","sources":["../../src/detectors/blank.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAA2B,MAAM,UAAU,CAAC;AAGlE,eAAO,MAAM,aAAa,EAAE,QAkB3B,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.blankDetector = void 0;
|
|
4
|
+
const incident_1 = require("./incident");
|
|
5
|
+
exports.blankDetector = {
|
|
6
|
+
type: "blank",
|
|
7
|
+
inspect({ message, snapshot, config }) {
|
|
8
|
+
const rules = config.blank;
|
|
9
|
+
if (!rules.enabled || !message.guild)
|
|
10
|
+
return null;
|
|
11
|
+
if (message.attachments.size > 0 || message.stickers.size > 0 || message.embeds.length > 0) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
if (message.content.trim().length > 0)
|
|
15
|
+
return null;
|
|
16
|
+
return (0, incident_1.createIncident)("blank", snapshot, {
|
|
17
|
+
userId: message.author.id,
|
|
18
|
+
guildId: message.guild.id,
|
|
19
|
+
severity: rules.severity,
|
|
20
|
+
reason: "Mensaje vacío o solo espacios",
|
|
21
|
+
recommendedActions: ["delete"],
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=blank.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blank.js","sourceRoot":"","sources":["../../src/detectors/blank.ts"],"names":[],"mappings":";;;AACA,yCAA4C;AAE/B,QAAA,aAAa,GAAa;IACrC,IAAI,EAAE,OAAO;IACb,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAiB;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAClD,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3F,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAEnD,OAAO,IAAA,yBAAc,EAAC,OAAO,EAAE,QAAQ,EAAE;YACvC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;YACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,+BAA+B;YACvC,kBAAkB,EAAE,CAAC,QAAQ,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -9,7 +9,7 @@ exports.duplicateDetector = {
|
|
|
9
9
|
const rules = config.duplicates;
|
|
10
10
|
if (!rules.enabled || !message.guild)
|
|
11
11
|
return null;
|
|
12
|
-
if (!snapshot.normalized || snapshot.normalized.length <
|
|
12
|
+
if (!snapshot.normalized || snapshot.normalized.length < rules.minLength)
|
|
13
13
|
return null;
|
|
14
14
|
const recent = history.filter((item) => {
|
|
15
15
|
if (item.id === snapshot.id)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duplicates.js","sourceRoot":"","sources":["../../src/detectors/duplicates.ts"],"names":[],"mappings":";;;AACA,oDAAiD;AACjD,yCAA4C;AAE/B,QAAA,iBAAiB,GAAa;IACzC,IAAI,EAAE,WAAW;IACjB,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAiB;QAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"duplicates.js","sourceRoot":"","sources":["../../src/detectors/duplicates.ts"],"names":[],"mappings":";;;AACA,oDAAiD;AACjD,yCAA4C;AAE/B,QAAA,iBAAiB,GAAa;IACzC,IAAI,EAAE,WAAW;IACjB,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAiB;QAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAEtF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACrC,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC1C,IAAI,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;YACvE,IAAI,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;gBAAE,OAAO,KAAK,CAAC;YACjF,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO,KAAK,CAAC;YACnC,OAAO,IAAA,uBAAU,EAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC;QAC9E,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAEvD,OAAO,IAAA,yBAAc,EAAC,WAAW,EAAE,QAAQ,EAAE;YAC3C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;YACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,qBAAqB,OAAO,CAAC,MAAM,GAAG,CAAC,aAAa,KAAK,CAAC,QAAQ,KAAK;YAC/E,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;gBAC3B,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;aACzC;YACD,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"echo.d.ts","sourceRoot":"","sources":["../../src/detectors/echo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAA2B,MAAM,UAAU,CAAC;AAGlE,eAAO,MAAM,YAAY,EAAE,QA2B1B,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.echoDetector = void 0;
|
|
4
|
+
const similarity_1 = require("../utils/similarity");
|
|
5
|
+
const incident_1 = require("./incident");
|
|
6
|
+
exports.echoDetector = {
|
|
7
|
+
type: "echo",
|
|
8
|
+
inspect({ message, snapshot, history, config }) {
|
|
9
|
+
const rules = config.echo;
|
|
10
|
+
if (!rules.enabled || !message.guild)
|
|
11
|
+
return null;
|
|
12
|
+
if (snapshot.normalized.length < rules.minLength)
|
|
13
|
+
return null;
|
|
14
|
+
const channels = new Set();
|
|
15
|
+
for (const item of history) {
|
|
16
|
+
if (snapshot.timestamp - item.timestamp > rules.windowMs)
|
|
17
|
+
continue;
|
|
18
|
+
if (item.normalized.length < rules.minLength)
|
|
19
|
+
continue;
|
|
20
|
+
if ((0, similarity_1.similarity)(snapshot.normalized, item.normalized) < rules.similarity)
|
|
21
|
+
continue;
|
|
22
|
+
channels.add(item.channelId);
|
|
23
|
+
}
|
|
24
|
+
channels.add(snapshot.channelId);
|
|
25
|
+
if (channels.size < rules.maxChannels)
|
|
26
|
+
return null;
|
|
27
|
+
return (0, incident_1.createIncident)("echo", snapshot, {
|
|
28
|
+
userId: message.author.id,
|
|
29
|
+
guildId: message.guild.id,
|
|
30
|
+
severity: rules.severity,
|
|
31
|
+
reason: `El mismo texto se pegó en ${channels.size} canales`,
|
|
32
|
+
details: { channels: [...channels] },
|
|
33
|
+
recommendedActions: ["delete", "warn", "timeout"],
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=echo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"echo.js","sourceRoot":"","sources":["../../src/detectors/echo.ts"],"names":[],"mappings":";;;AAAA,oDAAiD;AAEjD,yCAA4C;AAE/B,QAAA,YAAY,GAAa;IACpC,IAAI,EAAE,MAAM;IACZ,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAiB;QAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAClD,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE9D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ;gBAAE,SAAS;YACnE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS;gBAAE,SAAS;YACvD,IAAI,IAAA,uBAAU,EAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,UAAU;gBAAE,SAAS;YAClF,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEjC,IAAI,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAEnD,OAAO,IAAA,yBAAc,EAAC,MAAM,EAAE,QAAQ,EAAE;YACtC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;YACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,6BAA6B,QAAQ,CAAC,IAAI,UAAU;YAC5D,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE;YACpC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC;SAClD,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/detectors/embed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAA2B,MAAM,UAAU,CAAC;AAGlE,eAAO,MAAM,aAAa,EAAE,QAiB3B,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.embedDetector = void 0;
|
|
4
|
+
const incident_1 = require("./incident");
|
|
5
|
+
exports.embedDetector = {
|
|
6
|
+
type: "embed",
|
|
7
|
+
inspect({ message, snapshot, config }) {
|
|
8
|
+
const rules = config.embeds;
|
|
9
|
+
if (!rules.enabled || !message.guild)
|
|
10
|
+
return null;
|
|
11
|
+
if (rules.maxEmbeds < 1)
|
|
12
|
+
return null;
|
|
13
|
+
if (message.embeds.length <= rules.maxEmbeds)
|
|
14
|
+
return null;
|
|
15
|
+
return (0, incident_1.createIncident)("embed", snapshot, {
|
|
16
|
+
userId: message.author.id,
|
|
17
|
+
guildId: message.guild.id,
|
|
18
|
+
severity: rules.severity,
|
|
19
|
+
reason: `Demasiados embeds (${message.embeds.length}/${rules.maxEmbeds})`,
|
|
20
|
+
details: { count: message.embeds.length },
|
|
21
|
+
recommendedActions: ["delete", "warn"],
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=embed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embed.js","sourceRoot":"","sources":["../../src/detectors/embed.ts"],"names":[],"mappings":";;;AACA,yCAA4C;AAE/B,QAAA,aAAa,GAAa;IACrC,IAAI,EAAE,OAAO;IACb,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAiB;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAClD,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACrC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE1D,OAAO,IAAA,yBAAc,EAAC,OAAO,EAAE,QAAQ,EAAE;YACvC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;YACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,sBAAsB,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,GAAG;YACzE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;YACzC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emojis.d.ts","sourceRoot":"","sources":["../../src/detectors/emojis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAA2B,MAAM,UAAU,CAAC;AAIlE,eAAO,MAAM,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"emojis.d.ts","sourceRoot":"","sources":["../../src/detectors/emojis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAA2B,MAAM,UAAU,CAAC;AAIlE,eAAO,MAAM,aAAa,EAAE,QAgD3B,CAAC"}
|
package/dist/detectors/emojis.js
CHANGED
|
@@ -5,7 +5,7 @@ const normalize_1 = require("../utils/normalize");
|
|
|
5
5
|
const incident_1 = require("./incident");
|
|
6
6
|
exports.emojiDetector = {
|
|
7
7
|
type: "emoji",
|
|
8
|
-
inspect({ message, snapshot, config }) {
|
|
8
|
+
inspect({ message, snapshot, history, config }) {
|
|
9
9
|
const rules = config.emojis;
|
|
10
10
|
if (!rules.enabled || !message.guild)
|
|
11
11
|
return null;
|
|
@@ -29,6 +29,24 @@ exports.emojiDetector = {
|
|
|
29
29
|
recommendedActions: ["delete", "warn"],
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
|
+
if (rules.maxInWindow > 0) {
|
|
33
|
+
let total = 0;
|
|
34
|
+
for (const item of history) {
|
|
35
|
+
if (snapshot.timestamp - item.timestamp > rules.windowMs)
|
|
36
|
+
continue;
|
|
37
|
+
total += item.emojiCount ?? 0;
|
|
38
|
+
}
|
|
39
|
+
if (total > rules.maxInWindow) {
|
|
40
|
+
return (0, incident_1.createIncident)("emoji", snapshot, {
|
|
41
|
+
userId: message.author.id,
|
|
42
|
+
guildId: message.guild.id,
|
|
43
|
+
severity: rules.severity,
|
|
44
|
+
reason: `Demasiados emojis en la ventana (${total}/${rules.maxInWindow})`,
|
|
45
|
+
details: { count: total, windowMs: rules.windowMs },
|
|
46
|
+
recommendedActions: ["delete", "warn"],
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
32
50
|
return null;
|
|
33
51
|
},
|
|
34
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emojis.js","sourceRoot":"","sources":["../../src/detectors/emojis.ts"],"names":[],"mappings":";;;AACA,kDAAiD;AACjD,yCAA4C;AAE/B,QAAA,aAAa,GAAa;IACrC,IAAI,EAAE,OAAO;IACb,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAiB;
|
|
1
|
+
{"version":3,"file":"emojis.js","sourceRoot":"","sources":["../../src/detectors/emojis.ts"],"names":[],"mappings":";;;AACA,kDAAiD;AACjD,yCAA4C;AAE/B,QAAA,aAAa,GAAa;IACrC,IAAI,EAAE,OAAO;IACb,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAiB;QAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAElD,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAC9C,OAAO,IAAA,yBAAc,EAAC,OAAO,EAAE,QAAQ,EAAE;gBACvC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;gBACzB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;gBACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,wBAAwB,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,WAAW,GAAG;gBAC7E,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;aACvC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,uBAAW,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YAC7B,OAAO,IAAA,yBAAc,EAAC,OAAO,EAAE,QAAQ,EAAE;gBACvC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;gBACzB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;gBACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,sBAAsB,MAAM,IAAI,KAAK,CAAC,SAAS,GAAG;gBAC1D,OAAO,EAAE,EAAE,MAAM,EAAE;gBACnB,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;aACvC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,IAAI,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ;oBAAE,SAAS;gBACnE,KAAK,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;YAChC,CAAC;YACD,IAAI,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBAC9B,OAAO,IAAA,yBAAc,EAAC,OAAO,EAAE,QAAQ,EAAE;oBACvC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;oBACzB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;oBACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,MAAM,EAAE,oCAAoC,KAAK,IAAI,KAAK,CAAC,WAAW,GAAG;oBACzE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;oBACnD,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;iBACvC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/detectors/files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAA2B,MAAM,UAAU,CAAC;AAGlE,eAAO,MAAM,0BAA0B,UAYtC,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/detectors/files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAA2B,MAAM,UAAU,CAAC;AAGlE,eAAO,MAAM,0BAA0B,UAYtC,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,QAwD1B,CAAC"}
|
package/dist/detectors/files.js
CHANGED
|
@@ -35,8 +35,22 @@ exports.fileDetector = {
|
|
|
35
35
|
recommendedActions: ["delete", "warn"],
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
|
-
if (!ext || !blocked.has(ext))
|
|
38
|
+
if (!ext || !blocked.has(ext)) {
|
|
39
|
+
if (rules.allowedExtensions.length > 0) {
|
|
40
|
+
const allowed = new Set(rules.allowedExtensions.map((item) => item.replace(/^\./, "").toLowerCase()));
|
|
41
|
+
if (!ext || !allowed.has(ext)) {
|
|
42
|
+
return (0, incident_1.createIncident)("file", snapshot, {
|
|
43
|
+
userId: message.author.id,
|
|
44
|
+
guildId: message.guild.id,
|
|
45
|
+
severity: rules.severity,
|
|
46
|
+
reason: ext ? `Extensión no permitida: .${ext}` : "Adjunto sin extensión no permitido",
|
|
47
|
+
details: { name, extension: ext, size: attachment.size },
|
|
48
|
+
recommendedActions: ["delete", "warn"],
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
39
52
|
continue;
|
|
53
|
+
}
|
|
40
54
|
return (0, incident_1.createIncident)("file", snapshot, {
|
|
41
55
|
userId: message.author.id,
|
|
42
56
|
guildId: message.guild.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/detectors/files.ts"],"names":[],"mappings":";;;AACA,yCAA4C;AAE/B,QAAA,0BAA0B,GAAG;IACxC,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;CACN,CAAC;AAEW,QAAA,YAAY,GAAa;IACpC,IAAI,EAAE,MAAM;IACZ,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAiB;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEpF,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAC7E,CAAC;QAEF,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAEjF,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC3D,OAAO,IAAA,yBAAc,EAAC,MAAM,EAAE,QAAQ,EAAE;oBACtC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;oBACzB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;oBACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,MAAM,EAAE,6BAA6B,UAAU,CAAC,IAAI,MAAM,KAAK,CAAC,QAAQ,SAAS;oBACjF,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE;oBACxC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;iBACvC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/detectors/files.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ghost.d.ts","sourceRoot":"","sources":["../../src/detectors/ghost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAI1D,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,MAAM,GACV,QAAQ,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"ghost.d.ts","sourceRoot":"","sources":["../../src/detectors/ghost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAI1D,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,MAAM,GACV,QAAQ,GAAG,IAAI,CAmCjB"}
|
package/dist/detectors/ghost.js
CHANGED
|
@@ -21,6 +21,11 @@ function inspectGhostPing(message, config, now) {
|
|
|
21
21
|
normalized: "",
|
|
22
22
|
timestamp: now,
|
|
23
23
|
attachmentHashes: [],
|
|
24
|
+
attachmentCount: 0,
|
|
25
|
+
mentionCount: 0,
|
|
26
|
+
isReply: false,
|
|
27
|
+
emojiCount: 0,
|
|
28
|
+
embedCount: 0,
|
|
24
29
|
};
|
|
25
30
|
return (0, incident_1.createIncident)("ghost", snapshot, {
|
|
26
31
|
userId: message.author.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ghost.js","sourceRoot":"","sources":["../../src/detectors/ghost.ts"],"names":[],"mappings":";;AAKA,
|
|
1
|
+
{"version":3,"file":"ghost.js","sourceRoot":"","sources":["../../src/detectors/ghost.ts"],"names":[],"mappings":";;AAKA,4CAuCC;AA1CD,yCAA4C;AAG5C,SAAgB,gBAAgB,CAC9B,OAAgB,EAChB,MAAuB,EACvB,GAAW;IAEX,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACnD,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEpC,MAAM,cAAc,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;IACnH,MAAM,QAAQ,GACZ,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAErF,IAAI,QAAQ,GAAG,MAAM,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE/C,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,IAAI,GAAG,CAAC;IAChD,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,IAAI,GAAG,GAAG,OAAO,GAAG,MAAM,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAExE,MAAM,QAAQ,GAAoB;QAChC,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,GAAG;QACd,gBAAgB,EAAE,EAAE;QACpB,eAAe,EAAE,CAAC;QAClB,YAAY,EAAE,CAAC;QACf,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,CAAC;KACd,CAAC;IAEF,OAAO,IAAA,yBAAc,EAAC,OAAO,EAAE,QAAQ,EAAE;QACvC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;QACzB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,uBAAuB,QAAQ,8BAA8B;QACrE,OAAO,EAAE,EAAE,QAAQ,EAAE;QACrB,kBAAkB,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;KACxC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invisible.d.ts","sourceRoot":"","sources":["../../src/detectors/invisible.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAA2B,MAAM,UAAU,CAAC;AAGlE,eAAO,MAAM,iBAAiB,EAAE,QAkB/B,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.invisibleDetector = void 0;
|
|
4
|
+
const normalize_1 = require("../utils/normalize");
|
|
5
|
+
const incident_1 = require("./incident");
|
|
6
|
+
exports.invisibleDetector = {
|
|
7
|
+
type: "invisible",
|
|
8
|
+
inspect({ message, snapshot, config }) {
|
|
9
|
+
const rules = config.invisible;
|
|
10
|
+
if (!rules.enabled || !message.guild)
|
|
11
|
+
return null;
|
|
12
|
+
const count = (0, normalize_1.countInvisible)(message.content);
|
|
13
|
+
if (count <= rules.maxInvisible)
|
|
14
|
+
return null;
|
|
15
|
+
return (0, incident_1.createIncident)("invisible", snapshot, {
|
|
16
|
+
userId: message.author.id,
|
|
17
|
+
guildId: message.guild.id,
|
|
18
|
+
severity: rules.severity,
|
|
19
|
+
reason: `Demasiados caracteres invisibles / bidi (${count}/${rules.maxInvisible})`,
|
|
20
|
+
details: { count },
|
|
21
|
+
recommendedActions: ["delete", "warn"],
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=invisible.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invisible.js","sourceRoot":"","sources":["../../src/detectors/invisible.ts"],"names":[],"mappings":";;;AAAA,kDAAoD;AAEpD,yCAA4C;AAE/B,QAAA,iBAAiB,GAAa;IACzC,IAAI,EAAE,WAAW;IACjB,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAiB;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAElD,MAAM,KAAK,GAAG,IAAA,0BAAc,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,KAAK,IAAI,KAAK,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QAE7C,OAAO,IAAA,yBAAc,EAAC,WAAW,EAAE,QAAQ,EAAE;YAC3C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;YACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,4CAA4C,KAAK,IAAI,KAAK,CAAC,YAAY,GAAG;YAClF,OAAO,EAAE,EAAE,KAAK,EAAE;YAClB,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mentions.d.ts","sourceRoot":"","sources":["../../src/detectors/mentions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAA2B,MAAM,UAAU,CAAC;AAGlE,eAAO,MAAM,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"mentions.d.ts","sourceRoot":"","sources":["../../src/detectors/mentions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAA2B,MAAM,UAAU,CAAC;AAGlE,eAAO,MAAM,eAAe,EAAE,QAmF7B,CAAC"}
|