@fevo-tech/obscenity 0.0.2 → 0.0.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.
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var o=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var z=(e,t)=>{for(var a in t)o(e,a,{get:t[a],enumerable:!0})},v=(e,t,a,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let m of j(t))!x.call(e,m)&&m!==a&&o(e,m,{get:()=>t[m],enumerable:!(r=u(t,m))||r.enumerable});return e};var q=e=>v(o({},"__esModule",{value:!0}),e);var C={};z(C,{censorBadWords:()=>S,censorHtmlPreservingTags:()=>$,hasContainsBadWords:()=>A});module.exports=q(C);var s=require("obscenity");var c=require("obscenity");var D={nigger:{blacklistTerm:["nigger","nigga","n1gger","n!gger","nigg3r","ni99a","n*gger","n_gger","nibba","niqqer","nlgger","\u221A\xB1igger","nagger","n-word","n.i.g.g.e.r","n i g g e r","knee grow","niggers"],whitelistTerm:[]},negro:{blacklistTerm:["negro"],whitelistTerm:[]},coon:{blacklistTerm:["coon"],whitelistTerm:[]},darkie:{blacklistTerm:["darkie"],whitelistTerm:[]},spook:{blacklistTerm:["spook"],whitelistTerm:[]},jigaboo:{blacklistTerm:["jigaboo"],whitelistTerm:[]},sambo:{blacklistTerm:["sambo"],whitelistTerm:[]},pickaninny:{blacklistTerm:["pickaninny"],whitelistTerm:[]},"tar baby":{blacklistTerm:["tar baby"],whitelistTerm:[]},"porch monkey":{blacklistTerm:["porch monkey"],whitelistTerm:[]},"jungle bunny":{blacklistTerm:["jungle bunny"],whitelistTerm:[]},spade:{blacklistTerm:["spade"],whitelistTerm:[]},"moon cricket":{blacklistTerm:["moon cricket"],whitelistTerm:[]},kike:{blacklistTerm:["kike","k1ke"],whitelistTerm:[]},yid:{blacklistTerm:["yid"],whitelistTerm:[]},heeb:{blacklistTerm:["heeb"],whitelistTerm:[]},hymie:{blacklistTerm:["hymie"],whitelistTerm:[]},"christ killer":{blacklistTerm:["christ killer"],whitelistTerm:[]},chink:{blacklistTerm:["chink","ch1nk"],whitelistTerm:[]},gook:{blacklistTerm:["gook","g00k"],whitelistTerm:[]},slant:{blacklistTerm:["slant"],whitelistTerm:[]},slope:{blacklistTerm:["slope"],whitelistTerm:[]},zipperhead:{blacklistTerm:["zipperhead"],whitelistTerm:[]},"ching chong":{blacklistTerm:["ching chong"],whitelistTerm:[]},chinaman:{blacklistTerm:["chinaman"],whitelistTerm:[]},jap:{blacklistTerm:["jap"],whitelistTerm:[]},nip:{blacklistTerm:["nip"],whitelistTerm:[]},wetback:{blacklistTerm:["wetback"],whitelistTerm:[]},spic:{blacklistTerm:["spic","sp1c"],whitelistTerm:[]},beaner:{blacklistTerm:["beaner"],whitelistTerm:[]},greaser:{blacklistTerm:["greaser"],whitelistTerm:[]},cracker:{blacklistTerm:["cracker"],whitelistTerm:[]},honky:{blacklistTerm:["honky"],whitelistTerm:[]},redneck:{blacklistTerm:["redneck"],whitelistTerm:[]},"white trash":{blacklistTerm:["white trash"],whitelistTerm:[]},peckerwood:{blacklistTerm:["peckerwood"],whitelistTerm:[]},"trailer trash":{blacklistTerm:["trailer trash"],whitelistTerm:[]},raghead:{blacklistTerm:["raghead"],whitelistTerm:[]},towelhead:{blacklistTerm:["towelhead"],whitelistTerm:[]},"sand nigger":{blacklistTerm:["sand nigger"],whitelistTerm:[]},"camel jockey":{blacklistTerm:["camel jockey"],whitelistTerm:[]},hajji:{blacklistTerm:["hajji"],whitelistTerm:[]},muzzie:{blacklistTerm:["muzzie"],whitelistTerm:[]},paki:{blacklistTerm:["paki"],whitelistTerm:[]},"curry muncher":{blacklistTerm:["curry muncher"],whitelistTerm:[]},wop:{blacklistTerm:["wop"],whitelistTerm:[]},dago:{blacklistTerm:["dago"],whitelistTerm:[]},guinea:{blacklistTerm:["guinea"],whitelistTerm:[]},polack:{blacklistTerm:["polack"],whitelistTerm:[]},kraut:{blacklistTerm:["kraut"],whitelistTerm:[]},frog:{blacklistTerm:["frog"],whitelistTerm:[]},limey:{blacklistTerm:["limey"],whitelistTerm:[]},mick:{blacklistTerm:["mick"],whitelistTerm:["mickey"]},paddy:{blacklistTerm:["paddy"],whitelistTerm:[]},gypsy:{blacklistTerm:["gypsy"],whitelistTerm:[]},pikey:{blacklistTerm:["pikey"],whitelistTerm:[]},abo:{blacklistTerm:["abo"],whitelistTerm:[]},boong:{blacklistTerm:["boong"],whitelistTerm:[]},redskin:{blacklistTerm:["redskin"],whitelistTerm:[]},injun:{blacklistTerm:["injun"],whitelistTerm:[]},squaw:{blacklistTerm:["squaw"],whitelistTerm:[]},"prairie nigger":{blacklistTerm:["prairie nigger"],whitelistTerm:[]},faggot:{blacklistTerm:["faggot","fag","faggy","faggotry","f4ggot","f@ggot","f4g","f*ggot","f-word","f.a.g.g.o.t","FAGGOT","Faggot","FaGgOt","faggots"],whitelistTerm:[]},dyke:{blacklistTerm:["dyke"],whitelistTerm:[]},lesbo:{blacklistTerm:["lesbo"],whitelistTerm:[]},lezzie:{blacklistTerm:["lezzie"],whitelistTerm:[]},"carpet muncher":{blacklistTerm:["carpet muncher"],whitelistTerm:[]},"muff diver":{blacklistTerm:["muff diver"],whitelistTerm:[]},homo:{blacklistTerm:["homo"],whitelistTerm:[]},homosexual:{blacklistTerm:["homosexual"],whitelistTerm:[]},queer:{blacklistTerm:["queer"],whitelistTerm:[]},queen:{blacklistTerm:["queen"],whitelistTerm:[]},pansy:{blacklistTerm:["pansy"],whitelistTerm:[]},fairy:{blacklistTerm:["fairy"],whitelistTerm:[]},poof:{blacklistTerm:["poof"],whitelistTerm:[]},poofter:{blacklistTerm:["poofter"],whitelistTerm:[]},nancy:{blacklistTerm:["nancy"],whitelistTerm:[]},"nancy boy":{blacklistTerm:["nancy boy"],whitelistTerm:[]},fruit:{blacklistTerm:["fruit"],whitelistTerm:[]},fruitcake:{blacklistTerm:["fruitcake"],whitelistTerm:[]},"batty boy":{blacklistTerm:["batty boy"],whitelistTerm:[]},"batty man":{blacklistTerm:["batty man"],whitelistTerm:[]},"chi chi man":{blacklistTerm:["chi chi man"],whitelistTerm:[]},sissy:{blacklistTerm:["sissy"],whitelistTerm:[]},"butt pirate":{blacklistTerm:["butt pirate"],whitelistTerm:[]},"pillow biter":{blacklistTerm:["pillow biter"],whitelistTerm:[]},"fudge packer":{blacklistTerm:["fudge packer"],whitelistTerm:[]},"ass bandit":{blacklistTerm:["ass bandit"],whitelistTerm:[]},"shirt lifter":{blacklistTerm:["shirt lifter"],whitelistTerm:[]},tranny:{blacklistTerm:["tranny","tr\u2013\u221Enny"],whitelistTerm:[]},shemale:{blacklistTerm:["shemale"],whitelistTerm:[]},"he-she":{blacklistTerm:["he-she"],whitelistTerm:[]},"she-male":{blacklistTerm:["she-male"],whitelistTerm:[]},ladyboy:{blacklistTerm:["ladyboy"],whitelistTerm:[]},trap:{blacklistTerm:["trap"],whitelistTerm:[]},troon:{blacklistTerm:["troon"],whitelistTerm:[]},troid:{blacklistTerm:["troid"],whitelistTerm:[]},hermaphrodite:{blacklistTerm:["hermaphrodite"],whitelistTerm:[]},retard:{blacklistTerm:["retard","retarded","tard","libtard","fucktard","r3tard","ret@rd","retards"],whitelistTerm:[]},spaz:{blacklistTerm:["spaz"],whitelistTerm:[]},spastic:{blacklistTerm:["spastic"],whitelistTerm:[]},cripple:{blacklistTerm:["cripple"],whitelistTerm:[]},gimp:{blacklistTerm:["gimp"],whitelistTerm:[]},invalid:{blacklistTerm:["invalid"],whitelistTerm:[]},vegetable:{blacklistTerm:["vegetable"],whitelistTerm:[]},moron:{blacklistTerm:["moron"],whitelistTerm:[]},imbecile:{blacklistTerm:["imbecile"],whitelistTerm:[]},idiot:{blacklistTerm:["idiot"],whitelistTerm:[]},cretin:{blacklistTerm:["cretin"],whitelistTerm:[]},mongoloid:{blacklistTerm:["mongoloid"],whitelistTerm:[]},"window licker":{blacklistTerm:["window licker"],whitelistTerm:[]},"short bus":{blacklistTerm:["short bus"],whitelistTerm:[]},cunt:{blacklistTerm:["cunt","c*nt"],whitelistTerm:[]},bitch:{blacklistTerm:["bitch"],whitelistTerm:[]},whore:{blacklistTerm:["whore"],whitelistTerm:[]},slut:{blacklistTerm:["slut"],whitelistTerm:[]},hoe:{blacklistTerm:["hoe"],whitelistTerm:[]},skank:{blacklistTerm:["skank"],whitelistTerm:[]},slag:{blacklistTerm:["slag"],whitelistTerm:[]},twat:{blacklistTerm:["twat"],whitelistTerm:[]},gash:{blacklistTerm:["gash"],whitelistTerm:[]},feminazi:{blacklistTerm:["feminazi"],whitelistTerm:[]},thot:{blacklistTerm:["thot"],whitelistTerm:[]},roastie:{blacklistTerm:["roastie"],whitelistTerm:[]},foid:{blacklistTerm:["foid"],whitelistTerm:[]},femoid:{blacklistTerm:["femoid"],whitelistTerm:[]},cuck:{blacklistTerm:["cuck"],whitelistTerm:[]},soyboy:{blacklistTerm:["soyboy"],whitelistTerm:[]},beta:{blacklistTerm:["beta"],whitelistTerm:[]},"bible thumper":{blacklistTerm:["bible thumper"],whitelistTerm:[]},"holy roller":{blacklistTerm:["holy roller"],whitelistTerm:[]},heathen:{blacklistTerm:["heathen"],whitelistTerm:[]},infidel:{blacklistTerm:["infidel"],whitelistTerm:[]},kafir:{blacklistTerm:["kafir"],whitelistTerm:[]},goy:{blacklistTerm:["goy"],whitelistTerm:[]},shiksa:{blacklistTerm:["shiksa"],whitelistTerm:[]},papist:{blacklistTerm:["papist"],whitelistTerm:[]},"mackerel snapper":{blacklistTerm:["mackerel snapper"],whitelistTerm:[]},proddy:{blacklistTerm:["proddy"],whitelistTerm:[]},taig:{blacklistTerm:["taig"],whitelistTerm:[]},fenian:{blacklistTerm:["fenian"],whitelistTerm:[]},hun:{blacklistTerm:["hun"],whitelistTerm:[]},"orange bastard":{blacklistTerm:["orange bastard"],whitelistTerm:[]}},k=D;var n=new c.DataSet().addAll(c.englishDataset),M=()=>{for(let e in k)n.addPhrase(t=>{t.setMetadata({originalWord:e});let a=k[e];for(let r of a.blacklistTerm)t.addPattern(c.pattern`${r}`);for(let r of a.whitelistTerm)t.addWhitelistedTerm(r);return t})};M();var w=require("htmlparser2"),b={...n.build(),...s.englishRecommendedTransformers},g=new s.RegExpMatcher({...b,blacklistMatcherTransformers:[...b.blacklistMatcherTransformers||[]],blacklistedTerms:[...b.blacklistedTerms]}),W=(0,s.keepStartCensorStrategy)((0,s.asteriskCensorStrategy)()),y=new s.TextCensor().setStrategy(W),S=e=>y.applyTo(e,g.getAllMatches(e)),A=e=>g.hasMatch(e),$=e=>{let t=[],a=[],r="",m=new w.Parser({ontext(i){t.push(i),a.push({start:r.length,end:r.length+i.length}),r+=i}},{decodeEntities:!1});m.write(e),m.end();let f=y.applyTo(r,g.getAllMatches(r)),l="",h=0,d=new w.Parser({onopentag(i,T){l+="<"+i;for(let p in T)l+=` ${p}="${T[p]}"`;l+=">"},ontext(i){let T=i.length;l+=f.slice(h,h+T),h+=T},onclosetag(i){l+=`</${i}>`},oncomment(i){l+=`<!--${i}-->`},onprocessinginstruction(i,T){l+=`<${T}>`},oncdatastart(){l+="<![CDATA["},oncdataend(){l+="]]>"},onerror(i){throw i}},{decodeEntities:!1});return d.write(e),d.end(),l};0&&(module.exports={censorBadWords,censorHtmlPreservingTags,hasContainsBadWords});
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/string.ts","../src/dataset.ts","../src/fevo-dictionary.ts"],"sourcesContent":["export * from \"./string\";\n","import {\n asteriskCensorStrategy,\n englishRecommendedTransformers,\n keepStartCensorStrategy,\n RegExpMatcher,\n TextCensor,\n} from \"obscenity\";\nimport { badWordsDataSet } from \"./dataset\";\nimport { Parser } from \"htmlparser2\";\n\nconst presets = {\n ...badWordsDataSet.build(),\n ...englishRecommendedTransformers,\n};\n\nconst badWordsMatcher = new RegExpMatcher({\n ...presets,\n blacklistMatcherTransformers: [\n ...(presets.blacklistMatcherTransformers || []),\n ],\n blacklistedTerms: [...presets.blacklistedTerms],\n});\n\nconst strategy = keepStartCensorStrategy(asteriskCensorStrategy());\nconst censor = new TextCensor().setStrategy(strategy);\n\nexport const censorBadWords = (input: string) => {\n return censor.applyTo(input, badWordsMatcher.getAllMatches(input));\n};\n\nexport const hasContainsBadWords = (input: string) => {\n return badWordsMatcher.hasMatch(input);\n};\n\nexport const censorHtmlPreservingTags = (htmlStr: string) => {\n const textNodes = [];\n const nodePositions = [];\n let fullText = \"\";\n\n const parser = new Parser(\n {\n ontext(text) {\n textNodes.push(text);\n nodePositions.push({\n start: fullText.length,\n end: fullText.length + text.length,\n });\n fullText += text;\n },\n },\n { decodeEntities: false }\n );\n\n parser.write(htmlStr);\n parser.end();\n\n const censored = censor.applyTo(\n fullText,\n badWordsMatcher.getAllMatches(fullText)\n );\n\n let result = \"\";\n let textIndex = 0;\n\n const parser2 = new Parser(\n {\n onopentag(name, attribs) {\n result += \"<\" + name;\n for (const k in attribs) {\n result += ` ${k}=\"${attribs[k]}\"`;\n }\n result += \">\";\n },\n ontext(text) {\n const len = text.length;\n result += censored.slice(textIndex, textIndex + len);\n textIndex += len;\n },\n onclosetag(name) {\n result += `</${name}>`;\n },\n oncomment(data) {\n result += `<!--${data}-->`;\n },\n onprocessinginstruction(name, data) {\n result += `<${data}>`;\n },\n oncdatastart() {\n result += \"<![CDATA[\";\n },\n oncdataend() {\n result += \"]]>\";\n },\n onerror(err) {\n throw err;\n },\n },\n { decodeEntities: false }\n );\n\n parser2.write(htmlStr);\n parser2.end();\n\n return result;\n};\n","import { DataSet, englishDataset, pattern } from \"obscenity\";\nimport fevoDict from \"./fevo-dictionary\";\n\nexport const badWordsDataSet = new DataSet<{ originalWord: string }>().addAll(\n englishDataset\n);\n\nconst initDataSet = () => {\n for (let key in fevoDict) {\n badWordsDataSet.addPhrase((phrase) => {\n phrase.setMetadata({ originalWord: key });\n for (let variant of fevoDict[key] as string[]) {\n phrase.addPattern(pattern`${variant}`);\n }\n return phrase;\n });\n }\n};\n\ninitDataSet();\n","const fevoDict: Record<string, string[]> = {\n // Racial slurs - Black\n nigger: [`nigger`, `nigga`, `n1gger`, `n!gger`, `nigg3r`, `ni99a`, `n*gger`, `n_gger`, `nibba`, `niqqer`, `nlgger`, `ñigger`, `nagger`, `n-word`, `n.i.g.g.e.r`, `n i g g e r`, `knee grow`, `niggers`],\n negro: [`negro`],\n coon: [`coon`],\n darkie: [`darkie`],\n spook: [`spook`],\n jigaboo: [`jigaboo`],\n sambo: [`sambo`],\n pickaninny: [`pickaninny`],\n \"tar baby\": [`tar baby`],\n \"porch monkey\": [`porch monkey`],\n \"jungle bunny\": [`jungle bunny`],\n spade: [`spade`],\n \"moon cricket\": [`moon cricket`],\n \n // Racial slurs - Jewish\n kike: [`kike`, `k1ke`],\n yid: [`yid`],\n heeb: [`heeb`],\n hymie: [`hymie`],\n \"christ killer\": [`christ killer`],\n \n // Racial slurs - Asian\n chink: [`chink`, `ch1nk`],\n gook: [`gook`, `g00k`],\n slant: [`slant`],\n slope: [`slope`],\n zipperhead: [`zipperhead`],\n \"ching chong\": [`ching chong`],\n chinaman: [`chinaman`],\n jap: [`jap`],\n nip: [`nip`],\n \n // Racial slurs - Hispanic/Latino\n wetback: [`wetback`],\n spic: [`spic`, `sp1c`],\n beaner: [`beaner`],\n greaser: [`greaser`],\n \n // Racial slurs - White\n cracker: [`cracker`],\n honky: [`honky`],\n redneck: [`redneck`],\n \"white trash\": [`white trash`],\n peckerwood: [`peckerwood`],\n \"trailer trash\": [`trailer trash`],\n \n // Racial slurs - Middle Eastern\n raghead: [`raghead`],\n towelhead: [`towelhead`],\n \"sand nigger\": [`sand nigger`],\n \"camel jockey\": [`camel jockey`],\n hajji: [`hajji`],\n muzzie: [`muzzie`],\n \n // Racial slurs - South Asian\n paki: [`paki`],\n \"curry muncher\": [`curry muncher`],\n \n // Racial slurs - Italian\n wop: [`wop`],\n dago: [`dago`],\n guinea: [`guinea`],\n \n // Racial slurs - Polish\n polack: [`polack`],\n \n // Racial slurs - German\n kraut: [`kraut`],\n \n // Racial slurs - French\n frog: [`frog`],\n \n // Racial slurs - British\n limey: [`limey`],\n \n // Racial slurs - Irish\n mick: [`mick`],\n paddy: [`paddy`],\n \n // Racial slurs - Romani\n gypsy: [`gypsy`],\n pikey: [`pikey`],\n \n // Racial slurs - Indigenous Australian\n abo: [`abo`],\n boong: [`boong`],\n \n // Racial slurs - Native American\n redskin: [`redskin`],\n injun: [`injun`],\n squaw: [`squaw`],\n \"prairie nigger\": [`prairie nigger`],\n \n // LGBTQ+ slurs\n faggot: [`faggot`, `fag`, `faggy`, `faggotry`, `f4ggot`, `f@ggot`, `f4g`, `f*ggot`, `f-word`, `f.a.g.g.o.t`, `FAGGOT`, `Faggot`, `FaGgOt`, `faggots`],\n dyke: [`dyke`],\n lesbo: [`lesbo`],\n lezzie: [`lezzie`],\n \"carpet muncher\": [`carpet muncher`],\n \"muff diver\": [`muff diver`],\n homo: [`homo`],\n homosexual: [`homosexual`],\n queer: [`queer`],\n queen: [`queen`],\n pansy: [`pansy`],\n fairy: [`fairy`],\n poof: [`poof`],\n poofter: [`poofter`],\n nancy: [`nancy`],\n \"nancy boy\": [`nancy boy`],\n fruit: [`fruit`],\n fruitcake: [`fruitcake`],\n \"batty boy\": [`batty boy`],\n \"batty man\": [`batty man`],\n \"chi chi man\": [`chi chi man`],\n sissy: [`sissy`],\n \"butt pirate\": [`butt pirate`],\n \"pillow biter\": [`pillow biter`],\n \"fudge packer\": [`fudge packer`],\n \"ass bandit\": [`ass bandit`],\n \"shirt lifter\": [`shirt lifter`],\n \n // Transgender slurs\n tranny: [`tranny`, `trаnny`],\n shemale: [`shemale`],\n \"he-she\": [`he-she`],\n \"she-male\": [`she-male`],\n ladyboy: [`ladyboy`],\n trap: [`trap`],\n troon: [`troon`],\n troid: [`troid`],\n hermaphrodite: [`hermaphrodite`],\n \n // Ableist slurs\n retard: [`retard`, `retarded`, `tard`, `libtard`, `fucktard`, `r3tard`, `ret@rd`, `retards`],\n spaz: [`spaz`],\n spastic: [`spastic`],\n cripple: [`cripple`],\n gimp: [`gimp`],\n invalid: [`invalid`],\n vegetable: [`vegetable`],\n moron: [`moron`],\n imbecile: [`imbecile`],\n idiot: [`idiot`],\n cretin: [`cretin`],\n mongoloid: [`mongoloid`],\n \"window licker\": [`window licker`],\n \"short bus\": [`short bus`],\n \n // Misogynistic slurs\n cunt: [`cunt`, `c*nt`],\n bitch: [`bitch`],\n whore: [`whore`],\n slut: [`slut`],\n hoe: [`hoe`],\n skank: [`skank`],\n slag: [`slag`],\n twat: [`twat`],\n gash: [`gash`],\n feminazi: [`feminazi`],\n thot: [`thot`],\n roastie: [`roastie`],\n foid: [`foid`],\n femoid: [`femoid`],\n \n // Other derogatory terms\n cuck: [`cuck`],\n soyboy: [`soyboy`],\n beta: [`beta`],\n \n // Religious slurs\n \"bible thumper\": [`bible thumper`],\n \"holy roller\": [`holy roller`],\n heathen: [`heathen`],\n infidel: [`infidel`],\n kafir: [`kafir`],\n goy: [`goy`],\n shiksa: [`shiksa`],\n papist: [`papist`],\n \"mackerel snapper\": [`mackerel snapper`],\n proddy: [`proddy`],\n taig: [`taig`],\n fenian: [`fenian`],\n hun: [`hun`],\n \"orange bastard\": [`orange bastard`],\n};\n\nexport default fevoDict;\n"],"mappings":"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","names":["index_exports","__export","censorBadWords","censorHtmlPreservingTags","hasContainsBadWords","__toCommonJS","import_obscenity","import_obscenity","fevoDict","fevo_dictionary_default","badWordsDataSet","initDataSet","key","fevo_dictionary_default","phrase","variant","import_htmlparser2","presets","badWordsDataSet","badWordsMatcher","strategy","censor","censorBadWords","input","hasContainsBadWords","censorHtmlPreservingTags","htmlStr","textNodes","nodePositions","fullText","parser","text","censored","result","textIndex","parser2","name","attribs","k","len","data","err"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/string.ts","../src/dataset.ts","../src/fevo-dictionary.ts"],"sourcesContent":["export * from \"./string\";\n","import {\n asteriskCensorStrategy,\n englishRecommendedTransformers,\n keepStartCensorStrategy,\n RegExpMatcher,\n TextCensor,\n} from \"obscenity\";\nimport { badWordsDataSet } from \"./dataset\";\nimport { Parser } from \"htmlparser2\";\n\nconst presets = {\n ...badWordsDataSet.build(),\n ...englishRecommendedTransformers,\n};\n\nconst badWordsMatcher = new RegExpMatcher({\n ...presets,\n blacklistMatcherTransformers: [\n ...(presets.blacklistMatcherTransformers || []),\n ],\n blacklistedTerms: [...presets.blacklistedTerms],\n});\n\nconst strategy = keepStartCensorStrategy(asteriskCensorStrategy());\nconst censor = new TextCensor().setStrategy(strategy);\n\nexport const censorBadWords = (input: string) => {\n return censor.applyTo(input, badWordsMatcher.getAllMatches(input));\n};\n\nexport const hasContainsBadWords = (input: string) => {\n return badWordsMatcher.hasMatch(input);\n};\n\nexport const censorHtmlPreservingTags = (htmlStr: string) => {\n const textNodes = [];\n const nodePositions = [];\n let fullText = \"\";\n\n const parser = new Parser(\n {\n ontext(text) {\n textNodes.push(text);\n nodePositions.push({\n start: fullText.length,\n end: fullText.length + text.length,\n });\n fullText += text;\n },\n },\n { decodeEntities: false }\n );\n\n parser.write(htmlStr);\n parser.end();\n\n const censored = censor.applyTo(\n fullText,\n badWordsMatcher.getAllMatches(fullText)\n );\n\n let result = \"\";\n let textIndex = 0;\n\n const parser2 = new Parser(\n {\n onopentag(name, attribs) {\n result += \"<\" + name;\n for (const k in attribs) {\n result += ` ${k}=\"${attribs[k]}\"`;\n }\n result += \">\";\n },\n ontext(text) {\n const len = text.length;\n result += censored.slice(textIndex, textIndex + len);\n textIndex += len;\n },\n onclosetag(name) {\n result += `</${name}>`;\n },\n oncomment(data) {\n result += `<!--${data}-->`;\n },\n onprocessinginstruction(name, data) {\n result += `<${data}>`;\n },\n oncdatastart() {\n result += \"<![CDATA[\";\n },\n oncdataend() {\n result += \"]]>\";\n },\n onerror(err) {\n throw err;\n },\n },\n { decodeEntities: false }\n );\n\n parser2.write(htmlStr);\n parser2.end();\n\n return result;\n};\n","import { DataSet, englishDataset, pattern } from \"obscenity\";\nimport fevoDict from \"./fevo-dictionary\";\n\nexport const badWordsDataSet = new DataSet<{ originalWord: string }>().addAll(\n englishDataset\n);\n\nconst initDataSet = () => {\n for (let key in fevoDict) {\n badWordsDataSet.addPhrase((phrase) => {\n phrase.setMetadata({ originalWord: key });\n const term = fevoDict[key];\n for (let variant of term.blacklistTerm as string[]) {\n phrase.addPattern(pattern`${variant}`);\n }\n for (let variant of term.whitelistTerm as string[]) {\n phrase.addWhitelistedTerm(variant);\n }\n return phrase;\n });\n }\n};\n\ninitDataSet();\n","const fevoDict: Record<\n string,\n Record<\"blacklistTerm\" | \"whitelistTerm\", string[]>\n> = {\n // Racial slurs - Black\n nigger: {\n blacklistTerm: [\n `nigger`,\n `nigga`,\n `n1gger`,\n `n!gger`,\n `nigg3r`,\n `ni99a`,\n `n*gger`,\n `n_gger`,\n `nibba`,\n `niqqer`,\n `nlgger`,\n `ñigger`,\n `nagger`,\n `n-word`,\n `n.i.g.g.e.r`,\n `n i g g e r`,\n `knee grow`,\n `niggers`,\n ],\n whitelistTerm: [],\n },\n negro: { blacklistTerm: [`negro`], whitelistTerm: [] },\n coon: { blacklistTerm: [`coon`], whitelistTerm: [] },\n darkie: { blacklistTerm: [`darkie`], whitelistTerm: [] },\n spook: { blacklistTerm: [`spook`], whitelistTerm: [] },\n jigaboo: { blacklistTerm: [`jigaboo`], whitelistTerm: [] },\n sambo: { blacklistTerm: [`sambo`], whitelistTerm: [] },\n pickaninny: { blacklistTerm: [`pickaninny`], whitelistTerm: [] },\n \"tar baby\": { blacklistTerm: [`tar baby`], whitelistTerm: [] },\n \"porch monkey\": { blacklistTerm: [`porch monkey`], whitelistTerm: [] },\n \"jungle bunny\": { blacklistTerm: [`jungle bunny`], whitelistTerm: [] },\n spade: { blacklistTerm: [`spade`], whitelistTerm: [] },\n \"moon cricket\": { blacklistTerm: [`moon cricket`], whitelistTerm: [] },\n\n // Racial slurs - Jewish\n kike: { blacklistTerm: [`kike`, `k1ke`], whitelistTerm: [] },\n yid: { blacklistTerm: [`yid`], whitelistTerm: [] },\n heeb: { blacklistTerm: [`heeb`], whitelistTerm: [] },\n hymie: { blacklistTerm: [`hymie`], whitelistTerm: [] },\n \"christ killer\": { blacklistTerm: [`christ killer`], whitelistTerm: [] },\n\n // Racial slurs - Asian\n chink: { blacklistTerm: [`chink`, `ch1nk`], whitelistTerm: [] },\n gook: { blacklistTerm: [`gook`, `g00k`], whitelistTerm: [] },\n slant: { blacklistTerm: [`slant`], whitelistTerm: [] },\n slope: { blacklistTerm: [`slope`], whitelistTerm: [] },\n zipperhead: { blacklistTerm: [`zipperhead`], whitelistTerm: [] },\n \"ching chong\": { blacklistTerm: [`ching chong`], whitelistTerm: [] },\n chinaman: { blacklistTerm: [`chinaman`], whitelistTerm: [] },\n jap: { blacklistTerm: [`jap`], whitelistTerm: [] },\n nip: { blacklistTerm: [`nip`], whitelistTerm: [] },\n\n // Racial slurs - Hispanic/Latino\n wetback: { blacklistTerm: [`wetback`], whitelistTerm: [] },\n spic: { blacklistTerm: [`spic`, `sp1c`], whitelistTerm: [] },\n beaner: { blacklistTerm: [`beaner`], whitelistTerm: [] },\n greaser: { blacklistTerm: [`greaser`], whitelistTerm: [] },\n\n // Racial slurs - White\n cracker: { blacklistTerm: [`cracker`], whitelistTerm: [] },\n honky: { blacklistTerm: [`honky`], whitelistTerm: [] },\n redneck: { blacklistTerm: [`redneck`], whitelistTerm: [] },\n \"white trash\": { blacklistTerm: [`white trash`], whitelistTerm: [] },\n peckerwood: { blacklistTerm: [`peckerwood`], whitelistTerm: [] },\n \"trailer trash\": { blacklistTerm: [`trailer trash`], whitelistTerm: [] },\n\n // Racial slurs - Middle Eastern\n raghead: { blacklistTerm: [`raghead`], whitelistTerm: [] },\n towelhead: { blacklistTerm: [`towelhead`], whitelistTerm: [] },\n \"sand nigger\": { blacklistTerm: [`sand nigger`], whitelistTerm: [] },\n \"camel jockey\": { blacklistTerm: [`camel jockey`], whitelistTerm: [] },\n hajji: { blacklistTerm: [`hajji`], whitelistTerm: [] },\n muzzie: { blacklistTerm: [`muzzie`], whitelistTerm: [] },\n\n // Racial slurs - South Asian\n paki: { blacklistTerm: [`paki`], whitelistTerm: [] },\n \"curry muncher\": { blacklistTerm: [`curry muncher`], whitelistTerm: [] },\n\n // Racial slurs - Italian\n wop: { blacklistTerm: [`wop`], whitelistTerm: [] },\n dago: { blacklistTerm: [`dago`], whitelistTerm: [] },\n guinea: { blacklistTerm: [`guinea`], whitelistTerm: [] },\n\n // Racial slurs - Polish\n polack: { blacklistTerm: [`polack`], whitelistTerm: [] },\n\n // Racial slurs - German\n kraut: { blacklistTerm: [`kraut`], whitelistTerm: [] },\n\n // Racial slurs - French\n frog: { blacklistTerm: [`frog`], whitelistTerm: [] },\n\n // Racial slurs - British\n limey: { blacklistTerm: [`limey`], whitelistTerm: [] },\n\n // Racial slurs - Irish\n mick: { blacklistTerm: [`mick`], whitelistTerm: [\"mickey\"] },\n paddy: { blacklistTerm: [`paddy`], whitelistTerm: [] },\n\n // Racial slurs - Romani\n gypsy: { blacklistTerm: [`gypsy`], whitelistTerm: [] },\n pikey: { blacklistTerm: [`pikey`], whitelistTerm: [] },\n\n // Racial slurs - Indigenous Australian\n abo: { blacklistTerm: [`abo`], whitelistTerm: [] },\n boong: { blacklistTerm: [`boong`], whitelistTerm: [] },\n\n // Racial slurs - Native American\n redskin: { blacklistTerm: [`redskin`], whitelistTerm: [] },\n injun: { blacklistTerm: [`injun`], whitelistTerm: [] },\n squaw: { blacklistTerm: [`squaw`], whitelistTerm: [] },\n \"prairie nigger\": { blacklistTerm: [`prairie nigger`], whitelistTerm: [] },\n\n // LGBTQ+ slurs\n faggot: {\n blacklistTerm: [\n `faggot`,\n `fag`,\n `faggy`,\n `faggotry`,\n `f4ggot`,\n `f@ggot`,\n `f4g`,\n `f*ggot`,\n `f-word`,\n `f.a.g.g.o.t`,\n `FAGGOT`,\n `Faggot`,\n `FaGgOt`,\n `faggots`,\n ],\n whitelistTerm: [],\n },\n dyke: { blacklistTerm: [`dyke`], whitelistTerm: [] },\n lesbo: { blacklistTerm: [`lesbo`], whitelistTerm: [] },\n lezzie: { blacklistTerm: [`lezzie`], whitelistTerm: [] },\n \"carpet muncher\": { blacklistTerm: [`carpet muncher`], whitelistTerm: [] },\n \"muff diver\": { blacklistTerm: [`muff diver`], whitelistTerm: [] },\n homo: { blacklistTerm: [`homo`], whitelistTerm: [] },\n homosexual: { blacklistTerm: [`homosexual`], whitelistTerm: [] },\n queer: { blacklistTerm: [`queer`], whitelistTerm: [] },\n queen: { blacklistTerm: [`queen`], whitelistTerm: [] },\n pansy: { blacklistTerm: [`pansy`], whitelistTerm: [] },\n fairy: { blacklistTerm: [`fairy`], whitelistTerm: [] },\n poof: { blacklistTerm: [`poof`], whitelistTerm: [] },\n poofter: { blacklistTerm: [`poofter`], whitelistTerm: [] },\n nancy: { blacklistTerm: [`nancy`], whitelistTerm: [] },\n \"nancy boy\": { blacklistTerm: [`nancy boy`], whitelistTerm: [] },\n fruit: { blacklistTerm: [`fruit`], whitelistTerm: [] },\n fruitcake: { blacklistTerm: [`fruitcake`], whitelistTerm: [] },\n \"batty boy\": { blacklistTerm: [`batty boy`], whitelistTerm: [] },\n \"batty man\": { blacklistTerm: [`batty man`], whitelistTerm: [] },\n \"chi chi man\": { blacklistTerm: [`chi chi man`], whitelistTerm: [] },\n sissy: { blacklistTerm: [`sissy`], whitelistTerm: [] },\n \"butt pirate\": { blacklistTerm: [`butt pirate`], whitelistTerm: [] },\n \"pillow biter\": { blacklistTerm: [`pillow biter`], whitelistTerm: [] },\n \"fudge packer\": { blacklistTerm: [`fudge packer`], whitelistTerm: [] },\n \"ass bandit\": { blacklistTerm: [`ass bandit`], whitelistTerm: [] },\n \"shirt lifter\": { blacklistTerm: [`shirt lifter`], whitelistTerm: [] },\n\n // Transgender slurs\n tranny: { blacklistTerm: [`tranny`, `trаnny`], whitelistTerm: [] },\n shemale: { blacklistTerm: [`shemale`], whitelistTerm: [] },\n \"he-she\": { blacklistTerm: [`he-she`], whitelistTerm: [] },\n \"she-male\": { blacklistTerm: [`she-male`], whitelistTerm: [] },\n ladyboy: { blacklistTerm: [`ladyboy`], whitelistTerm: [] },\n trap: { blacklistTerm: [`trap`], whitelistTerm: [] },\n troon: { blacklistTerm: [`troon`], whitelistTerm: [] },\n troid: { blacklistTerm: [`troid`], whitelistTerm: [] },\n hermaphrodite: { blacklistTerm: [`hermaphrodite`], whitelistTerm: [] },\n\n // Ableist slurs\n retard: {\n blacklistTerm: [\n `retard`,\n `retarded`,\n `tard`,\n `libtard`,\n `fucktard`,\n `r3tard`,\n `ret@rd`,\n `retards`,\n ],\n whitelistTerm: [],\n },\n spaz: { blacklistTerm: [`spaz`], whitelistTerm: [] },\n spastic: { blacklistTerm: [`spastic`], whitelistTerm: [] },\n cripple: { blacklistTerm: [`cripple`], whitelistTerm: [] },\n gimp: { blacklistTerm: [`gimp`], whitelistTerm: [] },\n invalid: { blacklistTerm: [`invalid`], whitelistTerm: [] },\n vegetable: { blacklistTerm: [`vegetable`], whitelistTerm: [] },\n moron: { blacklistTerm: [`moron`], whitelistTerm: [] },\n imbecile: { blacklistTerm: [`imbecile`], whitelistTerm: [] },\n idiot: { blacklistTerm: [`idiot`], whitelistTerm: [] },\n cretin: { blacklistTerm: [`cretin`], whitelistTerm: [] },\n mongoloid: { blacklistTerm: [`mongoloid`], whitelistTerm: [] },\n \"window licker\": { blacklistTerm: [`window licker`], whitelistTerm: [] },\n \"short bus\": { blacklistTerm: [`short bus`], whitelistTerm: [] },\n\n // Misogynistic slurs\n cunt: { blacklistTerm: [`cunt`, `c*nt`], whitelistTerm: [] },\n bitch: { blacklistTerm: [`bitch`], whitelistTerm: [] },\n whore: { blacklistTerm: [`whore`], whitelistTerm: [] },\n slut: { blacklistTerm: [`slut`], whitelistTerm: [] },\n hoe: { blacklistTerm: [`hoe`], whitelistTerm: [] },\n skank: { blacklistTerm: [`skank`], whitelistTerm: [] },\n slag: { blacklistTerm: [`slag`], whitelistTerm: [] },\n twat: { blacklistTerm: [`twat`], whitelistTerm: [] },\n gash: { blacklistTerm: [`gash`], whitelistTerm: [] },\n feminazi: { blacklistTerm: [`feminazi`], whitelistTerm: [] },\n thot: { blacklistTerm: [`thot`], whitelistTerm: [] },\n roastie: { blacklistTerm: [`roastie`], whitelistTerm: [] },\n foid: { blacklistTerm: [`foid`], whitelistTerm: [] },\n femoid: { blacklistTerm: [`femoid`], whitelistTerm: [] },\n\n // Other derogatory terms\n cuck: { blacklistTerm: [`cuck`], whitelistTerm: [] },\n soyboy: { blacklistTerm: [`soyboy`], whitelistTerm: [] },\n beta: { blacklistTerm: [`beta`], whitelistTerm: [] },\n\n // Religious slurs\n \"bible thumper\": { blacklistTerm: [`bible thumper`], whitelistTerm: [] },\n \"holy roller\": { blacklistTerm: [`holy roller`], whitelistTerm: [] },\n heathen: { blacklistTerm: [`heathen`], whitelistTerm: [] },\n infidel: { blacklistTerm: [`infidel`], whitelistTerm: [] },\n kafir: { blacklistTerm: [`kafir`], whitelistTerm: [] },\n goy: { blacklistTerm: [`goy`], whitelistTerm: [] },\n shiksa: { blacklistTerm: [`shiksa`], whitelistTerm: [] },\n papist: { blacklistTerm: [`papist`], whitelistTerm: [] },\n \"mackerel snapper\": {\n blacklistTerm: [`mackerel snapper`],\n whitelistTerm: [],\n },\n proddy: { blacklistTerm: [`proddy`], whitelistTerm: [] },\n taig: { blacklistTerm: [`taig`], whitelistTerm: [] },\n fenian: { blacklistTerm: [`fenian`], whitelistTerm: [] },\n hun: { blacklistTerm: [`hun`], whitelistTerm: [] },\n \"orange bastard\": { blacklistTerm: [`orange bastard`], whitelistTerm: [] },\n};\n\nexport default fevoDict;\n"],"mappings":"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","names":["index_exports","__export","censorBadWords","censorHtmlPreservingTags","hasContainsBadWords","__toCommonJS","import_obscenity","import_obscenity","fevoDict","fevo_dictionary_default","badWordsDataSet","initDataSet","key","fevo_dictionary_default","phrase","term","variant","import_htmlparser2","presets","badWordsDataSet","badWordsMatcher","strategy","censor","censorBadWords","input","hasContainsBadWords","censorHtmlPreservingTags","htmlStr","textNodes","nodePositions","fullText","parser","text","censored","result","textIndex","parser2","name","attribs","k","len","data","err"]}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{asteriskCensorStrategy as
|
|
1
|
+
import{asteriskCensorStrategy as x,englishRecommendedTransformers as z,keepStartCensorStrategy as v,RegExpMatcher as q,TextCensor as D}from"obscenity";import{DataSet as y,englishDataset as f,pattern as u}from"obscenity";var p={nigger:{blacklistTerm:["nigger","nigga","n1gger","n!gger","nigg3r","ni99a","n*gger","n_gger","nibba","niqqer","nlgger","\u221A\xB1igger","nagger","n-word","n.i.g.g.e.r","n i g g e r","knee grow","niggers"],whitelistTerm:[]},negro:{blacklistTerm:["negro"],whitelistTerm:[]},coon:{blacklistTerm:["coon"],whitelistTerm:[]},darkie:{blacklistTerm:["darkie"],whitelistTerm:[]},spook:{blacklistTerm:["spook"],whitelistTerm:[]},jigaboo:{blacklistTerm:["jigaboo"],whitelistTerm:[]},sambo:{blacklistTerm:["sambo"],whitelistTerm:[]},pickaninny:{blacklistTerm:["pickaninny"],whitelistTerm:[]},"tar baby":{blacklistTerm:["tar baby"],whitelistTerm:[]},"porch monkey":{blacklistTerm:["porch monkey"],whitelistTerm:[]},"jungle bunny":{blacklistTerm:["jungle bunny"],whitelistTerm:[]},spade:{blacklistTerm:["spade"],whitelistTerm:[]},"moon cricket":{blacklistTerm:["moon cricket"],whitelistTerm:[]},kike:{blacklistTerm:["kike","k1ke"],whitelistTerm:[]},yid:{blacklistTerm:["yid"],whitelistTerm:[]},heeb:{blacklistTerm:["heeb"],whitelistTerm:[]},hymie:{blacklistTerm:["hymie"],whitelistTerm:[]},"christ killer":{blacklistTerm:["christ killer"],whitelistTerm:[]},chink:{blacklistTerm:["chink","ch1nk"],whitelistTerm:[]},gook:{blacklistTerm:["gook","g00k"],whitelistTerm:[]},slant:{blacklistTerm:["slant"],whitelistTerm:[]},slope:{blacklistTerm:["slope"],whitelistTerm:[]},zipperhead:{blacklistTerm:["zipperhead"],whitelistTerm:[]},"ching chong":{blacklistTerm:["ching chong"],whitelistTerm:[]},chinaman:{blacklistTerm:["chinaman"],whitelistTerm:[]},jap:{blacklistTerm:["jap"],whitelistTerm:[]},nip:{blacklistTerm:["nip"],whitelistTerm:[]},wetback:{blacklistTerm:["wetback"],whitelistTerm:[]},spic:{blacklistTerm:["spic","sp1c"],whitelistTerm:[]},beaner:{blacklistTerm:["beaner"],whitelistTerm:[]},greaser:{blacklistTerm:["greaser"],whitelistTerm:[]},cracker:{blacklistTerm:["cracker"],whitelistTerm:[]},honky:{blacklistTerm:["honky"],whitelistTerm:[]},redneck:{blacklistTerm:["redneck"],whitelistTerm:[]},"white trash":{blacklistTerm:["white trash"],whitelistTerm:[]},peckerwood:{blacklistTerm:["peckerwood"],whitelistTerm:[]},"trailer trash":{blacklistTerm:["trailer trash"],whitelistTerm:[]},raghead:{blacklistTerm:["raghead"],whitelistTerm:[]},towelhead:{blacklistTerm:["towelhead"],whitelistTerm:[]},"sand nigger":{blacklistTerm:["sand nigger"],whitelistTerm:[]},"camel jockey":{blacklistTerm:["camel jockey"],whitelistTerm:[]},hajji:{blacklistTerm:["hajji"],whitelistTerm:[]},muzzie:{blacklistTerm:["muzzie"],whitelistTerm:[]},paki:{blacklistTerm:["paki"],whitelistTerm:[]},"curry muncher":{blacklistTerm:["curry muncher"],whitelistTerm:[]},wop:{blacklistTerm:["wop"],whitelistTerm:[]},dago:{blacklistTerm:["dago"],whitelistTerm:[]},guinea:{blacklistTerm:["guinea"],whitelistTerm:[]},polack:{blacklistTerm:["polack"],whitelistTerm:[]},kraut:{blacklistTerm:["kraut"],whitelistTerm:[]},frog:{blacklistTerm:["frog"],whitelistTerm:[]},limey:{blacklistTerm:["limey"],whitelistTerm:[]},mick:{blacklistTerm:["mick"],whitelistTerm:["mickey"]},paddy:{blacklistTerm:["paddy"],whitelistTerm:[]},gypsy:{blacklistTerm:["gypsy"],whitelistTerm:[]},pikey:{blacklistTerm:["pikey"],whitelistTerm:[]},abo:{blacklistTerm:["abo"],whitelistTerm:[]},boong:{blacklistTerm:["boong"],whitelistTerm:[]},redskin:{blacklistTerm:["redskin"],whitelistTerm:[]},injun:{blacklistTerm:["injun"],whitelistTerm:[]},squaw:{blacklistTerm:["squaw"],whitelistTerm:[]},"prairie nigger":{blacklistTerm:["prairie nigger"],whitelistTerm:[]},faggot:{blacklistTerm:["faggot","fag","faggy","faggotry","f4ggot","f@ggot","f4g","f*ggot","f-word","f.a.g.g.o.t","FAGGOT","Faggot","FaGgOt","faggots"],whitelistTerm:[]},dyke:{blacklistTerm:["dyke"],whitelistTerm:[]},lesbo:{blacklistTerm:["lesbo"],whitelistTerm:[]},lezzie:{blacklistTerm:["lezzie"],whitelistTerm:[]},"carpet muncher":{blacklistTerm:["carpet muncher"],whitelistTerm:[]},"muff diver":{blacklistTerm:["muff diver"],whitelistTerm:[]},homo:{blacklistTerm:["homo"],whitelistTerm:[]},homosexual:{blacklistTerm:["homosexual"],whitelistTerm:[]},queer:{blacklistTerm:["queer"],whitelistTerm:[]},queen:{blacklistTerm:["queen"],whitelistTerm:[]},pansy:{blacklistTerm:["pansy"],whitelistTerm:[]},fairy:{blacklistTerm:["fairy"],whitelistTerm:[]},poof:{blacklistTerm:["poof"],whitelistTerm:[]},poofter:{blacklistTerm:["poofter"],whitelistTerm:[]},nancy:{blacklistTerm:["nancy"],whitelistTerm:[]},"nancy boy":{blacklistTerm:["nancy boy"],whitelistTerm:[]},fruit:{blacklistTerm:["fruit"],whitelistTerm:[]},fruitcake:{blacklistTerm:["fruitcake"],whitelistTerm:[]},"batty boy":{blacklistTerm:["batty boy"],whitelistTerm:[]},"batty man":{blacklistTerm:["batty man"],whitelistTerm:[]},"chi chi man":{blacklistTerm:["chi chi man"],whitelistTerm:[]},sissy:{blacklistTerm:["sissy"],whitelistTerm:[]},"butt pirate":{blacklistTerm:["butt pirate"],whitelistTerm:[]},"pillow biter":{blacklistTerm:["pillow biter"],whitelistTerm:[]},"fudge packer":{blacklistTerm:["fudge packer"],whitelistTerm:[]},"ass bandit":{blacklistTerm:["ass bandit"],whitelistTerm:[]},"shirt lifter":{blacklistTerm:["shirt lifter"],whitelistTerm:[]},tranny:{blacklistTerm:["tranny","tr\u2013\u221Enny"],whitelistTerm:[]},shemale:{blacklistTerm:["shemale"],whitelistTerm:[]},"he-she":{blacklistTerm:["he-she"],whitelistTerm:[]},"she-male":{blacklistTerm:["she-male"],whitelistTerm:[]},ladyboy:{blacklistTerm:["ladyboy"],whitelistTerm:[]},trap:{blacklistTerm:["trap"],whitelistTerm:[]},troon:{blacklistTerm:["troon"],whitelistTerm:[]},troid:{blacklistTerm:["troid"],whitelistTerm:[]},hermaphrodite:{blacklistTerm:["hermaphrodite"],whitelistTerm:[]},retard:{blacklistTerm:["retard","retarded","tard","libtard","fucktard","r3tard","ret@rd","retards"],whitelistTerm:[]},spaz:{blacklistTerm:["spaz"],whitelistTerm:[]},spastic:{blacklistTerm:["spastic"],whitelistTerm:[]},cripple:{blacklistTerm:["cripple"],whitelistTerm:[]},gimp:{blacklistTerm:["gimp"],whitelistTerm:[]},invalid:{blacklistTerm:["invalid"],whitelistTerm:[]},vegetable:{blacklistTerm:["vegetable"],whitelistTerm:[]},moron:{blacklistTerm:["moron"],whitelistTerm:[]},imbecile:{blacklistTerm:["imbecile"],whitelistTerm:[]},idiot:{blacklistTerm:["idiot"],whitelistTerm:[]},cretin:{blacklistTerm:["cretin"],whitelistTerm:[]},mongoloid:{blacklistTerm:["mongoloid"],whitelistTerm:[]},"window licker":{blacklistTerm:["window licker"],whitelistTerm:[]},"short bus":{blacklistTerm:["short bus"],whitelistTerm:[]},cunt:{blacklistTerm:["cunt","c*nt"],whitelistTerm:[]},bitch:{blacklistTerm:["bitch"],whitelistTerm:[]},whore:{blacklistTerm:["whore"],whitelistTerm:[]},slut:{blacklistTerm:["slut"],whitelistTerm:[]},hoe:{blacklistTerm:["hoe"],whitelistTerm:[]},skank:{blacklistTerm:["skank"],whitelistTerm:[]},slag:{blacklistTerm:["slag"],whitelistTerm:[]},twat:{blacklistTerm:["twat"],whitelistTerm:[]},gash:{blacklistTerm:["gash"],whitelistTerm:[]},feminazi:{blacklistTerm:["feminazi"],whitelistTerm:[]},thot:{blacklistTerm:["thot"],whitelistTerm:[]},roastie:{blacklistTerm:["roastie"],whitelistTerm:[]},foid:{blacklistTerm:["foid"],whitelistTerm:[]},femoid:{blacklistTerm:["femoid"],whitelistTerm:[]},cuck:{blacklistTerm:["cuck"],whitelistTerm:[]},soyboy:{blacklistTerm:["soyboy"],whitelistTerm:[]},beta:{blacklistTerm:["beta"],whitelistTerm:[]},"bible thumper":{blacklistTerm:["bible thumper"],whitelistTerm:[]},"holy roller":{blacklistTerm:["holy roller"],whitelistTerm:[]},heathen:{blacklistTerm:["heathen"],whitelistTerm:[]},infidel:{blacklistTerm:["infidel"],whitelistTerm:[]},kafir:{blacklistTerm:["kafir"],whitelistTerm:[]},goy:{blacklistTerm:["goy"],whitelistTerm:[]},shiksa:{blacklistTerm:["shiksa"],whitelistTerm:[]},papist:{blacklistTerm:["papist"],whitelistTerm:[]},"mackerel snapper":{blacklistTerm:["mackerel snapper"],whitelistTerm:[]},proddy:{blacklistTerm:["proddy"],whitelistTerm:[]},taig:{blacklistTerm:["taig"],whitelistTerm:[]},fenian:{blacklistTerm:["fenian"],whitelistTerm:[]},hun:{blacklistTerm:["hun"],whitelistTerm:[]},"orange bastard":{blacklistTerm:["orange bastard"],whitelistTerm:[]}},T=p;var c=new y().addAll(f),j=()=>{for(let t in T)c.addPhrase(s=>{s.setMetadata({originalWord:t});let a=T[t];for(let r of a.blacklistTerm)s.addPattern(u`${r}`);for(let r of a.whitelistTerm)s.addWhitelistedTerm(r);return s})};j();import{Parser as w}from"htmlparser2";var h={...c.build(),...z},o=new q({...h,blacklistMatcherTransformers:[...h.blacklistMatcherTransformers||[]],blacklistedTerms:[...h.blacklistedTerms]}),M=v(x()),g=new D().setStrategy(M),E=t=>g.applyTo(t,o.getAllMatches(t)),F=t=>o.hasMatch(t),G=t=>{let s=[],a=[],r="",k=new w({ontext(e){s.push(e),a.push({start:r.length,end:r.length+e.length}),r+=e}},{decodeEntities:!1});k.write(t),k.end();let d=g.applyTo(r,o.getAllMatches(r)),i="",m=0,n=new w({onopentag(e,l){i+="<"+e;for(let b in l)i+=` ${b}="${l[b]}"`;i+=">"},ontext(e){let l=e.length;i+=d.slice(m,m+l),m+=l},onclosetag(e){i+=`</${e}>`},oncomment(e){i+=`<!--${e}-->`},onprocessinginstruction(e,l){i+=`<${l}>`},oncdatastart(){i+="<![CDATA["},oncdataend(){i+="]]>"},onerror(e){throw e}},{decodeEntities:!1});return n.write(t),n.end(),i};export{E as censorBadWords,G as censorHtmlPreservingTags,F as hasContainsBadWords};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/string.ts","../src/dataset.ts","../src/fevo-dictionary.ts"],"sourcesContent":["import {\n asteriskCensorStrategy,\n englishRecommendedTransformers,\n keepStartCensorStrategy,\n RegExpMatcher,\n TextCensor,\n} from \"obscenity\";\nimport { badWordsDataSet } from \"./dataset\";\nimport { Parser } from \"htmlparser2\";\n\nconst presets = {\n ...badWordsDataSet.build(),\n ...englishRecommendedTransformers,\n};\n\nconst badWordsMatcher = new RegExpMatcher({\n ...presets,\n blacklistMatcherTransformers: [\n ...(presets.blacklistMatcherTransformers || []),\n ],\n blacklistedTerms: [...presets.blacklistedTerms],\n});\n\nconst strategy = keepStartCensorStrategy(asteriskCensorStrategy());\nconst censor = new TextCensor().setStrategy(strategy);\n\nexport const censorBadWords = (input: string) => {\n return censor.applyTo(input, badWordsMatcher.getAllMatches(input));\n};\n\nexport const hasContainsBadWords = (input: string) => {\n return badWordsMatcher.hasMatch(input);\n};\n\nexport const censorHtmlPreservingTags = (htmlStr: string) => {\n const textNodes = [];\n const nodePositions = [];\n let fullText = \"\";\n\n const parser = new Parser(\n {\n ontext(text) {\n textNodes.push(text);\n nodePositions.push({\n start: fullText.length,\n end: fullText.length + text.length,\n });\n fullText += text;\n },\n },\n { decodeEntities: false }\n );\n\n parser.write(htmlStr);\n parser.end();\n\n const censored = censor.applyTo(\n fullText,\n badWordsMatcher.getAllMatches(fullText)\n );\n\n let result = \"\";\n let textIndex = 0;\n\n const parser2 = new Parser(\n {\n onopentag(name, attribs) {\n result += \"<\" + name;\n for (const k in attribs) {\n result += ` ${k}=\"${attribs[k]}\"`;\n }\n result += \">\";\n },\n ontext(text) {\n const len = text.length;\n result += censored.slice(textIndex, textIndex + len);\n textIndex += len;\n },\n onclosetag(name) {\n result += `</${name}>`;\n },\n oncomment(data) {\n result += `<!--${data}-->`;\n },\n onprocessinginstruction(name, data) {\n result += `<${data}>`;\n },\n oncdatastart() {\n result += \"<![CDATA[\";\n },\n oncdataend() {\n result += \"]]>\";\n },\n onerror(err) {\n throw err;\n },\n },\n { decodeEntities: false }\n );\n\n parser2.write(htmlStr);\n parser2.end();\n\n return result;\n};\n","import { DataSet, englishDataset, pattern } from \"obscenity\";\nimport fevoDict from \"./fevo-dictionary\";\n\nexport const badWordsDataSet = new DataSet<{ originalWord: string }>().addAll(\n englishDataset\n);\n\nconst initDataSet = () => {\n for (let key in fevoDict) {\n badWordsDataSet.addPhrase((phrase) => {\n phrase.setMetadata({ originalWord: key });\n for (let variant of fevoDict[key] as string[]) {\n phrase.addPattern(pattern`${variant}`);\n }\n return phrase;\n });\n }\n};\n\ninitDataSet();\n","const fevoDict: Record<string, string[]> = {\n // Racial slurs - Black\n nigger: [`nigger`, `nigga`, `n1gger`, `n!gger`, `nigg3r`, `ni99a`, `n*gger`, `n_gger`, `nibba`, `niqqer`, `nlgger`, `ñigger`, `nagger`, `n-word`, `n.i.g.g.e.r`, `n i g g e r`, `knee grow`, `niggers`],\n negro: [`negro`],\n coon: [`coon`],\n darkie: [`darkie`],\n spook: [`spook`],\n jigaboo: [`jigaboo`],\n sambo: [`sambo`],\n pickaninny: [`pickaninny`],\n \"tar baby\": [`tar baby`],\n \"porch monkey\": [`porch monkey`],\n \"jungle bunny\": [`jungle bunny`],\n spade: [`spade`],\n \"moon cricket\": [`moon cricket`],\n \n // Racial slurs - Jewish\n kike: [`kike`, `k1ke`],\n yid: [`yid`],\n heeb: [`heeb`],\n hymie: [`hymie`],\n \"christ killer\": [`christ killer`],\n \n // Racial slurs - Asian\n chink: [`chink`, `ch1nk`],\n gook: [`gook`, `g00k`],\n slant: [`slant`],\n slope: [`slope`],\n zipperhead: [`zipperhead`],\n \"ching chong\": [`ching chong`],\n chinaman: [`chinaman`],\n jap: [`jap`],\n nip: [`nip`],\n \n // Racial slurs - Hispanic/Latino\n wetback: [`wetback`],\n spic: [`spic`, `sp1c`],\n beaner: [`beaner`],\n greaser: [`greaser`],\n \n // Racial slurs - White\n cracker: [`cracker`],\n honky: [`honky`],\n redneck: [`redneck`],\n \"white trash\": [`white trash`],\n peckerwood: [`peckerwood`],\n \"trailer trash\": [`trailer trash`],\n \n // Racial slurs - Middle Eastern\n raghead: [`raghead`],\n towelhead: [`towelhead`],\n \"sand nigger\": [`sand nigger`],\n \"camel jockey\": [`camel jockey`],\n hajji: [`hajji`],\n muzzie: [`muzzie`],\n \n // Racial slurs - South Asian\n paki: [`paki`],\n \"curry muncher\": [`curry muncher`],\n \n // Racial slurs - Italian\n wop: [`wop`],\n dago: [`dago`],\n guinea: [`guinea`],\n \n // Racial slurs - Polish\n polack: [`polack`],\n \n // Racial slurs - German\n kraut: [`kraut`],\n \n // Racial slurs - French\n frog: [`frog`],\n \n // Racial slurs - British\n limey: [`limey`],\n \n // Racial slurs - Irish\n mick: [`mick`],\n paddy: [`paddy`],\n \n // Racial slurs - Romani\n gypsy: [`gypsy`],\n pikey: [`pikey`],\n \n // Racial slurs - Indigenous Australian\n abo: [`abo`],\n boong: [`boong`],\n \n // Racial slurs - Native American\n redskin: [`redskin`],\n injun: [`injun`],\n squaw: [`squaw`],\n \"prairie nigger\": [`prairie nigger`],\n \n // LGBTQ+ slurs\n faggot: [`faggot`, `fag`, `faggy`, `faggotry`, `f4ggot`, `f@ggot`, `f4g`, `f*ggot`, `f-word`, `f.a.g.g.o.t`, `FAGGOT`, `Faggot`, `FaGgOt`, `faggots`],\n dyke: [`dyke`],\n lesbo: [`lesbo`],\n lezzie: [`lezzie`],\n \"carpet muncher\": [`carpet muncher`],\n \"muff diver\": [`muff diver`],\n homo: [`homo`],\n homosexual: [`homosexual`],\n queer: [`queer`],\n queen: [`queen`],\n pansy: [`pansy`],\n fairy: [`fairy`],\n poof: [`poof`],\n poofter: [`poofter`],\n nancy: [`nancy`],\n \"nancy boy\": [`nancy boy`],\n fruit: [`fruit`],\n fruitcake: [`fruitcake`],\n \"batty boy\": [`batty boy`],\n \"batty man\": [`batty man`],\n \"chi chi man\": [`chi chi man`],\n sissy: [`sissy`],\n \"butt pirate\": [`butt pirate`],\n \"pillow biter\": [`pillow biter`],\n \"fudge packer\": [`fudge packer`],\n \"ass bandit\": [`ass bandit`],\n \"shirt lifter\": [`shirt lifter`],\n \n // Transgender slurs\n tranny: [`tranny`, `trаnny`],\n shemale: [`shemale`],\n \"he-she\": [`he-she`],\n \"she-male\": [`she-male`],\n ladyboy: [`ladyboy`],\n trap: [`trap`],\n troon: [`troon`],\n troid: [`troid`],\n hermaphrodite: [`hermaphrodite`],\n \n // Ableist slurs\n retard: [`retard`, `retarded`, `tard`, `libtard`, `fucktard`, `r3tard`, `ret@rd`, `retards`],\n spaz: [`spaz`],\n spastic: [`spastic`],\n cripple: [`cripple`],\n gimp: [`gimp`],\n invalid: [`invalid`],\n vegetable: [`vegetable`],\n moron: [`moron`],\n imbecile: [`imbecile`],\n idiot: [`idiot`],\n cretin: [`cretin`],\n mongoloid: [`mongoloid`],\n \"window licker\": [`window licker`],\n \"short bus\": [`short bus`],\n \n // Misogynistic slurs\n cunt: [`cunt`, `c*nt`],\n bitch: [`bitch`],\n whore: [`whore`],\n slut: [`slut`],\n hoe: [`hoe`],\n skank: [`skank`],\n slag: [`slag`],\n twat: [`twat`],\n gash: [`gash`],\n feminazi: [`feminazi`],\n thot: [`thot`],\n roastie: [`roastie`],\n foid: [`foid`],\n femoid: [`femoid`],\n \n // Other derogatory terms\n cuck: [`cuck`],\n soyboy: [`soyboy`],\n beta: [`beta`],\n \n // Religious slurs\n \"bible thumper\": [`bible thumper`],\n \"holy roller\": [`holy roller`],\n heathen: [`heathen`],\n infidel: [`infidel`],\n kafir: [`kafir`],\n goy: [`goy`],\n shiksa: [`shiksa`],\n papist: [`papist`],\n \"mackerel snapper\": [`mackerel snapper`],\n proddy: [`proddy`],\n taig: [`taig`],\n fenian: [`fenian`],\n hun: [`hun`],\n \"orange bastard\": [`orange bastard`],\n};\n\nexport default fevoDict;\n"],"mappings":"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","names":["asteriskCensorStrategy","englishRecommendedTransformers","keepStartCensorStrategy","RegExpMatcher","TextCensor","DataSet","englishDataset","pattern","fevoDict","fevo_dictionary_default","badWordsDataSet","DataSet","englishDataset","initDataSet","key","fevo_dictionary_default","phrase","variant","pattern","Parser","presets","badWordsDataSet","englishRecommendedTransformers","badWordsMatcher","RegExpMatcher","strategy","keepStartCensorStrategy","asteriskCensorStrategy","censor","TextCensor","censorBadWords","input","hasContainsBadWords","censorHtmlPreservingTags","htmlStr","textNodes","nodePositions","fullText","parser","text","censored","result","textIndex","parser2","name","attribs","len","data","err"]}
|
|
1
|
+
{"version":3,"sources":["../src/string.ts","../src/dataset.ts","../src/fevo-dictionary.ts"],"sourcesContent":["import {\n asteriskCensorStrategy,\n englishRecommendedTransformers,\n keepStartCensorStrategy,\n RegExpMatcher,\n TextCensor,\n} from \"obscenity\";\nimport { badWordsDataSet } from \"./dataset\";\nimport { Parser } from \"htmlparser2\";\n\nconst presets = {\n ...badWordsDataSet.build(),\n ...englishRecommendedTransformers,\n};\n\nconst badWordsMatcher = new RegExpMatcher({\n ...presets,\n blacklistMatcherTransformers: [\n ...(presets.blacklistMatcherTransformers || []),\n ],\n blacklistedTerms: [...presets.blacklistedTerms],\n});\n\nconst strategy = keepStartCensorStrategy(asteriskCensorStrategy());\nconst censor = new TextCensor().setStrategy(strategy);\n\nexport const censorBadWords = (input: string) => {\n return censor.applyTo(input, badWordsMatcher.getAllMatches(input));\n};\n\nexport const hasContainsBadWords = (input: string) => {\n return badWordsMatcher.hasMatch(input);\n};\n\nexport const censorHtmlPreservingTags = (htmlStr: string) => {\n const textNodes = [];\n const nodePositions = [];\n let fullText = \"\";\n\n const parser = new Parser(\n {\n ontext(text) {\n textNodes.push(text);\n nodePositions.push({\n start: fullText.length,\n end: fullText.length + text.length,\n });\n fullText += text;\n },\n },\n { decodeEntities: false }\n );\n\n parser.write(htmlStr);\n parser.end();\n\n const censored = censor.applyTo(\n fullText,\n badWordsMatcher.getAllMatches(fullText)\n );\n\n let result = \"\";\n let textIndex = 0;\n\n const parser2 = new Parser(\n {\n onopentag(name, attribs) {\n result += \"<\" + name;\n for (const k in attribs) {\n result += ` ${k}=\"${attribs[k]}\"`;\n }\n result += \">\";\n },\n ontext(text) {\n const len = text.length;\n result += censored.slice(textIndex, textIndex + len);\n textIndex += len;\n },\n onclosetag(name) {\n result += `</${name}>`;\n },\n oncomment(data) {\n result += `<!--${data}-->`;\n },\n onprocessinginstruction(name, data) {\n result += `<${data}>`;\n },\n oncdatastart() {\n result += \"<![CDATA[\";\n },\n oncdataend() {\n result += \"]]>\";\n },\n onerror(err) {\n throw err;\n },\n },\n { decodeEntities: false }\n );\n\n parser2.write(htmlStr);\n parser2.end();\n\n return result;\n};\n","import { DataSet, englishDataset, pattern } from \"obscenity\";\nimport fevoDict from \"./fevo-dictionary\";\n\nexport const badWordsDataSet = new DataSet<{ originalWord: string }>().addAll(\n englishDataset\n);\n\nconst initDataSet = () => {\n for (let key in fevoDict) {\n badWordsDataSet.addPhrase((phrase) => {\n phrase.setMetadata({ originalWord: key });\n const term = fevoDict[key];\n for (let variant of term.blacklistTerm as string[]) {\n phrase.addPattern(pattern`${variant}`);\n }\n for (let variant of term.whitelistTerm as string[]) {\n phrase.addWhitelistedTerm(variant);\n }\n return phrase;\n });\n }\n};\n\ninitDataSet();\n","const fevoDict: Record<\n string,\n Record<\"blacklistTerm\" | \"whitelistTerm\", string[]>\n> = {\n // Racial slurs - Black\n nigger: {\n blacklistTerm: [\n `nigger`,\n `nigga`,\n `n1gger`,\n `n!gger`,\n `nigg3r`,\n `ni99a`,\n `n*gger`,\n `n_gger`,\n `nibba`,\n `niqqer`,\n `nlgger`,\n `ñigger`,\n `nagger`,\n `n-word`,\n `n.i.g.g.e.r`,\n `n i g g e r`,\n `knee grow`,\n `niggers`,\n ],\n whitelistTerm: [],\n },\n negro: { blacklistTerm: [`negro`], whitelistTerm: [] },\n coon: { blacklistTerm: [`coon`], whitelistTerm: [] },\n darkie: { blacklistTerm: [`darkie`], whitelistTerm: [] },\n spook: { blacklistTerm: [`spook`], whitelistTerm: [] },\n jigaboo: { blacklistTerm: [`jigaboo`], whitelistTerm: [] },\n sambo: { blacklistTerm: [`sambo`], whitelistTerm: [] },\n pickaninny: { blacklistTerm: [`pickaninny`], whitelistTerm: [] },\n \"tar baby\": { blacklistTerm: [`tar baby`], whitelistTerm: [] },\n \"porch monkey\": { blacklistTerm: [`porch monkey`], whitelistTerm: [] },\n \"jungle bunny\": { blacklistTerm: [`jungle bunny`], whitelistTerm: [] },\n spade: { blacklistTerm: [`spade`], whitelistTerm: [] },\n \"moon cricket\": { blacklistTerm: [`moon cricket`], whitelistTerm: [] },\n\n // Racial slurs - Jewish\n kike: { blacklistTerm: [`kike`, `k1ke`], whitelistTerm: [] },\n yid: { blacklistTerm: [`yid`], whitelistTerm: [] },\n heeb: { blacklistTerm: [`heeb`], whitelistTerm: [] },\n hymie: { blacklistTerm: [`hymie`], whitelistTerm: [] },\n \"christ killer\": { blacklistTerm: [`christ killer`], whitelistTerm: [] },\n\n // Racial slurs - Asian\n chink: { blacklistTerm: [`chink`, `ch1nk`], whitelistTerm: [] },\n gook: { blacklistTerm: [`gook`, `g00k`], whitelistTerm: [] },\n slant: { blacklistTerm: [`slant`], whitelistTerm: [] },\n slope: { blacklistTerm: [`slope`], whitelistTerm: [] },\n zipperhead: { blacklistTerm: [`zipperhead`], whitelistTerm: [] },\n \"ching chong\": { blacklistTerm: [`ching chong`], whitelistTerm: [] },\n chinaman: { blacklistTerm: [`chinaman`], whitelistTerm: [] },\n jap: { blacklistTerm: [`jap`], whitelistTerm: [] },\n nip: { blacklistTerm: [`nip`], whitelistTerm: [] },\n\n // Racial slurs - Hispanic/Latino\n wetback: { blacklistTerm: [`wetback`], whitelistTerm: [] },\n spic: { blacklistTerm: [`spic`, `sp1c`], whitelistTerm: [] },\n beaner: { blacklistTerm: [`beaner`], whitelistTerm: [] },\n greaser: { blacklistTerm: [`greaser`], whitelistTerm: [] },\n\n // Racial slurs - White\n cracker: { blacklistTerm: [`cracker`], whitelistTerm: [] },\n honky: { blacklistTerm: [`honky`], whitelistTerm: [] },\n redneck: { blacklistTerm: [`redneck`], whitelistTerm: [] },\n \"white trash\": { blacklistTerm: [`white trash`], whitelistTerm: [] },\n peckerwood: { blacklistTerm: [`peckerwood`], whitelistTerm: [] },\n \"trailer trash\": { blacklistTerm: [`trailer trash`], whitelistTerm: [] },\n\n // Racial slurs - Middle Eastern\n raghead: { blacklistTerm: [`raghead`], whitelistTerm: [] },\n towelhead: { blacklistTerm: [`towelhead`], whitelistTerm: [] },\n \"sand nigger\": { blacklistTerm: [`sand nigger`], whitelistTerm: [] },\n \"camel jockey\": { blacklistTerm: [`camel jockey`], whitelistTerm: [] },\n hajji: { blacklistTerm: [`hajji`], whitelistTerm: [] },\n muzzie: { blacklistTerm: [`muzzie`], whitelistTerm: [] },\n\n // Racial slurs - South Asian\n paki: { blacklistTerm: [`paki`], whitelistTerm: [] },\n \"curry muncher\": { blacklistTerm: [`curry muncher`], whitelistTerm: [] },\n\n // Racial slurs - Italian\n wop: { blacklistTerm: [`wop`], whitelistTerm: [] },\n dago: { blacklistTerm: [`dago`], whitelistTerm: [] },\n guinea: { blacklistTerm: [`guinea`], whitelistTerm: [] },\n\n // Racial slurs - Polish\n polack: { blacklistTerm: [`polack`], whitelistTerm: [] },\n\n // Racial slurs - German\n kraut: { blacklistTerm: [`kraut`], whitelistTerm: [] },\n\n // Racial slurs - French\n frog: { blacklistTerm: [`frog`], whitelistTerm: [] },\n\n // Racial slurs - British\n limey: { blacklistTerm: [`limey`], whitelistTerm: [] },\n\n // Racial slurs - Irish\n mick: { blacklistTerm: [`mick`], whitelistTerm: [\"mickey\"] },\n paddy: { blacklistTerm: [`paddy`], whitelistTerm: [] },\n\n // Racial slurs - Romani\n gypsy: { blacklistTerm: [`gypsy`], whitelistTerm: [] },\n pikey: { blacklistTerm: [`pikey`], whitelistTerm: [] },\n\n // Racial slurs - Indigenous Australian\n abo: { blacklistTerm: [`abo`], whitelistTerm: [] },\n boong: { blacklistTerm: [`boong`], whitelistTerm: [] },\n\n // Racial slurs - Native American\n redskin: { blacklistTerm: [`redskin`], whitelistTerm: [] },\n injun: { blacklistTerm: [`injun`], whitelistTerm: [] },\n squaw: { blacklistTerm: [`squaw`], whitelistTerm: [] },\n \"prairie nigger\": { blacklistTerm: [`prairie nigger`], whitelistTerm: [] },\n\n // LGBTQ+ slurs\n faggot: {\n blacklistTerm: [\n `faggot`,\n `fag`,\n `faggy`,\n `faggotry`,\n `f4ggot`,\n `f@ggot`,\n `f4g`,\n `f*ggot`,\n `f-word`,\n `f.a.g.g.o.t`,\n `FAGGOT`,\n `Faggot`,\n `FaGgOt`,\n `faggots`,\n ],\n whitelistTerm: [],\n },\n dyke: { blacklistTerm: [`dyke`], whitelistTerm: [] },\n lesbo: { blacklistTerm: [`lesbo`], whitelistTerm: [] },\n lezzie: { blacklistTerm: [`lezzie`], whitelistTerm: [] },\n \"carpet muncher\": { blacklistTerm: [`carpet muncher`], whitelistTerm: [] },\n \"muff diver\": { blacklistTerm: [`muff diver`], whitelistTerm: [] },\n homo: { blacklistTerm: [`homo`], whitelistTerm: [] },\n homosexual: { blacklistTerm: [`homosexual`], whitelistTerm: [] },\n queer: { blacklistTerm: [`queer`], whitelistTerm: [] },\n queen: { blacklistTerm: [`queen`], whitelistTerm: [] },\n pansy: { blacklistTerm: [`pansy`], whitelistTerm: [] },\n fairy: { blacklistTerm: [`fairy`], whitelistTerm: [] },\n poof: { blacklistTerm: [`poof`], whitelistTerm: [] },\n poofter: { blacklistTerm: [`poofter`], whitelistTerm: [] },\n nancy: { blacklistTerm: [`nancy`], whitelistTerm: [] },\n \"nancy boy\": { blacklistTerm: [`nancy boy`], whitelistTerm: [] },\n fruit: { blacklistTerm: [`fruit`], whitelistTerm: [] },\n fruitcake: { blacklistTerm: [`fruitcake`], whitelistTerm: [] },\n \"batty boy\": { blacklistTerm: [`batty boy`], whitelistTerm: [] },\n \"batty man\": { blacklistTerm: [`batty man`], whitelistTerm: [] },\n \"chi chi man\": { blacklistTerm: [`chi chi man`], whitelistTerm: [] },\n sissy: { blacklistTerm: [`sissy`], whitelistTerm: [] },\n \"butt pirate\": { blacklistTerm: [`butt pirate`], whitelistTerm: [] },\n \"pillow biter\": { blacklistTerm: [`pillow biter`], whitelistTerm: [] },\n \"fudge packer\": { blacklistTerm: [`fudge packer`], whitelistTerm: [] },\n \"ass bandit\": { blacklistTerm: [`ass bandit`], whitelistTerm: [] },\n \"shirt lifter\": { blacklistTerm: [`shirt lifter`], whitelistTerm: [] },\n\n // Transgender slurs\n tranny: { blacklistTerm: [`tranny`, `trаnny`], whitelistTerm: [] },\n shemale: { blacklistTerm: [`shemale`], whitelistTerm: [] },\n \"he-she\": { blacklistTerm: [`he-she`], whitelistTerm: [] },\n \"she-male\": { blacklistTerm: [`she-male`], whitelistTerm: [] },\n ladyboy: { blacklistTerm: [`ladyboy`], whitelistTerm: [] },\n trap: { blacklistTerm: [`trap`], whitelistTerm: [] },\n troon: { blacklistTerm: [`troon`], whitelistTerm: [] },\n troid: { blacklistTerm: [`troid`], whitelistTerm: [] },\n hermaphrodite: { blacklistTerm: [`hermaphrodite`], whitelistTerm: [] },\n\n // Ableist slurs\n retard: {\n blacklistTerm: [\n `retard`,\n `retarded`,\n `tard`,\n `libtard`,\n `fucktard`,\n `r3tard`,\n `ret@rd`,\n `retards`,\n ],\n whitelistTerm: [],\n },\n spaz: { blacklistTerm: [`spaz`], whitelistTerm: [] },\n spastic: { blacklistTerm: [`spastic`], whitelistTerm: [] },\n cripple: { blacklistTerm: [`cripple`], whitelistTerm: [] },\n gimp: { blacklistTerm: [`gimp`], whitelistTerm: [] },\n invalid: { blacklistTerm: [`invalid`], whitelistTerm: [] },\n vegetable: { blacklistTerm: [`vegetable`], whitelistTerm: [] },\n moron: { blacklistTerm: [`moron`], whitelistTerm: [] },\n imbecile: { blacklistTerm: [`imbecile`], whitelistTerm: [] },\n idiot: { blacklistTerm: [`idiot`], whitelistTerm: [] },\n cretin: { blacklistTerm: [`cretin`], whitelistTerm: [] },\n mongoloid: { blacklistTerm: [`mongoloid`], whitelistTerm: [] },\n \"window licker\": { blacklistTerm: [`window licker`], whitelistTerm: [] },\n \"short bus\": { blacklistTerm: [`short bus`], whitelistTerm: [] },\n\n // Misogynistic slurs\n cunt: { blacklistTerm: [`cunt`, `c*nt`], whitelistTerm: [] },\n bitch: { blacklistTerm: [`bitch`], whitelistTerm: [] },\n whore: { blacklistTerm: [`whore`], whitelistTerm: [] },\n slut: { blacklistTerm: [`slut`], whitelistTerm: [] },\n hoe: { blacklistTerm: [`hoe`], whitelistTerm: [] },\n skank: { blacklistTerm: [`skank`], whitelistTerm: [] },\n slag: { blacklistTerm: [`slag`], whitelistTerm: [] },\n twat: { blacklistTerm: [`twat`], whitelistTerm: [] },\n gash: { blacklistTerm: [`gash`], whitelistTerm: [] },\n feminazi: { blacklistTerm: [`feminazi`], whitelistTerm: [] },\n thot: { blacklistTerm: [`thot`], whitelistTerm: [] },\n roastie: { blacklistTerm: [`roastie`], whitelistTerm: [] },\n foid: { blacklistTerm: [`foid`], whitelistTerm: [] },\n femoid: { blacklistTerm: [`femoid`], whitelistTerm: [] },\n\n // Other derogatory terms\n cuck: { blacklistTerm: [`cuck`], whitelistTerm: [] },\n soyboy: { blacklistTerm: [`soyboy`], whitelistTerm: [] },\n beta: { blacklistTerm: [`beta`], whitelistTerm: [] },\n\n // Religious slurs\n \"bible thumper\": { blacklistTerm: [`bible thumper`], whitelistTerm: [] },\n \"holy roller\": { blacklistTerm: [`holy roller`], whitelistTerm: [] },\n heathen: { blacklistTerm: [`heathen`], whitelistTerm: [] },\n infidel: { blacklistTerm: [`infidel`], whitelistTerm: [] },\n kafir: { blacklistTerm: [`kafir`], whitelistTerm: [] },\n goy: { blacklistTerm: [`goy`], whitelistTerm: [] },\n shiksa: { blacklistTerm: [`shiksa`], whitelistTerm: [] },\n papist: { blacklistTerm: [`papist`], whitelistTerm: [] },\n \"mackerel snapper\": {\n blacklistTerm: [`mackerel snapper`],\n whitelistTerm: [],\n },\n proddy: { blacklistTerm: [`proddy`], whitelistTerm: [] },\n taig: { blacklistTerm: [`taig`], whitelistTerm: [] },\n fenian: { blacklistTerm: [`fenian`], whitelistTerm: [] },\n hun: { blacklistTerm: [`hun`], whitelistTerm: [] },\n \"orange bastard\": { blacklistTerm: [`orange bastard`], whitelistTerm: [] },\n};\n\nexport default fevoDict;\n"],"mappings":"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","names":["asteriskCensorStrategy","englishRecommendedTransformers","keepStartCensorStrategy","RegExpMatcher","TextCensor","DataSet","englishDataset","pattern","fevoDict","fevo_dictionary_default","badWordsDataSet","DataSet","englishDataset","initDataSet","key","fevo_dictionary_default","phrase","term","variant","pattern","Parser","presets","badWordsDataSet","englishRecommendedTransformers","badWordsMatcher","RegExpMatcher","strategy","keepStartCensorStrategy","asteriskCensorStrategy","censor","TextCensor","censorBadWords","input","hasContainsBadWords","censorHtmlPreservingTags","htmlStr","textNodes","nodePositions","fullText","parser","text","censored","result","textIndex","parser2","name","attribs","k","len","data","err"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fevo-tech/obscenity",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "",
|
|
3
|
+
"version": "0.0.3",
|
|
4
|
+
"description": "A robust profanity and obscenity filtering library for JavaScript and TypeScript applications, designed to detect and censor offensive language effectively.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
7
7
|
"module": "./dist/index.js",
|