@sideid/id-profanity-filter 1.9.4 → 1.9.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.
- package/README.md +230 -9
- package/dist/config/options.d.ts +258 -0
- package/dist/constants/categories/index.d.ts +9 -0
- package/dist/constants/categories/insult.d.ts +1 -1
- package/dist/constants/categories/sexual.d.ts +1 -1
- package/dist/constants/regions/batak.d.ts +1 -1
- package/dist/constants/regions/betawi.d.ts +1 -1
- package/dist/constants/regions/general.d.ts +1 -1
- package/dist/constants/regions/index.d.ts +8 -0
- package/dist/constants/regions/jawa.d.ts +1 -1
- package/dist/constants/regions/sunda.d.ts +1 -1
- package/dist/constants/wordList.d.ts +1 -1
- package/dist/core/analyzer.d.ts +4 -4
- package/dist/core/filter.d.ts +1 -1
- package/dist/core/matcher.d.ts +5 -5
- package/dist/index.d.ts +30 -42
- package/dist/index.esm.js +1070 -432
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1101 -429
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +29 -41
- package/dist/utils/regexUtils.d.ts +64 -0
- package/dist/utils/similarityUtils.d.ts +57 -0
- package/dist/utils/stringUtils.d.ts +79 -0
- package/examples/advanced.ts +120 -0
- package/examples/basic.ts +60 -41
- package/examples/custom-list.ts +140 -0
- package/package.json +1 -1
- package/src/constants/categories/index.ts +22 -22
- package/src/constants/regions/index.ts +46 -46
package/dist/core/filter.d.ts
CHANGED
package/dist/core/matcher.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ProfanityWord, ProfanityCategory, Region, FilterOptions } from
|
|
1
|
+
import { ProfanityWord, ProfanityCategory, Region, FilterOptions } from "../types";
|
|
2
2
|
export declare function findProfanity(text: string, options?: FilterOptions): string[];
|
|
3
3
|
/**
|
|
4
4
|
* Mencari kata kotor lengkap dengan metadata
|
|
@@ -11,15 +11,15 @@ export declare function findProfanityWithMetadata(text: string, options?: Filter
|
|
|
11
11
|
/**
|
|
12
12
|
* Mencari kategory kata kotor yang ada dalam teks
|
|
13
13
|
*
|
|
14
|
-
* @param
|
|
15
|
-
* @
|
|
14
|
+
* @param matchDetails Hasil pencarian dari fingProfanityWithMetadata()
|
|
15
|
+
* @return Array kategori unik
|
|
16
16
|
*/
|
|
17
17
|
export declare function findCategories(matchDetails: ProfanityWord[]): ProfanityCategory[];
|
|
18
18
|
/**
|
|
19
19
|
* Mencari region kata kotor yang ada dalam teks
|
|
20
20
|
*
|
|
21
|
-
* @param
|
|
22
|
-
* @
|
|
21
|
+
* @param matchDetails Hasil pencarian dari fingProfanityWithMetadata()
|
|
22
|
+
* @return Array region unik
|
|
23
23
|
*/
|
|
24
24
|
export declare function findRegions(matchDetails: ProfanityWord[]): Region[];
|
|
25
25
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
type ProfanityCategory =
|
|
2
|
-
type Region =
|
|
3
|
-
/**
|
|
4
|
-
* Definisi kata kotor
|
|
5
|
-
*/
|
|
1
|
+
type ProfanityCategory = "sexual" | "insult" | "profanity" | "slur" | "drugs" | "disgusting" | "blasphemy";
|
|
2
|
+
type Region = "general" | "jawa" | "sunda" | "betawi" | "batak" | "minang" | "bali" | "madura" | "bugis" | "aceh" | "ambon" | "papua" | "manado" | "banjar" | "palembang" | "lampung" | "ntt" | "ntb";
|
|
6
3
|
interface ProfanityWord {
|
|
7
4
|
word: string;
|
|
8
5
|
category: ProfanityCategory;
|
|
@@ -12,60 +9,51 @@ interface ProfanityWord {
|
|
|
12
9
|
description?: string;
|
|
13
10
|
context?: string;
|
|
14
11
|
}
|
|
15
|
-
/**
|
|
16
|
-
* Opsi untuk konfigurasi filter
|
|
17
|
-
*/
|
|
18
12
|
interface FilterOptions {
|
|
19
|
-
/** List kata yang ingin difilter */
|
|
20
|
-
wordList?: string[];
|
|
21
|
-
/** Karakter pengganti untuk kata yang disensor */
|
|
22
13
|
replaceWith?: string;
|
|
23
|
-
/** Apakah harus menyensor seluruh kata atau hanya sebagian */
|
|
24
14
|
fullWordCensor?: boolean;
|
|
25
|
-
/** Apakah harus mendeteksi kata dengan variasi penulisan */
|
|
26
15
|
detectLeetSpeak?: boolean;
|
|
27
|
-
/** Mengabaikan kata-kata dalam konteks tertentu (misalnya nama) */
|
|
28
|
-
whitelist?: string[];
|
|
29
|
-
/** Apakah harus memeriksa substring (lebih ketat) */
|
|
30
16
|
checkSubstring?: boolean;
|
|
31
|
-
|
|
17
|
+
wordList?: string[];
|
|
18
|
+
whitelist?: string[];
|
|
32
19
|
categories?: ProfanityCategory[];
|
|
33
|
-
/** Daerah yang ingin difilter katanya */
|
|
34
20
|
regions?: Region[];
|
|
35
|
-
/** Tingkat keparahan minimum yang akan difilter (0-1) */
|
|
36
21
|
severityThreshold?: number;
|
|
22
|
+
useRandomGrawlix?: boolean;
|
|
23
|
+
keepFirstAndLast?: boolean;
|
|
24
|
+
indonesianVariation?: boolean;
|
|
25
|
+
detectSimilarity?: boolean;
|
|
26
|
+
similarityThreshold?: number;
|
|
27
|
+
detectSplit?: boolean;
|
|
28
|
+
}
|
|
29
|
+
interface FilterResult {
|
|
30
|
+
filtered: string;
|
|
31
|
+
censored: number;
|
|
32
|
+
replacements: Array<{
|
|
33
|
+
original: string;
|
|
34
|
+
censored: string;
|
|
35
|
+
metadata?: ProfanityWord;
|
|
36
|
+
}>;
|
|
37
37
|
}
|
|
38
|
-
/**
|
|
39
|
-
* Hasil analisis dari teks
|
|
40
|
-
*/
|
|
41
38
|
interface AnalysisResult {
|
|
42
|
-
/** Apakah teks mengandung kata kotor */
|
|
43
39
|
hasProfanity: boolean;
|
|
44
|
-
/** Daftar kata kotor yang ditemukan */
|
|
45
40
|
matches: string[];
|
|
46
|
-
/** Daftar kata kotor lengkap dengan metadata */
|
|
47
41
|
matchDetails: ProfanityWord[];
|
|
48
|
-
/** Daftar kategori kata kotor yang ditemukan */
|
|
49
42
|
categories: ProfanityCategory[];
|
|
50
|
-
/** Daftar daerah asal kata kotor yang ditemukan */
|
|
51
43
|
regions: Region[];
|
|
52
|
-
/** Tingkat keparahan (0-1) berdasarkan jumlah dan jenis kata */
|
|
53
44
|
severityScore: number;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
* Hasil filter dari teks
|
|
57
|
-
*/
|
|
58
|
-
interface FilterResult {
|
|
59
|
-
/** Teks hasil filter */
|
|
60
|
-
filtered: string;
|
|
61
|
-
/** Jumlah kata yang disensor */
|
|
62
|
-
censored: number;
|
|
63
|
-
/** Kata asli yang disensor dan penggantinya */
|
|
64
|
-
replacements: Array<{
|
|
45
|
+
similarWords?: Array<{
|
|
46
|
+
word: string;
|
|
65
47
|
original: string;
|
|
66
|
-
|
|
67
|
-
metadata?: ProfanityWord;
|
|
48
|
+
similarity: number;
|
|
68
49
|
}>;
|
|
69
50
|
}
|
|
51
|
+
interface RegexOptions {
|
|
52
|
+
wholeWord?: boolean;
|
|
53
|
+
caseSensitive?: boolean;
|
|
54
|
+
leetSpeak?: boolean;
|
|
55
|
+
detectSplit?: boolean;
|
|
56
|
+
indonesianVariation?: boolean;
|
|
57
|
+
}
|
|
70
58
|
|
|
71
|
-
export type { AnalysisResult, FilterOptions, FilterResult, ProfanityCategory, ProfanityWord, Region };
|
|
59
|
+
export type { AnalysisResult, FilterOptions, FilterResult, ProfanityCategory, ProfanityWord, RegexOptions, Region };
|