bekindprofanityfilter 0.0.1

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 (82) hide show
  1. package/CONTRIBUTORS.md +106 -0
  2. package/LICENSE +22 -0
  3. package/README.md +1015 -0
  4. package/allprofanity.config.example.json +35 -0
  5. package/bin/init.js +49 -0
  6. package/config.schema.json +163 -0
  7. package/dist/algos/aho-corasick.d.ts +75 -0
  8. package/dist/algos/aho-corasick.js +238 -0
  9. package/dist/algos/aho-corasick.js.map +1 -0
  10. package/dist/algos/bloom-filter.d.ts +103 -0
  11. package/dist/algos/bloom-filter.js +208 -0
  12. package/dist/algos/bloom-filter.js.map +1 -0
  13. package/dist/algos/context-patterns.d.ts +102 -0
  14. package/dist/algos/context-patterns.js +484 -0
  15. package/dist/algos/context-patterns.js.map +1 -0
  16. package/dist/index.d.ts +1332 -0
  17. package/dist/index.js +2631 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/innocence-scoring.d.ts +23 -0
  20. package/dist/innocence-scoring.js +118 -0
  21. package/dist/innocence-scoring.js.map +1 -0
  22. package/dist/language-detector.d.ts +162 -0
  23. package/dist/language-detector.js +952 -0
  24. package/dist/language-detector.js.map +1 -0
  25. package/dist/language-dicts.d.ts +60 -0
  26. package/dist/language-dicts.js +2718 -0
  27. package/dist/language-dicts.js.map +1 -0
  28. package/dist/languages/arabic-words.d.ts +10 -0
  29. package/dist/languages/arabic-words.js +1649 -0
  30. package/dist/languages/arabic-words.js.map +1 -0
  31. package/dist/languages/bengali-words.d.ts +10 -0
  32. package/dist/languages/bengali-words.js +1696 -0
  33. package/dist/languages/bengali-words.js.map +1 -0
  34. package/dist/languages/brazilian-words.d.ts +10 -0
  35. package/dist/languages/brazilian-words.js +2122 -0
  36. package/dist/languages/brazilian-words.js.map +1 -0
  37. package/dist/languages/chinese-words.d.ts +10 -0
  38. package/dist/languages/chinese-words.js +2728 -0
  39. package/dist/languages/chinese-words.js.map +1 -0
  40. package/dist/languages/english-primary-all-languages.d.ts +23 -0
  41. package/dist/languages/english-primary-all-languages.js +36894 -0
  42. package/dist/languages/english-primary-all-languages.js.map +1 -0
  43. package/dist/languages/english-words.d.ts +5 -0
  44. package/dist/languages/english-words.js +5156 -0
  45. package/dist/languages/english-words.js.map +1 -0
  46. package/dist/languages/french-words.d.ts +10 -0
  47. package/dist/languages/french-words.js +2326 -0
  48. package/dist/languages/french-words.js.map +1 -0
  49. package/dist/languages/german-words.d.ts +10 -0
  50. package/dist/languages/german-words.js +2633 -0
  51. package/dist/languages/german-words.js.map +1 -0
  52. package/dist/languages/hindi-words.d.ts +10 -0
  53. package/dist/languages/hindi-words.js +2341 -0
  54. package/dist/languages/hindi-words.js.map +1 -0
  55. package/dist/languages/innocent-words.d.ts +41 -0
  56. package/dist/languages/innocent-words.js +109 -0
  57. package/dist/languages/innocent-words.js.map +1 -0
  58. package/dist/languages/italian-words.d.ts +10 -0
  59. package/dist/languages/italian-words.js +2287 -0
  60. package/dist/languages/italian-words.js.map +1 -0
  61. package/dist/languages/japanese-words.d.ts +11 -0
  62. package/dist/languages/japanese-words.js +2557 -0
  63. package/dist/languages/japanese-words.js.map +1 -0
  64. package/dist/languages/korean-words.d.ts +10 -0
  65. package/dist/languages/korean-words.js +2509 -0
  66. package/dist/languages/korean-words.js.map +1 -0
  67. package/dist/languages/russian-words.d.ts +10 -0
  68. package/dist/languages/russian-words.js +2175 -0
  69. package/dist/languages/russian-words.js.map +1 -0
  70. package/dist/languages/spanish-words.d.ts +11 -0
  71. package/dist/languages/spanish-words.js +2536 -0
  72. package/dist/languages/spanish-words.js.map +1 -0
  73. package/dist/languages/tamil-words.d.ts +10 -0
  74. package/dist/languages/tamil-words.js +1722 -0
  75. package/dist/languages/tamil-words.js.map +1 -0
  76. package/dist/languages/telugu-words.d.ts +10 -0
  77. package/dist/languages/telugu-words.js +1739 -0
  78. package/dist/languages/telugu-words.js.map +1 -0
  79. package/dist/romanization-detector.d.ts +50 -0
  80. package/dist/romanization-detector.js +779 -0
  81. package/dist/romanization-detector.js.map +1 -0
  82. package/package.json +79 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Innocence Scoring — adjusts profanity certainty based on cross-language context.
3
+ *
4
+ * When a word is profane in one language but innocent in another (e.g., "slut"
5
+ * is profane in English but means "end" in Swedish), this module adjusts the
6
+ * certainty score based on detected language signals.
7
+ *
8
+ * - Dampens certainty when the innocent language dominates the text context
9
+ * - Boosts certainty when the profane language dominates
10
+ * - Applies the word's dampeningFactor to control adjustment magnitude
11
+ */
12
+ import type { InnocentEntry } from "./languages/innocent-words.js";
13
+ /**
14
+ * Adjust a word's certainty score based on cross-language innocence data
15
+ * and pre-computed amplified language signals.
16
+ *
17
+ * @param certainty - Base certainty score (0-5)
18
+ * @param profaneLanguage - ISO 639-1 code of the language where the word is profane
19
+ * @param innocentEntries - Array of languages where the word is innocent
20
+ * @param amplified - Pre-computed weighted average of word + document language signals
21
+ * @returns Adjusted certainty, clamped to [0, 5]
22
+ */
23
+ export declare function adjustCertaintyForLanguage(certainty: number, profaneLanguage: string, innocentEntries: InnocentEntry[], amplified: Record<string, number>, isPartialMatch?: boolean): number;
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Innocence Scoring — adjusts profanity certainty based on cross-language context.
3
+ *
4
+ * When a word is profane in one language but innocent in another (e.g., "slut"
5
+ * is profane in English but means "end" in Swedish), this module adjusts the
6
+ * certainty score based on detected language signals.
7
+ *
8
+ * - Dampens certainty when the innocent language dominates the text context
9
+ * - Boosts certainty when the profane language dominates
10
+ * - Applies the word's dampeningFactor to control adjustment magnitude
11
+ */
12
+ // ---------------------------------------------------------------------------
13
+ // Language family groups — for disambiguation of closely related languages.
14
+ // The ELD n-gram model often confuses languages within the same family
15
+ // (e.g., Swedish ↔ German, Norwegian ↔ Danish). When checking innocent entries,
16
+ // we also consider signal from sibling languages in the same family.
17
+ // ---------------------------------------------------------------------------
18
+ const LANGUAGE_FAMILIES = {
19
+ germanic_scandinavian: ["sv", "no", "da"],
20
+ germanic_continental: ["de", "nl"],
21
+ };
22
+ /** Build a reverse lookup: language code → family members (including itself) */
23
+ const FAMILY_SIBLINGS = {};
24
+ for (const members of Object.values(LANGUAGE_FAMILIES)) {
25
+ for (const lang of members) {
26
+ FAMILY_SIBLINGS[lang] = members;
27
+ }
28
+ }
29
+ // Cross-family confusion map: languages the detector often confuses with each other.
30
+ // Swedish/Norwegian/Danish are often classified as German by ELD n-gram.
31
+ const CONFUSION_MAP = {
32
+ de: ["sv", "no", "da"],
33
+ sv: ["de", "no", "da"],
34
+ no: ["de", "sv", "da"],
35
+ da: ["de", "sv", "no"],
36
+ nl: ["de"], // Dutch sometimes classified as German
37
+ };
38
+ /**
39
+ * Get the effective amplified signal for a language, including signal
40
+ * from languages the detector commonly confuses it with.
41
+ *
42
+ * For example, if the innocent language is "sv" (Swedish) but the detector
43
+ * classified the text as "de" (German), we add the German signal as a
44
+ * partial boost to the Swedish signal, since it may actually be Swedish.
45
+ */
46
+ function getEffectiveAmp(language, amplified) {
47
+ var _a, _b;
48
+ const directAmp = (_a = amplified[language]) !== null && _a !== void 0 ? _a : 0;
49
+ // Check if any confused languages have signal
50
+ const confusedWith = CONFUSION_MAP[language];
51
+ if (!confusedWith)
52
+ return directAmp;
53
+ let confusedAmp = 0;
54
+ for (const confused of confusedWith) {
55
+ const amp = (_b = amplified[confused]) !== null && _b !== void 0 ? _b : 0;
56
+ if (amp > confusedAmp) {
57
+ confusedAmp = amp;
58
+ }
59
+ }
60
+ // Use the higher of direct signal or confused signal (discounted by 0.8)
61
+ // The discount prevents over-attribution: German text shouldn't fully
62
+ // count as Swedish, but mostly-German signal in a Scandinavian context
63
+ // should still trigger dampening.
64
+ return Math.max(directAmp, confusedAmp * 0.8);
65
+ }
66
+ /**
67
+ * Adjust a word's certainty score based on cross-language innocence data
68
+ * and pre-computed amplified language signals.
69
+ *
70
+ * @param certainty - Base certainty score (0-5)
71
+ * @param profaneLanguage - ISO 639-1 code of the language where the word is profane
72
+ * @param innocentEntries - Array of languages where the word is innocent
73
+ * @param amplified - Pre-computed weighted average of word + document language signals
74
+ * @returns Adjusted certainty, clamped to [0, 5]
75
+ */
76
+ export function adjustCertaintyForLanguage(certainty, profaneLanguage, innocentEntries, amplified, isPartialMatch = false) {
77
+ var _a, _b, _c;
78
+ // No innocent entries → no adjustment possible
79
+ if (innocentEntries.length === 0) {
80
+ return certainty;
81
+ }
82
+ const profaneAmp = (_a = amplified[profaneLanguage]) !== null && _a !== void 0 ? _a : 0;
83
+ // Find the strongest innocent signal among all innocent entries,
84
+ // considering language family confusion
85
+ let bestInnocentAmp = 0;
86
+ let bestEntry = null;
87
+ for (const entry of innocentEntries) {
88
+ const effectiveAmp = getEffectiveAmp(entry.language, amplified);
89
+ if (effectiveAmp > bestInnocentAmp) {
90
+ bestInnocentAmp = effectiveAmp;
91
+ bestEntry = entry;
92
+ }
93
+ }
94
+ // Both signals below threshold → no meaningful signal to act on
95
+ if (profaneAmp < 0.01 && bestInnocentAmp < 0.01) {
96
+ return certainty;
97
+ }
98
+ let adjusted = certainty;
99
+ if (bestInnocentAmp > profaneAmp && bestEntry) {
100
+ // Innocent language dominates → dampen certainty
101
+ // Use partialDampeningFactor when the word is embedded inside another word
102
+ const df = isPartialMatch
103
+ ? ((_b = bestEntry.partialDampeningFactor) !== null && _b !== void 0 ? _b : bestEntry.dampeningFactor)
104
+ : bestEntry.dampeningFactor;
105
+ adjusted = certainty * (1 - df * bestInnocentAmp);
106
+ }
107
+ else if (profaneAmp > bestInnocentAmp && bestEntry) {
108
+ // Profane language dominates → boost certainty
109
+ const df = isPartialMatch
110
+ ? ((_c = bestEntry.partialDampeningFactor) !== null && _c !== void 0 ? _c : bestEntry.dampeningFactor)
111
+ : bestEntry.dampeningFactor;
112
+ adjusted = certainty * (1 + df * profaneAmp);
113
+ }
114
+ // Equal signals → no change
115
+ // Clamp to [0, 5]
116
+ return Math.max(0, Math.min(5, adjusted));
117
+ }
118
+ //# sourceMappingURL=innocence-scoring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"innocence-scoring.js","sourceRoot":"","sources":["../src/innocence-scoring.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Language Detector — hybrid ELD n-gram + script + vocabulary detection.
3
+ *
4
+ * Three detection layers:
5
+ * 1. **ELD n-gram detection**: Corpus-trained n-gram model (Nito-ELD) provides
6
+ * per-word language scores and full-text Bayesian priors.
7
+ * 2. **Script detection**: Unicode codepoint ranges map characters to
8
+ * language families instantly and deterministically.
9
+ * 3. **Vocabulary detection**: Trie-based word matching against per-language
10
+ * dictionaries disambiguates languages sharing a script.
11
+ *
12
+ * High-signal suffixes/prefixes (accent-bearing, 0.3+ weight) provide additional
13
+ * disambiguation for accented/diacritical text.
14
+ *
15
+ * Designed for use alongside the profanity filter to weight matches by detected
16
+ * language context.
17
+ */
18
+ /** ISO 639-1 language code — covers all 60 ELD-supported languages + our trie languages */
19
+ export type LanguageCode = "en" | "es" | "fr" | "de" | "it" | "pt" | "nl" | "tr" | "ru" | "ar" | "zh" | "ja" | "ko" | "hi" | "bn" | "ta" | "te" | "am" | "az" | "be" | "bg" | "ca" | "cs" | "da" | "el" | "et" | "eu" | "fa" | "fi" | "gu" | "he" | "hr" | "hu" | "hy" | "is" | "ka" | "kn" | "ku" | "lo" | "lt" | "lv" | "ml" | "mr" | "ms" | "no" | "or" | "pa" | "pl" | "ro" | "sk" | "sl" | "sq" | "sr" | "sv" | "th" | "tl" | "uk" | "ur" | "vi" | "yo";
20
+ export interface LanguageDetection {
21
+ /** ISO 639-1 code */
22
+ language: LanguageCode;
23
+ /** Max likelihood that any single word belongs to this language (0–1).
24
+ * 1.0 = at least one word unambiguously belongs to this language. */
25
+ present: number;
26
+ /** Proportion of text mass belonging to this language (0–1, based on word count) */
27
+ proportion: number;
28
+ /** Number of words attributed to this language */
29
+ wordCount: number;
30
+ }
31
+ export interface DetectionResult {
32
+ /** Detected languages sorted by proportion (highest first) */
33
+ languages: LanguageDetection[];
34
+ /** The original input text */
35
+ text: string;
36
+ /** Total words analyzed */
37
+ totalWords: number;
38
+ }
39
+ export interface DetectionOptions {
40
+ /** Minimum proportion to include a language (0–1). @default 0.05 */
41
+ minConfidence?: number;
42
+ /** Maximum number of languages to return. @default 5 */
43
+ maxLanguages?: number;
44
+ /** Seed the Bayesian prior with expected language probabilities.
45
+ * Keys are language codes, values are relative weights (will be normalized).
46
+ * Example: `{ en: 0.8, es: 0.2 }` — expect mostly English with some Spanish.
47
+ * This nudges ambiguous words toward the seeded languages. */
48
+ priorWeights?: Partial<Record<LanguageCode, number>>;
49
+ }
50
+ /**
51
+ * Compute Shannon entropy (in bits) over a distribution of raw scores.
52
+ * Normalizes internally so inputs don't need to sum to 1.
53
+ * Filters out negligible entries (< 1% of total) before computing.
54
+ *
55
+ * Reference values for N equally likely outcomes: H = log2(N)
56
+ * - 2 langs: 1.00 bits
57
+ * - 3 langs: 1.58 bits
58
+ * - 4 langs: 2.00 bits
59
+ * - 8 langs: 3.00 bits
60
+ */
61
+ export declare function shannonEntropy(values: number[]): number;
62
+ export interface ScrappinessResult {
63
+ /** Overall scrappiness score 0–1 (higher = more informal/SMS-like) */
64
+ score: number;
65
+ signals: string[];
66
+ }
67
+ /**
68
+ * Compute how "scrappy" / SMS-like the text is.
69
+ * Romanized text tends to be informal: short words, no punctuation, no caps,
70
+ * abbreviations, repeated chars, number substitutions.
71
+ *
72
+ * ELD is trained on formal text, so high scrappiness = low ELD trust.
73
+ */
74
+ export declare function computeScrappiness(text: string): ScrappinessResult;
75
+ export interface EldPenaltyResult {
76
+ /** Multiplier for ELD scores: 1.0 = full trust, 0.0 = no trust */
77
+ factor: number;
78
+ /** Individual penalty components */
79
+ penalties: string[];
80
+ }
81
+ /**
82
+ * Compute how much to trust ELD's language detection.
83
+ *
84
+ * Returns a factor 0–1 that should multiply ELD contributions:
85
+ * - 1.0: ELD is fully trusted (formal English/European text)
86
+ * - 0.5: ELD is partially trusted (some romanization or scrappiness)
87
+ * - 0.0: ELD is not trusted at all (strong romanization + very scrappy)
88
+ */
89
+ export declare function computeEldPenalty(text: string): EldPenaltyResult;
90
+ /**
91
+ * Detect languages present in the input text.
92
+ *
93
+ * Uses a two-layer approach:
94
+ * 1. **Script detection** — Unicode character ranges identify non-Latin scripts
95
+ * with high certainty (Cyrillic → ru, Devanagari → hi, Hangul → ko, etc.)
96
+ * 2. **Vocabulary detection** — common words and phrases disambiguate Latin-script
97
+ * languages (en vs es vs fr vs de vs it vs pt vs nl vs tr)
98
+ *
99
+ * Script detection is weighted 2× relative to vocabulary detection since it's
100
+ * more deterministic.
101
+ *
102
+ * @param text - The text to analyze
103
+ * @param options - Detection options
104
+ * @returns Detection result with languages sorted by proportion
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * const result = detectLanguages("Bonjour, comment allez-vous?");
109
+ * // → { languages: [{ language: "fr", proportion: 0.82, present: 1.0, wordCount: 3 }, ...], text: "..." }
110
+ *
111
+ * const result2 = detectLanguages("こんにちは世界");
112
+ * // → { languages: [{ language: "ja", proportion: 0.85 }, { language: "zh", proportion: 0.15 }], text: "..." }
113
+ * ```
114
+ */
115
+ export declare function detectLanguages(text: string, options?: DetectionOptions): DetectionResult;
116
+ /**
117
+ * Get the single best-matching language for the text.
118
+ *
119
+ * @param text - The text to analyze
120
+ * @returns The top language detection, or a default English result if unknown
121
+ *
122
+ * @example
123
+ * ```typescript
124
+ * const best = detectBestLanguage("Hola, ¿cómo estás?");
125
+ * // → { language: "es", present: 1.0, proportion: 0.91, wordCount: 3 }
126
+ * ```
127
+ */
128
+ export declare function detectBestLanguage(text: string): LanguageDetection;
129
+ /**
130
+ * Detect the script/language of a single word based purely on its characters.
131
+ * Useful for classifying individual profanity dictionary entries.
132
+ *
133
+ * @param word - A single word to classify
134
+ * @returns Array of language codes the word's characters belong to, sorted by
135
+ * character count (most characters → first). Empty if purely basic Latin.
136
+ *
137
+ * @example
138
+ * ```typescript
139
+ * classifyWordScript("Scheiße") // → ["de"]
140
+ * classifyWordScript("くそ") // → ["ja"]
141
+ * classifyWordScript("fuck") // → [] (basic Latin, ambiguous)
142
+ * classifyWordScript("씨발") // → ["ko"]
143
+ * ```
144
+ */
145
+ export declare function classifyWordScript(word: string): LanguageCode[];
146
+ /** Per-language score (0–1) for a single word */
147
+ export type WordLanguageScores = Partial<Record<LanguageCode, number>>;
148
+ /**
149
+ * Score a single word against ALL languages (0–1 each).
150
+ *
151
+ * Combines four signals:
152
+ * 1. **Script** (weight 1.0) — Unicode chars belonging to a language's script.
153
+ * 2. **Trie** (weight 0.8) — vocabulary match via per-language tries.
154
+ * 3. **ELD n-grams** (weight 0.6) — corpus-trained n-gram model per word.
155
+ * 4. **High-signal suffix/prefix** — accent-bearing patterns (0.3+ weight).
156
+ *
157
+ * @param word - A single word to score
158
+ * @param eldPenaltyFactor - Multiplier (0–1) to deflate ELD n-gram contributions.
159
+ * 1.0 = full ELD trust (default), 0.0 = ignore ELD entirely.
160
+ * @returns Map of language → score (only includes languages with score > 0)
161
+ */
162
+ export declare function scoreWord(word: string, eldPenaltyFactor?: number): WordLanguageScores;