glin-profanity 2.1.0 → 2.3.3

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 (124) hide show
  1. package/README.md +205 -55
  2. package/lib/cjs/packages/js/src/core/index.d.ts +4 -0
  3. package/lib/cjs/packages/js/src/core/index.js +55 -0
  4. package/lib/cjs/packages/js/src/core/index.js.map +1 -0
  5. package/lib/cjs/packages/js/src/core/types.d.ts +20 -0
  6. package/lib/cjs/packages/js/src/core/types.js +3 -0
  7. package/lib/cjs/packages/js/src/core/types.js.map +1 -0
  8. package/lib/cjs/{data → packages/js/src/data}/dictionary.d.ts +1 -0
  9. package/lib/cjs/packages/js/src/data/dictionary.js +54 -0
  10. package/lib/cjs/packages/js/src/data/dictionary.js.map +1 -0
  11. package/lib/cjs/{filters → packages/js/src/filters}/Filter.d.ts +7 -14
  12. package/lib/cjs/packages/js/src/filters/Filter.js +246 -0
  13. package/lib/cjs/packages/js/src/filters/Filter.js.map +1 -0
  14. package/lib/cjs/packages/js/src/hooks/useProfanityChecker.d.ts +11 -0
  15. package/lib/cjs/packages/js/src/hooks/useProfanityChecker.js +42 -0
  16. package/lib/cjs/packages/js/src/hooks/useProfanityChecker.js.map +1 -0
  17. package/lib/cjs/packages/js/src/index.d.ts +12 -0
  18. package/lib/cjs/packages/js/src/index.js +24 -0
  19. package/lib/cjs/packages/js/src/index.js.map +1 -0
  20. package/lib/cjs/packages/js/src/nlp/contextAnalyzer.d.ts +35 -0
  21. package/lib/cjs/packages/js/src/nlp/contextAnalyzer.js +203 -0
  22. package/lib/cjs/packages/js/src/nlp/contextAnalyzer.js.map +1 -0
  23. package/lib/cjs/packages/js/src/types/types.d.ts +56 -0
  24. package/lib/cjs/packages/js/src/types/types.js +14 -0
  25. package/lib/cjs/packages/js/src/types/types.js.map +1 -0
  26. package/lib/cjs/shared/dictionaries/spanish.json +72 -0
  27. package/lib/esm/packages/js/src/core/index.d.ts +4 -0
  28. package/lib/esm/packages/js/src/core/index.js +47 -0
  29. package/lib/esm/packages/js/src/core/index.js.map +1 -0
  30. package/lib/esm/packages/js/src/core/types.d.ts +20 -0
  31. package/lib/esm/packages/js/src/core/types.js +2 -0
  32. package/lib/esm/packages/js/src/core/types.js.map +1 -0
  33. package/lib/esm/{data → packages/js/src/data}/dictionary.d.ts +1 -0
  34. package/lib/esm/packages/js/src/data/dictionary.js +49 -0
  35. package/lib/esm/packages/js/src/data/dictionary.js.map +1 -0
  36. package/lib/esm/{filters → packages/js/src/filters}/Filter.d.ts +7 -14
  37. package/lib/esm/packages/js/src/filters/Filter.js +240 -0
  38. package/lib/esm/packages/js/src/filters/Filter.js.map +1 -0
  39. package/lib/esm/packages/js/src/hooks/useProfanityChecker.d.ts +11 -0
  40. package/lib/esm/packages/js/src/hooks/useProfanityChecker.js +38 -0
  41. package/lib/esm/packages/js/src/hooks/useProfanityChecker.js.map +1 -0
  42. package/lib/esm/packages/js/src/index.d.ts +12 -0
  43. package/lib/esm/packages/js/src/index.js +15 -0
  44. package/lib/esm/packages/js/src/index.js.map +1 -0
  45. package/lib/esm/packages/js/src/nlp/contextAnalyzer.d.ts +35 -0
  46. package/lib/esm/packages/js/src/nlp/contextAnalyzer.js +199 -0
  47. package/lib/esm/packages/js/src/nlp/contextAnalyzer.js.map +1 -0
  48. package/lib/esm/packages/js/src/types/types.d.ts +56 -0
  49. package/lib/esm/packages/js/src/types/types.js +11 -0
  50. package/lib/esm/packages/js/src/types/types.js.map +1 -0
  51. package/lib/esm/shared/dictionaries/spanish.json +72 -0
  52. package/package.json +26 -3
  53. package/lib/cjs/data/dictionary.js +0 -52
  54. package/lib/cjs/data/dictionary.js.map +0 -1
  55. package/lib/cjs/filters/Filter.js +0 -162
  56. package/lib/cjs/filters/Filter.js.map +0 -1
  57. package/lib/cjs/hooks/useProfanityChecker.d.ts +0 -34
  58. package/lib/cjs/hooks/useProfanityChecker.js +0 -68
  59. package/lib/cjs/hooks/useProfanityChecker.js.map +0 -1
  60. package/lib/cjs/index.d.ts +0 -4
  61. package/lib/cjs/index.js +0 -10
  62. package/lib/cjs/index.js.map +0 -1
  63. package/lib/cjs/types/types.d.ts +0 -21
  64. package/lib/cjs/types/types.js +0 -11
  65. package/lib/cjs/types/types.js.map +0 -1
  66. package/lib/esm/data/dictionary.js +0 -47
  67. package/lib/esm/data/dictionary.js.map +0 -1
  68. package/lib/esm/filters/Filter.js +0 -156
  69. package/lib/esm/filters/Filter.js.map +0 -1
  70. package/lib/esm/hooks/useProfanityChecker.d.ts +0 -34
  71. package/lib/esm/hooks/useProfanityChecker.js +0 -61
  72. package/lib/esm/hooks/useProfanityChecker.js.map +0 -1
  73. package/lib/esm/index.d.ts +0 -4
  74. package/lib/esm/index.js +0 -4
  75. package/lib/esm/index.js.map +0 -1
  76. package/lib/esm/types/types.d.ts +0 -21
  77. package/lib/esm/types/types.js +0 -8
  78. package/lib/esm/types/types.js.map +0 -1
  79. /package/lib/cjs/{data → shared/dictionaries}/Norwegian.json +0 -0
  80. /package/lib/cjs/{data → shared/dictionaries}/arabic.json +0 -0
  81. /package/lib/cjs/{data → shared/dictionaries}/chinese.json +0 -0
  82. /package/lib/cjs/{data → shared/dictionaries}/czech.json +0 -0
  83. /package/lib/cjs/{data → shared/dictionaries}/danish.json +0 -0
  84. /package/lib/cjs/{data → shared/dictionaries}/english.json +0 -0
  85. /package/lib/cjs/{data → shared/dictionaries}/esperanto.json +0 -0
  86. /package/lib/cjs/{data → shared/dictionaries}/finnish.json +0 -0
  87. /package/lib/cjs/{data → shared/dictionaries}/french.json +0 -0
  88. /package/lib/cjs/{data → shared/dictionaries}/german.json +0 -0
  89. /package/lib/cjs/{data → shared/dictionaries}/globalWhitelist.json +0 -0
  90. /package/lib/cjs/{data → shared/dictionaries}/hindi.json +0 -0
  91. /package/lib/cjs/{data → shared/dictionaries}/hungarian.json +0 -0
  92. /package/lib/cjs/{data → shared/dictionaries}/italian.json +0 -0
  93. /package/lib/cjs/{data → shared/dictionaries}/japanese.json +0 -0
  94. /package/lib/cjs/{data → shared/dictionaries}/korean.json +0 -0
  95. /package/lib/cjs/{data → shared/dictionaries}/persian.json +0 -0
  96. /package/lib/cjs/{data → shared/dictionaries}/polish.json +0 -0
  97. /package/lib/cjs/{data → shared/dictionaries}/portuguese.json +0 -0
  98. /package/lib/cjs/{data → shared/dictionaries}/russian.json +0 -0
  99. /package/lib/cjs/{data → shared/dictionaries}/swedish.json +0 -0
  100. /package/lib/cjs/{data → shared/dictionaries}/thai.json +0 -0
  101. /package/lib/cjs/{data → shared/dictionaries}/turkish.json +0 -0
  102. /package/lib/esm/{data → shared/dictionaries}/Norwegian.json +0 -0
  103. /package/lib/esm/{data → shared/dictionaries}/arabic.json +0 -0
  104. /package/lib/esm/{data → shared/dictionaries}/chinese.json +0 -0
  105. /package/lib/esm/{data → shared/dictionaries}/czech.json +0 -0
  106. /package/lib/esm/{data → shared/dictionaries}/danish.json +0 -0
  107. /package/lib/esm/{data → shared/dictionaries}/english.json +0 -0
  108. /package/lib/esm/{data → shared/dictionaries}/esperanto.json +0 -0
  109. /package/lib/esm/{data → shared/dictionaries}/finnish.json +0 -0
  110. /package/lib/esm/{data → shared/dictionaries}/french.json +0 -0
  111. /package/lib/esm/{data → shared/dictionaries}/german.json +0 -0
  112. /package/lib/esm/{data → shared/dictionaries}/globalWhitelist.json +0 -0
  113. /package/lib/esm/{data → shared/dictionaries}/hindi.json +0 -0
  114. /package/lib/esm/{data → shared/dictionaries}/hungarian.json +0 -0
  115. /package/lib/esm/{data → shared/dictionaries}/italian.json +0 -0
  116. /package/lib/esm/{data → shared/dictionaries}/japanese.json +0 -0
  117. /package/lib/esm/{data → shared/dictionaries}/korean.json +0 -0
  118. /package/lib/esm/{data → shared/dictionaries}/persian.json +0 -0
  119. /package/lib/esm/{data → shared/dictionaries}/polish.json +0 -0
  120. /package/lib/esm/{data → shared/dictionaries}/portuguese.json +0 -0
  121. /package/lib/esm/{data → shared/dictionaries}/russian.json +0 -0
  122. /package/lib/esm/{data → shared/dictionaries}/swedish.json +0 -0
  123. /package/lib/esm/{data → shared/dictionaries}/thai.json +0 -0
  124. /package/lib/esm/{data → shared/dictionaries}/turkish.json +0 -0
@@ -1,61 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { useMemo, useState } from 'react';
11
- import { Filter } from '../filters/Filter';
12
- import globalWhitelistData from '../data/globalWhitelist.json';
13
- export const useProfanityChecker = (config) => {
14
- var _a;
15
- const [result, setResult] = useState(null);
16
- const filterConfig = useMemo(() => {
17
- var _a;
18
- const effective = Object.assign(Object.assign({}, (config !== null && config !== void 0 ? config : {})), { ignoreWords: globalWhitelistData.whitelist, fuzzyToleranceLevel: (_a = config === null || config === void 0 ? void 0 : config.fuzzyToleranceLevel) !== null && _a !== void 0 ? _a : 0.8 });
19
- if (effective.allowObfuscatedMatch && effective.wordBoundaries) {
20
- console.warn('[Glin-Profanity] Obfuscated match enabled → wordBoundaries will be ignored internally.');
21
- }
22
- return effective;
23
- }, [config]);
24
- const filter = useMemo(() => new Filter(filterConfig), [filterConfig]);
25
- const checkText = (text) => {
26
- var _a;
27
- const checkResult = filter.checkProfanity(text);
28
- // Filter based on minSeverity (if provided)
29
- const filteredWords = (config === null || config === void 0 ? void 0 : config.minSeverity) && checkResult.severityMap
30
- ? checkResult.profaneWords.filter((word) => checkResult.severityMap &&
31
- checkResult.severityMap[word] >= config.minSeverity)
32
- : checkResult.profaneWords;
33
- // Optional auto-replace
34
- const autoReplaced = (config === null || config === void 0 ? void 0 : config.autoReplace) && checkResult.processedText
35
- ? checkResult.processedText
36
- : text;
37
- setResult(checkResult);
38
- (_a = config === null || config === void 0 ? void 0 : config.customActions) === null || _a === void 0 ? void 0 : _a.call(config, checkResult);
39
- return Object.assign(Object.assign({}, checkResult), { filteredWords,
40
- autoReplaced });
41
- };
42
- const checkTextAsync = (text) => __awaiter(void 0, void 0, void 0, function* () {
43
- return new Promise((resolve) => {
44
- const checkResult = checkText(text); // sync call
45
- resolve(checkResult);
46
- });
47
- });
48
- const isWordProfane = (word) => {
49
- return filter.checkProfanity(word).containsProfanity;
50
- };
51
- const reset = () => setResult(null);
52
- return {
53
- result,
54
- checkText,
55
- checkTextAsync,
56
- reset,
57
- isDirty: (_a = result === null || result === void 0 ? void 0 : result.containsProfanity) !== null && _a !== void 0 ? _a : false,
58
- isWordProfane,
59
- };
60
- };
61
- //# sourceMappingURL=useProfanityChecker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useProfanityChecker.js","sourceRoot":"","sources":["../../../src/hooks/useProfanityChecker.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAgB,MAAM,mBAAmB,CAAC;AAEzD,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAiB/D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAA+B,EAAE,EAAE;;IACrE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAA8B,IAAI,CAAC,CAAC;IAExE,MAAM,YAAY,GAAiB,OAAO,CAAC,GAAG,EAAE;;QAC9C,MAAM,SAAS,mCACV,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,KACjB,WAAW,EAAE,mBAAmB,CAAC,SAAS,EAC1C,mBAAmB,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,mBAAmB,mCAAI,GAAG,GACxD,CAAC;QAEF,IAAI,SAAS,CAAC,oBAAoB,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;YAC/D,OAAO,CAAC,IAAI,CACV,wFAAwF,CACzF,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEvE,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE;;QACjC,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEhD,4CAA4C;QAC5C,MAAM,aAAa,GACjB,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,KAAI,WAAW,CAAC,WAAW;YAC5C,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAC7B,CAAC,IAAI,EAAE,EAAE,CACP,WAAW,CAAC,WAAW;gBACvB,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,WAAY,CACvD;YACH,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC;QAE/B,wBAAwB;QACxB,MAAM,YAAY,GAChB,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,KAAI,WAAW,CAAC,aAAa;YAC9C,CAAC,CAAC,WAAW,CAAC,aAAa;YAC3B,CAAC,CAAC,IAAI,CAAC;QAEX,SAAS,CAAC,WAAW,CAAC,CAAC;QACvB,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,uDAAG,WAAW,CAAC,CAAC;QAErC,uCACK,WAAW,KACd,aAAa;YACb,YAAY,IACZ;IACJ,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAO,IAAY,EAAE,EAAE;QAC5C,OAAO,IAAI,OAAO,CAAuB,CAAC,OAAO,EAAE,EAAE;YACnD,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY;YACjD,OAAO,CAAC,WAAW,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,CAAA,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,EAAE;QACrC,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC;IACvD,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAEpC,OAAO;QACL,MAAM;QACN,SAAS;QACT,cAAc;QACd,KAAK;QACL,OAAO,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,iBAAiB,mCAAI,KAAK;QAC3C,aAAa;KACd,CAAC;AACJ,CAAC,CAAC"}
@@ -1,4 +0,0 @@
1
- export { Filter } from './filters/Filter';
2
- export { useProfanityChecker } from './hooks/useProfanityChecker';
3
- export { SeverityLevel } from './types/types';
4
- export type { Language, CheckProfanityResult } from './types/types';
package/lib/esm/index.js DELETED
@@ -1,4 +0,0 @@
1
- export { Filter } from './filters/Filter';
2
- export { useProfanityChecker } from './hooks/useProfanityChecker';
3
- export { SeverityLevel } from './types/types';
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
@@ -1,21 +0,0 @@
1
- export declare enum SeverityLevel {
2
- Exact = 1,
3
- Fuzzy = 2,
4
- Merged = 3
5
- }
6
- export type SeverityLabel = keyof typeof SeverityLevel;
7
- export interface FilteredProfanityResult {
8
- result: CheckProfanityResult;
9
- filteredWords: string[];
10
- }
11
- export interface CheckProfanityResult {
12
- containsProfanity: boolean;
13
- profaneWords: string[];
14
- processedText?: string;
15
- severityMap?: Record<string, SeverityLevel>;
16
- matchContexts?: {
17
- word: string;
18
- context: string;
19
- }[];
20
- }
21
- export type Language = 'arabic' | 'chinese' | 'czech' | 'danish' | 'english' | 'esperanto' | 'finnish' | 'french' | 'german' | 'hindi' | 'hungarian' | 'italian' | 'japanese' | 'korean' | 'norwegian' | 'persian' | 'polish' | 'portuguese' | 'russian' | 'turkish' | 'swedish' | 'thai';
@@ -1,8 +0,0 @@
1
- // src/types/types.ts
2
- export var SeverityLevel;
3
- (function (SeverityLevel) {
4
- SeverityLevel[SeverityLevel["Exact"] = 1] = "Exact";
5
- SeverityLevel[SeverityLevel["Fuzzy"] = 2] = "Fuzzy";
6
- SeverityLevel[SeverityLevel["Merged"] = 3] = "Merged";
7
- })(SeverityLevel || (SeverityLevel = {}));
8
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/types/types.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,mDAAS,CAAA;IACT,mDAAS,CAAA;IACT,qDAAU,CAAA;AACZ,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB"}
File without changes
File without changes