@sideid/id-profanity-filter 1.11.7 → 1.11.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/dist/index.d.ts +2 -2
- package/dist/index.esm.js +1004 -438
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1004 -438
- package/dist/index.js.map +1 -1
- package/dist/types/config/options.d.ts +1 -1
- package/dist/types/constants/categories/blasphemy.d.ts +1 -1
- package/dist/types/constants/categories/disgusting.d.ts +1 -1
- package/dist/types/constants/categories/drugs.d.ts +1 -1
- package/dist/types/constants/categories/insult.d.ts +1 -1
- package/dist/types/constants/categories/profanity.d.ts +1 -1
- package/dist/types/constants/categories/sexual.d.ts +1 -1
- package/dist/types/constants/categories/slur.d.ts +1 -1
- package/dist/types/constants/regions/bali.d.ts +1 -1
- package/dist/types/constants/regions/batak.d.ts +1 -1
- package/dist/types/constants/regions/betawi.d.ts +1 -1
- package/dist/types/constants/regions/general.d.ts +1 -1
- package/dist/types/constants/regions/minang.d.ts +4 -0
- package/dist/types/constants/wordList.d.ts +10 -1
- package/dist/types/core/analyzer.d.ts +1 -1
- package/dist/types/core/filter.d.ts +1 -1
- package/dist/types/core/matcher.d.ts +1 -1
- package/dist/types/types/index.d.ts +2 -2
- package/dist/types/utils/regexUtils.d.ts +1 -1
- package/package.json +1 -1
- package/src/config/options.ts +25 -30
- package/src/constants/categories/blasphemy.ts +26 -15
- package/src/constants/categories/disgusting.ts +62 -54
- package/src/constants/categories/drugs.ts +56 -47
- package/src/constants/categories/insult.ts +80 -76
- package/src/constants/categories/profanity.ts +98 -92
- package/src/constants/categories/sexual.ts +74 -65
- package/src/constants/categories/slur.ts +73 -66
- package/src/constants/regions/aceh.ts +5 -9
- package/src/constants/regions/bali.ts +4 -7
- package/src/constants/regions/batak.ts +5 -9
- package/src/constants/regions/betawi.ts +19 -22
- package/src/constants/regions/general.ts +140 -144
- package/src/constants/regions/jawa.ts +11 -29
- package/src/constants/regions/madura.ts +2 -4
- package/src/constants/regions/minang.ts +53 -0
- package/src/constants/regions/sunda.ts +2 -4
- package/src/constants/wordList.ts +31 -34
- package/src/core/analyzer.ts +15 -26
- package/src/core/filter.ts +23 -39
- package/src/core/matcher.ts +25 -49
- package/src/index.ts +5 -16
- package/src/types/index.ts +26 -25
- package/src/utils/ahoCorasick.ts +1 -1
- package/src/utils/regexUtils.ts +37 -43
- package/src/utils/similarityUtils.ts +13 -28
- package/src/utils/stringUtils.ts +30 -38
- /package/{prettierrc → .prettierrc} +0 -0
|
@@ -1,100 +1,107 @@
|
|
|
1
|
-
import { ProfanityWord } from
|
|
2
|
-
import { general } from
|
|
3
|
-
import { jawa } from
|
|
4
|
-
import { sunda } from
|
|
5
|
-
import { betawi } from
|
|
1
|
+
import { ProfanityWord } from '../../types';
|
|
2
|
+
import { general } from '../regions/general';
|
|
3
|
+
import { jawa } from '../regions/jawa';
|
|
4
|
+
import { sunda } from '../regions/sunda';
|
|
5
|
+
import { betawi } from '../regions/betawi';
|
|
6
|
+
import minang from '../regions/minang';
|
|
7
|
+
import madura from '../regions/madura';
|
|
8
|
+
import aceh from '../regions/aceh';
|
|
9
|
+
import bali from '../regions/bali';
|
|
10
|
+
import batak from '../regions/batak';
|
|
6
11
|
|
|
7
12
|
export const slur: ProfanityWord[] = [
|
|
8
|
-
...general.filter((word) => word.category ===
|
|
9
|
-
...jawa.filter((word) => word.category ===
|
|
10
|
-
...sunda.filter((word) => word.category ===
|
|
11
|
-
...betawi.filter((word) => word.category ===
|
|
13
|
+
...general.filter((word) => word.category === 'slur'),
|
|
14
|
+
...jawa.filter((word) => word.category === 'slur'),
|
|
15
|
+
...sunda.filter((word) => word.category === 'slur'),
|
|
16
|
+
...betawi.filter((word) => word.category === 'slur'),
|
|
17
|
+
...minang.filter((word) => word.category === 'slur'),
|
|
18
|
+
...madura.filter((word) => word.category === 'slur'),
|
|
19
|
+
...sunda.filter((word) => word.category === 'slur'),
|
|
20
|
+
...aceh.filter((word) => word.category === 'slur'),
|
|
21
|
+
...bali.filter((word) => word.category === 'slur'),
|
|
22
|
+
...batak.filter((word) => word.category === 'slur'),
|
|
12
23
|
|
|
13
24
|
{
|
|
14
|
-
word:
|
|
15
|
-
category:
|
|
16
|
-
region:
|
|
25
|
+
word: 'cina',
|
|
26
|
+
category: 'slur',
|
|
27
|
+
region: 'general',
|
|
17
28
|
severity: 0.7,
|
|
18
|
-
aliases: [
|
|
19
|
-
description:
|
|
20
|
-
"Sebutan yang dianggap merendahkan untuk orang keturunan Tionghoa",
|
|
29
|
+
aliases: ['cino', 'china'],
|
|
30
|
+
description: 'Sebutan yang dianggap merendahkan untuk orang keturunan Tionghoa',
|
|
21
31
|
context: 'Dianggap tidak sopan dan sebaiknya diganti dengan "Tionghoa"',
|
|
22
32
|
},
|
|
23
33
|
{
|
|
24
|
-
word:
|
|
25
|
-
category:
|
|
26
|
-
region:
|
|
34
|
+
word: 'banci',
|
|
35
|
+
category: 'slur',
|
|
36
|
+
region: 'general',
|
|
27
37
|
severity: 0.7,
|
|
28
|
-
aliases: [
|
|
29
|
-
description:
|
|
30
|
-
|
|
31
|
-
context:
|
|
32
|
-
"Digunakan sebagai hinaan terhadap identitas gender atau ekspresi gender seseorang",
|
|
38
|
+
aliases: ['bencong', 'waria', 'bences'],
|
|
39
|
+
description: 'Istilah merendahkan untuk transgender atau pria yang dianggap feminin',
|
|
40
|
+
context: 'Digunakan sebagai hinaan terhadap identitas gender atau ekspresi gender seseorang',
|
|
33
41
|
},
|
|
34
42
|
{
|
|
35
|
-
word:
|
|
36
|
-
category:
|
|
37
|
-
region:
|
|
43
|
+
word: 'autis',
|
|
44
|
+
category: 'slur',
|
|
45
|
+
region: 'general',
|
|
38
46
|
severity: 0.6,
|
|
39
|
-
aliases: [
|
|
40
|
-
description:
|
|
47
|
+
aliases: ['autis lu', 'autisan'],
|
|
48
|
+
description: 'Penyalahgunaan kondisi medis sebagai hinaan',
|
|
41
49
|
context:
|
|
42
|
-
|
|
50
|
+
'Menggunakan kondisi spektrum autisme sebagai hinaan untuk seseorang yang dianggap aneh',
|
|
43
51
|
},
|
|
44
52
|
{
|
|
45
|
-
word:
|
|
46
|
-
category:
|
|
47
|
-
region:
|
|
53
|
+
word: 'londo',
|
|
54
|
+
category: 'slur',
|
|
55
|
+
region: 'jawa',
|
|
48
56
|
severity: 0.5,
|
|
49
|
-
aliases: [
|
|
50
|
-
description:
|
|
51
|
-
context:
|
|
57
|
+
aliases: ['landa', 'landi'],
|
|
58
|
+
description: 'Sebutan untuk orang Belanda atau orang berkulit putih',
|
|
59
|
+
context: 'Dapat bersifat merendahkan tergantung konteks dan nada bicara',
|
|
52
60
|
},
|
|
53
61
|
{
|
|
54
|
-
word:
|
|
55
|
-
category:
|
|
56
|
-
region:
|
|
62
|
+
word: 'keling',
|
|
63
|
+
category: 'slur',
|
|
64
|
+
region: 'general',
|
|
57
65
|
severity: 0.8,
|
|
58
|
-
aliases: [
|
|
59
|
-
description:
|
|
60
|
-
context:
|
|
66
|
+
aliases: ['kaling', 'hitam legam'],
|
|
67
|
+
description: 'Istilah merendahkan untuk orang India atau berkulit gelap',
|
|
68
|
+
context: 'Dianggap sangat tidak sopan dan bernada rasis',
|
|
61
69
|
},
|
|
62
70
|
{
|
|
63
|
-
word:
|
|
64
|
-
category:
|
|
65
|
-
region:
|
|
71
|
+
word: 'cacat',
|
|
72
|
+
category: 'slur',
|
|
73
|
+
region: 'general',
|
|
66
74
|
severity: 0.7,
|
|
67
|
-
aliases: [
|
|
68
|
-
description:
|
|
69
|
-
context:
|
|
75
|
+
aliases: ['cacad', 'difabel'],
|
|
76
|
+
description: 'Istilah merendahkan untuk penyandang disabilitas',
|
|
77
|
+
context: 'Digunakan sebagai hinaan untuk menunjukkan ketidaksempurnaan',
|
|
70
78
|
},
|
|
71
79
|
{
|
|
72
|
-
word:
|
|
73
|
-
category:
|
|
74
|
-
region:
|
|
80
|
+
word: 'gembel',
|
|
81
|
+
category: 'slur',
|
|
82
|
+
region: 'general',
|
|
75
83
|
severity: 0.6,
|
|
76
|
-
aliases: [
|
|
77
|
-
description:
|
|
78
|
-
context:
|
|
84
|
+
aliases: ['gembul', 'gelandangan'],
|
|
85
|
+
description: 'Istilah merendahkan untuk orang tidak mampu atau tunawisma',
|
|
86
|
+
context: 'Mengandung stigma terhadap kemiskinan dan kelas sosial',
|
|
79
87
|
},
|
|
80
88
|
{
|
|
81
|
-
word:
|
|
82
|
-
category:
|
|
83
|
-
region:
|
|
89
|
+
word: 'kampungan',
|
|
90
|
+
category: 'slur',
|
|
91
|
+
region: 'general',
|
|
84
92
|
severity: 0.5,
|
|
85
|
-
aliases: [
|
|
86
|
-
description:
|
|
87
|
-
context:
|
|
88
|
-
"Menyiratkan seseorang tidak beradab, tidak berpendidikan, atau ketinggalan zaman",
|
|
93
|
+
aliases: ['ndeso', 'katrok', 'udik'],
|
|
94
|
+
description: 'Istilah merendahkan untuk orang dari daerah pedesaan',
|
|
95
|
+
context: 'Menyiratkan seseorang tidak beradab, tidak berpendidikan, atau ketinggalan zaman',
|
|
89
96
|
},
|
|
90
97
|
{
|
|
91
|
-
word:
|
|
92
|
-
category:
|
|
93
|
-
region:
|
|
98
|
+
word: 'tolol',
|
|
99
|
+
category: 'slur',
|
|
100
|
+
region: 'general',
|
|
94
101
|
severity: 0.6,
|
|
95
|
-
aliases: [
|
|
96
|
-
description:
|
|
97
|
-
context:
|
|
102
|
+
aliases: ['tololnya', 'tolo'],
|
|
103
|
+
description: 'Hinaan terhadap kecerdasan seseorang',
|
|
104
|
+
context: 'Digunakan untuk menghina kapasitas mental seseorang',
|
|
98
105
|
},
|
|
99
106
|
];
|
|
100
107
|
|
|
@@ -17,8 +17,7 @@ export const aceh: ProfanityWord[] = [
|
|
|
17
17
|
severity: 0.6,
|
|
18
18
|
aliases: [],
|
|
19
19
|
description: 'Secara harfiah berarti babi',
|
|
20
|
-
context:
|
|
21
|
-
'Umpatan untuk menyebut orang yang dianggap kotor, rakus, atau tidak berakhlak',
|
|
20
|
+
context: 'Umpatan untuk menyebut orang yang dianggap kotor, rakus, atau tidak berakhlak',
|
|
22
21
|
},
|
|
23
22
|
{
|
|
24
23
|
word: 'asèe',
|
|
@@ -27,8 +26,7 @@ export const aceh: ProfanityWord[] = [
|
|
|
27
26
|
severity: 0.6,
|
|
28
27
|
aliases: ['asee'],
|
|
29
28
|
description: 'Secara harfiah berarti anjing',
|
|
30
|
-
context:
|
|
31
|
-
'Umpatan untuk menyebut orang yang dianggap hina atau tidak berguna',
|
|
29
|
+
context: 'Umpatan untuk menyebut orang yang dianggap hina atau tidak berguna',
|
|
32
30
|
},
|
|
33
31
|
{
|
|
34
32
|
word: 'haramjadah',
|
|
@@ -36,10 +34,8 @@ export const aceh: ProfanityWord[] = [
|
|
|
36
34
|
region: 'aceh',
|
|
37
35
|
severity: 0.8,
|
|
38
36
|
aliases: [],
|
|
39
|
-
description:
|
|
40
|
-
|
|
41
|
-
context:
|
|
42
|
-
'Umpatan kasar untuk menyebut anak yang tidak sopan atau tidak beradab',
|
|
37
|
+
description: 'Berarti kurang ajar atau anak haram (lebih halus dari aneuk bajeung)',
|
|
38
|
+
context: 'Umpatan kasar untuk menyebut anak yang tidak sopan atau tidak beradab',
|
|
43
39
|
},
|
|
44
40
|
{
|
|
45
41
|
word: "pa'ak",
|
|
@@ -63,4 +59,4 @@ export const aceh: ProfanityWord[] = [
|
|
|
63
59
|
|
|
64
60
|
export const acehWords = aceh.map((item) => item.word);
|
|
65
61
|
|
|
66
|
-
export default aceh;
|
|
62
|
+
export default aceh;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ProfanityWord } from
|
|
1
|
+
import { ProfanityWord } from '../../types';
|
|
2
2
|
|
|
3
3
|
export const bali: ProfanityWord[] = [
|
|
4
4
|
{
|
|
@@ -8,8 +8,7 @@ export const bali: ProfanityWord[] = [
|
|
|
8
8
|
severity: 0.7,
|
|
9
9
|
aliases: [],
|
|
10
10
|
description: 'Secara harfiah berarti anjing',
|
|
11
|
-
context:
|
|
12
|
-
'Umpatan umum di Bali untuk menyebut orang yang dianggap hina atau tidak berguna',
|
|
11
|
+
context: 'Umpatan umum di Bali untuk menyebut orang yang dianggap hina atau tidak berguna',
|
|
13
12
|
},
|
|
14
13
|
{
|
|
15
14
|
word: 'bengkung',
|
|
@@ -17,10 +16,8 @@ export const bali: ProfanityWord[] = [
|
|
|
17
16
|
region: 'bali',
|
|
18
17
|
severity: 0.5,
|
|
19
18
|
aliases: [],
|
|
20
|
-
description:
|
|
21
|
-
|
|
22
|
-
context:
|
|
23
|
-
'Umpatan ringan untuk menyebut orang yang tidak jujur atau berkelakuan buruk',
|
|
19
|
+
description: 'Berarti bengkok atau tidak lurus (juga bisa berarti tidak jujur)',
|
|
20
|
+
context: 'Umpatan ringan untuk menyebut orang yang tidak jujur atau berkelakuan buruk',
|
|
24
21
|
},
|
|
25
22
|
{
|
|
26
23
|
word: 'belog',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ProfanityWord } from
|
|
1
|
+
import { ProfanityWord } from '../../types';
|
|
2
2
|
|
|
3
3
|
export const batak: ProfanityWord[] = [
|
|
4
4
|
{
|
|
@@ -17,8 +17,7 @@ export const batak: ProfanityWord[] = [
|
|
|
17
17
|
severity: 0.7,
|
|
18
18
|
aliases: [],
|
|
19
19
|
description: "Secara harfiah berarti 'tidak berguna' atau 'sia-sia'",
|
|
20
|
-
context:
|
|
21
|
-
'Umpatan kasar untuk menyebut orang yang dianggap tidak berguna atau tidak becus.',
|
|
20
|
+
context: 'Umpatan kasar untuk menyebut orang yang dianggap tidak berguna atau tidak becus.',
|
|
22
21
|
},
|
|
23
22
|
{
|
|
24
23
|
word: 'puki mak',
|
|
@@ -117,8 +116,7 @@ export const batak: ProfanityWord[] = [
|
|
|
117
116
|
severity: 0.5,
|
|
118
117
|
aliases: [],
|
|
119
118
|
description: 'Berarti orang yang suka bicara omong kosong atau tidak jelas',
|
|
120
|
-
context:
|
|
121
|
-
'Umpatan ringan untuk menyebut orang yang perkataannya tidak bisa dipercaya.',
|
|
119
|
+
context: 'Umpatan ringan untuk menyebut orang yang perkataannya tidak bisa dipercaya.',
|
|
122
120
|
},
|
|
123
121
|
{
|
|
124
122
|
word: 'songon babiat',
|
|
@@ -127,8 +125,7 @@ export const batak: ProfanityWord[] = [
|
|
|
127
125
|
severity: 0.7,
|
|
128
126
|
aliases: [],
|
|
129
127
|
description: 'Secara harfiah berarti seperti binatang buas (kasar)',
|
|
130
|
-
context:
|
|
131
|
-
'Umpatan kasar untuk menyebut orang yang kelakuannya buruk atau liar.',
|
|
128
|
+
context: 'Umpatan kasar untuk menyebut orang yang kelakuannya buruk atau liar.',
|
|
132
129
|
},
|
|
133
130
|
{
|
|
134
131
|
word: 'hau buluk',
|
|
@@ -136,8 +133,7 @@ export const batak: ProfanityWord[] = [
|
|
|
136
133
|
region: 'batak',
|
|
137
134
|
severity: 0.6,
|
|
138
135
|
aliases: [],
|
|
139
|
-
description:
|
|
140
|
-
'Secara harfiah berarti pohon lapuk (kiasan untuk tidak berguna)',
|
|
136
|
+
description: 'Secara harfiah berarti pohon lapuk (kiasan untuk tidak berguna)',
|
|
141
137
|
context: 'Umpatan untuk menyebut orang yang dianggap tidak berguna.',
|
|
142
138
|
},
|
|
143
139
|
];
|
|
@@ -1,36 +1,33 @@
|
|
|
1
|
-
import { ProfanityWord } from
|
|
1
|
+
import { ProfanityWord } from '../../types';
|
|
2
2
|
|
|
3
3
|
export const betawi: ProfanityWord[] = [
|
|
4
4
|
{
|
|
5
|
-
word:
|
|
6
|
-
category:
|
|
7
|
-
region:
|
|
5
|
+
word: 'jablay',
|
|
6
|
+
category: 'sexual',
|
|
7
|
+
region: 'betawi',
|
|
8
8
|
severity: 0.7,
|
|
9
|
-
aliases: [
|
|
10
|
-
description:
|
|
11
|
-
|
|
12
|
-
context: "Hinaan yang merendahkan untuk wanita",
|
|
9
|
+
aliases: ['jabl4y', 'jalay'],
|
|
10
|
+
description: 'Singkatan dari "jarang dibelai", istilah untuk perempuan yang mudah didekati',
|
|
11
|
+
context: 'Hinaan yang merendahkan untuk wanita',
|
|
13
12
|
},
|
|
14
13
|
{
|
|
15
|
-
word:
|
|
16
|
-
category:
|
|
17
|
-
region:
|
|
14
|
+
word: 'udik',
|
|
15
|
+
category: 'insult',
|
|
16
|
+
region: 'betawi',
|
|
18
17
|
severity: 0.5,
|
|
19
|
-
aliases: [
|
|
18
|
+
aliases: ['kampungan', 'ndeso'],
|
|
20
19
|
description:
|
|
21
|
-
|
|
22
|
-
context:
|
|
23
|
-
"Hinaan untuk menyebut orang yang dianggap tidak modern atau kampungan",
|
|
20
|
+
'Kata yang mengacu pada seseorang yang dianggap ketinggalan zaman atau tidak modern',
|
|
21
|
+
context: 'Hinaan untuk menyebut orang yang dianggap tidak modern atau kampungan',
|
|
24
22
|
},
|
|
25
23
|
{
|
|
26
|
-
word:
|
|
27
|
-
category:
|
|
28
|
-
region:
|
|
24
|
+
word: 'perek',
|
|
25
|
+
category: 'sexual',
|
|
26
|
+
region: 'betawi',
|
|
29
27
|
severity: 0.7,
|
|
30
|
-
aliases: [
|
|
31
|
-
description:
|
|
32
|
-
|
|
33
|
-
context: "Hinaan yang merendahkan untuk wanita",
|
|
28
|
+
aliases: ['perempuan eksperimen', 'prk'],
|
|
29
|
+
description: 'Istilah untuk perempuan yang dianggap memiliki moral yang rendah',
|
|
30
|
+
context: 'Hinaan yang merendahkan untuk wanita',
|
|
34
31
|
},
|
|
35
32
|
];
|
|
36
33
|
|