@sideid/id-profanity-filter 0.1.0
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/.eslintrc.js +16 -0
- package/.github/workflows/ci.yml +0 -0
- package/CONTRIBUTING.md +151 -0
- package/LICENSE +21 -0
- package/README.md +285 -0
- package/dist/constants/categories/insult.d.ts +4 -0
- package/dist/constants/categories/sexual.d.ts +4 -0
- package/dist/constants/regions/batak.d.ts +4 -0
- package/dist/constants/regions/betawi.d.ts +4 -0
- package/dist/constants/regions/general.d.ts +4 -0
- package/dist/constants/regions/jawa.d.ts +4 -0
- package/dist/constants/regions/sunda.d.ts +4 -0
- package/dist/constants/wordList.d.ts +34 -0
- package/dist/core/analyzer.d.ts +54 -0
- package/dist/core/filter.d.ts +17 -0
- package/dist/core/matcher.d.ts +31 -0
- package/dist/index.d.ts +71 -0
- package/dist/index.esm.js +1014 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +1031 -0
- package/dist/index.js.map +1 -0
- package/dist/types/index.d.ts +69 -0
- package/examples/basic.ts +52 -0
- package/jest.config.js +10 -0
- package/package.json +51 -0
- package/prettierrc +7 -0
- package/rollup.config.js +35 -0
- package/src/config/options.ts +0 -0
- package/src/constants/categories/blasphemy.ts +0 -0
- package/src/constants/categories/disgusting.ts +0 -0
- package/src/constants/categories/drugs.ts +0 -0
- package/src/constants/categories/index.ts +31 -0
- package/src/constants/categories/insult.ts +114 -0
- package/src/constants/categories/profanity.ts +0 -0
- package/src/constants/categories/sexual.ts +100 -0
- package/src/constants/categories/slur.ts +0 -0
- package/src/constants/regions/aceh.ts +0 -0
- package/src/constants/regions/ambon.ts +0 -0
- package/src/constants/regions/bali.ts +0 -0
- package/src/constants/regions/banjar.ts +0 -0
- package/src/constants/regions/batak.ts +17 -0
- package/src/constants/regions/betawi.ts +39 -0
- package/src/constants/regions/bugis.ts +0 -0
- package/src/constants/regions/general.ts +111 -0
- package/src/constants/regions/index.ts +62 -0
- package/src/constants/regions/jawa.ts +102 -0
- package/src/constants/regions/lampung.ts +0 -0
- package/src/constants/regions/madura.ts +0 -0
- package/src/constants/regions/manado.ts +0 -0
- package/src/constants/regions/minang.ts +0 -0
- package/src/constants/regions/ntb.ts +0 -0
- package/src/constants/regions/ntt.ts +0 -0
- package/src/constants/regions/palembang.ts +0 -0
- package/src/constants/regions/papua.ts +0 -0
- package/src/constants/regions/sunda.ts +35 -0
- package/src/constants/wordList.ts +125 -0
- package/src/core/analyzer.ts +204 -0
- package/src/core/filter.ts +129 -0
- package/src/core/matcher.ts +267 -0
- package/src/index.ts +133 -0
- package/src/types/index.ts +115 -0
- package/src/utils/regexUtils.ts +0 -0
- package/src/utils/stringUtils.ts +0 -0
- package/tsconfig.json +115 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
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';
|
|
3
|
+
/**
|
|
4
|
+
* Definisi kata kotor
|
|
5
|
+
*/
|
|
6
|
+
interface ProfanityWord {
|
|
7
|
+
word: string;
|
|
8
|
+
category: ProfanityCategory;
|
|
9
|
+
region: Region;
|
|
10
|
+
severity: number;
|
|
11
|
+
aliases?: string[];
|
|
12
|
+
description?: string;
|
|
13
|
+
context?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Opsi untuk konfigurasi filter
|
|
17
|
+
*/
|
|
18
|
+
interface FilterOptions {
|
|
19
|
+
/** List kata yang ingin difilter */
|
|
20
|
+
wordList?: string[];
|
|
21
|
+
/** Karakter pengganti untuk kata yang disensor */
|
|
22
|
+
replaceWith?: string;
|
|
23
|
+
/** Apakah harus menyensor seluruh kata atau hanya sebagian */
|
|
24
|
+
fullWordCensor?: boolean;
|
|
25
|
+
/** Apakah harus mendeteksi kata dengan variasi penulisan */
|
|
26
|
+
detectLeetSpeak?: boolean;
|
|
27
|
+
/** Mengabaikan kata-kata dalam konteks tertentu (misalnya nama) */
|
|
28
|
+
whitelist?: string[];
|
|
29
|
+
/** Apakah harus memeriksa substring (lebih ketat) */
|
|
30
|
+
checkSubstring?: boolean;
|
|
31
|
+
/** Kategori kata yang ingin difilter */
|
|
32
|
+
categories?: ProfanityCategory[];
|
|
33
|
+
/** Daerah yang ingin difilter katanya */
|
|
34
|
+
regions?: Region[];
|
|
35
|
+
/** Tingkat keparahan minimum yang akan difilter (0-1) */
|
|
36
|
+
severityThreshold?: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Hasil analisis dari teks
|
|
40
|
+
*/
|
|
41
|
+
interface AnalysisResult {
|
|
42
|
+
/** Apakah teks mengandung kata kotor */
|
|
43
|
+
hasProfanity: boolean;
|
|
44
|
+
/** Daftar kata kotor yang ditemukan */
|
|
45
|
+
matches: string[];
|
|
46
|
+
/** Daftar kata kotor lengkap dengan metadata */
|
|
47
|
+
matchDetails: ProfanityWord[];
|
|
48
|
+
/** Daftar kategori kata kotor yang ditemukan */
|
|
49
|
+
categories: ProfanityCategory[];
|
|
50
|
+
/** Daftar daerah asal kata kotor yang ditemukan */
|
|
51
|
+
regions: Region[];
|
|
52
|
+
/** Tingkat keparahan (0-1) berdasarkan jumlah dan jenis kata */
|
|
53
|
+
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<{
|
|
65
|
+
original: string;
|
|
66
|
+
censored: string;
|
|
67
|
+
metadata?: ProfanityWord;
|
|
68
|
+
}>;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export type { AnalysisResult, FilterOptions, FilterResult, ProfanityCategory, ProfanityWord, Region };
|