glin-profanity 2.3.3 → 2.3.5
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/dist/index.cjs +5590 -0
- package/dist/index.d.cts +120 -0
- package/dist/index.d.ts +120 -0
- package/dist/index.js +5572 -0
- package/package.json +13 -12
- package/lib/cjs/packages/js/src/core/index.d.ts +0 -4
- package/lib/cjs/packages/js/src/core/index.js +0 -55
- package/lib/cjs/packages/js/src/core/index.js.map +0 -1
- package/lib/cjs/packages/js/src/core/types.d.ts +0 -20
- package/lib/cjs/packages/js/src/core/types.js +0 -3
- package/lib/cjs/packages/js/src/core/types.js.map +0 -1
- package/lib/cjs/packages/js/src/data/dictionary.d.ts +0 -26
- package/lib/cjs/packages/js/src/data/dictionary.js +0 -54
- package/lib/cjs/packages/js/src/data/dictionary.js.map +0 -1
- package/lib/cjs/packages/js/src/filters/Filter.d.ts +0 -32
- package/lib/cjs/packages/js/src/filters/Filter.js +0 -246
- package/lib/cjs/packages/js/src/filters/Filter.js.map +0 -1
- package/lib/cjs/packages/js/src/hooks/useProfanityChecker.d.ts +0 -11
- package/lib/cjs/packages/js/src/hooks/useProfanityChecker.js +0 -42
- package/lib/cjs/packages/js/src/hooks/useProfanityChecker.js.map +0 -1
- package/lib/cjs/packages/js/src/index.d.ts +0 -12
- package/lib/cjs/packages/js/src/index.js +0 -24
- package/lib/cjs/packages/js/src/index.js.map +0 -1
- package/lib/cjs/packages/js/src/nlp/contextAnalyzer.d.ts +0 -35
- package/lib/cjs/packages/js/src/nlp/contextAnalyzer.js +0 -203
- package/lib/cjs/packages/js/src/nlp/contextAnalyzer.js.map +0 -1
- package/lib/cjs/packages/js/src/types/types.d.ts +0 -56
- package/lib/cjs/packages/js/src/types/types.js +0 -14
- package/lib/cjs/packages/js/src/types/types.js.map +0 -1
- package/lib/cjs/shared/dictionaries/Norwegian.json +0 -17
- package/lib/cjs/shared/dictionaries/arabic.json +0 -157
- package/lib/cjs/shared/dictionaries/chinese.json +0 -298
- package/lib/cjs/shared/dictionaries/czech.json +0 -45
- package/lib/cjs/shared/dictionaries/danish.json +0 -24
- package/lib/cjs/shared/dictionaries/english.json +0 -410
- package/lib/cjs/shared/dictionaries/esperanto.json +0 -41
- package/lib/cjs/shared/dictionaries/finnish.json +0 -134
- package/lib/cjs/shared/dictionaries/french.json +0 -99
- package/lib/cjs/shared/dictionaries/german.json +0 -69
- package/lib/cjs/shared/dictionaries/globalWhitelist.json +0 -31
- package/lib/cjs/shared/dictionaries/hindi.json +0 -100
- package/lib/cjs/shared/dictionaries/hungarian.json +0 -100
- package/lib/cjs/shared/dictionaries/italian.json +0 -184
- package/lib/cjs/shared/dictionaries/japanese.json +0 -189
- package/lib/cjs/shared/dictionaries/korean.json +0 -76
- package/lib/cjs/shared/dictionaries/persian.json +0 -49
- package/lib/cjs/shared/dictionaries/polish.json +0 -57
- package/lib/cjs/shared/dictionaries/portuguese.json +0 -78
- package/lib/cjs/shared/dictionaries/russian.json +0 -156
- package/lib/cjs/shared/dictionaries/spanish.json +0 -72
- package/lib/cjs/shared/dictionaries/swedish.json +0 -47
- package/lib/cjs/shared/dictionaries/thai.json +0 -35
- package/lib/cjs/shared/dictionaries/turkish.json +0 -195
- package/lib/esm/packages/js/src/core/index.d.ts +0 -4
- package/lib/esm/packages/js/src/core/index.js +0 -47
- package/lib/esm/packages/js/src/core/index.js.map +0 -1
- package/lib/esm/packages/js/src/core/types.d.ts +0 -20
- package/lib/esm/packages/js/src/core/types.js +0 -2
- package/lib/esm/packages/js/src/core/types.js.map +0 -1
- package/lib/esm/packages/js/src/data/dictionary.d.ts +0 -26
- package/lib/esm/packages/js/src/data/dictionary.js +0 -49
- package/lib/esm/packages/js/src/data/dictionary.js.map +0 -1
- package/lib/esm/packages/js/src/filters/Filter.d.ts +0 -32
- package/lib/esm/packages/js/src/filters/Filter.js +0 -240
- package/lib/esm/packages/js/src/filters/Filter.js.map +0 -1
- package/lib/esm/packages/js/src/hooks/useProfanityChecker.d.ts +0 -11
- package/lib/esm/packages/js/src/hooks/useProfanityChecker.js +0 -38
- package/lib/esm/packages/js/src/hooks/useProfanityChecker.js.map +0 -1
- package/lib/esm/packages/js/src/index.d.ts +0 -12
- package/lib/esm/packages/js/src/index.js +0 -15
- package/lib/esm/packages/js/src/index.js.map +0 -1
- package/lib/esm/packages/js/src/nlp/contextAnalyzer.d.ts +0 -35
- package/lib/esm/packages/js/src/nlp/contextAnalyzer.js +0 -199
- package/lib/esm/packages/js/src/nlp/contextAnalyzer.js.map +0 -1
- package/lib/esm/packages/js/src/types/types.d.ts +0 -56
- package/lib/esm/packages/js/src/types/types.js +0 -11
- package/lib/esm/packages/js/src/types/types.js.map +0 -1
- package/lib/esm/shared/dictionaries/Norwegian.json +0 -17
- package/lib/esm/shared/dictionaries/arabic.json +0 -157
- package/lib/esm/shared/dictionaries/chinese.json +0 -298
- package/lib/esm/shared/dictionaries/czech.json +0 -45
- package/lib/esm/shared/dictionaries/danish.json +0 -24
- package/lib/esm/shared/dictionaries/english.json +0 -410
- package/lib/esm/shared/dictionaries/esperanto.json +0 -41
- package/lib/esm/shared/dictionaries/finnish.json +0 -134
- package/lib/esm/shared/dictionaries/french.json +0 -99
- package/lib/esm/shared/dictionaries/german.json +0 -69
- package/lib/esm/shared/dictionaries/globalWhitelist.json +0 -31
- package/lib/esm/shared/dictionaries/hindi.json +0 -100
- package/lib/esm/shared/dictionaries/hungarian.json +0 -100
- package/lib/esm/shared/dictionaries/italian.json +0 -184
- package/lib/esm/shared/dictionaries/japanese.json +0 -189
- package/lib/esm/shared/dictionaries/korean.json +0 -76
- package/lib/esm/shared/dictionaries/persian.json +0 -49
- package/lib/esm/shared/dictionaries/polish.json +0 -57
- package/lib/esm/shared/dictionaries/portuguese.json +0 -78
- package/lib/esm/shared/dictionaries/russian.json +0 -156
- package/lib/esm/shared/dictionaries/spanish.json +0 -72
- package/lib/esm/shared/dictionaries/swedish.json +0 -47
- package/lib/esm/shared/dictionaries/thai.json +0 -35
- package/lib/esm/shared/dictionaries/turkish.json +0 -195
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for glin-profanity JavaScript/TypeScript package.
|
|
3
|
+
* Unified API that mirrors the Python package structure.
|
|
4
|
+
*/
|
|
5
|
+
/** Severity levels for profanity matches - unified with Python */
|
|
6
|
+
declare enum SeverityLevel {
|
|
7
|
+
EXACT = 1,
|
|
8
|
+
FUZZY = 2
|
|
9
|
+
}
|
|
10
|
+
/** Supported languages - unified list with Python */
|
|
11
|
+
type Language = 'arabic' | 'chinese' | 'czech' | 'danish' | 'english' | 'esperanto' | 'finnish' | 'french' | 'german' | 'hindi' | 'hungarian' | 'italian' | 'japanese' | 'korean' | 'norwegian' | 'persian' | 'polish' | 'portuguese' | 'russian' | 'spanish' | 'swedish' | 'thai' | 'turkish';
|
|
12
|
+
/** Represents a profanity match in text - unified with Python */
|
|
13
|
+
interface Match {
|
|
14
|
+
word: string;
|
|
15
|
+
index: number;
|
|
16
|
+
severity: SeverityLevel;
|
|
17
|
+
contextScore?: number;
|
|
18
|
+
reason?: string;
|
|
19
|
+
isWhitelisted?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/** Result of profanity check operation - unified field names */
|
|
22
|
+
interface CheckProfanityResult {
|
|
23
|
+
containsProfanity: boolean;
|
|
24
|
+
profaneWords: string[];
|
|
25
|
+
processedText?: string;
|
|
26
|
+
severityMap?: Record<string, SeverityLevel>;
|
|
27
|
+
matches?: Match[];
|
|
28
|
+
contextScore?: number;
|
|
29
|
+
reason?: string;
|
|
30
|
+
}
|
|
31
|
+
/** Configuration for context-aware filtering - unified with Python */
|
|
32
|
+
interface ContextAwareConfig {
|
|
33
|
+
enableContextAware?: boolean;
|
|
34
|
+
contextWindow?: number;
|
|
35
|
+
confidenceThreshold?: number;
|
|
36
|
+
domainWhitelists?: Record<string, string[]>;
|
|
37
|
+
}
|
|
38
|
+
/** Main filter configuration options - unified with Python */
|
|
39
|
+
interface FilterConfig extends ContextAwareConfig {
|
|
40
|
+
languages?: Language[];
|
|
41
|
+
allLanguages?: boolean;
|
|
42
|
+
caseSensitive?: boolean;
|
|
43
|
+
wordBoundaries?: boolean;
|
|
44
|
+
customWords?: string[];
|
|
45
|
+
replaceWith?: string;
|
|
46
|
+
severityLevels?: boolean;
|
|
47
|
+
ignoreWords?: string[];
|
|
48
|
+
logProfanity?: boolean;
|
|
49
|
+
allowObfuscatedMatch?: boolean;
|
|
50
|
+
fuzzyToleranceLevel?: number;
|
|
51
|
+
}
|
|
52
|
+
/** Result with minimum severity filtering */
|
|
53
|
+
interface FilteredProfanityResult {
|
|
54
|
+
result: CheckProfanityResult;
|
|
55
|
+
filteredWords: string[];
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
interface ProfanityCheckerConfig {
|
|
59
|
+
languages?: Language[];
|
|
60
|
+
allLanguages?: boolean;
|
|
61
|
+
caseSensitive?: boolean;
|
|
62
|
+
wordBoundaries?: boolean;
|
|
63
|
+
customWords?: string[];
|
|
64
|
+
replaceWith?: string;
|
|
65
|
+
severityLevels?: boolean;
|
|
66
|
+
allowObfuscatedMatch?: boolean;
|
|
67
|
+
fuzzyToleranceLevel?: number;
|
|
68
|
+
minSeverity?: SeverityLevel;
|
|
69
|
+
autoReplace?: boolean;
|
|
70
|
+
customActions?: (result: CheckProfanityResult) => void;
|
|
71
|
+
}
|
|
72
|
+
interface ProfanityCheckResult extends CheckProfanityResult {
|
|
73
|
+
filteredWords: string[];
|
|
74
|
+
autoReplaced: string;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
declare function checkProfanity(text: string, config?: ProfanityCheckerConfig): ProfanityCheckResult;
|
|
78
|
+
declare function checkProfanityAsync(text: string, config?: ProfanityCheckerConfig): Promise<ProfanityCheckResult>;
|
|
79
|
+
declare function isWordProfane(word: string, config?: ProfanityCheckerConfig): boolean;
|
|
80
|
+
|
|
81
|
+
declare const useProfanityChecker: (config?: ProfanityCheckerConfig) => {
|
|
82
|
+
result: CheckProfanityResult;
|
|
83
|
+
checkText: (text: string) => ProfanityCheckResult;
|
|
84
|
+
checkTextAsync: (text: string) => Promise<ProfanityCheckResult>;
|
|
85
|
+
reset: () => void;
|
|
86
|
+
isDirty: boolean;
|
|
87
|
+
isWordProfane: (word: string) => boolean;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
declare class Filter {
|
|
91
|
+
private words;
|
|
92
|
+
private caseSensitive;
|
|
93
|
+
private wordBoundaries;
|
|
94
|
+
private replaceWith?;
|
|
95
|
+
private severityLevels;
|
|
96
|
+
private ignoreWords;
|
|
97
|
+
private logProfanity;
|
|
98
|
+
private allowObfuscatedMatch;
|
|
99
|
+
private fuzzyToleranceLevel;
|
|
100
|
+
private enableContextAware;
|
|
101
|
+
private contextWindow;
|
|
102
|
+
private confidenceThreshold;
|
|
103
|
+
private contextAnalyzer?;
|
|
104
|
+
private primaryLanguage;
|
|
105
|
+
constructor(config?: FilterConfig);
|
|
106
|
+
private debugLog;
|
|
107
|
+
private normalizeObfuscated;
|
|
108
|
+
private getRegex;
|
|
109
|
+
private isFuzzyToleranceMatch;
|
|
110
|
+
private evaluateSeverity;
|
|
111
|
+
isProfane(value: string): boolean;
|
|
112
|
+
matches(word: string): boolean;
|
|
113
|
+
checkProfanity(text: string): CheckProfanityResult;
|
|
114
|
+
checkProfanityWithMinSeverity(text: string, minSeverity?: SeverityLevel): {
|
|
115
|
+
filteredWords: string[];
|
|
116
|
+
result: CheckProfanityResult;
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export { type CheckProfanityResult, type ContextAwareConfig, Filter, type FilterConfig, type FilteredProfanityResult, type Language, type Match, type ProfanityCheckResult, type ProfanityCheckerConfig, SeverityLevel, checkProfanity, checkProfanityAsync, isWordProfane, useProfanityChecker };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for glin-profanity JavaScript/TypeScript package.
|
|
3
|
+
* Unified API that mirrors the Python package structure.
|
|
4
|
+
*/
|
|
5
|
+
/** Severity levels for profanity matches - unified with Python */
|
|
6
|
+
declare enum SeverityLevel {
|
|
7
|
+
EXACT = 1,
|
|
8
|
+
FUZZY = 2
|
|
9
|
+
}
|
|
10
|
+
/** Supported languages - unified list with Python */
|
|
11
|
+
type Language = 'arabic' | 'chinese' | 'czech' | 'danish' | 'english' | 'esperanto' | 'finnish' | 'french' | 'german' | 'hindi' | 'hungarian' | 'italian' | 'japanese' | 'korean' | 'norwegian' | 'persian' | 'polish' | 'portuguese' | 'russian' | 'spanish' | 'swedish' | 'thai' | 'turkish';
|
|
12
|
+
/** Represents a profanity match in text - unified with Python */
|
|
13
|
+
interface Match {
|
|
14
|
+
word: string;
|
|
15
|
+
index: number;
|
|
16
|
+
severity: SeverityLevel;
|
|
17
|
+
contextScore?: number;
|
|
18
|
+
reason?: string;
|
|
19
|
+
isWhitelisted?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/** Result of profanity check operation - unified field names */
|
|
22
|
+
interface CheckProfanityResult {
|
|
23
|
+
containsProfanity: boolean;
|
|
24
|
+
profaneWords: string[];
|
|
25
|
+
processedText?: string;
|
|
26
|
+
severityMap?: Record<string, SeverityLevel>;
|
|
27
|
+
matches?: Match[];
|
|
28
|
+
contextScore?: number;
|
|
29
|
+
reason?: string;
|
|
30
|
+
}
|
|
31
|
+
/** Configuration for context-aware filtering - unified with Python */
|
|
32
|
+
interface ContextAwareConfig {
|
|
33
|
+
enableContextAware?: boolean;
|
|
34
|
+
contextWindow?: number;
|
|
35
|
+
confidenceThreshold?: number;
|
|
36
|
+
domainWhitelists?: Record<string, string[]>;
|
|
37
|
+
}
|
|
38
|
+
/** Main filter configuration options - unified with Python */
|
|
39
|
+
interface FilterConfig extends ContextAwareConfig {
|
|
40
|
+
languages?: Language[];
|
|
41
|
+
allLanguages?: boolean;
|
|
42
|
+
caseSensitive?: boolean;
|
|
43
|
+
wordBoundaries?: boolean;
|
|
44
|
+
customWords?: string[];
|
|
45
|
+
replaceWith?: string;
|
|
46
|
+
severityLevels?: boolean;
|
|
47
|
+
ignoreWords?: string[];
|
|
48
|
+
logProfanity?: boolean;
|
|
49
|
+
allowObfuscatedMatch?: boolean;
|
|
50
|
+
fuzzyToleranceLevel?: number;
|
|
51
|
+
}
|
|
52
|
+
/** Result with minimum severity filtering */
|
|
53
|
+
interface FilteredProfanityResult {
|
|
54
|
+
result: CheckProfanityResult;
|
|
55
|
+
filteredWords: string[];
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
interface ProfanityCheckerConfig {
|
|
59
|
+
languages?: Language[];
|
|
60
|
+
allLanguages?: boolean;
|
|
61
|
+
caseSensitive?: boolean;
|
|
62
|
+
wordBoundaries?: boolean;
|
|
63
|
+
customWords?: string[];
|
|
64
|
+
replaceWith?: string;
|
|
65
|
+
severityLevels?: boolean;
|
|
66
|
+
allowObfuscatedMatch?: boolean;
|
|
67
|
+
fuzzyToleranceLevel?: number;
|
|
68
|
+
minSeverity?: SeverityLevel;
|
|
69
|
+
autoReplace?: boolean;
|
|
70
|
+
customActions?: (result: CheckProfanityResult) => void;
|
|
71
|
+
}
|
|
72
|
+
interface ProfanityCheckResult extends CheckProfanityResult {
|
|
73
|
+
filteredWords: string[];
|
|
74
|
+
autoReplaced: string;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
declare function checkProfanity(text: string, config?: ProfanityCheckerConfig): ProfanityCheckResult;
|
|
78
|
+
declare function checkProfanityAsync(text: string, config?: ProfanityCheckerConfig): Promise<ProfanityCheckResult>;
|
|
79
|
+
declare function isWordProfane(word: string, config?: ProfanityCheckerConfig): boolean;
|
|
80
|
+
|
|
81
|
+
declare const useProfanityChecker: (config?: ProfanityCheckerConfig) => {
|
|
82
|
+
result: CheckProfanityResult;
|
|
83
|
+
checkText: (text: string) => ProfanityCheckResult;
|
|
84
|
+
checkTextAsync: (text: string) => Promise<ProfanityCheckResult>;
|
|
85
|
+
reset: () => void;
|
|
86
|
+
isDirty: boolean;
|
|
87
|
+
isWordProfane: (word: string) => boolean;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
declare class Filter {
|
|
91
|
+
private words;
|
|
92
|
+
private caseSensitive;
|
|
93
|
+
private wordBoundaries;
|
|
94
|
+
private replaceWith?;
|
|
95
|
+
private severityLevels;
|
|
96
|
+
private ignoreWords;
|
|
97
|
+
private logProfanity;
|
|
98
|
+
private allowObfuscatedMatch;
|
|
99
|
+
private fuzzyToleranceLevel;
|
|
100
|
+
private enableContextAware;
|
|
101
|
+
private contextWindow;
|
|
102
|
+
private confidenceThreshold;
|
|
103
|
+
private contextAnalyzer?;
|
|
104
|
+
private primaryLanguage;
|
|
105
|
+
constructor(config?: FilterConfig);
|
|
106
|
+
private debugLog;
|
|
107
|
+
private normalizeObfuscated;
|
|
108
|
+
private getRegex;
|
|
109
|
+
private isFuzzyToleranceMatch;
|
|
110
|
+
private evaluateSeverity;
|
|
111
|
+
isProfane(value: string): boolean;
|
|
112
|
+
matches(word: string): boolean;
|
|
113
|
+
checkProfanity(text: string): CheckProfanityResult;
|
|
114
|
+
checkProfanityWithMinSeverity(text: string, minSeverity?: SeverityLevel): {
|
|
115
|
+
filteredWords: string[];
|
|
116
|
+
result: CheckProfanityResult;
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export { type CheckProfanityResult, type ContextAwareConfig, Filter, type FilterConfig, type FilteredProfanityResult, type Language, type Match, type ProfanityCheckResult, type ProfanityCheckerConfig, SeverityLevel, checkProfanity, checkProfanityAsync, isWordProfane, useProfanityChecker };
|