@sideid/id-profanity-filter 1.1.0 → 1.9.5

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 (41) hide show
  1. package/dist/config/options.d.ts +258 -0
  2. package/dist/constants/categories/insult.d.ts +1 -1
  3. package/dist/constants/categories/sexual.d.ts +1 -1
  4. package/dist/constants/regions/batak.d.ts +1 -1
  5. package/dist/constants/regions/betawi.d.ts +1 -1
  6. package/dist/constants/regions/general.d.ts +1 -1
  7. package/dist/constants/regions/jawa.d.ts +1 -1
  8. package/dist/constants/regions/sunda.d.ts +1 -1
  9. package/dist/constants/wordList.d.ts +1 -1
  10. package/dist/core/analyzer.d.ts +4 -4
  11. package/dist/core/filter.d.ts +1 -1
  12. package/dist/core/matcher.d.ts +5 -5
  13. package/dist/index.d.ts +30 -42
  14. package/dist/index.esm.js +1070 -432
  15. package/dist/index.esm.js.map +1 -1
  16. package/dist/index.js +1101 -429
  17. package/dist/index.js.map +1 -1
  18. package/dist/types/index.d.ts +29 -41
  19. package/dist/utils/regexUtils.d.ts +64 -0
  20. package/dist/utils/similarityUtils.d.ts +57 -0
  21. package/dist/utils/stringUtils.d.ts +79 -0
  22. package/package.json +1 -1
  23. package/src/config/options.ts +178 -0
  24. package/src/constants/categories/index.ts +31 -31
  25. package/src/constants/categories/insult.ts +114 -114
  26. package/src/constants/categories/sexual.ts +99 -100
  27. package/src/constants/regions/batak.ts +17 -17
  28. package/src/constants/regions/betawi.ts +39 -39
  29. package/src/constants/regions/general.ts +111 -111
  30. package/src/constants/regions/index.ts +62 -62
  31. package/src/constants/regions/jawa.ts +102 -102
  32. package/src/constants/regions/sunda.ts +35 -35
  33. package/src/constants/wordList.ts +125 -125
  34. package/src/core/analyzer.ts +225 -204
  35. package/src/core/filter.ts +129 -129
  36. package/src/core/matcher.ts +259 -267
  37. package/src/index.ts +188 -133
  38. package/src/types/index.ts +88 -115
  39. package/src/utils/regexUtils.ts +203 -0
  40. package/src/utils/similarityUtils.ts +195 -0
  41. package/src/utils/stringUtils.ts +213 -0
@@ -1,125 +1,125 @@
1
- import { ProfanityWord } from '../types';
2
-
3
- import { sexual, sexualWords } from './categories/sexual';
4
- import { insult, insultWords } from './categories/insult';
5
- // import { profanity, profanityWords } from './categories/profanity';
6
- // import { slur, slurWords } from './categories/slur';
7
- // import { drugs, drugsWords } from './categories/drugs';
8
- // import { disgusting, disgustingWords } from './categories/disgusting';
9
- // import { blasphemy, blasphemyWords } from './categories/blasphemy';
10
-
11
- import { general, generalWords } from './regions/general';
12
- import { jawa, jawaWords } from './regions/jawa';
13
- import { sunda, sundaWords } from './regions/sunda';
14
- import { betawi, betawiWords } from './regions/betawi';
15
- import { batak, batakWords } from './regions/batak';
16
- // import { minang, minangWords } from './regions/minang';
17
- // import { bali, baliWords } from './regions/bali';
18
- // import { madura, maduraWords } from './regions/madura';
19
- // import { bugis, bugisWords } from './regions/bugis';
20
- // import { aceh, acehWords } from './regions/aceh';
21
- // import { ambon, ambonWords } from './regions/ambon';
22
- // import { papua, papuaWords } from './regions/papua';
23
- // import { manado, manadoWords } from './regions/manado';
24
- // import { banjar, banjarWords } from './regions/banjar';
25
- // import { palembang, palembangWords } from './regions/palembang';
26
- // import { lampung, lampungWords } from './regions/lampung';
27
- // import { ntt, nttWords } from './regions/ntt';
28
- // import { ntb, ntbWords } from './regions/ntb';
29
-
30
- export const wordCategories = {
31
- sexual: sexualWords,
32
- insult: insultWords,
33
- // profanity: profanityWords,
34
- // slur: slurWords,
35
- // drugs: drugsWords,
36
- // disgusting: disgustingWords,
37
- // blasphemy: blasphemyWords,
38
- };
39
-
40
- export const wordRegions = {
41
- general: generalWords,
42
- jawa: jawaWords,
43
- sunda: sundaWords,
44
- betawi: betawiWords,
45
- batak: batakWords,
46
- // minang: minangWords,
47
- // bali: baliWords,
48
- // madura: maduraWords,
49
- // bugis: bugisWords,
50
- // aceh: acehWords,
51
- // ambon: ambonWords,
52
- // papua: papuaWords,
53
- // manado: manadoWords,
54
- // banjar: banjarWords,
55
- // palembang: palembangWords,
56
- // lampung: lampungWords,
57
- // ntt: nttWords,
58
- // ntb: ntbWords,
59
- };
60
-
61
- export const wordObjects: ProfanityWord[] = [
62
- ...general,
63
- ...jawa,
64
- ...sunda,
65
- ...betawi,
66
- ...batak,
67
- // ...minang,
68
- // ...bali,
69
- // ...madura,
70
- // ...bugis,
71
- // ...aceh,
72
- // ...ambon,
73
- // ...papua,
74
- // ...manado,
75
- // ...banjar,
76
- // ...palembang,
77
- // ...lampung,
78
- // ...ntt,
79
- // ...ntb,
80
- ];
81
-
82
- export const allWords: string[] = wordObjects.map((item) => item.word);
83
-
84
- /**
85
- * Kata-kata dengan tingkat keparahan tinggi (subset dari semua kata)
86
- */
87
- export const severeWords: string[] = wordObjects
88
- .filter((word) => word.severity >= 0.8)
89
- .map((item) => item.word);
90
-
91
- /**
92
- * Mencari kata berdasarkan kategori dan region
93
- *
94
- * @param category Kategori kata kotor
95
- * @param region Daerah asal kata kotor
96
- * @returns Array dari kata kotor
97
- */
98
- export function getWordsByFilter(category?: string, region?: string): string[] {
99
- return wordObjects
100
- .filter((word) => {
101
- const matchCategory = category ? word.category === category : true;
102
- const matchRegion = region ? word.region === region : true;
103
- return matchCategory && matchRegion;
104
- })
105
- .map((item) => item.word);
106
- }
107
-
108
- /**
109
- * Mencari metadata lengkap untuk sebuah kata
110
- *
111
- * @param word Kata yang dicari
112
- * @returns Objek ProfanityWord jika ditemukan, undefined jika tidak
113
- */
114
- export function getWordMetadata(word: string): ProfanityWord | undefined {
115
- return wordObjects.find(
116
- (item) =>
117
- item.word.toLowerCase() === word.toLowerCase() ||
118
- (item.aliases &&
119
- item.aliases.some(
120
- (alias) => alias.toLowerCase() === word.toLowerCase(),
121
- )),
122
- );
123
- }
124
-
125
- export default allWords;
1
+ import { ProfanityWord } from "../types";
2
+
3
+ import { sexual, sexualWords } from "./categories/sexual";
4
+ import { insult, insultWords } from "./categories/insult";
5
+ // import { profanity, profanityWords } from './categories/profanity';
6
+ // import { slur, slurWords } from './categories/slur';
7
+ // import { drugs, drugsWords } from './categories/drugs';
8
+ // import { disgusting, disgustingWords } from './categories/disgusting';
9
+ // import { blasphemy, blasphemyWords } from './categories/blasphemy';
10
+
11
+ import { general, generalWords } from "./regions/general";
12
+ import { jawa, jawaWords } from "./regions/jawa";
13
+ import { sunda, sundaWords } from "./regions/sunda";
14
+ import { betawi, betawiWords } from "./regions/betawi";
15
+ import { batak, batakWords } from "./regions/batak";
16
+ // import { minang, minangWords } from './regions/minang';
17
+ // import { bali, baliWords } from './regions/bali';
18
+ // import { madura, maduraWords } from './regions/madura';
19
+ // import { bugis, bugisWords } from './regions/bugis';
20
+ // import { aceh, acehWords } from './regions/aceh';
21
+ // import { ambon, ambonWords } from './regions/ambon';
22
+ // import { papua, papuaWords } from './regions/papua';
23
+ // import { manado, manadoWords } from './regions/manado';
24
+ // import { banjar, banjarWords } from './regions/banjar';
25
+ // import { palembang, palembangWords } from './regions/palembang';
26
+ // import { lampung, lampungWords } from './regions/lampung';
27
+ // import { ntt, nttWords } from './regions/ntt';
28
+ // import { ntb, ntbWords } from './regions/ntb';
29
+
30
+ export const wordCategories = {
31
+ sexual: sexualWords,
32
+ insult: insultWords,
33
+ // profanity: profanityWords,
34
+ // slur: slurWords,
35
+ // drugs: drugsWords,
36
+ // disgusting: disgustingWords,
37
+ // blasphemy: blasphemyWords,
38
+ };
39
+
40
+ export const wordRegions = {
41
+ general: generalWords,
42
+ jawa: jawaWords,
43
+ sunda: sundaWords,
44
+ betawi: betawiWords,
45
+ batak: batakWords,
46
+ // minang: minangWords,
47
+ // bali: baliWords,
48
+ // madura: maduraWords,
49
+ // bugis: bugisWords,
50
+ // aceh: acehWords,
51
+ // ambon: ambonWords,
52
+ // papua: papuaWords,
53
+ // manado: manadoWords,
54
+ // banjar: banjarWords,
55
+ // palembang: palembangWords,
56
+ // lampung: lampungWords,
57
+ // ntt: nttWords,
58
+ // ntb: ntbWords,
59
+ };
60
+
61
+ export const wordObjects: ProfanityWord[] = [
62
+ ...general,
63
+ ...jawa,
64
+ ...sunda,
65
+ ...betawi,
66
+ ...batak,
67
+ // ...minang,
68
+ // ...bali,
69
+ // ...madura,
70
+ // ...bugis,
71
+ // ...aceh,
72
+ // ...ambon,
73
+ // ...papua,
74
+ // ...manado,
75
+ // ...banjar,
76
+ // ...palembang,
77
+ // ...lampung,
78
+ // ...ntt,
79
+ // ...ntb,
80
+ ];
81
+
82
+ export const allWords: string[] = wordObjects.map((item) => item.word);
83
+
84
+ /**
85
+ * Kata-kata dengan tingkat keparahan tinggi (subset dari semua kata)
86
+ */
87
+ export const severeWords: string[] = wordObjects
88
+ .filter((word) => word.severity >= 0.8)
89
+ .map((item) => item.word);
90
+
91
+ /**
92
+ * Mencari kata berdasarkan kategori dan region
93
+ *
94
+ * @param category Kategori kata kotor
95
+ * @param region Daerah asal kata kotor
96
+ * @returns Array dari kata kotor
97
+ */
98
+ export function getWordsByFilter(category?: string, region?: string): string[] {
99
+ return wordObjects
100
+ .filter((word) => {
101
+ const matchCategory = category ? word.category === category : true;
102
+ const matchRegion = region ? word.region === region : true;
103
+ return matchCategory && matchRegion;
104
+ })
105
+ .map((item) => item.word);
106
+ }
107
+
108
+ /**
109
+ * Mencari metadata lengkap untuk sebuah kata
110
+ *
111
+ * @param word Kata yang dicari
112
+ * @returns Objek ProfanityWord jika ditemukan, undefined jika tidak
113
+ */
114
+ export function getWordMetadata(word: string): ProfanityWord | undefined {
115
+ return wordObjects.find(
116
+ (item) =>
117
+ item.word.toLowerCase() === word.toLowerCase() ||
118
+ (item.aliases &&
119
+ item.aliases.some(
120
+ (alias) => alias.toLowerCase() === word.toLowerCase(),
121
+ )),
122
+ );
123
+ }
124
+
125
+ export default allWords;