@sideid/id-profanity-filter 1.0.0 → 1.9.4

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.
@@ -1,62 +1,62 @@
1
- // import { general } from './general';
2
- // import { jawa } from './jawa';
3
- // import { sunda } from './sunda';
4
- // import { betawi } from './betawi';
5
- // import { batak } from './batak';
6
- // import { minang } from './minang';
7
- // import { bali } from './bali';
8
- // import { madura } from './madura';
9
- // import { bugis } from './bugis';
10
- // import { aceh } from './aceh';
11
- // import { ambon } from './ambon';
12
- // import { papua } from './papua';
13
- // import { manado } from './manado';
14
- // import { banjar } from './banjar';
15
- // import { palembang } from './palembang';
16
- // import { lampung } from './lampung';
17
- // import { ntt } from './ntt';
18
- // import { ntb } from './ntb';
19
-
20
- // export {
21
- // general,
22
- // jawa,
23
- // sunda,
24
- // betawi,
25
- // batak,
26
- // minang,
27
- // bali,
28
- // madura,
29
- // bugis,
30
- // aceh,
31
- // ambon,
32
- // papua,
33
- // manado,
34
- // banjar,
35
- // palembang,
36
- // lampung,
37
- // ntt,
38
- // ntb,
39
- // };
40
-
41
- // export const allRegionWords = [
42
- // ...general,
43
- // ...jawa,
44
- // ...sunda,
45
- // ...betawi,
46
- // ...batak,
47
- // ...minang,
48
- // ...bali,
49
- // ...madura,
50
- // ...bugis,
51
- // ...aceh,
52
- // ...ambon,
53
- // ...papua,
54
- // ...manado,
55
- // ...banjar,
56
- // ...palembang,
57
- // ...lampung,
58
- // ...ntt,
59
- // ...ntb,
60
- // ];
61
-
62
- // export default allRegionWords;
1
+ // import { general } from './general';
2
+ // import { jawa } from './jawa';
3
+ // import { sunda } from './sunda';
4
+ // import { betawi } from './betawi';
5
+ // import { batak } from './batak';
6
+ // import { minang } from './minang';
7
+ // import { bali } from './bali';
8
+ // import { madura } from './madura';
9
+ // import { bugis } from './bugis';
10
+ // import { aceh } from './aceh';
11
+ // import { ambon } from './ambon';
12
+ // import { papua } from './papua';
13
+ // import { manado } from './manado';
14
+ // import { banjar } from './banjar';
15
+ // import { palembang } from './palembang';
16
+ // import { lampung } from './lampung';
17
+ // import { ntt } from './ntt';
18
+ // import { ntb } from './ntb';
19
+
20
+ // export {
21
+ // general,
22
+ // jawa,
23
+ // sunda,
24
+ // betawi,
25
+ // batak,
26
+ // minang,
27
+ // bali,
28
+ // madura,
29
+ // bugis,
30
+ // aceh,
31
+ // ambon,
32
+ // papua,
33
+ // manado,
34
+ // banjar,
35
+ // palembang,
36
+ // lampung,
37
+ // ntt,
38
+ // ntb,
39
+ // };
40
+
41
+ // export const allRegionWords = [
42
+ // ...general,
43
+ // ...jawa,
44
+ // ...sunda,
45
+ // ...betawi,
46
+ // ...batak,
47
+ // ...minang,
48
+ // ...bali,
49
+ // ...madura,
50
+ // ...bugis,
51
+ // ...aceh,
52
+ // ...ambon,
53
+ // ...papua,
54
+ // ...manado,
55
+ // ...banjar,
56
+ // ...palembang,
57
+ // ...lampung,
58
+ // ...ntt,
59
+ // ...ntb,
60
+ // ];
61
+
62
+ // export default allRegionWords;
@@ -1,102 +1,102 @@
1
- import { ProfanityWord } from '../../types';
2
-
3
- export const jawa: ProfanityWord[] = [
4
- {
5
- word: 'asu',
6
- category: 'profanity',
7
- region: 'jawa',
8
- severity: 0.7,
9
- aliases: ['asyu', 'su'],
10
- description: 'Secara harfiah berarti anjing dalam Bahasa Jawa',
11
- context: 'Umpatan umum dalam Bahasa Jawa untuk menunjukkan kemarahan',
12
- },
13
- {
14
- word: 'jancok',
15
- category: 'sexual',
16
- region: 'jawa',
17
- severity: 0.8,
18
- aliases: ['jancuk', 'jncok', 'jancuk', 'jncuk', 'dancok', 'dancuk'],
19
- description: 'Kata umpatan kasar dalam Bahasa Jawa',
20
- context: 'Umpatan kasar yang umum digunakan di Jawa Timur',
21
- },
22
- {
23
- word: 'cuk',
24
- category: 'sexual',
25
- region: 'jawa',
26
- severity: 0.7,
27
- aliases: ['cok', 'cook'],
28
- description: 'Singkatan dari jancok/jancuk',
29
- context: 'Umpatan singkat yang umum digunakan di Jawa Timur',
30
- },
31
- {
32
- word: 'diancok',
33
- category: 'sexual',
34
- region: 'jawa',
35
- severity: 0.8,
36
- aliases: ['diancuk', 'dancok', 'ancok'],
37
- description: 'Variasi dari jancok/jancuk',
38
- context: 'Umpatan kasar yang umum digunakan di Jawa Timur',
39
- },
40
- {
41
- word: 'matamu',
42
- category: 'insult',
43
- region: 'jawa',
44
- severity: 0.5,
45
- aliases: ['mripat mu', 'matane'],
46
- description:
47
- 'Secara harfiah berarti matamu, digunakan sebagai umpatan ringan',
48
- context:
49
- 'Umpatan ringan untuk menanggapi sesuatu yang dianggap tidak benar',
50
- },
51
- {
52
- word: 'mbokne ancok',
53
- category: 'insult',
54
- region: 'jawa',
55
- severity: 0.8,
56
- aliases: ['mbokne', 'mbokneancok'],
57
- description: 'Umpatan yang menyinggung ibu seseorang',
58
- context: 'Umpatan kasar yang menyinggung orangtua orang lain',
59
- },
60
- {
61
- word: 'pekok',
62
- category: 'insult',
63
- region: 'jawa',
64
- severity: 0.6,
65
- aliases: ['pekak', 'pekilk'],
66
- description: 'Kata hinaan yang menunjukkan kebodohan',
67
- context: 'Hinaan untuk menyebut orang yang dianggap sangat bodoh',
68
- },
69
- {
70
- word: 'sempak',
71
- category: 'disgusting',
72
- region: 'jawa',
73
- severity: 0.5,
74
- aliases: ['sempok'],
75
- description: 'Mengacu pada pakaian dalam',
76
- context: 'Umpatan ringan yang dianggap jorok',
77
- },
78
- {
79
- word: 'taek',
80
- category: 'disgusting',
81
- region: 'jawa',
82
- severity: 0.6,
83
- aliases: ['tai', 'tahi', 'telek'],
84
- description: 'Secara harfiah berarti kotoran/tinja',
85
- context: 'Umpatan untuk menunjukkan sesuatu yang menjijikkan atau buruk',
86
- },
87
- {
88
- word: 'ndhasmu',
89
- category: 'insult',
90
- region: 'jawa',
91
- severity: 0.5,
92
- aliases: ['ndas mu', 'dhasmu'],
93
- description:
94
- 'Secara harfiah berarti kepalamu, digunakan sebagai umpatan ringan',
95
- context:
96
- 'Umpatan ringan untuk menanggapi sesuatu yang dianggap tidak benar',
97
- },
98
- ];
99
-
100
- export const jawaWords = jawa.map((item) => item.word);
101
-
102
- export default jawa;
1
+ import { ProfanityWord } from "../../types";
2
+
3
+ export const jawa: ProfanityWord[] = [
4
+ {
5
+ word: "asu",
6
+ category: "profanity",
7
+ region: "jawa",
8
+ severity: 0.7,
9
+ aliases: ["asyu", "su"],
10
+ description: "Secara harfiah berarti anjing dalam Bahasa Jawa",
11
+ context: "Umpatan umum dalam Bahasa Jawa untuk menunjukkan kemarahan",
12
+ },
13
+ {
14
+ word: "jancok",
15
+ category: "sexual",
16
+ region: "jawa",
17
+ severity: 0.8,
18
+ aliases: ["jancuk", "jncok", "jancuk", "jncuk", "dancok", "dancuk"],
19
+ description: "Kata umpatan kasar dalam Bahasa Jawa",
20
+ context: "Umpatan kasar yang umum digunakan di Jawa Timur",
21
+ },
22
+ {
23
+ word: "cuk",
24
+ category: "sexual",
25
+ region: "jawa",
26
+ severity: 0.7,
27
+ aliases: ["cok", "cook"],
28
+ description: "Singkatan dari jancok/jancuk",
29
+ context: "Umpatan singkat yang umum digunakan di Jawa Timur",
30
+ },
31
+ {
32
+ word: "diancok",
33
+ category: "sexual",
34
+ region: "jawa",
35
+ severity: 0.8,
36
+ aliases: ["diancuk", "dancok", "ancok"],
37
+ description: "Variasi dari jancok/jancuk",
38
+ context: "Umpatan kasar yang umum digunakan di Jawa Timur",
39
+ },
40
+ {
41
+ word: "matamu",
42
+ category: "insult",
43
+ region: "jawa",
44
+ severity: 0.5,
45
+ aliases: ["mripat mu", "matane"],
46
+ description:
47
+ "Secara harfiah berarti matamu, digunakan sebagai umpatan ringan",
48
+ context:
49
+ "Umpatan ringan untuk menanggapi sesuatu yang dianggap tidak benar",
50
+ },
51
+ {
52
+ word: "mbokne ancok",
53
+ category: "insult",
54
+ region: "jawa",
55
+ severity: 0.8,
56
+ aliases: ["mbokne", "mbokneancok"],
57
+ description: "Umpatan yang menyinggung ibu seseorang",
58
+ context: "Umpatan kasar yang menyinggung orangtua orang lain",
59
+ },
60
+ {
61
+ word: "pekok",
62
+ category: "insult",
63
+ region: "jawa",
64
+ severity: 0.6,
65
+ aliases: ["pekak", "pekilk"],
66
+ description: "Kata hinaan yang menunjukkan kebodohan",
67
+ context: "Hinaan untuk menyebut orang yang dianggap sangat bodoh",
68
+ },
69
+ {
70
+ word: "sempak",
71
+ category: "disgusting",
72
+ region: "jawa",
73
+ severity: 0.5,
74
+ aliases: ["sempok"],
75
+ description: "Mengacu pada pakaian dalam",
76
+ context: "Umpatan ringan yang dianggap jorok",
77
+ },
78
+ {
79
+ word: "taek",
80
+ category: "disgusting",
81
+ region: "jawa",
82
+ severity: 0.6,
83
+ aliases: ["tai", "tahi", "telek"],
84
+ description: "Secara harfiah berarti kotoran/tinja",
85
+ context: "Umpatan untuk menunjukkan sesuatu yang menjijikkan atau buruk",
86
+ },
87
+ {
88
+ word: "ndhasmu",
89
+ category: "insult",
90
+ region: "jawa",
91
+ severity: 0.5,
92
+ aliases: ["ndas mu", "dhasmu"],
93
+ description:
94
+ "Secara harfiah berarti kepalamu, digunakan sebagai umpatan ringan",
95
+ context:
96
+ "Umpatan ringan untuk menanggapi sesuatu yang dianggap tidak benar",
97
+ },
98
+ ];
99
+
100
+ export const jawaWords = jawa.map((item) => item.word);
101
+
102
+ export default jawa;
@@ -1,35 +1,35 @@
1
- import { ProfanityWord } from '../../types';
2
-
3
- export const sunda: ProfanityWord[] = [
4
- {
5
- word: 'bagong',
6
- category: 'insult',
7
- region: 'sunda',
8
- severity: 0.5,
9
- aliases: ['bagog'],
10
- description: 'Secara harfiah berarti babi hutan, digunakan sebagai hinaan',
11
- context: 'Hinaan untuk menyebut orang yang dianggap jorok atau rakus',
12
- },
13
- {
14
- word: 'belegug',
15
- category: 'insult',
16
- region: 'sunda',
17
- severity: 0.5,
18
- aliases: ['belecuk', 'beledog'],
19
- description: 'Kata yang mengacu pada kebodohan seseorang',
20
- context: 'Hinaan untuk menyebut orang yang dianggap tidak pintar',
21
- },
22
- {
23
- word: 'goblog',
24
- category: 'insult',
25
- region: 'sunda',
26
- severity: 0.6,
27
- aliases: ['goblok', 'golbok'],
28
- description: 'Kata yang mengacu pada kebodohan seseorang',
29
- context: 'Hinaan untuk menyebut orang yang dianggap tidak pintar',
30
- },
31
- ];
32
-
33
- export const sundaWords = sunda.map((item) => item.word);
34
-
35
- export default sunda;
1
+ import { ProfanityWord } from "../../types";
2
+
3
+ export const sunda: ProfanityWord[] = [
4
+ {
5
+ word: "bagong",
6
+ category: "insult",
7
+ region: "sunda",
8
+ severity: 0.5,
9
+ aliases: ["bagog"],
10
+ description: "Secara harfiah berarti babi hutan, digunakan sebagai hinaan",
11
+ context: "Hinaan untuk menyebut orang yang dianggap jorok atau rakus",
12
+ },
13
+ {
14
+ word: "belegug",
15
+ category: "insult",
16
+ region: "sunda",
17
+ severity: 0.5,
18
+ aliases: ["belecuk", "beledog"],
19
+ description: "Kata yang mengacu pada kebodohan seseorang",
20
+ context: "Hinaan untuk menyebut orang yang dianggap tidak pintar",
21
+ },
22
+ {
23
+ word: "goblog",
24
+ category: "insult",
25
+ region: "sunda",
26
+ severity: 0.6,
27
+ aliases: ["goblok", "golbok"],
28
+ description: "Kata yang mengacu pada kebodohan seseorang",
29
+ context: "Hinaan untuk menyebut orang yang dianggap tidak pintar",
30
+ },
31
+ ];
32
+
33
+ export const sundaWords = sunda.map((item) => item.word);
34
+
35
+ export default sunda;
@@ -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;