@sideid/id-profanity-filter 1.11.0 → 1.11.6

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 (53) hide show
  1. package/.eslintrc.js +44 -44
  2. package/.github/workflows/release.yml +62 -0
  3. package/CONTRIBUTING.md +150 -150
  4. package/LICENSE +21 -21
  5. package/README.md +548 -548
  6. package/dist/index.d.ts +989 -0
  7. package/dist/index.esm.js +504 -234
  8. package/dist/index.esm.js.map +1 -1
  9. package/dist/index.js +504 -234
  10. package/dist/index.js.map +1 -1
  11. package/dist/types/constants/regions/aceh.d.ts +4 -0
  12. package/dist/types/constants/regions/bali.d.ts +4 -0
  13. package/dist/{constants → types/constants}/regions/jawa.d.ts +1 -1
  14. package/dist/types/index.d.ts +375 -57
  15. package/dist/types/types/index.d.ts +59 -0
  16. package/eslint.config.mjs +40 -40
  17. package/examples/advanced.ts +120 -120
  18. package/examples/basic.ts +71 -71
  19. package/examples/custom-list.ts +140 -140
  20. package/jest.config.mjs +10 -10
  21. package/package.json +2 -1
  22. package/prettierrc +6 -6
  23. package/rollup.config.mjs +40 -35
  24. package/src/constants/regions/aceh.ts +231 -0
  25. package/src/constants/regions/bali.ts +168 -0
  26. package/src/constants/regions/batak.ts +136 -6
  27. package/src/constants/regions/general.ts +9 -0
  28. package/src/constants/regions/jawa.ts +367 -229
  29. package/src/index.ts +15 -15
  30. package/tsconfig.json +115 -115
  31. package/.github/workflows/ci.yml +0 -0
  32. package/dist/constants/categories/index.d.ts +0 -9
  33. package/dist/constants/regions/index.d.ts +0 -8
  34. /package/dist/{config → types/config}/options.d.ts +0 -0
  35. /package/dist/{constants → types/constants}/categories/blasphemy.d.ts +0 -0
  36. /package/dist/{constants → types/constants}/categories/disgusting.d.ts +0 -0
  37. /package/dist/{constants → types/constants}/categories/drugs.d.ts +0 -0
  38. /package/dist/{constants → types/constants}/categories/insult.d.ts +0 -0
  39. /package/dist/{constants → types/constants}/categories/profanity.d.ts +0 -0
  40. /package/dist/{constants → types/constants}/categories/sexual.d.ts +0 -0
  41. /package/dist/{constants → types/constants}/categories/slur.d.ts +0 -0
  42. /package/dist/{constants → types/constants}/regions/batak.d.ts +0 -0
  43. /package/dist/{constants → types/constants}/regions/betawi.d.ts +0 -0
  44. /package/dist/{constants → types/constants}/regions/general.d.ts +0 -0
  45. /package/dist/{constants → types/constants}/regions/sunda.d.ts +0 -0
  46. /package/dist/{constants → types/constants}/wordList.d.ts +0 -0
  47. /package/dist/{core → types/core}/analyzer.d.ts +0 -0
  48. /package/dist/{core → types/core}/filter.d.ts +0 -0
  49. /package/dist/{core → types/core}/matcher.d.ts +0 -0
  50. /package/dist/{utils → types/utils}/ahoCorasick.d.ts +0 -0
  51. /package/dist/{utils → types/utils}/regexUtils.d.ts +0 -0
  52. /package/dist/{utils → types/utils}/similarityUtils.d.ts +0 -0
  53. /package/dist/{utils → types/utils}/stringUtils.d.ts +0 -0
package/jest.config.mjs CHANGED
@@ -1,10 +1,10 @@
1
- module.exports = {
2
- preset: 'ts-jest',
3
- testEnvironment: 'node',
4
- roots: ['<rootDir>/test'],
5
- transform: {
6
- '^.+\\.tsx?$': 'ts-jest',
7
- },
8
- testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',
9
- moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
10
- };
1
+ module.exports = {
2
+ preset: 'ts-jest',
3
+ testEnvironment: 'node',
4
+ roots: ['<rootDir>/test'],
5
+ transform: {
6
+ '^.+\\.tsx?$': 'ts-jest',
7
+ },
8
+ testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',
9
+ moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
10
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sideid/id-profanity-filter",
3
- "version": "1.11.0",
3
+ "version": "1.11.6",
4
4
  "description": "Library filter kata kotor dalam Bahasa Indonesia",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",
@@ -45,6 +45,7 @@
45
45
  "rollup": "^4.39.0",
46
46
  "rollup-plugin-dts": "^6.2.1",
47
47
  "ts-jest": "^29.3.1",
48
+ "tslib": "^2.8.1",
48
49
  "typescript": "^5.8.3"
49
50
  }
50
51
  }
package/prettierrc CHANGED
@@ -1,7 +1,7 @@
1
- {
2
- "singleQuote": true,
3
- "trailingComma": "es5",
4
- "printWidth": 100,
5
- "tabWidth": 2,
6
- "semi": true
1
+ {
2
+ "singleQuote": true,
3
+ "trailingComma": "es5",
4
+ "printWidth": 100,
5
+ "tabWidth": 2,
6
+ "semi": true
7
7
  }
package/rollup.config.mjs CHANGED
@@ -1,35 +1,40 @@
1
- import resolve from '@rollup/plugin-node-resolve';
2
- import commonjs from '@rollup/plugin-commonjs';
3
- import typescript from '@rollup/plugin-typescript';
4
- import json from '@rollup/plugin-json';
5
- import dts from 'rollup-plugin-dts';
6
- import pkg from './package.json' assert { type: 'json' };
7
-
8
- export default [
9
- {
10
- input: 'src/index.ts',
11
- output: [
12
- {
13
- file: pkg.main,
14
- format: 'cjs',
15
- sourcemap: true,
16
- },
17
- {
18
- file: pkg.module,
19
- format: 'esm',
20
- sourcemap: true,
21
- },
22
- ],
23
- plugins: [
24
- resolve(),
25
- commonjs(),
26
- typescript({ tsconfig: './tsconfig.json' }),
27
- json(),
28
- ],
29
- },
30
- {
31
- input: 'dist/types/index.d.ts',
32
- output: [{ file: 'dist/index.d.ts', format: 'es' }],
33
- plugins: [dts()],
34
- },
35
- ];
1
+ import resolve from '@rollup/plugin-node-resolve';
2
+ import commonjs from '@rollup/plugin-commonjs';
3
+ import typescript from '@rollup/plugin-typescript';
4
+ import json from '@rollup/plugin-json';
5
+ import dts from 'rollup-plugin-dts';
6
+ import pkg from './package.json' assert { type: 'json' };
7
+
8
+ export default [
9
+ {
10
+ input: 'src/index.ts',
11
+ output: [
12
+ {
13
+ file: pkg.main,
14
+ format: 'cjs',
15
+ sourcemap: true,
16
+ exports: 'named',
17
+ },
18
+ {
19
+ file: pkg.module,
20
+ format: 'esm',
21
+ sourcemap: true,
22
+ },
23
+ ],
24
+ plugins: [
25
+ resolve(),
26
+ commonjs(),
27
+ typescript({
28
+ tsconfig: './tsconfig.json',
29
+ declaration: true,
30
+ declarationDir: './dist/types/',
31
+ }),
32
+ json(),
33
+ ],
34
+ },
35
+ {
36
+ input: 'dist/types/index.d.ts',
37
+ output: [{ file: 'dist/index.d.ts', format: 'es' }],
38
+ plugins: [dts()],
39
+ },
40
+ ];
@@ -0,0 +1,231 @@
1
+ import { ProfanityWord } from '../../types';
2
+
3
+ export const aceh: ProfanityWord[] = [
4
+ {
5
+ word: 'aneuk bajeung',
6
+ category: 'insult',
7
+ region: 'aceh',
8
+ severity: 0.8,
9
+ aliases: [],
10
+ description: 'Secara harfiah berarti anak haram',
11
+ context: 'Umpatan kasar untuk menghina status kelahiran seseorang',
12
+ },
13
+ {
14
+ word: 'pukoe ma',
15
+ category: 'sexual',
16
+ region: 'aceh',
17
+ severity: 0.9,
18
+ aliases: ['pukoima', 'pukima'],
19
+ description: 'Secara harfiah berarti kemaluan ibu',
20
+ context: 'Umpatan sangat kasar yang menyerang ibu seseorang',
21
+ },
22
+ {
23
+ word: 'ok ma',
24
+ category: 'sexual',
25
+ region: 'aceh',
26
+ severity: 0.9,
27
+ aliases: ['oek ma', 'uk ma'],
28
+ description: 'Secara harfiah berarti setubuhi ibumu',
29
+ context: 'Umpatan sangat kasar yang menyerang ibu seseorang',
30
+ },
31
+ {
32
+ word: 'pap ma',
33
+ category: 'sexual',
34
+ region: 'aceh',
35
+ severity: 0.9,
36
+ aliases: ['papma'],
37
+ description: 'Secara harfiah berarti setubuhi ibu',
38
+ context:
39
+ 'Umpatan sangat kasar yang menyerang ibu seseorang (bentuk lain dari ok ma)',
40
+ },
41
+ {
42
+ word: 'jak lét bui',
43
+ category: 'insult',
44
+ region: 'aceh',
45
+ severity: 0.7,
46
+ aliases: ['jak let bui'],
47
+ description: 'Secara harfiah berarti pergi jilat babi',
48
+ context: 'Umpatan kasar untuk mengusir atau menghina seseorang',
49
+ },
50
+ {
51
+ word: 'bui',
52
+ category: 'insult',
53
+ region: 'aceh',
54
+ severity: 0.6,
55
+ aliases: [],
56
+ description: 'Secara harfiah berarti babi',
57
+ context:
58
+ 'Umpatan untuk menyebut orang yang dianggap kotor, rakus, atau tidak berakhlak',
59
+ },
60
+ {
61
+ word: 'asèe',
62
+ category: 'insult',
63
+ region: 'aceh',
64
+ severity: 0.6,
65
+ aliases: ['asee'],
66
+ description: 'Secara harfiah berarti anjing',
67
+ context:
68
+ 'Umpatan untuk menyebut orang yang dianggap hina atau tidak berguna',
69
+ },
70
+ {
71
+ word: 'thô bangai',
72
+ category: 'insult',
73
+ region: 'aceh',
74
+ severity: 0.7,
75
+ aliases: ['tho bangai'],
76
+ description: 'Secara harfiah berarti sangat bodoh',
77
+ context: 'Umpatan kasar untuk menyebut seseorang yang sangat tidak pintar',
78
+ },
79
+ {
80
+ word: 'paléh',
81
+ category: 'insult',
82
+ region: 'aceh',
83
+ severity: 0.5,
84
+ aliases: [],
85
+ description: 'Berarti licik atau celaka',
86
+ context:
87
+ 'Umpatan untuk menyebut orang yang curang atau untuk menyatakan kekesalan',
88
+ },
89
+ {
90
+ word: 'haramjadah',
91
+ category: 'insult',
92
+ region: 'aceh',
93
+ severity: 0.8,
94
+ aliases: [],
95
+ description:
96
+ 'Berarti kurang ajar atau anak haram (lebih halus dari aneuk bajeung)',
97
+ context:
98
+ 'Umpatan kasar untuk menyebut anak yang tidak sopan atau tidak beradab',
99
+ },
100
+ {
101
+ word: 'lagèe bui',
102
+ category: 'insult',
103
+ region: 'aceh',
104
+ severity: 0.6,
105
+ aliases: ['lagee bui'],
106
+ description: 'Secara harfiah berarti seperti babi',
107
+ context: 'Umpatan untuk membandingkan seseorang dengan babi (jorok, rakus)',
108
+ },
109
+ {
110
+ word: 'aneuk tét',
111
+ category: 'sexual',
112
+ region: 'aceh',
113
+ severity: 0.8,
114
+ aliases: [],
115
+ description: 'Mengacu pada alat kelamin wanita (kasar)',
116
+ context: 'Umpatan kasar yang merendahkan wanita',
117
+ },
118
+ {
119
+ word: 'glanteutak',
120
+ category: 'profanity',
121
+ region: 'aceh',
122
+ severity: 0.7,
123
+ aliases: [],
124
+ description: 'Artinya tidak jelas, digunakan sebagai umpatan kasar',
125
+ context: 'Umpatan kasar yang sering diucapkan saat marah atau kesal',
126
+ },
127
+ {
128
+ word: 'pukôe leumô',
129
+ category: 'sexual',
130
+ region: 'aceh',
131
+ severity: 0.8,
132
+ aliases: ['pukoe leumo'],
133
+ description: 'Secara harfiah berarti kemaluan lembu',
134
+ context:
135
+ 'Umpatan kasar, meskipun tidak sesering umpatan yang menyerang ibu',
136
+ },
137
+ {
138
+ word: 'jak lét asèe',
139
+ category: 'insult',
140
+ region: 'aceh',
141
+ severity: 0.7,
142
+ aliases: ['jak let asee'],
143
+ description: 'Secara harfiah berarti pergi jilat anjing',
144
+ context: 'Umpatan kasar untuk mengusir atau menghina seseorang',
145
+ },
146
+ {
147
+ word: 'bui seugot',
148
+ category: 'insult',
149
+ region: 'aceh',
150
+ severity: 0.6,
151
+ aliases: [],
152
+ description: 'Secara harfiah berarti babi hutan',
153
+ context: 'Umpatan untuk menyebut orang yang liar atau tidak terkontrol',
154
+ },
155
+ {
156
+ word: 'dajeu',
157
+ category: 'profanity',
158
+ region: 'aceh',
159
+ severity: 0.7,
160
+ aliases: [],
161
+ description: 'Mengacu pada sosok dajjal (jahat, penipu)',
162
+ context: 'Umpatan untuk menyebut orang yang sangat jahat atau penipu',
163
+ },
164
+ {
165
+ word: 'iblis paléh',
166
+ category: 'profanity',
167
+ region: 'aceh',
168
+ severity: 0.7,
169
+ aliases: [],
170
+ description: 'Berarti iblis celaka',
171
+ context: 'Umpatan untuk menyebut orang yang sangat buruk kelakuannya',
172
+ },
173
+ {
174
+ word: 'lagèe peuraun',
175
+ category: 'profanity',
176
+ region: 'aceh',
177
+ severity: 0.6,
178
+ aliases: ['lagee peurawot'],
179
+ description: 'Secara harfiah berarti seperti setan',
180
+ context: 'Umpatan untuk menyebut orang yang nakal atau menjengkelkan',
181
+ },
182
+ {
183
+ word: 'aneuk budok',
184
+ category: 'insult',
185
+ region: 'aceh',
186
+ severity: 0.5,
187
+ aliases: [],
188
+ description: 'Secara harfiah berarti anak kera/monyet (kasar)',
189
+ context: 'Umpatan untuk menyebut anak yang nakal atau tidak sopan',
190
+ },
191
+ {
192
+ word: "pa'ak",
193
+ category: 'insult',
194
+ region: 'aceh',
195
+ severity: 0.6,
196
+ aliases: [],
197
+ description: 'Berarti bodoh',
198
+ context: 'Umpatan untuk menyebut seseorang yang tidak pintar',
199
+ },
200
+ {
201
+ word: 'sangak',
202
+ category: 'insult',
203
+ region: 'aceh',
204
+ severity: 0.6,
205
+ aliases: [],
206
+ description: "Berarti bodoh (lebih kasar dari pa'ak)",
207
+ context: 'Umpatan kasar untuk menyebut seseorang yang sangat bodoh',
208
+ },
209
+ {
210
+ word: 'utak udeung',
211
+ category: 'insult',
212
+ region: 'aceh',
213
+ severity: 0.7,
214
+ aliases: ['otak udang'],
215
+ description: 'Secara harfiah berarti otak udang (bodoh)',
216
+ context: 'Umpatan kasar untuk menyebut seseorang yang sangat bodoh',
217
+ },
218
+ {
219
+ word: 'hana adab',
220
+ category: 'insult',
221
+ region: 'aceh',
222
+ severity: 0.5,
223
+ aliases: [],
224
+ description: 'Berarti tidak beradab',
225
+ context: 'Umpatan untuk menyebut seseorang yang tidak sopan',
226
+ },
227
+ ];
228
+
229
+ export const acehWords = aceh.map((item) => item.word);
230
+
231
+ export default aceh;
@@ -0,0 +1,168 @@
1
+ import { ProfanityWord } from "../../types";
2
+
3
+ export const bali: ProfanityWord[] = [
4
+ {
5
+ word: 'cicing',
6
+ category: 'insult',
7
+ region: 'bali',
8
+ severity: 0.7,
9
+ aliases: [],
10
+ description: 'Secara harfiah berarti anjing',
11
+ context:
12
+ 'Umpatan umum di Bali untuk menyebut orang yang dianggap hina atau tidak berguna',
13
+ },
14
+ {
15
+ word: 'kéto',
16
+ category: 'insult',
17
+ region: 'bali',
18
+ severity: 0.6,
19
+ aliases: ['keto'],
20
+ description: 'Secara harfiah berarti monyet',
21
+ context:
22
+ 'Umpatan untuk menyebut orang yang dianggap bodoh, nakal, atau tidak sopan',
23
+ },
24
+ {
25
+ word: 'batek',
26
+ category: 'insult',
27
+ region: 'bali',
28
+ severity: 0.5,
29
+ aliases: [],
30
+ description: 'Berarti bodoh atau dungu',
31
+ context: 'Umpatan ringan untuk menyebut seseorang yang kurang pintar',
32
+ },
33
+ {
34
+ word: 'dongkah',
35
+ category: 'insult',
36
+ region: 'bali',
37
+ severity: 0.6,
38
+ aliases: [],
39
+ description: 'Berarti keras kepala atau bebal',
40
+ context: 'Umpatan untuk menyebut orang yang sulit dinasihati',
41
+ },
42
+ {
43
+ word: 'bengkung',
44
+ category: 'insult',
45
+ region: 'bali',
46
+ severity: 0.5,
47
+ aliases: [],
48
+ description:
49
+ 'Berarti bengkok atau tidak lurus (juga bisa berarti tidak jujur)',
50
+ context:
51
+ 'Umpatan ringan untuk menyebut orang yang tidak jujur atau berkelakuan buruk',
52
+ },
53
+ {
54
+ word: 'slebor',
55
+ category: 'insult',
56
+ region: 'bali',
57
+ severity: 0.4,
58
+ aliases: [],
59
+ description: 'Berarti ceroboh atau teledor',
60
+ context: 'Umpatan ringan untuk menyebut orang yang tidak hati-hati',
61
+ },
62
+ {
63
+ word: 'kocol',
64
+ category: 'insult',
65
+ region: 'bali',
66
+ severity: 0.5,
67
+ aliases: [],
68
+ description: 'Berarti kosong atau tidak berisi (otaknya)',
69
+ context: 'Umpatan ringan untuk menyebut orang yang dianggap tidak pintar',
70
+ },
71
+ {
72
+ word: 'bedégul',
73
+ category: 'insult',
74
+ region: 'bali',
75
+ severity: 0.6,
76
+ aliases: [],
77
+ description: 'Berarti bodoh sekali',
78
+ context: 'Umpatan yang lebih kuat untuk menyebut orang yang sangat bodoh',
79
+ },
80
+ {
81
+ word: 'gedebeg',
82
+ category: 'insult',
83
+ region: 'bali',
84
+ severity: 0.5,
85
+ aliases: [],
86
+ description: 'Berarti besar dan bodoh (kasar)',
87
+ context:
88
+ 'Umpatan untuk menyebut orang yang berbadan besar tapi tidak pintar',
89
+ },
90
+ {
91
+ word: 'belog',
92
+ category: 'insult',
93
+ region: 'bali',
94
+ severity: 0.6,
95
+ aliases: [],
96
+ description: 'Berarti bodoh',
97
+ context: 'Umpatan umum untuk menyebut seseorang yang tidak pintar',
98
+ },
99
+ {
100
+ word: 'ngamah cicing',
101
+ category: 'insult',
102
+ region: 'bali',
103
+ severity: 0.7,
104
+ aliases: [],
105
+ description: 'Secara harfiah berarti makan anjing (kasar)',
106
+ context: 'Umpatan kasar untuk menghina atau merendahkan seseorang',
107
+ },
108
+ {
109
+ word: 'nyama cicing',
110
+ category: 'insult',
111
+ region: 'bali',
112
+ severity: 0.6,
113
+ aliases: [],
114
+ description: 'Secara harfiah berarti saudara anjing (kasar)',
115
+ context: 'Umpatan kasar untuk menghina keluarga seseorang',
116
+ },
117
+ {
118
+ word: 'awak cicing',
119
+ category: 'insult',
120
+ region: 'bali',
121
+ severity: 0.6,
122
+ aliases: [],
123
+ description: 'Secara harfiah berarti badan anjing (kasar)',
124
+ context: 'Umpatan kasar untuk menghina fisik atau kelakuan seseorang',
125
+ },
126
+ {
127
+ word: 'rai cicing',
128
+ category: 'insult',
129
+ region: 'bali',
130
+ severity: 0.6,
131
+ aliases: [],
132
+ description: 'Secara harfiah berarti muka anjing (kasar)',
133
+ context: 'Umpatan kasar untuk menghina wajah seseorang',
134
+ },
135
+ {
136
+ word: 'kulkul',
137
+ category: 'insult',
138
+ region: 'bali',
139
+ severity: 0.5,
140
+ aliases: [],
141
+ description:
142
+ 'Merujuk pada alat komunikasi tradisional (bedug), bisa berarti lambat berpikir',
143
+ context: 'Umpatan ringan untuk menyebut orang yang lambat memahami sesuatu',
144
+ },
145
+ {
146
+ word: 'pocol',
147
+ category: 'insult',
148
+ region: 'bali',
149
+ severity: 0.4,
150
+ aliases: [],
151
+ description: 'Berarti tidak berguna atau sia-sia',
152
+ context:
153
+ 'Umpatan ringan untuk menyebut sesuatu yang tidak bermanfaat atau orang yang tidak berguna',
154
+ },
155
+ {
156
+ word: 'béto',
157
+ category: 'insult',
158
+ region: 'bali',
159
+ severity: 0.5,
160
+ aliases: [],
161
+ description: 'Berarti bodoh (lebih halus dari belog)',
162
+ context: 'Umpatan ringan untuk menyebut seseorang yang kurang pintar',
163
+ },
164
+ ];
165
+
166
+ export const baliWords = bali.map((item) => item.word);
167
+
168
+ export default bali;
@@ -2,13 +2,143 @@ import { ProfanityWord } from "../../types";
2
2
 
3
3
  export const batak: ProfanityWord[] = [
4
4
  {
5
- word: "sundel",
6
- category: "sexual",
7
- region: "batak",
5
+ word: 'sundel',
6
+ category: 'sexual',
7
+ region: 'batak',
8
8
  severity: 0.8,
9
- aliases: ["sundal"],
10
- description: "Kata kasar untuk menyebut pekerja seks komersial",
11
- context: "Hinaan kasar untuk wanita",
9
+ aliases: ['sundal'],
10
+ description: 'Kata kasar untuk menyebut pekerja seks komersial',
11
+ context: 'Hinaan kasar untuk wanita',
12
+ },
13
+ {
14
+ word: 'hambirang',
15
+ category: 'insult',
16
+ region: 'batak',
17
+ severity: 0.7,
18
+ aliases: [],
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.',
22
+ },
23
+ {
24
+ word: 'puki mak',
25
+ category: 'sexual',
26
+ region: 'batak',
27
+ severity: 0.9,
28
+ aliases: ['pukimak'],
29
+ description: 'Secara harfiah berarti kemaluan ibu',
30
+ context: 'Umpatan sangat kasar dan ofensif yang menyerang ibu seseorang.',
31
+ },
32
+ {
33
+ word: 'puki',
34
+ category: 'sexual',
35
+ region: 'batak',
36
+ severity: 0.8,
37
+ aliases: [],
38
+ description: 'Secara harfiah berarti kemaluan (kasar)',
39
+ context: 'Umpatan kasar untuk menyebut kemaluan wanita.',
40
+ },
41
+ {
42
+ word: 'pangongoi',
43
+ category: 'insult',
44
+ region: 'batak',
45
+ severity: 0.6,
46
+ aliases: [],
47
+ description: 'Berarti pembohong atau penipu',
48
+ context: 'Umpatan untuk menyebut orang yang tidak jujur.',
49
+ },
50
+ {
51
+ word: 'bodat',
52
+ category: 'insult',
53
+ region: 'batak',
54
+ severity: 0.6,
55
+ aliases: [],
56
+ description: 'Kata umpatan yang mengacu pada hewan monyet',
57
+ context: 'Digunakan untuk menyebut orang yang dianggap bodoh atau tolol.',
58
+ },
59
+ {
60
+ word: 'tullol',
61
+ category: 'insult',
62
+ region: 'batak',
63
+ severity: 0.7,
64
+ aliases: [],
65
+ description: 'Berarti bodoh atau dungu (kasar)',
66
+ context: 'Umpatan kasar untuk menyebut seseorang yang sangat tidak pintar.',
67
+ },
68
+ {
69
+ word: 'jongos',
70
+ category: 'insult',
71
+ region: 'batak',
72
+ severity: 0.7,
73
+ aliases: [],
74
+ description: 'Berarti pelayan atau pembantu (digunakan sebagai hinaan)',
75
+ context: 'Umpatan kasar untuk merendahkan status sosial seseorang.',
76
+ },
77
+ {
78
+ word: 'rime',
79
+ category: 'disgusting',
80
+ region: 'batak',
81
+ severity: 0.6,
82
+ aliases: [],
83
+ description: 'Secara harfiah berarti kotoran atau najis',
84
+ context: 'Umpatan untuk menunjukkan sesuatu yang menjijikkan atau buruk.',
85
+ },
86
+ {
87
+ word: 'biang',
88
+ category: 'insult',
89
+ region: 'batak',
90
+ severity: 0.7,
91
+ aliases: [],
92
+ description: 'Secara harfiah berarti induk anjing (kasar)',
93
+ context: 'Umpatan kasar untuk menghina wanita.',
94
+ },
95
+ {
96
+ word: 'anak ni biang',
97
+ category: 'insult',
98
+ region: 'batak',
99
+ severity: 0.8,
100
+ aliases: [],
101
+ description: 'Secara harfiah berarti anak anjing (sangat kasar)',
102
+ context: 'Umpatan sangat kasar untuk menghina seseorang.',
103
+ },
104
+ {
105
+ word: 'mago',
106
+ category: 'profanity',
107
+ region: 'batak',
108
+ severity: 0.6,
109
+ aliases: [],
110
+ description: 'Berarti hilang atau celaka',
111
+ context: 'Umpatan untuk menunjukkan kekesalan atau harapan buruk.',
112
+ },
113
+ {
114
+ word: 'loa-loa',
115
+ category: 'insult',
116
+ region: 'batak',
117
+ severity: 0.5,
118
+ aliases: [],
119
+ description: 'Berarti orang yang suka bicara omong kosong atau tidak jelas',
120
+ context:
121
+ 'Umpatan ringan untuk menyebut orang yang perkataannya tidak bisa dipercaya.',
122
+ },
123
+ {
124
+ word: 'songon babiat',
125
+ category: 'insult',
126
+ region: 'batak',
127
+ severity: 0.7,
128
+ aliases: [],
129
+ description: 'Secara harfiah berarti seperti binatang buas (kasar)',
130
+ context:
131
+ 'Umpatan kasar untuk menyebut orang yang kelakuannya buruk atau liar.',
132
+ },
133
+ {
134
+ word: 'hau buluk',
135
+ category: 'insult',
136
+ region: 'batak',
137
+ severity: 0.6,
138
+ aliases: [],
139
+ description:
140
+ 'Secara harfiah berarti pohon lapuk (kiasan untuk tidak berguna)',
141
+ context: 'Umpatan untuk menyebut orang yang dianggap tidak berguna.',
12
142
  },
13
143
  ];
14
144
 
@@ -204,6 +204,15 @@ export const general: ProfanityWord[] = [
204
204
  "Simbol yang sering digunakan untuk menandai konten pornografi",
205
205
  context: "Digunakan untuk menandai konten seksual eksplisit",
206
206
  },
207
+ {
208
+ word: "xnxx",
209
+ category: "sexual",
210
+ region: "general",
211
+ severity: 0.6,
212
+ aliases: ["xnxx", "xnx"],
213
+ description: "simbol yang sering digunakan untuk menandai konten pornografi",
214
+ context: "Digunakan untuk menandai konten seksual eksplisit",
215
+ }
207
216
  ];
208
217
 
209
218
  export const generalWords = general.map((item) => item.word);