glin-profanity 2.3.3 → 2.3.7

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.
Files changed (101) hide show
  1. package/dist/index.cjs +5597 -0
  2. package/dist/index.d.cts +120 -0
  3. package/dist/index.d.ts +120 -0
  4. package/dist/index.js +5578 -0
  5. package/package.json +17 -12
  6. package/lib/cjs/packages/js/src/core/index.d.ts +0 -4
  7. package/lib/cjs/packages/js/src/core/index.js +0 -55
  8. package/lib/cjs/packages/js/src/core/index.js.map +0 -1
  9. package/lib/cjs/packages/js/src/core/types.d.ts +0 -20
  10. package/lib/cjs/packages/js/src/core/types.js +0 -3
  11. package/lib/cjs/packages/js/src/core/types.js.map +0 -1
  12. package/lib/cjs/packages/js/src/data/dictionary.d.ts +0 -26
  13. package/lib/cjs/packages/js/src/data/dictionary.js +0 -54
  14. package/lib/cjs/packages/js/src/data/dictionary.js.map +0 -1
  15. package/lib/cjs/packages/js/src/filters/Filter.d.ts +0 -32
  16. package/lib/cjs/packages/js/src/filters/Filter.js +0 -246
  17. package/lib/cjs/packages/js/src/filters/Filter.js.map +0 -1
  18. package/lib/cjs/packages/js/src/hooks/useProfanityChecker.d.ts +0 -11
  19. package/lib/cjs/packages/js/src/hooks/useProfanityChecker.js +0 -42
  20. package/lib/cjs/packages/js/src/hooks/useProfanityChecker.js.map +0 -1
  21. package/lib/cjs/packages/js/src/index.d.ts +0 -12
  22. package/lib/cjs/packages/js/src/index.js +0 -24
  23. package/lib/cjs/packages/js/src/index.js.map +0 -1
  24. package/lib/cjs/packages/js/src/nlp/contextAnalyzer.d.ts +0 -35
  25. package/lib/cjs/packages/js/src/nlp/contextAnalyzer.js +0 -203
  26. package/lib/cjs/packages/js/src/nlp/contextAnalyzer.js.map +0 -1
  27. package/lib/cjs/packages/js/src/types/types.d.ts +0 -56
  28. package/lib/cjs/packages/js/src/types/types.js +0 -14
  29. package/lib/cjs/packages/js/src/types/types.js.map +0 -1
  30. package/lib/cjs/shared/dictionaries/Norwegian.json +0 -17
  31. package/lib/cjs/shared/dictionaries/arabic.json +0 -157
  32. package/lib/cjs/shared/dictionaries/chinese.json +0 -298
  33. package/lib/cjs/shared/dictionaries/czech.json +0 -45
  34. package/lib/cjs/shared/dictionaries/danish.json +0 -24
  35. package/lib/cjs/shared/dictionaries/english.json +0 -410
  36. package/lib/cjs/shared/dictionaries/esperanto.json +0 -41
  37. package/lib/cjs/shared/dictionaries/finnish.json +0 -134
  38. package/lib/cjs/shared/dictionaries/french.json +0 -99
  39. package/lib/cjs/shared/dictionaries/german.json +0 -69
  40. package/lib/cjs/shared/dictionaries/globalWhitelist.json +0 -31
  41. package/lib/cjs/shared/dictionaries/hindi.json +0 -100
  42. package/lib/cjs/shared/dictionaries/hungarian.json +0 -100
  43. package/lib/cjs/shared/dictionaries/italian.json +0 -184
  44. package/lib/cjs/shared/dictionaries/japanese.json +0 -189
  45. package/lib/cjs/shared/dictionaries/korean.json +0 -76
  46. package/lib/cjs/shared/dictionaries/persian.json +0 -49
  47. package/lib/cjs/shared/dictionaries/polish.json +0 -57
  48. package/lib/cjs/shared/dictionaries/portuguese.json +0 -78
  49. package/lib/cjs/shared/dictionaries/russian.json +0 -156
  50. package/lib/cjs/shared/dictionaries/spanish.json +0 -72
  51. package/lib/cjs/shared/dictionaries/swedish.json +0 -47
  52. package/lib/cjs/shared/dictionaries/thai.json +0 -35
  53. package/lib/cjs/shared/dictionaries/turkish.json +0 -195
  54. package/lib/esm/packages/js/src/core/index.d.ts +0 -4
  55. package/lib/esm/packages/js/src/core/index.js +0 -47
  56. package/lib/esm/packages/js/src/core/index.js.map +0 -1
  57. package/lib/esm/packages/js/src/core/types.d.ts +0 -20
  58. package/lib/esm/packages/js/src/core/types.js +0 -2
  59. package/lib/esm/packages/js/src/core/types.js.map +0 -1
  60. package/lib/esm/packages/js/src/data/dictionary.d.ts +0 -26
  61. package/lib/esm/packages/js/src/data/dictionary.js +0 -49
  62. package/lib/esm/packages/js/src/data/dictionary.js.map +0 -1
  63. package/lib/esm/packages/js/src/filters/Filter.d.ts +0 -32
  64. package/lib/esm/packages/js/src/filters/Filter.js +0 -240
  65. package/lib/esm/packages/js/src/filters/Filter.js.map +0 -1
  66. package/lib/esm/packages/js/src/hooks/useProfanityChecker.d.ts +0 -11
  67. package/lib/esm/packages/js/src/hooks/useProfanityChecker.js +0 -38
  68. package/lib/esm/packages/js/src/hooks/useProfanityChecker.js.map +0 -1
  69. package/lib/esm/packages/js/src/index.d.ts +0 -12
  70. package/lib/esm/packages/js/src/index.js +0 -15
  71. package/lib/esm/packages/js/src/index.js.map +0 -1
  72. package/lib/esm/packages/js/src/nlp/contextAnalyzer.d.ts +0 -35
  73. package/lib/esm/packages/js/src/nlp/contextAnalyzer.js +0 -199
  74. package/lib/esm/packages/js/src/nlp/contextAnalyzer.js.map +0 -1
  75. package/lib/esm/packages/js/src/types/types.d.ts +0 -56
  76. package/lib/esm/packages/js/src/types/types.js +0 -11
  77. package/lib/esm/packages/js/src/types/types.js.map +0 -1
  78. package/lib/esm/shared/dictionaries/Norwegian.json +0 -17
  79. package/lib/esm/shared/dictionaries/arabic.json +0 -157
  80. package/lib/esm/shared/dictionaries/chinese.json +0 -298
  81. package/lib/esm/shared/dictionaries/czech.json +0 -45
  82. package/lib/esm/shared/dictionaries/danish.json +0 -24
  83. package/lib/esm/shared/dictionaries/english.json +0 -410
  84. package/lib/esm/shared/dictionaries/esperanto.json +0 -41
  85. package/lib/esm/shared/dictionaries/finnish.json +0 -134
  86. package/lib/esm/shared/dictionaries/french.json +0 -99
  87. package/lib/esm/shared/dictionaries/german.json +0 -69
  88. package/lib/esm/shared/dictionaries/globalWhitelist.json +0 -31
  89. package/lib/esm/shared/dictionaries/hindi.json +0 -100
  90. package/lib/esm/shared/dictionaries/hungarian.json +0 -100
  91. package/lib/esm/shared/dictionaries/italian.json +0 -184
  92. package/lib/esm/shared/dictionaries/japanese.json +0 -189
  93. package/lib/esm/shared/dictionaries/korean.json +0 -76
  94. package/lib/esm/shared/dictionaries/persian.json +0 -49
  95. package/lib/esm/shared/dictionaries/polish.json +0 -57
  96. package/lib/esm/shared/dictionaries/portuguese.json +0 -78
  97. package/lib/esm/shared/dictionaries/russian.json +0 -156
  98. package/lib/esm/shared/dictionaries/spanish.json +0 -72
  99. package/lib/esm/shared/dictionaries/swedish.json +0 -47
  100. package/lib/esm/shared/dictionaries/thai.json +0 -35
  101. package/lib/esm/shared/dictionaries/turkish.json +0 -195
@@ -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
+ declare class Filter {
59
+ private words;
60
+ private caseSensitive;
61
+ private wordBoundaries;
62
+ private replaceWith?;
63
+ private severityLevels;
64
+ private ignoreWords;
65
+ private logProfanity;
66
+ private allowObfuscatedMatch;
67
+ private fuzzyToleranceLevel;
68
+ private enableContextAware;
69
+ private contextWindow;
70
+ private confidenceThreshold;
71
+ private contextAnalyzer?;
72
+ private primaryLanguage;
73
+ constructor(config?: FilterConfig);
74
+ private debugLog;
75
+ private normalizeObfuscated;
76
+ private getRegex;
77
+ private isFuzzyToleranceMatch;
78
+ private evaluateSeverity;
79
+ isProfane(value: string): boolean;
80
+ matches(word: string): boolean;
81
+ checkProfanity(text: string): CheckProfanityResult;
82
+ checkProfanityWithMinSeverity(text: string, minSeverity?: SeverityLevel): {
83
+ filteredWords: string[];
84
+ result: CheckProfanityResult;
85
+ };
86
+ }
87
+
88
+ interface ProfanityCheckerConfig {
89
+ languages?: Language[];
90
+ allLanguages?: boolean;
91
+ caseSensitive?: boolean;
92
+ wordBoundaries?: boolean;
93
+ customWords?: string[];
94
+ replaceWith?: string;
95
+ severityLevels?: boolean;
96
+ allowObfuscatedMatch?: boolean;
97
+ fuzzyToleranceLevel?: number;
98
+ minSeverity?: SeverityLevel;
99
+ autoReplace?: boolean;
100
+ customActions?: (result: CheckProfanityResult) => void;
101
+ }
102
+ interface ProfanityCheckResult extends CheckProfanityResult {
103
+ filteredWords: string[];
104
+ autoReplaced: string;
105
+ }
106
+
107
+ declare function checkProfanity(text: string, config?: ProfanityCheckerConfig): ProfanityCheckResult;
108
+ declare function checkProfanityAsync(text: string, config?: ProfanityCheckerConfig): Promise<ProfanityCheckResult>;
109
+ declare function isWordProfane(word: string, config?: ProfanityCheckerConfig): boolean;
110
+
111
+ declare const useProfanityChecker: (config?: ProfanityCheckerConfig) => {
112
+ result: CheckProfanityResult;
113
+ checkText: (text: string) => ProfanityCheckResult;
114
+ checkTextAsync: (text: string) => Promise<ProfanityCheckResult>;
115
+ reset: () => void;
116
+ isDirty: boolean;
117
+ isWordProfane: (word: string) => boolean;
118
+ };
119
+
120
+ export { type CheckProfanityResult, type ContextAwareConfig, Filter, type FilterConfig, type FilteredProfanityResult, type Language, type Match, type ProfanityCheckResult, type ProfanityCheckerConfig, Filter as ProfanityFilter, SeverityLevel, checkProfanity, checkProfanityAsync, isWordProfane, useProfanityChecker };
@@ -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
+ declare class Filter {
59
+ private words;
60
+ private caseSensitive;
61
+ private wordBoundaries;
62
+ private replaceWith?;
63
+ private severityLevels;
64
+ private ignoreWords;
65
+ private logProfanity;
66
+ private allowObfuscatedMatch;
67
+ private fuzzyToleranceLevel;
68
+ private enableContextAware;
69
+ private contextWindow;
70
+ private confidenceThreshold;
71
+ private contextAnalyzer?;
72
+ private primaryLanguage;
73
+ constructor(config?: FilterConfig);
74
+ private debugLog;
75
+ private normalizeObfuscated;
76
+ private getRegex;
77
+ private isFuzzyToleranceMatch;
78
+ private evaluateSeverity;
79
+ isProfane(value: string): boolean;
80
+ matches(word: string): boolean;
81
+ checkProfanity(text: string): CheckProfanityResult;
82
+ checkProfanityWithMinSeverity(text: string, minSeverity?: SeverityLevel): {
83
+ filteredWords: string[];
84
+ result: CheckProfanityResult;
85
+ };
86
+ }
87
+
88
+ interface ProfanityCheckerConfig {
89
+ languages?: Language[];
90
+ allLanguages?: boolean;
91
+ caseSensitive?: boolean;
92
+ wordBoundaries?: boolean;
93
+ customWords?: string[];
94
+ replaceWith?: string;
95
+ severityLevels?: boolean;
96
+ allowObfuscatedMatch?: boolean;
97
+ fuzzyToleranceLevel?: number;
98
+ minSeverity?: SeverityLevel;
99
+ autoReplace?: boolean;
100
+ customActions?: (result: CheckProfanityResult) => void;
101
+ }
102
+ interface ProfanityCheckResult extends CheckProfanityResult {
103
+ filteredWords: string[];
104
+ autoReplaced: string;
105
+ }
106
+
107
+ declare function checkProfanity(text: string, config?: ProfanityCheckerConfig): ProfanityCheckResult;
108
+ declare function checkProfanityAsync(text: string, config?: ProfanityCheckerConfig): Promise<ProfanityCheckResult>;
109
+ declare function isWordProfane(word: string, config?: ProfanityCheckerConfig): boolean;
110
+
111
+ declare const useProfanityChecker: (config?: ProfanityCheckerConfig) => {
112
+ result: CheckProfanityResult;
113
+ checkText: (text: string) => ProfanityCheckResult;
114
+ checkTextAsync: (text: string) => Promise<ProfanityCheckResult>;
115
+ reset: () => void;
116
+ isDirty: boolean;
117
+ isWordProfane: (word: string) => boolean;
118
+ };
119
+
120
+ export { type CheckProfanityResult, type ContextAwareConfig, Filter, type FilterConfig, type FilteredProfanityResult, type Language, type Match, type ProfanityCheckResult, type ProfanityCheckerConfig, Filter as ProfanityFilter, SeverityLevel, checkProfanity, checkProfanityAsync, isWordProfane, useProfanityChecker };