allprofanity 2.1.0 → 2.1.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.
package/README.md CHANGED
@@ -380,6 +380,13 @@ A: Yes! AllProfanity is universal.
380
380
 
381
381
  ---
382
382
 
383
+ ## Middleware Examples
384
+
385
+ **Looking for Express.js/Node.js middleware to use AllProfanity in your API or chat app?**
386
+ **Check the [`examples/`](./examples/) folder for ready-to-copy middleware and integration samples.**
387
+
388
+ ---
389
+
383
390
  ## Roadmap
384
391
 
385
392
  - More language packs (Arabic, Russian, etc.)
@@ -399,4 +406,4 @@ MIT — See [LICENSE](https://github.com/ayush-jadaun/allprofanity/blob/main/LIC
399
406
 
400
407
  We welcome new language packs, detection improvements, and docs!
401
408
  To add a new language, create a file in `src/languages/` and export a string array.
402
- Open a PR or issue for bugs, features, or suggestions.
409
+ Open a PR or issue for bugs, features, or suggestions.
package/dist/index.d.ts CHANGED
@@ -7,15 +7,27 @@ export { default as bengaliBadWords } from "./languages/bengali-words.js";
7
7
  export { default as tamilBadWords } from "./languages/tamil-words.js";
8
8
  export { default as teluguBadWords } from "./languages/telugu-words.js";
9
9
  /**
10
- * Logging interface for the library
10
+ * Logger interface for the library.
11
11
  */
12
12
  export interface Logger {
13
+ /**
14
+ * Log informational messages.
15
+ * @param message - The message to log.
16
+ */
13
17
  info(message: string): void;
18
+ /**
19
+ * Log warning messages.
20
+ * @param message - The message to log.
21
+ */
14
22
  warn(message: string): void;
23
+ /**
24
+ * Log error messages.
25
+ * @param message - The message to log.
26
+ */
15
27
  error(message: string): void;
16
28
  }
17
29
  /**
18
- * Configuration options for AllProfanity
30
+ * Configuration options for AllProfanity.
19
31
  */
20
32
  export interface AllProfanityOptions {
21
33
  languages?: string[];
@@ -29,7 +41,7 @@ export interface AllProfanityOptions {
29
41
  logger?: Logger;
30
42
  }
31
43
  /**
32
- * Severity levels for profanity detection
44
+ * Severity levels for profanity detection.
33
45
  */
34
46
  export declare enum ProfanitySeverity {
35
47
  MILD = 1,
@@ -38,7 +50,7 @@ export declare enum ProfanitySeverity {
38
50
  EXTREME = 4
39
51
  }
40
52
  /**
41
- * Detection result interface
53
+ * Detection result for profanity detection.
42
54
  */
43
55
  export interface ProfanityDetectionResult {
44
56
  hasProfanity: boolean;
@@ -52,8 +64,7 @@ export interface ProfanityDetectionResult {
52
64
  }>;
53
65
  }
54
66
  /**
55
- * Advanced AllProfanity - Fixed profanity filter with multi-language support
56
- * Addresses all critical issues from the original implementation
67
+ * Main class for profanity detection and filtering.
57
68
  */
58
69
  export declare class AllProfanity {
59
70
  private readonly profanityTrie;
@@ -68,127 +79,189 @@ export declare class AllProfanity {
68
79
  private readonly availableLanguages;
69
80
  private readonly leetMappings;
70
81
  private readonly dynamicWords;
82
+ /**
83
+ * Create an AllProfanity instance.
84
+ * @param options - Profanity filter configuration options.
85
+ */
71
86
  constructor(options?: AllProfanityOptions);
72
87
  /**
73
- * Normalize text by converting leet speak to regular characters.
88
+ * Normalize leet speak to regular characters.
89
+ * @param text - The input text.
90
+ * @returns Normalized text.
74
91
  */
75
92
  private normalizeLeetSpeak;
76
93
  /**
77
- * Properly escape regex special characters
94
+ * Escape regex special characters in a string.
95
+ * @param str - The string to escape.
96
+ * @returns The escaped string.
78
97
  */
79
98
  private escapeRegex;
80
99
  /**
81
- * Check if a position has word boundaries (for strict mode)
100
+ * Check if a match is bounded by word boundaries (strict mode).
101
+ * @param text - The text.
102
+ * @param start - Start index.
103
+ * @param end - End index.
104
+ * @returns True if match is at word boundaries, false otherwise.
82
105
  */
83
106
  private hasWordBoundaries;
84
107
  /**
85
- * Helper method to verify whole-word matching.
108
+ * Determine if a match is a whole word.
109
+ * @param text - The text.
110
+ * @param start - Start index.
111
+ * @param end - End index.
112
+ * @returns True if whole word, false otherwise.
86
113
  */
87
114
  private isWholeWord;
88
115
  /**
89
- * Check if a match is whitelisted (by actual matched substring and dictionary word)
116
+ * Check if a match is whitelisted.
117
+ * @param word - Word from dictionary.
118
+ * @param matchedText - Actual matched text.
119
+ * @returns True if whitelisted, false otherwise.
90
120
  */
91
121
  private isWhitelistedMatch;
92
122
  /**
93
- * Remove overlapping matches, keep only the longest at each start position
123
+ * Remove overlapping matches, keeping only the longest at each start position.
124
+ * @param matches - Array of match results.
125
+ * @returns Deduplicated matches.
94
126
  */
95
127
  private deduplicateMatches;
96
128
  /**
97
- * Advanced profanity detection using efficient trie-based algorithm
129
+ * Detect profanity in a given text.
130
+ * @param text - The text to check.
131
+ * @returns Profanity detection result.
98
132
  */
99
133
  detect(text: string): ProfanityDetectionResult;
100
134
  /**
101
135
  * Main matching function, with whole-word logic.
136
+ * @param searchText - The normalized text to search.
137
+ * @param originalText - The original text.
138
+ * @param matches - Array to collect matches.
102
139
  */
103
140
  private findMatches;
104
141
  /**
105
- * Generate cleaned text by replacing profane words (non-overlapping only)
142
+ * Generate cleaned text by replacing profane words.
143
+ * @param originalText - The original text.
144
+ * @param matches - Array of matches.
145
+ * @returns Cleaned text.
106
146
  */
107
147
  private generateCleanedText;
108
148
  /**
109
- * Simple boolean check for profanity
149
+ * Check if a string contains profanity.
150
+ * @param text - The text to check.
151
+ * @returns True if profanity is found, false otherwise.
110
152
  */
111
153
  check(text: string): boolean;
112
154
  /**
113
- * Clean text with custom placeholder
155
+ * Clean text with a custom placeholder.
156
+ * @param text - The text to clean.
157
+ * @param placeholder - The placeholder to use.
158
+ * @returns Cleaned text.
114
159
  */
115
160
  clean(text: string, placeholder?: string): string;
116
161
  /**
117
- * Clean text by replacing each profane word with a single placeholder (word-level)
162
+ * Clean text by replacing each profane word with a single placeholder (word-level).
163
+ * @param text - The text to clean.
164
+ * @param placeholder - The placeholder to use.
165
+ * @returns Word-level cleaned text.
118
166
  */
119
167
  cleanWithPlaceholder(text: string, placeholder?: string): string;
120
168
  /**
121
- * Add word(s) to the profanity list
169
+ * Add word(s) to the profanity filter.
170
+ * @param word - Word or array of words to add.
122
171
  */
123
172
  add(word: string | string[]): void;
124
173
  /**
125
- * Remove word(s) from the profanity list
174
+ * Remove word(s) from the profanity filter.
175
+ * @param word - Word or array of words to remove.
126
176
  */
127
177
  remove(word: string | string[]): void;
128
178
  /**
129
- * Add words to whitelist
179
+ * Add words to the whitelist.
180
+ * @param words - Words to whitelist.
130
181
  */
131
182
  addToWhitelist(words: string[]): void;
132
183
  /**
133
- * Remove words from whitelist
184
+ * Remove words from the whitelist.
185
+ * @param words - Words to remove from whitelist.
134
186
  */
135
187
  removeFromWhitelist(words: string[]): void;
136
188
  /**
137
- * Helper for whitelist checking with correct normalization
189
+ * Check if a word is whitelisted.
190
+ * @param word - The word to check.
191
+ * @returns True if whitelisted, false otherwise.
138
192
  */
139
193
  private isWhitelisted;
140
194
  /**
141
- * Load a built-in language dictionary
195
+ * Load a built-in language dictionary.
196
+ * @param language - The language key.
197
+ * @returns True if loaded, false otherwise.
142
198
  */
143
199
  loadLanguage(language: string): boolean;
144
200
  /**
145
- * Load multiple languages at once
201
+ * Load multiple language dictionaries.
202
+ * @param languages - Array of languages to load.
203
+ * @returns Number of successfully loaded languages.
146
204
  */
147
205
  loadLanguages(languages: string[]): number;
148
206
  /**
149
- * Load all Indian languages
207
+ * Load all supported Indian languages.
208
+ * @returns Number of loaded Indian languages.
150
209
  */
151
210
  loadIndianLanguages(): number;
152
211
  /**
153
- * Load a custom dictionary
212
+ * Load a custom dictionary.
213
+ * @param name - Name of the dictionary.
214
+ * @param words - Words to add.
154
215
  */
155
216
  loadCustomDictionary(name: string, words: string[]): void;
156
217
  /**
157
- * Add a single word to the trie structure
218
+ * Add a single word to the trie.
219
+ * @param word - The word to add.
220
+ * @returns True if added, false otherwise.
158
221
  */
159
222
  private addWordToTrie;
160
223
  /**
161
- * Remove overlapping matches, keep only the longest at each start position
224
+ * Calculate severity from matches.
225
+ * @param matches - Array of matches.
226
+ * @returns Severity level.
162
227
  */
163
228
  private calculateSeverity;
164
229
  /**
165
- * Clear all loaded dictionaries
230
+ * Clear all loaded dictionaries and dynamic words.
166
231
  */
167
232
  clearList(): void;
168
233
  /**
169
- * Set placeholder character
234
+ * Set the placeholder character for filtered words.
235
+ * @param placeholder - The placeholder character.
170
236
  */
171
237
  setPlaceholder(placeholder: string): void;
172
238
  /**
173
- * Get loaded languages
239
+ * Get the list of loaded languages.
240
+ * @returns Array of loaded language keys.
174
241
  */
175
242
  getLoadedLanguages(): string[];
176
243
  /**
177
- * Get available languages
244
+ * Get the list of available built-in languages.
245
+ * @returns Array of available language keys.
178
246
  */
179
247
  getAvailableLanguages(): string[];
180
248
  /**
181
- * Get current configuration
249
+ * Get the current configuration of the profanity filter.
250
+ * @returns Partial configuration object.
182
251
  */
183
252
  getConfig(): Partial<AllProfanityOptions>;
184
253
  /**
185
- * Rebuilds the profanity trie from loaded language dictionaries and dynamic words.
254
+ * Rebuild the profanity trie from loaded dictionaries and dynamic words.
186
255
  */
187
256
  private rebuildTrie;
188
257
  /**
189
- * Update configuration. Rebuild trie if needed.
258
+ * Update configuration options for the profanity filter.
259
+ * @param options - Partial configuration object.
190
260
  */
191
261
  updateConfig(options: Partial<AllProfanityOptions>): void;
192
262
  }
263
+ /**
264
+ * Singleton instance of AllProfanity with default configuration.
265
+ */
193
266
  declare const allProfanity: AllProfanity;
194
267
  export default allProfanity;
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- // Import language dictionaries (assuming these exist)
1
+ // Language dictionaries imports
2
2
  import englishBadWords from "./languages/english-words.js";
3
3
  import hindiBadWords from "./languages/hindi-words.js";
4
4
  import frenchBadWords from "./languages/french-words.js";
@@ -17,7 +17,7 @@ export { default as bengaliBadWords } from "./languages/bengali-words.js";
17
17
  export { default as tamilBadWords } from "./languages/tamil-words.js";
18
18
  export { default as teluguBadWords } from "./languages/telugu-words.js";
19
19
  /**
20
- * Default console logger implementation
20
+ * Default console logger implementation.
21
21
  */
22
22
  class ConsoleLogger {
23
23
  info(message) {
@@ -31,7 +31,7 @@ class ConsoleLogger {
31
31
  }
32
32
  }
33
33
  /**
34
- * Severity levels for profanity detection
34
+ * Severity levels for profanity detection.
35
35
  */
36
36
  export var ProfanitySeverity;
37
37
  (function (ProfanitySeverity) {
@@ -41,7 +41,11 @@ export var ProfanitySeverity;
41
41
  ProfanitySeverity[ProfanitySeverity["EXTREME"] = 4] = "EXTREME";
42
42
  })(ProfanitySeverity = ProfanitySeverity || (ProfanitySeverity = {}));
43
43
  /**
44
- * Validates input parameters
44
+ * Validate a string parameter.
45
+ * @param input - The input to validate.
46
+ * @param paramName - The name of the parameter.
47
+ * @returns The validated string.
48
+ * @throws {TypeError} If input is not a string.
45
49
  */
46
50
  function validateString(input, paramName) {
47
51
  if (typeof input !== "string") {
@@ -49,6 +53,13 @@ function validateString(input, paramName) {
49
53
  }
50
54
  return input;
51
55
  }
56
+ /**
57
+ * Validate a string array parameter.
58
+ * @param input - The input to validate.
59
+ * @param paramName - The name of the parameter.
60
+ * @returns The validated string array.
61
+ * @throws {TypeError} If input is not an array.
62
+ */
52
63
  function validateStringArray(input, paramName) {
53
64
  if (!Array.isArray(input)) {
54
65
  throw new TypeError(`${paramName} must be an array`);
@@ -62,7 +73,7 @@ function validateStringArray(input, paramName) {
62
73
  });
63
74
  }
64
75
  /**
65
- * Efficient Trie data structure for fast string matching
76
+ * Trie node for efficient string matching.
66
77
  */
67
78
  class TrieNode {
68
79
  constructor() {
@@ -71,7 +82,8 @@ class TrieNode {
71
82
  this.word = "";
72
83
  }
73
84
  /**
74
- * Add a word to the trie
85
+ * Add a word to the trie.
86
+ * @param word - The word to add.
75
87
  */
76
88
  addWord(word) {
77
89
  let current = this;
@@ -88,7 +100,9 @@ class TrieNode {
88
100
  current.word = word;
89
101
  }
90
102
  /**
91
- * Remove a word from the trie
103
+ * Remove a word from the trie.
104
+ * @param word - The word to remove.
105
+ * @returns True if the word was removed, false otherwise.
92
106
  */
93
107
  removeWord(word) {
94
108
  return this.removeHelper(word, 0);
@@ -112,7 +126,11 @@ class TrieNode {
112
126
  return false;
113
127
  }
114
128
  /**
115
- * Find all matches starting at a given position
129
+ * Find all matches starting at a given position.
130
+ * @param text - The text to search.
131
+ * @param startPos - The start position.
132
+ * @param allowPartial - Whether to allow partial word matches.
133
+ * @returns Array of matches.
116
134
  */
117
135
  findMatches(text, startPos, allowPartial) {
118
136
  const matches = [];
@@ -146,7 +164,7 @@ class TrieNode {
146
164
  return matches;
147
165
  }
148
166
  /**
149
- * Clear all words from the trie
167
+ * Clear all words from the trie.
150
168
  */
151
169
  clear() {
152
170
  this.children.clear();
@@ -155,22 +173,23 @@ class TrieNode {
155
173
  }
156
174
  }
157
175
  /**
158
- * Advanced AllProfanity - Fixed profanity filter with multi-language support
159
- * Addresses all critical issues from the original implementation
176
+ * Main class for profanity detection and filtering.
160
177
  */
161
178
  export class AllProfanity {
179
+ /**
180
+ * Create an AllProfanity instance.
181
+ * @param options - Profanity filter configuration options.
182
+ */
162
183
  constructor(options) {
163
184
  var _a, _b, _c, _d, _e;
164
185
  this.profanityTrie = new TrieNode();
165
186
  this.whitelistSet = new Set();
166
187
  this.loadedLanguages = new Set();
167
- // Configuration
168
188
  this.defaultPlaceholder = "*";
169
189
  this.enableLeetSpeak = true;
170
190
  this.caseSensitive = false;
171
191
  this.strictMode = false;
172
192
  this.detectPartialWords = false;
173
- // Available language dictionaries
174
193
  this.availableLanguages = {
175
194
  english: englishBadWords || [],
176
195
  hindi: hindiBadWords || [],
@@ -181,7 +200,6 @@ export class AllProfanity {
181
200
  tamil: tamilBadWords || [],
182
201
  telugu: teluguBadWords || [],
183
202
  };
184
- // Fixed leet speak mappings
185
203
  this.leetMappings = new Map([
186
204
  ["@", "a"],
187
205
  ["^", "a"],
@@ -240,10 +258,8 @@ export class AllProfanity {
240
258
  ["2", "z"],
241
259
  ["7_", "z"],
242
260
  ]);
243
- // Dynamic words added at runtime
244
261
  this.dynamicWords = new Set();
245
262
  this.logger = (options === null || options === void 0 ? void 0 : options.logger) || new ConsoleLogger();
246
- // Validate and set configuration
247
263
  if ((options === null || options === void 0 ? void 0 : options.defaultPlaceholder) !== undefined) {
248
264
  this.setPlaceholder(options.defaultPlaceholder);
249
265
  }
@@ -251,18 +267,14 @@ export class AllProfanity {
251
267
  this.caseSensitive = (_b = options === null || options === void 0 ? void 0 : options.caseSensitive) !== null && _b !== void 0 ? _b : false;
252
268
  this.strictMode = (_c = options === null || options === void 0 ? void 0 : options.strictMode) !== null && _c !== void 0 ? _c : false;
253
269
  this.detectPartialWords = (_d = options === null || options === void 0 ? void 0 : options.detectPartialWords) !== null && _d !== void 0 ? _d : false;
254
- // Load whitelist
255
270
  if (options === null || options === void 0 ? void 0 : options.whitelistWords) {
256
271
  this.addToWhitelist(options.whitelistWords);
257
272
  }
258
- // Load default languages
259
273
  this.loadLanguage("english");
260
274
  this.loadLanguage("hindi");
261
- // Load additional languages
262
275
  if ((_e = options === null || options === void 0 ? void 0 : options.languages) === null || _e === void 0 ? void 0 : _e.length) {
263
276
  options.languages.forEach((lang) => this.loadLanguage(lang));
264
277
  }
265
- // Load custom dictionaries
266
278
  if (options === null || options === void 0 ? void 0 : options.customDictionaries) {
267
279
  Object.entries(options.customDictionaries).forEach(([name, words]) => {
268
280
  this.loadCustomDictionary(name, words);
@@ -270,7 +282,9 @@ export class AllProfanity {
270
282
  }
271
283
  }
272
284
  /**
273
- * Normalize text by converting leet speak to regular characters.
285
+ * Normalize leet speak to regular characters.
286
+ * @param text - The input text.
287
+ * @returns Normalized text.
274
288
  */
275
289
  normalizeLeetSpeak(text) {
276
290
  if (!this.enableLeetSpeak)
@@ -284,13 +298,19 @@ export class AllProfanity {
284
298
  return normalized;
285
299
  }
286
300
  /**
287
- * Properly escape regex special characters
301
+ * Escape regex special characters in a string.
302
+ * @param str - The string to escape.
303
+ * @returns The escaped string.
288
304
  */
289
305
  escapeRegex(str) {
290
306
  return str.replace(/[\\^$.*+?()[\]{}|]/g, "\\$&");
291
307
  }
292
308
  /**
293
- * Check if a position has word boundaries (for strict mode)
309
+ * Check if a match is bounded by word boundaries (strict mode).
310
+ * @param text - The text.
311
+ * @param start - Start index.
312
+ * @param end - End index.
313
+ * @returns True if match is at word boundaries, false otherwise.
294
314
  */
295
315
  hasWordBoundaries(text, start, end) {
296
316
  if (!this.strictMode)
@@ -301,27 +321,24 @@ export class AllProfanity {
301
321
  return (wordBoundaryRegex.test(beforeChar) && wordBoundaryRegex.test(afterChar));
302
322
  }
303
323
  /**
304
- * Helper method to verify whole-word matching.
324
+ * Determine if a match is a whole word.
325
+ * @param text - The text.
326
+ * @param start - Start index.
327
+ * @param end - End index.
328
+ * @returns True if whole word, false otherwise.
305
329
  */
306
330
  isWholeWord(text, start, end) {
307
- // Check left boundary
308
- if (start === 0) {
309
- // ok
310
- }
311
- else if (/\w/.test(text[start - 1])) {
331
+ if (start !== 0 && /\w/.test(text[start - 1]))
312
332
  return false;
313
- }
314
- // Check right boundary
315
- if (end === text.length) {
316
- // ok
317
- }
318
- else if (/\w/.test(text[end])) {
333
+ if (end !== text.length && /\w/.test(text[end]))
319
334
  return false;
320
- }
321
335
  return true;
322
336
  }
323
337
  /**
324
- * Check if a match is whitelisted (by actual matched substring and dictionary word)
338
+ * Check if a match is whitelisted.
339
+ * @param word - Word from dictionary.
340
+ * @param matchedText - Actual matched text.
341
+ * @returns True if whitelisted, false otherwise.
325
342
  */
326
343
  isWhitelistedMatch(word, matchedText) {
327
344
  if (this.caseSensitive) {
@@ -333,7 +350,9 @@ export class AllProfanity {
333
350
  }
334
351
  }
335
352
  /**
336
- * Remove overlapping matches, keep only the longest at each start position
353
+ * Remove overlapping matches, keeping only the longest at each start position.
354
+ * @param matches - Array of match results.
355
+ * @returns Deduplicated matches.
337
356
  */
338
357
  deduplicateMatches(matches) {
339
358
  const sorted = [...matches].sort((a, b) => {
@@ -352,7 +371,9 @@ export class AllProfanity {
352
371
  return result;
353
372
  }
354
373
  /**
355
- * Advanced profanity detection using efficient trie-based algorithm
374
+ * Detect profanity in a given text.
375
+ * @param text - The text to check.
376
+ * @returns Profanity detection result.
356
377
  */
357
378
  detect(text) {
358
379
  const validatedText = validateString(text, "text");
@@ -370,7 +391,6 @@ export class AllProfanity {
370
391
  ? validatedText
371
392
  : validatedText.toLowerCase();
372
393
  this.findMatches(normalizedText, validatedText, matches);
373
- // Leet speak detection (normalize and search, map back to original)
374
394
  if (this.enableLeetSpeak) {
375
395
  const leetNormalized = this.normalizeLeetSpeak(normalizedText);
376
396
  if (leetNormalized !== normalizedText) {
@@ -395,6 +415,9 @@ export class AllProfanity {
395
415
  }
396
416
  /**
397
417
  * Main matching function, with whole-word logic.
418
+ * @param searchText - The normalized text to search.
419
+ * @param originalText - The original text.
420
+ * @param matches - Array to collect matches.
398
421
  */
399
422
  findMatches(searchText, originalText, matches) {
400
423
  for (let i = 0; i < searchText.length; i++) {
@@ -402,12 +425,10 @@ export class AllProfanity {
402
425
  for (const match of matchResults) {
403
426
  const start = i + match.start;
404
427
  const end = i + match.end;
405
- // Only match whole words if !detectPartialWords
406
428
  if (!this.detectPartialWords &&
407
429
  !this.isWholeWord(originalText, start, end)) {
408
430
  continue;
409
431
  }
410
- // Use actual matched text for whitelist check
411
432
  const matchedText = originalText.substring(start, end);
412
433
  if (this.isWhitelistedMatch(match.word, matchedText)) {
413
434
  continue;
@@ -424,13 +445,15 @@ export class AllProfanity {
424
445
  }
425
446
  }
426
447
  /**
427
- * Generate cleaned text by replacing profane words (non-overlapping only)
448
+ * Generate cleaned text by replacing profane words.
449
+ * @param originalText - The original text.
450
+ * @param matches - Array of matches.
451
+ * @returns Cleaned text.
428
452
  */
429
453
  generateCleanedText(originalText, matches) {
430
454
  if (matches.length === 0)
431
455
  return originalText;
432
456
  let result = originalText;
433
- // Process matches in reverse order to maintain indices and avoid overlap
434
457
  const sortedMatches = [...this.deduplicateMatches(matches)].sort((a, b) => b.start - a.start);
435
458
  for (const match of sortedMatches) {
436
459
  const replacement = this.defaultPlaceholder.repeat(match.originalWord.length);
@@ -442,20 +465,24 @@ export class AllProfanity {
442
465
  return result;
443
466
  }
444
467
  /**
445
- * Simple boolean check for profanity
468
+ * Check if a string contains profanity.
469
+ * @param text - The text to check.
470
+ * @returns True if profanity is found, false otherwise.
446
471
  */
447
472
  check(text) {
448
473
  return this.detect(text).hasProfanity;
449
474
  }
450
475
  /**
451
- * Clean text with custom placeholder
476
+ * Clean text with a custom placeholder.
477
+ * @param text - The text to clean.
478
+ * @param placeholder - The placeholder to use.
479
+ * @returns Cleaned text.
452
480
  */
453
481
  clean(text, placeholder) {
454
482
  const detection = this.detect(text);
455
483
  if (!placeholder || placeholder === this.defaultPlaceholder) {
456
484
  return detection.cleanedText;
457
485
  }
458
- // Use custom placeholder
459
486
  let result = text;
460
487
  const sortedPositions = [
461
488
  ...this.deduplicateMatches(detection.positions.map((p) => ({
@@ -476,14 +503,16 @@ export class AllProfanity {
476
503
  return result;
477
504
  }
478
505
  /**
479
- * Clean text by replacing each profane word with a single placeholder (word-level)
506
+ * Clean text by replacing each profane word with a single placeholder (word-level).
507
+ * @param text - The text to clean.
508
+ * @param placeholder - The placeholder to use.
509
+ * @returns Word-level cleaned text.
480
510
  */
481
511
  cleanWithPlaceholder(text, placeholder = "***") {
482
512
  const detection = this.detect(text);
483
513
  if (detection.positions.length === 0)
484
514
  return text;
485
515
  let result = text;
486
- // Sort matches so later matches don't affect earlier ones
487
516
  const sortedPositions = [
488
517
  ...this.deduplicateMatches(detection.positions.map((p) => ({
489
518
  word: p.word,
@@ -493,7 +522,6 @@ export class AllProfanity {
493
522
  }))),
494
523
  ].sort((a, b) => b.start - a.start);
495
524
  for (const pos of sortedPositions) {
496
- // Only replace whole words!
497
525
  if (!this.isWholeWord(result, pos.start, pos.end))
498
526
  continue;
499
527
  result =
@@ -504,7 +532,8 @@ export class AllProfanity {
504
532
  return result;
505
533
  }
506
534
  /**
507
- * Add word(s) to the profanity list
535
+ * Add word(s) to the profanity filter.
536
+ * @param word - Word or array of words to add.
508
537
  */
509
538
  add(word) {
510
539
  const words = Array.isArray(word) ? word : [word];
@@ -515,7 +544,8 @@ export class AllProfanity {
515
544
  }
516
545
  }
517
546
  /**
518
- * Remove word(s) from the profanity list
547
+ * Remove word(s) from the profanity filter.
548
+ * @param word - Word or array of words to remove.
519
549
  */
520
550
  remove(word) {
521
551
  const words = Array.isArray(word) ? word : [word];
@@ -527,7 +557,8 @@ export class AllProfanity {
527
557
  }
528
558
  }
529
559
  /**
530
- * Add words to whitelist
560
+ * Add words to the whitelist.
561
+ * @param words - Words to whitelist.
531
562
  */
532
563
  addToWhitelist(words) {
533
564
  const validatedWords = validateStringArray(words, "whitelist words");
@@ -537,7 +568,8 @@ export class AllProfanity {
537
568
  }
538
569
  }
539
570
  /**
540
- * Remove words from whitelist
571
+ * Remove words from the whitelist.
572
+ * @param words - Words to remove from whitelist.
541
573
  */
542
574
  removeFromWhitelist(words) {
543
575
  const validatedWords = validateStringArray(words, "whitelist words");
@@ -547,14 +579,18 @@ export class AllProfanity {
547
579
  }
548
580
  }
549
581
  /**
550
- * Helper for whitelist checking with correct normalization
582
+ * Check if a word is whitelisted.
583
+ * @param word - The word to check.
584
+ * @returns True if whitelisted, false otherwise.
551
585
  */
552
586
  isWhitelisted(word) {
553
587
  const normalizedWord = this.caseSensitive ? word : word.toLowerCase();
554
588
  return this.whitelistSet.has(normalizedWord);
555
589
  }
556
590
  /**
557
- * Load a built-in language dictionary
591
+ * Load a built-in language dictionary.
592
+ * @param language - The language key.
593
+ * @returns True if loaded, false otherwise.
558
594
  */
559
595
  loadLanguage(language) {
560
596
  if (!language || typeof language !== "string") {
@@ -587,7 +623,9 @@ export class AllProfanity {
587
623
  }
588
624
  }
589
625
  /**
590
- * Load multiple languages at once
626
+ * Load multiple language dictionaries.
627
+ * @param languages - Array of languages to load.
628
+ * @returns Number of successfully loaded languages.
591
629
  */
592
630
  loadLanguages(languages) {
593
631
  const validatedLanguages = validateStringArray(languages, "languages");
@@ -596,14 +634,17 @@ export class AllProfanity {
596
634
  }, 0);
597
635
  }
598
636
  /**
599
- * Load all Indian languages
637
+ * Load all supported Indian languages.
638
+ * @returns Number of loaded Indian languages.
600
639
  */
601
640
  loadIndianLanguages() {
602
641
  const indianLanguages = ["hindi", "bengali", "tamil", "telugu"];
603
642
  return this.loadLanguages(indianLanguages);
604
643
  }
605
644
  /**
606
- * Load a custom dictionary
645
+ * Load a custom dictionary.
646
+ * @param name - Name of the dictionary.
647
+ * @param words - Words to add.
607
648
  */
608
649
  loadCustomDictionary(name, words) {
609
650
  validateString(name, "dictionary name");
@@ -619,7 +660,6 @@ export class AllProfanity {
619
660
  addedCount++;
620
661
  }
621
662
  }
622
- // Store for future reference
623
663
  this.availableLanguages[name.toLowerCase()] = validatedWords;
624
664
  this.loadedLanguages.add(name.toLowerCase());
625
665
  this.logger.info(`Loaded ${addedCount} words from custom dictionary '${name}'`);
@@ -629,7 +669,9 @@ export class AllProfanity {
629
669
  }
630
670
  }
631
671
  /**
632
- * Add a single word to the trie structure
672
+ * Add a single word to the trie.
673
+ * @param word - The word to add.
674
+ * @returns True if added, false otherwise.
633
675
  */
634
676
  addWordToTrie(word) {
635
677
  if (!word || typeof word !== "string" || word.trim().length === 0) {
@@ -638,16 +680,16 @@ export class AllProfanity {
638
680
  const normalizedWord = this.caseSensitive
639
681
  ? word.trim()
640
682
  : word.trim().toLowerCase();
641
- // Skip if whitelisted
642
683
  if (this.isWhitelisted(normalizedWord)) {
643
684
  return false;
644
685
  }
645
- // Add to trie
646
686
  this.profanityTrie.addWord(normalizedWord);
647
687
  return true;
648
688
  }
649
689
  /**
650
- * Remove overlapping matches, keep only the longest at each start position
690
+ * Calculate severity from matches.
691
+ * @param matches - Array of matches.
692
+ * @returns Severity level.
651
693
  */
652
694
  calculateSeverity(matches) {
653
695
  if (matches.length === 0)
@@ -663,7 +705,7 @@ export class AllProfanity {
663
705
  return ProfanitySeverity.MILD;
664
706
  }
665
707
  /**
666
- * Clear all loaded dictionaries
708
+ * Clear all loaded dictionaries and dynamic words.
667
709
  */
668
710
  clearList() {
669
711
  this.profanityTrie.clear();
@@ -671,7 +713,8 @@ export class AllProfanity {
671
713
  this.dynamicWords.clear();
672
714
  }
673
715
  /**
674
- * Set placeholder character
716
+ * Set the placeholder character for filtered words.
717
+ * @param placeholder - The placeholder character.
675
718
  */
676
719
  setPlaceholder(placeholder) {
677
720
  validateString(placeholder, "placeholder");
@@ -681,19 +724,22 @@ export class AllProfanity {
681
724
  this.defaultPlaceholder = placeholder.charAt(0);
682
725
  }
683
726
  /**
684
- * Get loaded languages
727
+ * Get the list of loaded languages.
728
+ * @returns Array of loaded language keys.
685
729
  */
686
730
  getLoadedLanguages() {
687
731
  return Array.from(this.loadedLanguages);
688
732
  }
689
733
  /**
690
- * Get available languages
734
+ * Get the list of available built-in languages.
735
+ * @returns Array of available language keys.
691
736
  */
692
737
  getAvailableLanguages() {
693
738
  return Object.keys(this.availableLanguages);
694
739
  }
695
740
  /**
696
- * Get current configuration
741
+ * Get the current configuration of the profanity filter.
742
+ * @returns Partial configuration object.
697
743
  */
698
744
  getConfig() {
699
745
  return {
@@ -707,24 +753,23 @@ export class AllProfanity {
707
753
  };
708
754
  }
709
755
  /**
710
- * Rebuilds the profanity trie from loaded language dictionaries and dynamic words.
756
+ * Rebuild the profanity trie from loaded dictionaries and dynamic words.
711
757
  */
712
758
  rebuildTrie() {
713
759
  this.profanityTrie.clear();
714
- // Re-add all loaded language words
715
760
  for (const lang of this.loadedLanguages) {
716
761
  const words = this.availableLanguages[lang] || [];
717
762
  for (const word of words) {
718
763
  this.addWordToTrie(word);
719
764
  }
720
765
  }
721
- // Re-add dynamic words
722
766
  for (const word of this.dynamicWords) {
723
767
  this.addWordToTrie(word);
724
768
  }
725
769
  }
726
770
  /**
727
- * Update configuration. Rebuild trie if needed.
771
+ * Update configuration options for the profanity filter.
772
+ * @param options - Partial configuration object.
728
773
  */
729
774
  updateConfig(options) {
730
775
  let rebuildNeeded = false;
@@ -753,7 +798,9 @@ export class AllProfanity {
753
798
  }
754
799
  }
755
800
  }
756
- // Create and export a singleton instance
801
+ /**
802
+ * Singleton instance of AllProfanity with default configuration.
803
+ */
757
804
  const allProfanity = new AllProfanity();
758
805
  export default allProfanity;
759
806
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,cAAc,MAAM,6BAA6B,CAAC;AACzD,OAAO,cAAc,MAAM,6BAA6B,CAAC;AACzD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,cAAc,MAAM,6BAA6B,CAAC;AAEzD,iDAAiD;AACjD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAuBxE;;GAEG;AACH,MAAM,aAAa;IACjB,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,IAAI,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,OAAO,CAAC,KAAK,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC;CACF;AAiBD;;GAEG;AACH,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,yDAAQ,CAAA;IACR,iEAAY,CAAA;IACZ,6DAAU,CAAA;IACV,+DAAW,CAAA;AACb,CAAC,EALW,iBAAiB,GAAjB,iBAAiB,KAAjB,iBAAiB,QAK5B;AAuBD;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,KAAc,EAAE,SAAiB;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,MAAM,IAAI,SAAS,CAAC,GAAG,SAAS,0BAA0B,OAAO,KAAK,EAAE,CAAC,CAAC;KAC3E;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,KAAc,EAAE,SAAiB;IAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACzB,MAAM,IAAI,SAAS,CAAC,GAAG,SAAS,mBAAmB,CAAC,CAAC;KACtD;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE;QAC3C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,OAAO,CAAC,IAAI,CAAC,+BAA+B,SAAS,KAAK,IAAI,EAAE,CAAC,CAAC;YAClE,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,QAAQ;IAAd;QACU,aAAQ,GAA0B,IAAI,GAAG,EAAE,CAAC;QAC5C,gBAAW,GAAY,KAAK,CAAC;QAC7B,SAAI,GAAW,EAAE,CAAC;IAyG5B,CAAC;IAvGC;;;OAGG;IACH,OAAO,CAAC,IAAY;QAClB,IAAI,OAAO,GAAa,IAAI,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAC;aAC5C;YACD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,QAAQ,EAAE;gBACZ,OAAO,GAAG,QAAQ,CAAC;aACpB;SACF;QACD,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;QAC3B,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;IAEO,YAAY,CAAC,IAAY,EAAE,KAAa;QAC9C,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,WAAW;gBAAE,OAAO,KAAK,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC;SACjC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAErC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAExB,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAE7D,IAAI,iBAAiB,EAAE;YACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;SACtD;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CACT,IAAY,EACZ,QAAgB,EAChB,YAAqB;QAErB,MAAM,OAAO,GAAwD,EAAE,CAAC;QACxE,IAAI,OAAO,GAAa,IAAI,CAAC;QAC7B,IAAI,GAAG,GAAG,QAAQ,CAAC;QAEnB,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;YACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACjD,IAAI,CAAC,QAAQ;gBAAE,MAAM;YACrB,OAAO,GAAG,QAAQ,CAAC;YACnB,GAAG,EAAE,CAAC;YAEN,IAAI,OAAO,CAAC,WAAW,EAAE;gBACvB,IAAI,CAAC,YAAY,EAAE;oBACjB,MAAM,SAAS,GAAG,QAAQ,CAAC;oBAC3B,MAAM,OAAO,GAAG,GAAG,CAAC;oBAEpB,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,KAAK,EAAE,SAAS,GAAG,QAAQ;wBAC3B,GAAG,EAAE,OAAO,GAAG,QAAQ;qBACxB,CAAC,CAAC;iBACJ;qBAAM;oBACL,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,KAAK,EAAE,CAAC;wBACR,GAAG,EAAE,GAAG,GAAG,QAAQ;qBACpB,CAAC,CAAC;iBACJ;aACF;SACF;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,YAAY;IAoFvB;;;OAGG;IACH,YAAY,OAA6B;;QAvFxB,kBAAa,GAAa,IAAI,QAAQ,EAAE,CAAC;QACzC,iBAAY,GAAgB,IAAI,GAAG,EAAE,CAAC;QACtC,oBAAe,GAAgB,IAAI,GAAG,EAAE,CAAC;QAGlD,uBAAkB,GAAW,GAAG,CAAC;QACjC,oBAAe,GAAY,IAAI,CAAC;QAChC,kBAAa,GAAY,KAAK,CAAC;QAC/B,eAAU,GAAY,KAAK,CAAC;QAC5B,uBAAkB,GAAY,KAAK,CAAC;QAE3B,uBAAkB,GAA6B;YAC9D,OAAO,EAAE,eAAe,IAAI,EAAE;YAC9B,KAAK,EAAE,aAAa,IAAI,EAAE;YAC1B,MAAM,EAAE,cAAc,IAAI,EAAE;YAC5B,MAAM,EAAE,cAAc,IAAI,EAAE;YAC5B,OAAO,EAAE,eAAe,IAAI,EAAE;YAC9B,OAAO,EAAE,eAAe,IAAI,EAAE;YAC9B,KAAK,EAAE,aAAa,IAAI,EAAE;YAC1B,MAAM,EAAE,cAAc,IAAI,EAAE;SAC7B,CAAC;QAEe,iBAAY,GAAwB,IAAI,GAAG,CAAC;YAC3D,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,IAAI,EAAE,GAAG,CAAC;YACX,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,IAAI,EAAE,GAAG,CAAC;YACX,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,IAAI,EAAE,GAAG,CAAC;YACX,CAAC,IAAI,EAAE,GAAG,CAAC;YACX,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,KAAK,EAAE,GAAG,CAAC;YACZ,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,IAAI,EAAE,GAAG,CAAC;YACX,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,IAAI,EAAE,GAAG,CAAC;YACX,CAAC,IAAI,EAAE,GAAG,CAAC;YACX,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,OAAO,EAAE,GAAG,CAAC;YACd,CAAC,QAAQ,EAAE,GAAG,CAAC;YACf,CAAC,MAAM,EAAE,GAAG,CAAC;YACb,CAAC,IAAI,EAAE,GAAG,CAAC;YACX,CAAC,IAAI,EAAE,GAAG,CAAC;YACX,CAAC,IAAI,EAAE,GAAG,CAAC;YACX,CAAC,IAAI,EAAE,GAAG,CAAC;YACX,CAAC,MAAM,EAAE,GAAG,CAAC;YACb,CAAC,KAAK,EAAE,GAAG,CAAC;YACZ,CAAC,IAAI,EAAE,GAAG,CAAC;YACX,CAAC,IAAI,EAAE,GAAG,CAAC;YACX,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,KAAK,EAAE,GAAG,CAAC;YACZ,CAAC,KAAK,EAAE,GAAG,CAAC;YACZ,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,KAAK,EAAE,GAAG,CAAC;YACZ,CAAC,IAAI,EAAE,GAAG,CAAC;YACX,CAAC,QAAQ,EAAE,GAAG,CAAC;YACf,CAAC,IAAI,EAAE,GAAG,CAAC;YACX,CAAC,IAAI,EAAE,GAAG,CAAC;YACX,CAAC,IAAI,EAAE,GAAG,CAAC;YACX,CAAC,IAAI,EAAE,GAAG,CAAC;YACX,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,IAAI,EAAE,GAAG,CAAC;SACZ,CAAC,CAAC;QAEc,iBAAY,GAAgB,IAAI,GAAG,EAAE,CAAC;QAOrD,IAAI,CAAC,MAAM,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,KAAI,IAAI,aAAa,EAAE,CAAC;QAErD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,MAAK,SAAS,EAAE;YAC7C,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;SACjD;QAED,IAAI,CAAC,eAAe,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,mCAAI,IAAI,CAAC;QACxD,IAAI,CAAC,aAAa,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,mCAAI,KAAK,CAAC;QACrD,IAAI,CAAC,UAAU,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,mCAAI,KAAK,CAAC;QAC/C,IAAI,CAAC,kBAAkB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,mCAAI,KAAK,CAAC;QAE/D,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,EAAE;YAC3B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SAC7C;QAED,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE3B,IAAI,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,0CAAE,MAAM,EAAE;YAC9B,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;SAC9D;QAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,EAAE;YAC/B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;gBACnE,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED;;;;OAIG;IACK,kBAAkB,CAAC,IAAY;QACrC,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC;QAEvC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CACjE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAClD,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,cAAc,EAAE;YAC3C,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACtD,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SAChD;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACK,WAAW,CAAC,GAAW;QAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;OAMG;IACK,iBAAiB,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW;QAChE,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAClC,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACrD,MAAM,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACtD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;QAC5C,OAAO,CACL,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CACxE,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,WAAW,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW;QAC1D,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5D,IAAI,GAAG,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACK,kBAAkB,CAAC,IAAY,EAAE,WAAmB;QAC1D,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;SAC1E;aAAM;YACL,OAAO,CACL,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACzC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CACjD,CAAC;SACH;IACH,CAAC;IAED;;;;OAIG;IACK,kBAAkB,CAAC,OAAsB;QAC/C,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;gBAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YAClD,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;QACjB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,IAAI,KAAK,CAAC,KAAK,IAAI,OAAO,EAAE;gBAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnB,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC;aACrB;SACF;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAY;QACjB,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,OAAO;gBACL,YAAY,EAAE,KAAK;gBACnB,aAAa,EAAE,EAAE;gBACjB,WAAW,EAAE,aAAa;gBAC1B,QAAQ,EAAE,iBAAiB,CAAC,IAAI;gBAChC,SAAS,EAAE,EAAE;aACd,CAAC;SACH;QACD,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa;YACvC,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QAEzD,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;YAC/D,IAAI,cAAc,KAAK,cAAc,EAAE;gBACrC,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;aAC1D;SACF;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAC3E,OAAO;YACL,YAAY,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC;YACtC,aAAa;YACb,WAAW;YACX,QAAQ;YACR,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnC,IAAI,EAAE,CAAC,CAAC,YAAY;gBACpB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,GAAG,EAAE,CAAC,CAAC,GAAG;aACX,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,WAAW,CACjB,UAAkB,EAClB,YAAoB,EACpB,OAAsB;QAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CACjD,UAAU,EACV,CAAC,EACD,IAAI,CAAC,kBAAkB,CACxB,CAAC;YACF,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE;gBAChC,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC9B,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;gBAC1B,IACE,CAAC,IAAI,CAAC,kBAAkB;oBACxB,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,EAC3C;oBACA,SAAS;iBACV;gBACD,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACvD,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;oBACpD,SAAS;iBACV;gBACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE;oBACpD,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,KAAK;wBACL,GAAG;wBACH,YAAY,EAAE,WAAW;qBAC1B,CAAC,CAAC;iBACJ;aACF;SACF;IACH,CAAC;IAED;;;;;OAKG;IACK,mBAAmB,CACzB,YAAoB,EACpB,OAAsB;QAEtB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,YAAY,CAAC;QAE9C,IAAI,MAAM,GAAG,YAAY,CAAC;QAC1B,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAC9D,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAC5B,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE;YACjC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAChD,KAAK,CAAC,YAAY,CAAC,MAAM,CAC1B,CAAC;YACF,MAAM;gBACJ,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC;oBAChC,WAAW;oBACX,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC/B;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAY;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAY,EAAE,WAAoB;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEpC,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,IAAI,CAAC,kBAAkB,EAAE;YAC3D,OAAO,SAAS,CAAC,WAAW,CAAC;SAC9B;QAED,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,MAAM,eAAe,GAAG;YACtB,GAAG,IAAI,CAAC,kBAAkB,CACxB,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC;aAC7C,CAAC,CAAC,CACJ;SACF,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAEpC,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE;YACjC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YACxD,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC5D,MAAM;gBACJ,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;oBAC9B,WAAW;oBACX,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC7B;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,oBAAoB,CAAC,IAAY,EAAE,cAAsB,KAAK;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAElD,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,MAAM,eAAe,GAAG;YACtB,GAAG,IAAI,CAAC,kBAAkB,CACxB,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC;aAC7C,CAAC,CAAC,CACJ;SACF,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAEpC,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE;YACjC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC5D,MAAM;gBACJ,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;oBAC9B,WAAW;oBACX,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC7B;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,IAAuB;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAClE,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE;YAC9B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACvB;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,IAAuB;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QACrE,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE;YAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAChE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAC9C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAC7B;IACH,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,KAAe;QAC5B,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QACrE,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE;YACjC,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;SACvC;IACH,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,KAAe;QACjC,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QACrE,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE;YACjC,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;SAC1C;IACH,CAAC;IAED;;;;OAIG;IACK,aAAa,CAAC,IAAY;QAChC,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,QAAgB;QAC3B,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC;YAC5D,OAAO,KAAK,CAAC;SACd;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAE9C,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACrC,OAAO,IAAI,CAAC;SACb;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,QAAQ,sBAAsB,CAAC,CAAC;YAC9D,OAAO,KAAK,CAAC;SACd;QAED,IAAI;YACF,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;oBAC5B,UAAU,EAAE,CAAC;iBACd;aACF;YAED,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,UAAU,UAAU,eAAe,QAAQ,aAAa,CACzD,CAAC;YACF,OAAO,IAAI,CAAC;SACb;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAC;YACnE,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,SAAmB;QAC/B,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACvE,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAC/C,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACrD,CAAC,EAAE,CAAC,CAAC,CAAC;IACR,CAAC;IAED;;;OAGG;IACH,mBAAmB;QACjB,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,oBAAoB,CAAC,IAAY,EAAE,KAAe;QAChD,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QACxC,MAAM,cAAc,GAAG,mBAAmB,CACxC,KAAK,EACL,yBAAyB,CAC1B,CAAC;QAEF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,IAAI,2BAA2B,CAAC,CAAC;YACxE,OAAO;SACR;QAED,IAAI;YACF,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE;gBACjC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;oBAC5B,UAAU,EAAE,CAAC;iBACd;aACF;YAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,cAAc,CAAC;YAC7D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAE7C,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,UAAU,UAAU,kCAAkC,IAAI,GAAG,CAC9D,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;SACzE;IACH,CAAC;IAED;;;;OAIG;IACK,aAAa,CAAC,IAAY;QAChC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YACjE,OAAO,KAAK,CAAC;SACd;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa;YACvC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;YACb,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE9B,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE;YACtC,OAAO,KAAK,CAAC;SACd;QAED,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,OAAsB;QAC9C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,iBAAiB,CAAC,IAAI,CAAC;QAExD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;QAEpC,IAAI,YAAY,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC;YAAE,OAAO,iBAAiB,CAAC,OAAO,CAAC;QAC5E,IAAI,YAAY,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC;YAAE,OAAO,iBAAiB,CAAC,MAAM,CAAC;QAC3E,IAAI,YAAY,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC;YACvC,OAAO,iBAAiB,CAAC,QAAQ,CAAC;QACpC,OAAO,iBAAiB,CAAC,IAAI,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,SAAS;QACP,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,WAAmB;QAChC,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAE3C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAChD;QAED,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,qBAAqB;QACnB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH,SAAS;QACP,OAAO;YACL,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAE;YACpC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;SAC9C,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,WAAW;QACjB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAClD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;aAC1B;SACF;QACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;YACpC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SAC1B;IACH,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,OAAqC;QAChD,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,OAAO,CAAC,kBAAkB,KAAK,SAAS,EAAE;YAC5C,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;SACjD;QACD,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE;YACzC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;SAChD;QACD,IACE,OAAO,CAAC,aAAa,KAAK,SAAS;YACnC,OAAO,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,EAC5C;YACA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;YAC3C,aAAa,GAAG,IAAI,CAAC;SACtB;QACD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE;YACpC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;SACtC;QACD,IAAI,OAAO,CAAC,kBAAkB,KAAK,SAAS,EAAE;YAC5C,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;SACtD;QACD,IAAI,OAAO,CAAC,cAAc,EAAE;YAC1B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SAC7C;QACD,IAAI,aAAa,EAAE;YACjB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AACxC,eAAe,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "allprofanity",
3
- "version": "2.1.0",
3
+ "version": "2.1.1",
4
4
  "description": "A TypeScript package to filter Hindi and Hinglish bad words from text",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",