@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.
@@ -1,4 +1,4 @@
1
- import { FilterOptions, FilterResult } from '../types';
1
+ import { FilterOptions, FilterResult } from "../types";
2
2
  /**
3
3
  * Menyensor kata kotor dalam teks
4
4
  *
@@ -1,4 +1,4 @@
1
- import { ProfanityWord, ProfanityCategory, Region, FilterOptions } from '../types';
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 text matchDetails Hasil pencarian dari fingProfanityWithMetadata()
15
- * @param options Opsi untuk pencarian kategori
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 text matchDetails Hasil pencarian dari fingProfanityWithMetadata()
22
- * @param options Opsi untuk pencarian region
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 = '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
- */
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
- /** Kategori kata yang ingin difilter */
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
- censored: string;
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 };