glin-profanity 1.1.7 → 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.
Files changed (84) hide show
  1. package/lib/{data → cjs/data}/dictionary.d.ts +0 -1
  2. package/lib/cjs/data/dictionary.js +52 -0
  3. package/lib/cjs/data/dictionary.js.map +1 -0
  4. package/lib/{filters → cjs/filters}/Filter.d.ts +0 -1
  5. package/lib/cjs/filters/Filter.js +132 -0
  6. package/lib/cjs/filters/Filter.js.map +1 -0
  7. package/lib/{hooks → cjs/hooks}/useProfanityChecker.d.ts +0 -1
  8. package/lib/cjs/hooks/useProfanityChecker.js +42 -0
  9. package/lib/cjs/hooks/useProfanityChecker.js.map +1 -0
  10. package/lib/{index.d.ts → cjs/index.d.ts} +0 -1
  11. package/lib/cjs/index.js +8 -0
  12. package/lib/cjs/index.js.map +1 -0
  13. package/lib/{types → cjs/types}/types.d.ts +0 -1
  14. package/lib/cjs/types/types.js +3 -0
  15. package/lib/{types → cjs/types}/types.js.map +1 -1
  16. package/lib/esm/data/Norwegian.json +17 -0
  17. package/lib/esm/data/arabic.json +157 -0
  18. package/lib/esm/data/chinese.json +298 -0
  19. package/lib/esm/data/czech.json +45 -0
  20. package/lib/esm/data/danish.json +24 -0
  21. package/lib/esm/data/dictionary.d.ts +25 -0
  22. package/lib/esm/data/dictionary.js.map +1 -0
  23. package/lib/esm/data/english.json +382 -0
  24. package/lib/esm/data/esperanto.json +41 -0
  25. package/lib/esm/data/finnish.json +134 -0
  26. package/lib/esm/data/french.json +99 -0
  27. package/lib/esm/data/german.json +69 -0
  28. package/lib/esm/data/hindi.json +100 -0
  29. package/lib/esm/data/hungarian.json +100 -0
  30. package/lib/esm/data/italian.json +184 -0
  31. package/lib/esm/data/japanese.json +189 -0
  32. package/lib/esm/data/korean.json +76 -0
  33. package/lib/esm/data/persian.json +49 -0
  34. package/lib/esm/data/polish.json +57 -0
  35. package/lib/esm/data/portuguese.json +78 -0
  36. package/lib/esm/data/russian.json +156 -0
  37. package/lib/esm/data/swedish.json +47 -0
  38. package/lib/esm/data/thai.json +35 -0
  39. package/lib/esm/data/turkish.json +195 -0
  40. package/lib/esm/filters/Filter.d.ts +30 -0
  41. package/lib/{filters → esm/filters}/Filter.js +1 -0
  42. package/lib/esm/filters/Filter.js.map +1 -0
  43. package/lib/esm/hooks/useProfanityChecker.d.ts +17 -0
  44. package/lib/esm/hooks/useProfanityChecker.js.map +1 -0
  45. package/lib/esm/index.d.ts +3 -0
  46. package/lib/esm/index.js.map +1 -0
  47. package/lib/esm/types/types.d.ts +9 -0
  48. package/lib/esm/types/types.js.map +1 -0
  49. package/package.json +19 -9
  50. package/lib/data/dictionary.d.ts.map +0 -1
  51. package/lib/data/dictionary.js.map +0 -1
  52. package/lib/filters/Filter.d.ts.map +0 -1
  53. package/lib/filters/Filter.js.map +0 -1
  54. package/lib/hooks/useProfanityChecker.d.ts.map +0 -1
  55. package/lib/hooks/useProfanityChecker.js.map +0 -1
  56. package/lib/index.d.ts.map +0 -1
  57. package/lib/index.js.map +0 -1
  58. package/lib/types/types.d.ts.map +0 -1
  59. /package/lib/{data → cjs/data}/Norwegian.json +0 -0
  60. /package/lib/{data → cjs/data}/arabic.json +0 -0
  61. /package/lib/{data → cjs/data}/chinese.json +0 -0
  62. /package/lib/{data → cjs/data}/czech.json +0 -0
  63. /package/lib/{data → cjs/data}/danish.json +0 -0
  64. /package/lib/{data → cjs/data}/english.json +0 -0
  65. /package/lib/{data → cjs/data}/esperanto.json +0 -0
  66. /package/lib/{data → cjs/data}/finnish.json +0 -0
  67. /package/lib/{data → cjs/data}/french.json +0 -0
  68. /package/lib/{data → cjs/data}/german.json +0 -0
  69. /package/lib/{data → cjs/data}/hindi.json +0 -0
  70. /package/lib/{data → cjs/data}/hungarian.json +0 -0
  71. /package/lib/{data → cjs/data}/italian.json +0 -0
  72. /package/lib/{data → cjs/data}/japanese.json +0 -0
  73. /package/lib/{data → cjs/data}/korean.json +0 -0
  74. /package/lib/{data → cjs/data}/persian.json +0 -0
  75. /package/lib/{data → cjs/data}/polish.json +0 -0
  76. /package/lib/{data → cjs/data}/portuguese.json +0 -0
  77. /package/lib/{data → cjs/data}/russian.json +0 -0
  78. /package/lib/{data → cjs/data}/swedish.json +0 -0
  79. /package/lib/{data → cjs/data}/thai.json +0 -0
  80. /package/lib/{data → cjs/data}/turkish.json +0 -0
  81. /package/lib/{data → esm/data}/dictionary.js +0 -0
  82. /package/lib/{hooks → esm/hooks}/useProfanityChecker.js +0 -0
  83. /package/lib/{index.js → esm/index.js} +0 -0
  84. /package/lib/{types → esm/types}/types.js +0 -0
@@ -23,4 +23,3 @@ declare const _default: {
23
23
  thai: string[];
24
24
  };
25
25
  export default _default;
26
- //# sourceMappingURL=dictionary.d.ts.map
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const arabic_json_1 = __importDefault(require("./arabic.json"));
7
+ const chinese_json_1 = __importDefault(require("./chinese.json"));
8
+ const czech_json_1 = __importDefault(require("./czech.json"));
9
+ const danish_json_1 = __importDefault(require("./danish.json"));
10
+ const esperanto_json_1 = __importDefault(require("./esperanto.json"));
11
+ const english_json_1 = __importDefault(require("./english.json"));
12
+ const finnish_json_1 = __importDefault(require("./finnish.json"));
13
+ const german_json_1 = __importDefault(require("./german.json"));
14
+ const hindi_json_1 = __importDefault(require("./hindi.json"));
15
+ const hungarian_json_1 = __importDefault(require("./hungarian.json"));
16
+ const korean_json_1 = __importDefault(require("./korean.json"));
17
+ const Norwegian_json_1 = __importDefault(require("./Norwegian.json"));
18
+ const persian_json_1 = __importDefault(require("./persian.json"));
19
+ const polish_json_1 = __importDefault(require("./polish.json"));
20
+ const portuguese_json_1 = __importDefault(require("./portuguese.json"));
21
+ const russian_json_1 = __importDefault(require("./russian.json"));
22
+ const french_json_1 = __importDefault(require("./french.json"));
23
+ const italian_json_1 = __importDefault(require("./italian.json"));
24
+ const japanese_json_1 = __importDefault(require("./japanese.json"));
25
+ const turkish_json_1 = __importDefault(require("./turkish.json"));
26
+ const swedish_json_1 = __importDefault(require("./swedish.json"));
27
+ const thai_json_1 = __importDefault(require("./thai.json"));
28
+ exports.default = {
29
+ arabic: arabic_json_1.default.words,
30
+ chinese: chinese_json_1.default.words,
31
+ czech: czech_json_1.default.words,
32
+ danish: danish_json_1.default.words,
33
+ english: english_json_1.default.words,
34
+ esperanto: esperanto_json_1.default.words,
35
+ finnish: finnish_json_1.default.words,
36
+ french: french_json_1.default.words,
37
+ german: german_json_1.default.words,
38
+ hindi: hindi_json_1.default.words,
39
+ hungarian: hungarian_json_1.default.words,
40
+ italian: italian_json_1.default.words,
41
+ japanese: japanese_json_1.default.words,
42
+ korean: korean_json_1.default.words,
43
+ norwegian: Norwegian_json_1.default.words,
44
+ persian: persian_json_1.default.words,
45
+ polish: polish_json_1.default.words,
46
+ portuguese: portuguese_json_1.default.words,
47
+ russian: russian_json_1.default.words,
48
+ turkish: turkish_json_1.default.words,
49
+ swedish: swedish_json_1.default.words,
50
+ thai: thai_json_1.default.words,
51
+ };
52
+ //# sourceMappingURL=dictionary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../../src/data/dictionary.ts"],"names":[],"mappings":";;;;;AAAA,gEAAmC;AACnC,kEAAqC;AACrC,8DAAiC;AACjC,gEAAmC;AACnC,sEAAyC;AACzC,kEAAqC;AACrC,kEAAqC;AACrC,gEAAmC;AACnC,8DAAiC;AACjC,sEAAyC;AACzC,gEAAmC;AACnC,sEAAyC;AACzC,kEAAqC;AACrC,gEAAmC;AACnC,wEAA2C;AAC3C,kEAAqC;AACrC,gEAAmC;AACnC,kEAAqC;AACrC,oEAAuC;AACvC,kEAAqC;AACrC,kEAAqC;AACrC,4DAA+B;AAC/B,kBAAe;IACb,MAAM,EAAE,qBAAM,CAAC,KAAK;IACpB,OAAO,EAAE,sBAAO,CAAC,KAAK;IACtB,KAAK,EAAE,oBAAK,CAAC,KAAK;IAClB,MAAM,EAAE,qBAAM,CAAC,KAAK;IACpB,OAAO,EAAE,sBAAO,CAAC,KAAK;IACtB,SAAS,EAAE,wBAAS,CAAC,KAAK;IAC1B,OAAO,EAAE,sBAAO,CAAC,KAAK;IACtB,MAAM,EAAE,qBAAM,CAAC,KAAK;IACpB,MAAM,EAAE,qBAAM,CAAC,KAAK;IACpB,KAAK,EAAE,oBAAK,CAAC,KAAK;IAClB,SAAS,EAAE,wBAAS,CAAC,KAAK;IAC1B,OAAO,EAAE,sBAAO,CAAC,KAAK;IACtB,QAAQ,EAAE,uBAAQ,CAAC,KAAK;IACxB,MAAM,EAAE,qBAAM,CAAC,KAAK;IACpB,SAAS,EAAE,wBAAS,CAAC,KAAK;IAC1B,OAAO,EAAE,sBAAO,CAAC,KAAK;IACtB,MAAM,EAAE,qBAAM,CAAC,KAAK;IACpB,UAAU,EAAE,yBAAU,CAAC,KAAK;IAC5B,OAAO,EAAE,sBAAO,CAAC,KAAK;IACtB,OAAO,EAAE,sBAAO,CAAC,KAAK;IACtB,OAAO,EAAE,sBAAO,CAAC,KAAK;IACtB,IAAI,EAAE,mBAAI,CAAC,KAAK;CACjB,CAAC"}
@@ -28,4 +28,3 @@ declare class Filter {
28
28
  checkProfanity(text: string): CheckProfanityResult;
29
29
  }
30
30
  export { Filter };
31
- //# sourceMappingURL=Filter.d.ts.map
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ // src/filters/Filter.ts
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.Filter = void 0;
8
+ const dictionary_1 = __importDefault(require("../data/dictionary"));
9
+ class Filter {
10
+ constructor(config) {
11
+ var _a, _b, _c, _d, _e;
12
+ let words = [];
13
+ this.caseSensitive = (_a = config === null || config === void 0 ? void 0 : config.caseSensitive) !== null && _a !== void 0 ? _a : false;
14
+ this.wordBoundaries = (_b = config === null || config === void 0 ? void 0 : config.wordBoundaries) !== null && _b !== void 0 ? _b : true;
15
+ this.replaceWith = config === null || config === void 0 ? void 0 : config.replaceWith;
16
+ this.severityLevels = (_c = config === null || config === void 0 ? void 0 : config.severityLevels) !== null && _c !== void 0 ? _c : false;
17
+ 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())) || []);
18
+ this.logProfanity = (_e = config === null || config === void 0 ? void 0 : config.logProfanity) !== null && _e !== void 0 ? _e : false;
19
+ if (config === null || config === void 0 ? void 0 : config.allLanguages) {
20
+ for (const lang in dictionary_1.default) {
21
+ if (dictionary_1.default.hasOwnProperty(lang)) {
22
+ words = [...words, ...dictionary_1.default[lang]];
23
+ }
24
+ }
25
+ }
26
+ else {
27
+ const languages = (config === null || config === void 0 ? void 0 : config.languages) || ['english'];
28
+ const languagesChecks = new Set(languages);
29
+ if (languagesChecks.size !== 0) {
30
+ languagesChecks.forEach(lang => {
31
+ words = [...words, ...dictionary_1.default[lang]];
32
+ });
33
+ }
34
+ }
35
+ if (config === null || config === void 0 ? void 0 : config.customWords) {
36
+ words = [...words, ...config.customWords];
37
+ }
38
+ this.words = new Map(words.map(word => [word.toLowerCase(), 1])); // Store words in lowercase
39
+ }
40
+ getRegex(word) {
41
+ const flags = this.caseSensitive ? 'g' : 'gi';
42
+ const boundary = this.wordBoundaries ? '\\b' : '';
43
+ return new RegExp(`${boundary}${word.replace(/(\W)/g, '\\$1')}${boundary}`, flags);
44
+ }
45
+ isFuzzyMatch(word, text) {
46
+ const pattern = `${word.split('').join('[^a-zA-Z]*')}`;
47
+ const regex = new RegExp(pattern, this.caseSensitive ? 'g' : 'gi');
48
+ return regex.test(text);
49
+ }
50
+ isMergedMatch(word, text) {
51
+ const pattern = `${word}`;
52
+ const regex = new RegExp(pattern, this.caseSensitive ? 'g' : 'gi');
53
+ return regex.test(text);
54
+ }
55
+ evaluateSeverity(word, text) {
56
+ if (this.getRegex(word).test(text)) {
57
+ return 1; // Exact match
58
+ }
59
+ else if (this.isFuzzyMatch(word, text)) {
60
+ return 2; // Fuzzy match
61
+ }
62
+ else if (this.isMergedMatch(word, text)) {
63
+ return 3; // Merged word match
64
+ }
65
+ return undefined; // No match or irrelevant match
66
+ }
67
+ isProfane(value) {
68
+ for (const word of this.words.keys()) {
69
+ if (!this.ignoreWords.has(word.toLowerCase()) && this.evaluateSeverity(word, value) !== undefined)
70
+ return true;
71
+ }
72
+ return false;
73
+ }
74
+ checkProfanityInSentence(text) {
75
+ const words = text.split(/\s+/);
76
+ const profaneWords = [];
77
+ const severityMap = {};
78
+ for (const word of words) {
79
+ for (const dictWord of this.words.keys()) {
80
+ const severity = this.evaluateSeverity(dictWord, word);
81
+ if (severity !== undefined && !this.ignoreWords.has(dictWord.toLowerCase())) {
82
+ profaneWords.push(word);
83
+ severityMap[word] = severity; // Use the actual word found in text as the key
84
+ }
85
+ }
86
+ }
87
+ let processedText = text;
88
+ if (this.replaceWith) {
89
+ for (const word of profaneWords) {
90
+ processedText = processedText.replace(new RegExp(word, 'gi'), this.replaceWith);
91
+ }
92
+ }
93
+ return {
94
+ containsProfanity: profaneWords.length > 0,
95
+ profaneWords,
96
+ processedText: this.replaceWith ? processedText : undefined,
97
+ severityMap: Object.keys(severityMap).length > 0 ? severityMap : undefined, // Only return if there are valid severities
98
+ };
99
+ }
100
+ checkProfanity(text) {
101
+ const words = text.split(/\s+/);
102
+ const profaneWords = [];
103
+ const severityMap = {};
104
+ // Check each word individually
105
+ for (const word of words) {
106
+ for (const dictWord of this.words.keys()) {
107
+ const severity = this.evaluateSeverity(dictWord, word);
108
+ if (severity !== undefined && !this.ignoreWords.has(dictWord.toLowerCase())) {
109
+ profaneWords.push(word);
110
+ severityMap[word] = severity; // Use the actual word found in text as the key
111
+ }
112
+ }
113
+ }
114
+ const sentenceResult = this.checkProfanityInSentence(text);
115
+ profaneWords.push(...sentenceResult.profaneWords);
116
+ Object.assign(severityMap, sentenceResult.severityMap);
117
+ let processedText = text;
118
+ if (this.replaceWith) {
119
+ for (const word of profaneWords) {
120
+ processedText = processedText.replace(new RegExp(word, 'gi'), this.replaceWith);
121
+ }
122
+ }
123
+ return {
124
+ containsProfanity: profaneWords.length > 0,
125
+ profaneWords: Array.from(new Set(profaneWords)),
126
+ processedText: this.replaceWith ? processedText : undefined,
127
+ severityMap: Object.keys(severityMap).length > 0 ? severityMap : undefined,
128
+ };
129
+ }
130
+ }
131
+ exports.Filter = Filter;
132
+ //# sourceMappingURL=Filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Filter.js","sourceRoot":"","sources":["../../../src/filters/Filter.ts"],"names":[],"mappings":";AAAA,wBAAwB;;;;;;AAExB,oEAA4C;AAe5C,MAAM,MAAM;IASV,YAAY,MAAqB;;QAC/B,IAAI,KAAK,GAAa,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,mCAAI,KAAK,CAAC;QACpD,IAAI,CAAC,cAAc,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,mCAAI,IAAI,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,mCAAI,KAAK,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,CAAC,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,0CAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAI,EAAE,CAAC,CAAC;QACvF,IAAI,CAAC,YAAY,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,mCAAI,KAAK,CAAC;QAElD,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,oBAAU,EAAE,CAAC;gBAC9B,IAAI,oBAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpC,KAAK,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,oBAAU,CAAC,IAAgB,CAAC,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,KAAI,CAAC,SAAS,CAAC,CAAC;YACnD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAW,SAAS,CAAC,CAAC;YACrD,IAAI,eAAe,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC/B,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBAC7B,KAAK,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,oBAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,EAAE,CAAC;YACxB,KAAK,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B;IAC/F,CAAC;IAEO,QAAQ,CAAC,IAAY;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,IAAI,MAAM,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;IACrF,CAAC;IAEO,YAAY,CAAC,IAAY,EAAE,IAAY;QAC7C,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,aAAa,CAAC,IAAY,EAAE,IAAY;QAC9C,MAAM,OAAO,GAAG,GAAG,IAAI,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,gBAAgB,CAAC,IAAY,EAAE,IAAY;QACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,CAAC,CAAC,cAAc;QAC1B,CAAC;aAAM,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,CAAC,CAAC,cAAc;QAC1B,CAAC;aAAM,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,CAAC,CAAC,oBAAoB;QAChC,CAAC;QACD,OAAO,SAAS,CAAC,CAAC,+BAA+B;IACnD,CAAC;IAED,SAAS,CAAC,KAAa;QACrB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;QACjH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wBAAwB,CAAC,IAAY;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,WAAW,GAA+B,EAAE,CAAC;QAEnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACvD,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBAC5E,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxB,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,+CAA+C;gBAC/E,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAChC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QAED,OAAO;YACL,iBAAiB,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC;YAC1C,YAAY;YACZ,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;YAC3D,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,4CAA4C;SACzH,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,WAAW,GAA+B,EAAE,CAAC;QAEnD,+BAA+B;QAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACvD,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBAC5E,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxB,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,+CAA+C;gBAC/E,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAC3D,YAAY,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;QAEvD,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAChC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QAED,OAAO;YACL,iBAAiB,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC;YAC1C,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;YAC/C,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;YAC3D,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;SAC3E,CAAC;IACJ,CAAC;CACF;AAEQ,wBAAM"}
@@ -15,4 +15,3 @@ export declare const useProfanityChecker: (config?: ProfanityCheckerConfig) => {
15
15
  checkTextAsync: (text: string) => Promise<CheckProfanityResult>;
16
16
  };
17
17
  export {};
18
- //# sourceMappingURL=useProfanityChecker.d.ts.map
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.useProfanityChecker = void 0;
13
+ const react_1 = require("react");
14
+ const Filter_1 = require("../filters/Filter");
15
+ const useProfanityChecker = (config) => {
16
+ const [result, setResult] = (0, react_1.useState)(null);
17
+ const filter = new Filter_1.Filter(config);
18
+ const checkText = (text) => {
19
+ const checkResult = filter.checkProfanity(text);
20
+ setResult(checkResult);
21
+ if (config === null || config === void 0 ? void 0 : config.customActions) {
22
+ config.customActions(checkResult);
23
+ }
24
+ };
25
+ const checkTextAsync = (text) => __awaiter(void 0, void 0, void 0, function* () {
26
+ return new Promise((resolve) => {
27
+ const checkResult = filter.checkProfanity(text);
28
+ setResult(checkResult);
29
+ if (config === null || config === void 0 ? void 0 : config.customActions) {
30
+ config.customActions(checkResult);
31
+ }
32
+ resolve(checkResult);
33
+ });
34
+ });
35
+ return {
36
+ result,
37
+ checkText,
38
+ checkTextAsync,
39
+ };
40
+ };
41
+ exports.useProfanityChecker = useProfanityChecker;
42
+ //# sourceMappingURL=useProfanityChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useProfanityChecker.js","sourceRoot":"","sources":["../../../src/hooks/useProfanityChecker.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAAiC;AACjC,8CAA2C;AAcpC,MAAM,mBAAmB,GAAG,CAAC,MAA+B,EAAE,EAAE;IACrE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAA8B,IAAI,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,IAAI,eAAM,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;AA5BW,QAAA,mBAAmB,uBA4B9B"}
@@ -1,4 +1,3 @@
1
1
  export { Filter } from './filters/Filter';
2
2
  export { useProfanityChecker } from './hooks/useProfanityChecker';
3
3
  export type { Language, CheckProfanityResult } from './types/types';
4
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useProfanityChecker = exports.Filter = void 0;
4
+ var Filter_1 = require("./filters/Filter");
5
+ Object.defineProperty(exports, "Filter", { enumerable: true, get: function () { return Filter_1.Filter; } });
6
+ var useProfanityChecker_1 = require("./hooks/useProfanityChecker");
7
+ Object.defineProperty(exports, "useProfanityChecker", { enumerable: true, get: function () { return useProfanityChecker_1.useProfanityChecker; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAAjC,gGAAA,MAAM,OAAA;AACf,mEAAkE;AAAzD,0HAAA,mBAAmB,OAAA"}
@@ -7,4 +7,3 @@ export interface CheckProfanityResult {
7
7
  };
8
8
  }
9
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';
10
- //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/types/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ {
2
+ "words": [
3
+ "drittsekk",
4
+ "faen i helvete",
5
+ "fitte",
6
+ "jævla",
7
+ "kuk",
8
+ "kukene",
9
+ "kuker",
10
+ "nigger",
11
+ "pikk",
12
+ "sotrør",
13
+ "ståpikk",
14
+ "ståpikkene",
15
+ "ståpikker"
16
+ ]
17
+ }
@@ -0,0 +1,157 @@
1
+ {
2
+ "words": [
3
+ "سكس",
4
+ "طيز",
5
+ "شرج",
6
+ "لعق",
7
+ "لحس",
8
+ "تمص",
9
+ "بيضان",
10
+ "ثدي",
11
+ "بز",
12
+ "حلمة",
13
+ "مفلقسة",
14
+ "بظر",
15
+ "كس",
16
+ "مبادل",
17
+ "عاهرة",
18
+ "جماع",
19
+ "قضيب",
20
+ "زب",
21
+ "لوطي",
22
+ "لواط",
23
+ "سحاق",
24
+ "اغتصاب",
25
+ "خنثي",
26
+ "احتلام",
27
+ "نيك",
28
+ "متناك",
29
+ "شرموطة",
30
+ "عرص",
31
+ "خول",
32
+ "قحبة",
33
+ "لبوة",
34
+ "وسخ",
35
+ "علق",
36
+ "ناك",
37
+ "منيك",
38
+ "شرمط",
39
+ "قحب",
40
+ "شرموط",
41
+ "خول",
42
+ "هنيك",
43
+ "فحل",
44
+ "ديوث",
45
+ "متناك",
46
+ "هايج",
47
+ "زبر",
48
+ "bdsm",
49
+ "زان",
50
+ "سادي",
51
+ "سادى",
52
+ "كسها",
53
+ "كسي",
54
+ "كسك",
55
+ "كسم",
56
+ "بنتاك",
57
+ "بتناك",
58
+ "نيكني",
59
+ "ديوث",
60
+ "نياك",
61
+ "فشاخ",
62
+ "فشخ",
63
+ "هفشخك",
64
+ "شذوذ",
65
+ "لواط",
66
+ "لوطي",
67
+ "لوطى",
68
+ "عاهر",
69
+ "لحس",
70
+ "متع",
71
+ "حمام",
72
+ "هربط",
73
+ "دياث",
74
+ "سحاق",
75
+ "جنس",
76
+ "جنس",
77
+ "جوزي",
78
+ "مراتي",
79
+ "مراتى",
80
+ "مرات",
81
+ "ورا",
82
+ "شعر",
83
+ "مشعر",
84
+ "اركب",
85
+ "فرس",
86
+ "جاد",
87
+ "منيوك",
88
+ "زوبر",
89
+ "طياز",
90
+ "شراميط",
91
+ "فاجر",
92
+ "محروم",
93
+ "واقف",
94
+ "بيحك",
95
+ "ممحونة",
96
+ "لبن",
97
+ "لبو",
98
+ "واقف",
99
+ "شرقان",
100
+ "افضي",
101
+ "دهولت",
102
+ "bzaz",
103
+ "nek",
104
+ "nik",
105
+ "mtnak",
106
+ "zeb",
107
+ "zep",
108
+ "zobr",
109
+ "zopr",
110
+ "kos",
111
+ "a7a",
112
+ "hayg",
113
+ "لبوه",
114
+ "لبوة",
115
+ "لبوت",
116
+ "sharma",
117
+ "banoty",
118
+ "بنوتي",
119
+ "بنوتى",
120
+ "سلب",
121
+ "عايز",
122
+ "دكر",
123
+ "نتاية",
124
+ "نتايه",
125
+ "زنج",
126
+ "ممحون",
127
+ "تعبان",
128
+ "اقعد",
129
+ "بزاز",
130
+ "هيجان",
131
+ "سافل",
132
+ "مصيهولي",
133
+ "هتمص",
134
+ "مصي",
135
+ "بز",
136
+ "hayg",
137
+ "كلوت",
138
+ "اندر",
139
+ "سنتيا",
140
+ "بوكسر",
141
+ "بتاع",
142
+ "مشتهي",
143
+ "زبى",
144
+ "نكته",
145
+ "اتناك",
146
+ "nayak",
147
+ "nyak",
148
+ "neeek",
149
+ "اغتصا",
150
+ "زب",
151
+ "كس",
152
+ "بلكيشن",
153
+ "كيشن",
154
+ "ليسبيان",
155
+ "سبيان"
156
+ ]
157
+ }