@fevo-tech/obscenity 0.0.2 → 0.0.4

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 CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var l=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var z=Object.prototype.hasOwnProperty;var T=(e,r)=>{for(var n in r)l(e,n,{get:r[n],enumerable:!0})},v=(e,r,n,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of x(r))!z.call(e,s)&&s!==n&&l(e,s,{get:()=>r[s],enumerable:!(i=j(r,s))||i.enumerable});return e};var q=e=>v(l({},"__esModule",{value:!0}),e);var C={};T(C,{censorBadWords:()=>W,censorHtmlPreservingTags:()=>$,hasContainsBadWords:()=>A});module.exports=q(C);var o=require("obscenity");var c=require("obscenity");var D={nigger:["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"],negro:["negro"],coon:["coon"],darkie:["darkie"],spook:["spook"],jigaboo:["jigaboo"],sambo:["sambo"],pickaninny:["pickaninny"],"tar baby":["tar baby"],"porch monkey":["porch monkey"],"jungle bunny":["jungle bunny"],spade:["spade"],"moon cricket":["moon cricket"],kike:["kike","k1ke"],yid:["yid"],heeb:["heeb"],hymie:["hymie"],"christ killer":["christ killer"],chink:["chink","ch1nk"],gook:["gook","g00k"],slant:["slant"],slope:["slope"],zipperhead:["zipperhead"],"ching chong":["ching chong"],chinaman:["chinaman"],jap:["jap"],nip:["nip"],wetback:["wetback"],spic:["spic","sp1c"],beaner:["beaner"],greaser:["greaser"],cracker:["cracker"],honky:["honky"],redneck:["redneck"],"white trash":["white trash"],peckerwood:["peckerwood"],"trailer trash":["trailer trash"],raghead:["raghead"],towelhead:["towelhead"],"sand nigger":["sand nigger"],"camel jockey":["camel jockey"],hajji:["hajji"],muzzie:["muzzie"],paki:["paki"],"curry muncher":["curry muncher"],wop:["wop"],dago:["dago"],guinea:["guinea"],polack:["polack"],kraut:["kraut"],frog:["frog"],limey:["limey"],mick:["mick"],paddy:["paddy"],gypsy:["gypsy"],pikey:["pikey"],abo:["abo"],boong:["boong"],redskin:["redskin"],injun:["injun"],squaw:["squaw"],"prairie nigger":["prairie nigger"],faggot:["faggot","fag","faggy","faggotry","f4ggot","f@ggot","f4g","f*ggot","f-word","f.a.g.g.o.t","FAGGOT","Faggot","FaGgOt","faggots"],dyke:["dyke"],lesbo:["lesbo"],lezzie:["lezzie"],"carpet muncher":["carpet muncher"],"muff diver":["muff diver"],homo:["homo"],homosexual:["homosexual"],queer:["queer"],queen:["queen"],pansy:["pansy"],fairy:["fairy"],poof:["poof"],poofter:["poofter"],nancy:["nancy"],"nancy boy":["nancy boy"],fruit:["fruit"],fruitcake:["fruitcake"],"batty boy":["batty boy"],"batty man":["batty man"],"chi chi man":["chi chi man"],sissy:["sissy"],"butt pirate":["butt pirate"],"pillow biter":["pillow biter"],"fudge packer":["fudge packer"],"ass bandit":["ass bandit"],"shirt lifter":["shirt lifter"],tranny:["tranny","tr\u2013\u221Enny"],shemale:["shemale"],"he-she":["he-she"],"she-male":["she-male"],ladyboy:["ladyboy"],trap:["trap"],troon:["troon"],troid:["troid"],hermaphrodite:["hermaphrodite"],retard:["retard","retarded","tard","libtard","fucktard","r3tard","ret@rd","retards"],spaz:["spaz"],spastic:["spastic"],cripple:["cripple"],gimp:["gimp"],invalid:["invalid"],vegetable:["vegetable"],moron:["moron"],imbecile:["imbecile"],idiot:["idiot"],cretin:["cretin"],mongoloid:["mongoloid"],"window licker":["window licker"],"short bus":["short bus"],cunt:["cunt","c*nt"],bitch:["bitch"],whore:["whore"],slut:["slut"],hoe:["hoe"],skank:["skank"],slag:["slag"],twat:["twat"],gash:["gash"],feminazi:["feminazi"],thot:["thot"],roastie:["roastie"],foid:["foid"],femoid:["femoid"],cuck:["cuck"],soyboy:["soyboy"],beta:["beta"],"bible thumper":["bible thumper"],"holy roller":["holy roller"],heathen:["heathen"],infidel:["infidel"],kafir:["kafir"],goy:["goy"],shiksa:["shiksa"],papist:["papist"],"mackerel snapper":["mackerel snapper"],proddy:["proddy"],taig:["taig"],fenian:["fenian"],hun:["hun"],"orange bastard":["orange bastard"]},h=D;var p=new c.DataSet().addAll(c.englishDataset),M=()=>{for(let e in h)p.addPhrase(r=>{r.setMetadata({originalWord:e});for(let n of h[e])r.addPattern(c.pattern`${n}`);return r})};M();var m=require("htmlparser2"),k={...p.build(),...o.englishRecommendedTransformers},y=new o.RegExpMatcher({...k,blacklistMatcherTransformers:[...k.blacklistMatcherTransformers||[]],blacklistedTerms:[...k.blacklistedTerms]}),S=(0,o.keepStartCensorStrategy)((0,o.asteriskCensorStrategy)()),u=new o.TextCensor().setStrategy(S),W=e=>u.applyTo(e,y.getAllMatches(e)),A=e=>y.hasMatch(e),$=e=>{let r=[],n=[],i="",s=new m.Parser({ontext(a){r.push(a),n.push({start:i.length,end:i.length+a.length}),i+=a}},{decodeEntities:!1});s.write(e),s.end();let w=u.applyTo(i,y.getAllMatches(i)),t="",d=0,b=new m.Parser({onopentag(a,g){t+="<"+a;for(let f in g)t+=` ${f}="${g[f]}"`;t+=">"},ontext(a){let g=a.length;t+=w.slice(d,d+g),d+=g},onclosetag(a){t+=`</${a}>`},oncomment(a){t+=`<!--${a}-->`},onprocessinginstruction(a,g){t+=`<${g}>`},oncdatastart(){t+="<![CDATA["},oncdataend(){t+="]]>"},onerror(a){throw a}},{decodeEntities:!1});return b.write(e),b.end(),t};0&&(module.exports={censorBadWords,censorHtmlPreservingTags,hasContainsBadWords});
1
+ "use strict";var o=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var j=Object.prototype.hasOwnProperty;var x=(e,t)=>{for(var a in t)o(e,a,{get:t[a],enumerable:!0})},z=(e,t,a,l)=>{if(t&&typeof t=="object"||typeof t=="function")for(let m of u(t))!j.call(e,m)&&m!==a&&o(e,m,{get:()=>t[m],enumerable:!(l=y(t,m))||l.enumerable});return e};var v=e=>z(o({},"__esModule",{value:!0}),e);var $={};x($,{censorBadWords:()=>W,censorHtmlPreservingTags:()=>C,hasContainsBadWords:()=>A});module.exports=v($);var i=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:[]},batty:{blacklistTerm:["|batty"],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:[]},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:[]},"chi chi man":{blacklistTerm:["chi chi man"],whitelistTerm:[]},sissy:{blacklistTerm:["sissy"],whitelistTerm:[]},"butt pirate":{blacklistTerm:["|butt pirate|"],whitelistTerm:[]},"pillow biter":{blacklistTerm:["pillow bite[r]"],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:[]}},n=D;var k=new c.DataSet().addAll(c.englishDataset),q=()=>{for(let e in n)k.addPhrase(t=>{t.setMetadata({originalWord:e});let a=n[e];for(let l of a.blacklistTerm)t.addPattern(c.pattern`${l}`);for(let l of a.whitelistTerm)t.addWhitelistedTerm(l);return t})};q();var b=require("htmlparser2"),M={...k.build()},w=new i.RegExpMatcher({...M,blacklistMatcherTransformers:[(0,i.collapseDuplicatesTransformer)({defaultThreshold:2,customThresholds:new Map([["u",1]])}),(0,i.toAsciiLowerCaseTransformer)(),(0,i.resolveConfusablesTransformer)(),(0,i.resolveLeetSpeakTransformer)()]}),S=(0,i.keepStartCensorStrategy)((0,i.asteriskCensorStrategy)()),p=new i.TextCensor().setStrategy(S),W=e=>p.applyTo(e,w.getAllMatches(e)),A=e=>w.hasMatch(e),C=e=>{let t=[],a=[],l="",m=new b.Parser({ontext(r){t.push(r),a.push({start:l.length,end:l.length+r.length}),l+=r}},{decodeEntities:!1});m.write(e),m.end();let f=p.applyTo(l,w.getAllMatches(l)),s="",h=0,g=new b.Parser({onopentag(r,T){s+="<"+r;for(let d in T)s+=` ${d}="${T[d]}"`;s+=">"},ontext(r){let T=r.length;s+=f.slice(h,h+T),h+=T},onclosetag(r){s+=`</${r}>`},oncomment(r){s+=`<!--${r}-->`},onprocessinginstruction(r,T){s+=`<${T}>`},oncdatastart(){s+="<![CDATA["},oncdataend(){s+="]]>"},onerror(r){throw r}},{decodeEntities:!1});return g.write(e),g.end(),s};0&&(module.exports={censorBadWords,censorHtmlPreservingTags,hasContainsBadWords});
2
2
  //# sourceMappingURL=index.cjs.map
@@ -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 collapseDuplicatesTransformer,\n resolveConfusablesTransformer,\n keepStartCensorStrategy,\n RegExpMatcher,\n TextCensor,\n toAsciiLowerCaseTransformer,\n resolveLeetSpeakTransformer,\n} from \"obscenity\";\nimport { badWordsDataSet } from \"./dataset\";\nimport { Parser } from \"htmlparser2\";\n\nconst presets = {\n ...badWordsDataSet.build(),\n};\n\nconst badWordsMatcher = new RegExpMatcher({\n ...presets,\n blacklistMatcherTransformers: [\n collapseDuplicatesTransformer({\n defaultThreshold: 2,\n customThresholds: new Map([[\"u\", 1]]),\n }),\n toAsciiLowerCaseTransformer(),\n resolveConfusablesTransformer(),\n resolveLeetSpeakTransformer(),\n ],\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 batty: { blacklistTerm: [`|batty`], 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: [] },\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 \"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 bite[r]`], 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 z,englishRecommendedTransformers as T,keepStartCensorStrategy as v,RegExpMatcher as q,TextCensor as D}from"obscenity";import{DataSet as u,englishDataset as w,pattern as j}from"obscenity";var f={nigger:["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"],negro:["negro"],coon:["coon"],darkie:["darkie"],spook:["spook"],jigaboo:["jigaboo"],sambo:["sambo"],pickaninny:["pickaninny"],"tar baby":["tar baby"],"porch monkey":["porch monkey"],"jungle bunny":["jungle bunny"],spade:["spade"],"moon cricket":["moon cricket"],kike:["kike","k1ke"],yid:["yid"],heeb:["heeb"],hymie:["hymie"],"christ killer":["christ killer"],chink:["chink","ch1nk"],gook:["gook","g00k"],slant:["slant"],slope:["slope"],zipperhead:["zipperhead"],"ching chong":["ching chong"],chinaman:["chinaman"],jap:["jap"],nip:["nip"],wetback:["wetback"],spic:["spic","sp1c"],beaner:["beaner"],greaser:["greaser"],cracker:["cracker"],honky:["honky"],redneck:["redneck"],"white trash":["white trash"],peckerwood:["peckerwood"],"trailer trash":["trailer trash"],raghead:["raghead"],towelhead:["towelhead"],"sand nigger":["sand nigger"],"camel jockey":["camel jockey"],hajji:["hajji"],muzzie:["muzzie"],paki:["paki"],"curry muncher":["curry muncher"],wop:["wop"],dago:["dago"],guinea:["guinea"],polack:["polack"],kraut:["kraut"],frog:["frog"],limey:["limey"],mick:["mick"],paddy:["paddy"],gypsy:["gypsy"],pikey:["pikey"],abo:["abo"],boong:["boong"],redskin:["redskin"],injun:["injun"],squaw:["squaw"],"prairie nigger":["prairie nigger"],faggot:["faggot","fag","faggy","faggotry","f4ggot","f@ggot","f4g","f*ggot","f-word","f.a.g.g.o.t","FAGGOT","Faggot","FaGgOt","faggots"],dyke:["dyke"],lesbo:["lesbo"],lezzie:["lezzie"],"carpet muncher":["carpet muncher"],"muff diver":["muff diver"],homo:["homo"],homosexual:["homosexual"],queer:["queer"],queen:["queen"],pansy:["pansy"],fairy:["fairy"],poof:["poof"],poofter:["poofter"],nancy:["nancy"],"nancy boy":["nancy boy"],fruit:["fruit"],fruitcake:["fruitcake"],"batty boy":["batty boy"],"batty man":["batty man"],"chi chi man":["chi chi man"],sissy:["sissy"],"butt pirate":["butt pirate"],"pillow biter":["pillow biter"],"fudge packer":["fudge packer"],"ass bandit":["ass bandit"],"shirt lifter":["shirt lifter"],tranny:["tranny","tr\u2013\u221Enny"],shemale:["shemale"],"he-she":["he-she"],"she-male":["she-male"],ladyboy:["ladyboy"],trap:["trap"],troon:["troon"],troid:["troid"],hermaphrodite:["hermaphrodite"],retard:["retard","retarded","tard","libtard","fucktard","r3tard","ret@rd","retards"],spaz:["spaz"],spastic:["spastic"],cripple:["cripple"],gimp:["gimp"],invalid:["invalid"],vegetable:["vegetable"],moron:["moron"],imbecile:["imbecile"],idiot:["idiot"],cretin:["cretin"],mongoloid:["mongoloid"],"window licker":["window licker"],"short bus":["short bus"],cunt:["cunt","c*nt"],bitch:["bitch"],whore:["whore"],slut:["slut"],hoe:["hoe"],skank:["skank"],slag:["slag"],twat:["twat"],gash:["gash"],feminazi:["feminazi"],thot:["thot"],roastie:["roastie"],foid:["foid"],femoid:["femoid"],cuck:["cuck"],soyboy:["soyboy"],beta:["beta"],"bible thumper":["bible thumper"],"holy roller":["holy roller"],heathen:["heathen"],infidel:["infidel"],kafir:["kafir"],goy:["goy"],shiksa:["shiksa"],papist:["papist"],"mackerel snapper":["mackerel snapper"],proddy:["proddy"],taig:["taig"],fenian:["fenian"],hun:["hun"],"orange bastard":["orange bastard"]},g=f;var c=new u().addAll(w),x=()=>{for(let r in g)c.addPhrase(o=>{o.setMetadata({originalWord:r});for(let i of g[r])o.addPattern(j`${i}`);return o})};x();import{Parser as m}from"htmlparser2";var d={...c.build(),...T},l=new q({...d,blacklistMatcherTransformers:[...d.blacklistMatcherTransformers||[]],blacklistedTerms:[...d.blacklistedTerms]}),M=v(z()),y=new D().setStrategy(M),F=r=>y.applyTo(r,l.getAllMatches(r)),G=r=>l.hasMatch(r),R=r=>{let o=[],i=[],n="",h=new m({ontext(e){o.push(e),i.push({start:n.length,end:n.length+e.length}),n+=e}},{decodeEntities:!1});h.write(r),h.end();let b=y.applyTo(n,l.getAllMatches(n)),a="",s=0,p=new m({onopentag(e,t){a+="<"+e;for(let k in t)a+=` ${k}="${t[k]}"`;a+=">"},ontext(e){let t=e.length;a+=b.slice(s,s+t),s+=t},onclosetag(e){a+=`</${e}>`},oncomment(e){a+=`<!--${e}-->`},onprocessinginstruction(e,t){a+=`<${t}>`},oncdatastart(){a+="<![CDATA["},oncdataend(){a+="]]>"},onerror(e){throw e}},{decodeEntities:!1});return p.write(r),p.end(),a};export{F as censorBadWords,R as censorHtmlPreservingTags,G as hasContainsBadWords};
1
+ import{asteriskCensorStrategy as j,collapseDuplicatesTransformer as x,resolveConfusablesTransformer as z,keepStartCensorStrategy as v,RegExpMatcher as D,TextCensor as q,toAsciiLowerCaseTransformer as M,resolveLeetSpeakTransformer as S}from"obscenity";import{DataSet as p,englishDataset as f,pattern as y}from"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:[]},batty:{blacklistTerm:["|batty"],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:[]},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:[]},"chi chi man":{blacklistTerm:["chi chi man"],whitelistTerm:[]},sissy:{blacklistTerm:["sissy"],whitelistTerm:[]},"butt pirate":{blacklistTerm:["|butt pirate|"],whitelistTerm:[]},"pillow biter":{blacklistTerm:["pillow bite[r]"],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=d;var c=new p().addAll(f),u=()=>{for(let t in T)c.addPhrase(s=>{s.setMetadata({originalWord:t});let a=T[t];for(let r of a.blacklistTerm)s.addPattern(y`${r}`);for(let r of a.whitelistTerm)s.addWhitelistedTerm(r);return s})};u();import{Parser as b}from"htmlparser2";var W={...c.build()},h=new D({...W,blacklistMatcherTransformers:[x({defaultThreshold:2,customThresholds:new Map([["u",1]])}),M(),z(),S()]}),A=v(j()),w=new q().setStrategy(A),B=t=>w.applyTo(t,h.getAllMatches(t)),L=t=>h.hasMatch(t),O=t=>{let s=[],a=[],r="",o=new b({ontext(e){s.push(e),a.push({start:r.length,end:r.length+e.length}),r+=e}},{decodeEntities:!1});o.write(t),o.end();let g=w.applyTo(r,h.getAllMatches(r)),i="",m=0,n=new b({onopentag(e,l){i+="<"+e;for(let k in l)i+=` ${k}="${l[k]}"`;i+=">"},ontext(e){let l=e.length;i+=g.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{B as censorBadWords,O as censorHtmlPreservingTags,L 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 collapseDuplicatesTransformer,\n resolveConfusablesTransformer,\n keepStartCensorStrategy,\n RegExpMatcher,\n TextCensor,\n toAsciiLowerCaseTransformer,\n resolveLeetSpeakTransformer,\n} from \"obscenity\";\nimport { badWordsDataSet } from \"./dataset\";\nimport { Parser } from \"htmlparser2\";\n\nconst presets = {\n ...badWordsDataSet.build(),\n};\n\nconst badWordsMatcher = new RegExpMatcher({\n ...presets,\n blacklistMatcherTransformers: [\n collapseDuplicatesTransformer({\n defaultThreshold: 2,\n customThresholds: new Map([[\"u\", 1]]),\n }),\n toAsciiLowerCaseTransformer(),\n resolveConfusablesTransformer(),\n resolveLeetSpeakTransformer(),\n ],\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 batty: { blacklistTerm: [`|batty`], 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: [] },\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 \"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 bite[r]`], 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","collapseDuplicatesTransformer","resolveConfusablesTransformer","keepStartCensorStrategy","RegExpMatcher","TextCensor","toAsciiLowerCaseTransformer","resolveLeetSpeakTransformer","DataSet","englishDataset","pattern","fevoDict","fevo_dictionary_default","badWordsDataSet","DataSet","englishDataset","initDataSet","key","fevo_dictionary_default","phrase","term","variant","pattern","Parser","presets","badWordsDataSet","badWordsMatcher","RegExpMatcher","collapseDuplicatesTransformer","toAsciiLowerCaseTransformer","resolveConfusablesTransformer","resolveLeetSpeakTransformer","strategy","keepStartCensorStrategy","asteriskCensorStrategy","censor","TextCensor","censorBadWords","input","hasContainsBadWords","censorHtmlPreservingTags","htmlStr","textNodes","nodePositions","fullText","parser","text","censored","result","textIndex","parser2","name","attribs","len","data","err"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fevo-tech/obscenity",
3
- "version": "0.0.2",
4
- "description": "",
3
+ "version": "0.0.4",
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",