glin-profanity 1.1.6 → 1.1.8
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/lib/{data → cjs/data}/dictionary.d.ts +0 -1
- package/lib/cjs/data/dictionary.js +52 -0
- package/lib/cjs/data/dictionary.js.map +1 -0
- package/lib/{filters → cjs/filters}/Filter.d.ts +4 -1
- package/lib/cjs/filters/Filter.js +132 -0
- package/lib/cjs/filters/Filter.js.map +1 -0
- package/lib/{hooks → cjs/hooks}/useProfanityChecker.d.ts +0 -1
- package/lib/cjs/hooks/useProfanityChecker.js +42 -0
- package/lib/cjs/hooks/useProfanityChecker.js.map +1 -0
- package/lib/{index.d.ts → cjs/index.d.ts} +0 -1
- package/lib/cjs/index.js +8 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/{types → cjs/types}/types.d.ts +0 -1
- package/lib/cjs/types/types.js +3 -0
- package/lib/{types → cjs/types}/types.js.map +1 -1
- package/lib/esm/data/Norwegian.json +17 -0
- package/lib/esm/data/arabic.json +157 -0
- package/lib/esm/data/chinese.json +298 -0
- package/lib/esm/data/czech.json +45 -0
- package/lib/esm/data/danish.json +24 -0
- package/lib/esm/data/dictionary.d.ts +25 -0
- package/lib/esm/data/dictionary.js.map +1 -0
- package/lib/esm/data/english.json +382 -0
- package/lib/esm/data/esperanto.json +41 -0
- package/lib/esm/data/finnish.json +134 -0
- package/lib/esm/data/french.json +99 -0
- package/lib/esm/data/german.json +69 -0
- package/lib/esm/data/hindi.json +100 -0
- package/lib/esm/data/hungarian.json +100 -0
- package/lib/esm/data/italian.json +184 -0
- package/lib/esm/data/japanese.json +189 -0
- package/lib/esm/data/korean.json +76 -0
- package/lib/esm/data/persian.json +49 -0
- package/lib/esm/data/polish.json +57 -0
- package/lib/esm/data/portuguese.json +78 -0
- package/lib/esm/data/russian.json +156 -0
- package/lib/esm/data/swedish.json +47 -0
- package/lib/esm/data/thai.json +35 -0
- package/lib/esm/data/turkish.json +195 -0
- package/lib/esm/filters/Filter.d.ts +30 -0
- package/lib/esm/filters/Filter.js +126 -0
- package/lib/esm/filters/Filter.js.map +1 -0
- package/lib/esm/hooks/useProfanityChecker.d.ts +17 -0
- package/lib/esm/hooks/useProfanityChecker.js.map +1 -0
- package/lib/esm/index.d.ts +3 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/types/types.d.ts +9 -0
- package/lib/esm/types/types.js.map +1 -0
- package/package.json +26 -12
- package/lib/data/dictionary.d.ts.map +0 -1
- package/lib/data/dictionary.js.map +0 -1
- package/lib/filters/Filter.d.ts.map +0 -1
- package/lib/filters/Filter.js +0 -73
- package/lib/filters/Filter.js.map +0 -1
- package/lib/hooks/useProfanityChecker.d.ts.map +0 -1
- package/lib/hooks/useProfanityChecker.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/types/types.d.ts.map +0 -1
- /package/lib/{data → cjs/data}/Norwegian.json +0 -0
- /package/lib/{data → cjs/data}/arabic.json +0 -0
- /package/lib/{data → cjs/data}/chinese.json +0 -0
- /package/lib/{data → cjs/data}/czech.json +0 -0
- /package/lib/{data → cjs/data}/danish.json +0 -0
- /package/lib/{data → cjs/data}/english.json +0 -0
- /package/lib/{data → cjs/data}/esperanto.json +0 -0
- /package/lib/{data → cjs/data}/finnish.json +0 -0
- /package/lib/{data → cjs/data}/french.json +0 -0
- /package/lib/{data → cjs/data}/german.json +0 -0
- /package/lib/{data → cjs/data}/hindi.json +0 -0
- /package/lib/{data → cjs/data}/hungarian.json +0 -0
- /package/lib/{data → cjs/data}/italian.json +0 -0
- /package/lib/{data → cjs/data}/japanese.json +0 -0
- /package/lib/{data → cjs/data}/korean.json +0 -0
- /package/lib/{data → cjs/data}/persian.json +0 -0
- /package/lib/{data → cjs/data}/polish.json +0 -0
- /package/lib/{data → cjs/data}/portuguese.json +0 -0
- /package/lib/{data → cjs/data}/russian.json +0 -0
- /package/lib/{data → cjs/data}/swedish.json +0 -0
- /package/lib/{data → cjs/data}/thai.json +0 -0
- /package/lib/{data → cjs/data}/turkish.json +0 -0
- /package/lib/{data → esm/data}/dictionary.js +0 -0
- /package/lib/{hooks → esm/hooks}/useProfanityChecker.js +0 -0
- /package/lib/{index.js → esm/index.js} +0 -0
- /package/lib/{types → esm/types}/types.js +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Language, CheckProfanityResult } from '../types/types';
|
|
2
|
+
interface FilterConfig {
|
|
3
|
+
languages?: Language[];
|
|
4
|
+
allLanguages?: boolean;
|
|
5
|
+
caseSensitive?: boolean;
|
|
6
|
+
wordBoundaries?: boolean;
|
|
7
|
+
customWords?: string[];
|
|
8
|
+
replaceWith?: string;
|
|
9
|
+
severityLevels?: boolean;
|
|
10
|
+
ignoreWords?: string[];
|
|
11
|
+
logProfanity?: boolean;
|
|
12
|
+
}
|
|
13
|
+
declare class Filter {
|
|
14
|
+
private words;
|
|
15
|
+
private caseSensitive;
|
|
16
|
+
private wordBoundaries;
|
|
17
|
+
private replaceWith?;
|
|
18
|
+
private severityLevels;
|
|
19
|
+
private ignoreWords;
|
|
20
|
+
private logProfanity;
|
|
21
|
+
constructor(config?: FilterConfig);
|
|
22
|
+
private getRegex;
|
|
23
|
+
private isFuzzyMatch;
|
|
24
|
+
private isMergedMatch;
|
|
25
|
+
private evaluateSeverity;
|
|
26
|
+
isProfane(value: string): boolean;
|
|
27
|
+
checkProfanityInSentence(text: string): CheckProfanityResult;
|
|
28
|
+
checkProfanity(text: string): CheckProfanityResult;
|
|
29
|
+
}
|
|
30
|
+
export { Filter };
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
// src/filters/Filter.ts
|
|
2
|
+
import dictionary from '../data/dictionary';
|
|
3
|
+
class Filter {
|
|
4
|
+
constructor(config) {
|
|
5
|
+
var _a, _b, _c, _d, _e;
|
|
6
|
+
let words = [];
|
|
7
|
+
this.caseSensitive = (_a = config === null || config === void 0 ? void 0 : config.caseSensitive) !== null && _a !== void 0 ? _a : false;
|
|
8
|
+
this.wordBoundaries = (_b = config === null || config === void 0 ? void 0 : config.wordBoundaries) !== null && _b !== void 0 ? _b : true;
|
|
9
|
+
this.replaceWith = config === null || config === void 0 ? void 0 : config.replaceWith;
|
|
10
|
+
this.severityLevels = (_c = config === null || config === void 0 ? void 0 : config.severityLevels) !== null && _c !== void 0 ? _c : false;
|
|
11
|
+
this.ignoreWords = new Set(((_d = config === null || config === void 0 ? void 0 : config.ignoreWords) === null || _d === void 0 ? void 0 : _d.map(word => word.toLowerCase())) || []);
|
|
12
|
+
this.logProfanity = (_e = config === null || config === void 0 ? void 0 : config.logProfanity) !== null && _e !== void 0 ? _e : false;
|
|
13
|
+
if (config === null || config === void 0 ? void 0 : config.allLanguages) {
|
|
14
|
+
for (const lang in dictionary) {
|
|
15
|
+
if (dictionary.hasOwnProperty(lang)) {
|
|
16
|
+
words = [...words, ...dictionary[lang]];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
const languages = (config === null || config === void 0 ? void 0 : config.languages) || ['english'];
|
|
22
|
+
const languagesChecks = new Set(languages);
|
|
23
|
+
if (languagesChecks.size !== 0) {
|
|
24
|
+
languagesChecks.forEach(lang => {
|
|
25
|
+
words = [...words, ...dictionary[lang]];
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (config === null || config === void 0 ? void 0 : config.customWords) {
|
|
30
|
+
words = [...words, ...config.customWords];
|
|
31
|
+
}
|
|
32
|
+
this.words = new Map(words.map(word => [word.toLowerCase(), 1])); // Store words in lowercase
|
|
33
|
+
}
|
|
34
|
+
getRegex(word) {
|
|
35
|
+
const flags = this.caseSensitive ? 'g' : 'gi';
|
|
36
|
+
const boundary = this.wordBoundaries ? '\\b' : '';
|
|
37
|
+
return new RegExp(`${boundary}${word.replace(/(\W)/g, '\\$1')}${boundary}`, flags);
|
|
38
|
+
}
|
|
39
|
+
isFuzzyMatch(word, text) {
|
|
40
|
+
const pattern = `${word.split('').join('[^a-zA-Z]*')}`;
|
|
41
|
+
const regex = new RegExp(pattern, this.caseSensitive ? 'g' : 'gi');
|
|
42
|
+
return regex.test(text);
|
|
43
|
+
}
|
|
44
|
+
isMergedMatch(word, text) {
|
|
45
|
+
const pattern = `${word}`;
|
|
46
|
+
const regex = new RegExp(pattern, this.caseSensitive ? 'g' : 'gi');
|
|
47
|
+
return regex.test(text);
|
|
48
|
+
}
|
|
49
|
+
evaluateSeverity(word, text) {
|
|
50
|
+
if (this.getRegex(word).test(text)) {
|
|
51
|
+
return 1; // Exact match
|
|
52
|
+
}
|
|
53
|
+
else if (this.isFuzzyMatch(word, text)) {
|
|
54
|
+
return 2; // Fuzzy match
|
|
55
|
+
}
|
|
56
|
+
else if (this.isMergedMatch(word, text)) {
|
|
57
|
+
return 3; // Merged word match
|
|
58
|
+
}
|
|
59
|
+
return undefined; // No match or irrelevant match
|
|
60
|
+
}
|
|
61
|
+
isProfane(value) {
|
|
62
|
+
for (const word of this.words.keys()) {
|
|
63
|
+
if (!this.ignoreWords.has(word.toLowerCase()) && this.evaluateSeverity(word, value) !== undefined)
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
checkProfanityInSentence(text) {
|
|
69
|
+
const words = text.split(/\s+/);
|
|
70
|
+
const profaneWords = [];
|
|
71
|
+
const severityMap = {};
|
|
72
|
+
for (const word of words) {
|
|
73
|
+
for (const dictWord of this.words.keys()) {
|
|
74
|
+
const severity = this.evaluateSeverity(dictWord, word);
|
|
75
|
+
if (severity !== undefined && !this.ignoreWords.has(dictWord.toLowerCase())) {
|
|
76
|
+
profaneWords.push(word);
|
|
77
|
+
severityMap[word] = severity; // Use the actual word found in text as the key
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
let processedText = text;
|
|
82
|
+
if (this.replaceWith) {
|
|
83
|
+
for (const word of profaneWords) {
|
|
84
|
+
processedText = processedText.replace(new RegExp(word, 'gi'), this.replaceWith);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
containsProfanity: profaneWords.length > 0,
|
|
89
|
+
profaneWords,
|
|
90
|
+
processedText: this.replaceWith ? processedText : undefined,
|
|
91
|
+
severityMap: Object.keys(severityMap).length > 0 ? severityMap : undefined, // Only return if there are valid severities
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
checkProfanity(text) {
|
|
95
|
+
const words = text.split(/\s+/);
|
|
96
|
+
const profaneWords = [];
|
|
97
|
+
const severityMap = {};
|
|
98
|
+
// Check each word individually
|
|
99
|
+
for (const word of words) {
|
|
100
|
+
for (const dictWord of this.words.keys()) {
|
|
101
|
+
const severity = this.evaluateSeverity(dictWord, word);
|
|
102
|
+
if (severity !== undefined && !this.ignoreWords.has(dictWord.toLowerCase())) {
|
|
103
|
+
profaneWords.push(word);
|
|
104
|
+
severityMap[word] = severity; // Use the actual word found in text as the key
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
const sentenceResult = this.checkProfanityInSentence(text);
|
|
109
|
+
profaneWords.push(...sentenceResult.profaneWords);
|
|
110
|
+
Object.assign(severityMap, sentenceResult.severityMap);
|
|
111
|
+
let processedText = text;
|
|
112
|
+
if (this.replaceWith) {
|
|
113
|
+
for (const word of profaneWords) {
|
|
114
|
+
processedText = processedText.replace(new RegExp(word, 'gi'), this.replaceWith);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
containsProfanity: profaneWords.length > 0,
|
|
119
|
+
profaneWords: Array.from(new Set(profaneWords)),
|
|
120
|
+
processedText: this.replaceWith ? processedText : undefined,
|
|
121
|
+
severityMap: Object.keys(severityMap).length > 0 ? severityMap : undefined,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
export { Filter };
|
|
126
|
+
//# sourceMappingURL=Filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Filter.js","sourceRoot":"","sources":["../../../src/filters/Filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CheckProfanityResult, Language } from '../types/types';
|
|
2
|
+
interface ProfanityCheckerConfig {
|
|
3
|
+
languages?: Language[];
|
|
4
|
+
allLanguages?: boolean;
|
|
5
|
+
caseSensitive?: boolean;
|
|
6
|
+
wordBoundaries?: boolean;
|
|
7
|
+
customWords?: string[];
|
|
8
|
+
replaceWith?: string;
|
|
9
|
+
severityLevels?: boolean;
|
|
10
|
+
customActions?: (result: CheckProfanityResult) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare const useProfanityChecker: (config?: ProfanityCheckerConfig) => {
|
|
13
|
+
result: CheckProfanityResult;
|
|
14
|
+
checkText: (text: string) => void;
|
|
15
|
+
checkTextAsync: (text: string) => Promise<CheckProfanityResult>;
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useProfanityChecker.js","sourceRoot":"","sources":["../../../src/hooks/useProfanityChecker.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAc3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAA+B,EAAE,EAAE;IACrE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAA8B,IAAI,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE;QACjC,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAChD,SAAS,CAAC,WAAW,CAAC,CAAC;QACvB,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,EAAE,CAAC;YAC1B,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAO,IAAY,EAAE,EAAE;QAC5C,OAAO,IAAI,OAAO,CAAuB,CAAC,OAAO,EAAE,EAAE;YACnD,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAChD,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,EAAE,CAAC;gBAC1B,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,CAAC,WAAW,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,CAAA,CAAC;IAEF,OAAO;QACL,MAAM;QACN,SAAS;QACT,cAAc;KACf,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface CheckProfanityResult {
|
|
2
|
+
containsProfanity: boolean;
|
|
3
|
+
profaneWords: string[];
|
|
4
|
+
processedText?: string;
|
|
5
|
+
severityMap?: {
|
|
6
|
+
[word: string]: number;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export type Language = 'arabic' | 'chinese' | 'czech' | 'danish' | 'english' | 'esperanto' | 'finnish' | 'french' | 'german' | 'hindi' | 'hungarian' | 'italian' | 'japanese' | 'korean' | 'norwegian' | 'persian' | 'polish' | 'portuguese' | 'russian' | 'turkish' | 'swedish' | 'thai';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/types/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,27 +1,42 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "glin-profanity",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.8",
|
|
4
4
|
"description": "Glin-Profanity is a lightweight and efficient npm package designed to detect and filter profane language in text inputs across multiple languages. Whether you’re building a chat application, a comment section, or any platform where user-generated content is involved, Glin-Profanity helps you maintain a clean and respectful environment.",
|
|
5
|
-
"main": "lib/index.js",
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
|
|
5
|
+
"main": "lib/cjs/index.js",
|
|
6
|
+
"module": "lib/esm/index.js",
|
|
7
|
+
"types": "lib/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"require": "./lib/cjs/index.js",
|
|
11
|
+
"import": "./lib/esm/index.js"
|
|
12
|
+
}
|
|
9
13
|
},
|
|
10
14
|
"files": [
|
|
11
|
-
|
|
12
|
-
|
|
15
|
+
"lib",
|
|
16
|
+
"README.md"
|
|
13
17
|
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build:cjs": "tsc -p tsconfig.commonjs.json",
|
|
20
|
+
"build:esm": "tsc -p tsconfig.esm.json",
|
|
21
|
+
"build": "npm run build:cjs && npm run build:esm"
|
|
22
|
+
},
|
|
14
23
|
"repository": {
|
|
15
|
-
|
|
16
|
-
|
|
24
|
+
"type": "git",
|
|
25
|
+
"url": "https://github.com/GLINCKER/glin-profanity"
|
|
17
26
|
},
|
|
27
|
+
"homepage": "https://www.glincker.com/tools/glin-profanity",
|
|
18
28
|
"keywords": [
|
|
29
|
+
"profanity",
|
|
30
|
+
"curse",
|
|
31
|
+
"react-profanity",
|
|
19
32
|
"glin-profanity",
|
|
20
33
|
"glincker",
|
|
21
34
|
"glin",
|
|
22
|
-
"profanity",
|
|
23
35
|
"bad",
|
|
24
36
|
"badword",
|
|
37
|
+
"profanity-cleaner",
|
|
38
|
+
"swearword",
|
|
39
|
+
"profanity-filter",
|
|
25
40
|
"badword-filter",
|
|
26
41
|
"badword-detection",
|
|
27
42
|
"badword-detect",
|
|
@@ -34,10 +49,9 @@
|
|
|
34
49
|
"profane-word",
|
|
35
50
|
"profane-word-filter",
|
|
36
51
|
"profane-word-detection",
|
|
37
|
-
"curse",
|
|
38
52
|
"moderation",
|
|
39
53
|
"moderate"
|
|
40
54
|
],
|
|
41
55
|
"author": "gdsks",
|
|
42
56
|
"license": "ISC"
|
|
43
|
-
}
|
|
57
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../src/data/dictionary.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAsBA,wBAuBE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../src/data/dictionary.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,KAAK,MAAM,cAAc,CAAC;AACjC,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,KAAK,MAAM,cAAc,CAAC;AACjC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,IAAI,MAAM,aAAa,CAAC;AAC/B,eAAe;IACb,MAAM,EAAE,MAAM,CAAC,KAAK;IACpB,OAAO,EAAE,OAAO,CAAC,KAAK;IACtB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,MAAM,EAAE,MAAM,CAAC,KAAK;IACpB,OAAO,EAAE,OAAO,CAAC,KAAK;IACtB,SAAS,EAAE,SAAS,CAAC,KAAK;IAC1B,OAAO,EAAE,OAAO,CAAC,KAAK;IACtB,MAAM,EAAE,MAAM,CAAC,KAAK;IACpB,MAAM,EAAE,MAAM,CAAC,KAAK;IACpB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,SAAS,EAAE,SAAS,CAAC,KAAK;IAC1B,OAAO,EAAE,OAAO,CAAC,KAAK;IACtB,QAAQ,EAAE,QAAQ,CAAC,KAAK;IACxB,MAAM,EAAE,MAAM,CAAC,KAAK;IACpB,SAAS,EAAE,SAAS,CAAC,KAAK;IAC1B,OAAO,EAAE,OAAO,CAAC,KAAK;IACtB,MAAM,EAAE,MAAM,CAAC,KAAK;IACpB,UAAU,EAAE,UAAU,CAAC,KAAK;IAC5B,OAAO,EAAE,OAAO,CAAC,KAAK;IACtB,OAAO,EAAE,OAAO,CAAC,KAAK;IACtB,OAAO,EAAE,OAAO,CAAC,KAAK;IACtB,IAAI,EAAE,IAAI,CAAC,KAAK;CACjB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../src/filters/Filter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,cAAM,MAAM;IACV,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAU;gBAElB,MAAM,CAAC,EAAE,YAAY;IAgCjC,OAAO,CAAC,QAAQ;IAMhB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAOjC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB;CA8BnD;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
package/lib/filters/Filter.js
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import dictionary from '../data/dictionary';
|
|
2
|
-
class Filter {
|
|
3
|
-
constructor(config) {
|
|
4
|
-
var _a, _b, _c, _d, _e;
|
|
5
|
-
let words = [];
|
|
6
|
-
this.caseSensitive = (_a = config === null || config === void 0 ? void 0 : config.caseSensitive) !== null && _a !== void 0 ? _a : false;
|
|
7
|
-
this.wordBoundaries = (_b = config === null || config === void 0 ? void 0 : config.wordBoundaries) !== null && _b !== void 0 ? _b : true;
|
|
8
|
-
this.replaceWith = config === null || config === void 0 ? void 0 : config.replaceWith;
|
|
9
|
-
this.severityLevels = (_c = config === null || config === void 0 ? void 0 : config.severityLevels) !== null && _c !== void 0 ? _c : false;
|
|
10
|
-
this.ignoreWords = new Set(((_d = config === null || config === void 0 ? void 0 : config.ignoreWords) === null || _d === void 0 ? void 0 : _d.map(word => word.toLowerCase())) || []);
|
|
11
|
-
this.logProfanity = (_e = config === null || config === void 0 ? void 0 : config.logProfanity) !== null && _e !== void 0 ? _e : false;
|
|
12
|
-
if (config === null || config === void 0 ? void 0 : config.allLanguages) {
|
|
13
|
-
for (const lang in dictionary) {
|
|
14
|
-
if (dictionary.hasOwnProperty(lang)) {
|
|
15
|
-
words = [...words, ...dictionary[lang]];
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
const languages = (config === null || config === void 0 ? void 0 : config.languages) || ['english'];
|
|
21
|
-
const languagesChecks = new Set(languages);
|
|
22
|
-
if (languagesChecks.size !== 0) {
|
|
23
|
-
languagesChecks.forEach(lang => {
|
|
24
|
-
words = [...words, ...dictionary[lang]];
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
if (config === null || config === void 0 ? void 0 : config.customWords) {
|
|
29
|
-
words = [...words, ...config.customWords];
|
|
30
|
-
}
|
|
31
|
-
this.words = new Map(words.map(word => [word, 1])); // Default severity level is 1
|
|
32
|
-
}
|
|
33
|
-
getRegex(word) {
|
|
34
|
-
const flags = this.caseSensitive ? 'g' : 'gi';
|
|
35
|
-
const boundary = this.wordBoundaries ? '\\b' : '';
|
|
36
|
-
return new RegExp(`${boundary}${word.replace(/(\W)/g, '\\$1')}${boundary}`, flags);
|
|
37
|
-
}
|
|
38
|
-
isProfane(value) {
|
|
39
|
-
for (const word of this.words.keys()) {
|
|
40
|
-
if (!this.ignoreWords.has(word.toLowerCase()) && this.getRegex(word).test(value))
|
|
41
|
-
return true;
|
|
42
|
-
}
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
checkProfanity(text) {
|
|
46
|
-
const words = text.split(/\s+/);
|
|
47
|
-
const profaneWords = [];
|
|
48
|
-
const severityMap = {};
|
|
49
|
-
for (const word of words) {
|
|
50
|
-
if (this.words.has(word.toLowerCase()) && !this.ignoreWords.has(word.toLowerCase())) {
|
|
51
|
-
profaneWords.push(word);
|
|
52
|
-
severityMap[word] = this.words.get(word.toLowerCase());
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
if (this.logProfanity && profaneWords.length > 0) {
|
|
56
|
-
console.log(`Profane words detected: ${profaneWords.join(', ')}`);
|
|
57
|
-
}
|
|
58
|
-
let processedText = text;
|
|
59
|
-
if (this.replaceWith) {
|
|
60
|
-
for (const word of profaneWords) {
|
|
61
|
-
processedText = processedText.replace(this.getRegex(word), this.replaceWith);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return {
|
|
65
|
-
containsProfanity: profaneWords.length > 0,
|
|
66
|
-
profaneWords,
|
|
67
|
-
processedText: this.replaceWith ? processedText : undefined,
|
|
68
|
-
severityMap: this.severityLevels ? severityMap : undefined,
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
export { Filter };
|
|
73
|
-
//# sourceMappingURL=Filter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Filter.js","sourceRoot":"","sources":["../../src/filters/Filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useProfanityChecker.d.ts","sourceRoot":"","sources":["../../src/hooks/useProfanityChecker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEhE,UAAU,sBAAsB;IAC9B,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACxD;AAED,eAAO,MAAM,mBAAmB,YAAa,sBAAsB;;sBAIxC,MAAM;2BAQK,MAAM;CAgB3C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useProfanityChecker.js","sourceRoot":"","sources":["../../src/hooks/useProfanityChecker.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAc3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAA+B,EAAE,EAAE;IACrE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAA8B,IAAI,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE;QACjC,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAChD,SAAS,CAAC,WAAW,CAAC,CAAC;QACvB,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,EAAE,CAAC;YAC1B,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAO,IAAY,EAAE,EAAE;QAC5C,OAAO,IAAI,OAAO,CAAuB,CAAC,OAAO,EAAE,EAAE;YACnD,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAChD,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,EAAE,CAAC;gBAC1B,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,CAAC,WAAW,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,CAAA,CAAC;IAEF,OAAO;QACL,MAAM;QACN,SAAS;QACT,cAAc;KACf,CAAC;AACJ,CAAC,CAAC"}
|
package/lib/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,YAAY,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC"}
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC"}
|
package/lib/types/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CAC1C;AACD,MAAM,MAAM,QAAQ,GAChB,QAAQ,GACR,SAAS,GACT,OAAO,GACP,QAAQ,GACR,SAAS,GACT,WAAW,GACX,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,WAAW,GACX,SAAS,GACT,UAAU,GACV,QAAQ,GACR,WAAW,GACX,SAAS,GACT,QAAQ,GACR,YAAY,GACZ,SAAS,GACT,SAAS,GACT,SAAS,GACT,MAAM,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|