{"_id":"@coffeeandfun/google-profanity-words","_rev":"9-37490a1017c5a8c41af90336ad7b262e","name":"@coffeeandfun/google-profanity-words","dist-tags":{"latest":"3.0.7"},"versions":{"1.0.0":{"name":"@coffeeandfun/google-profanity-words","version":"1.0.0","keywords":["google","side-project","profanity","profanity-detection","profanityfilter"],"author":{"name":"Robert James Gabriel"},"license":"ISC","_id":"@coffeeandfun/google-profanity-words@1.0.0","maintainers":[{"name":"robertjgabriel","email":"robert_gabriel@outlook.com"}],"homepage":"https://github.com/ccoffeeandfun/Google-profanity-words#readme","bugs":{"url":"https://github.com/coffeeandfun/Google-profanity-words/issues"},"dist":{"shasum":"0f0beff2a6c9369e36de449a56d928b8c8ea9643","tarball":"https://registry.npmjs.org/@coffeeandfun/google-profanity-words/-/google-profanity-words-1.0.0.tgz","fileCount":8,"integrity":"sha512-E49k4lAZUIU+hht0ZsXEY87mzsnZ1sq6zBb4WUGjGcF55hYBn4G/ClgSatyaNynfwSaNUHQkhyx3x3jPkoFr6Q==","signatures":[{"sig":"MEUCIQDJlzg0LMrMmDkLwp3jMy44zSYrsBIl6JKOYDIdLYyj5AIgfoq6bLwS8JKBxVsGn+lHg3q/3ivlY8ujviEQlgholwA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":66833,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhv/rACRA9TVsSAnZWagAA7VsP/1nnVXk89DAWSGp7b6LT\ngkDOSXrZbzl7wdWxxKhhKDn6KChgKfyBzTroaTrFO9XY95rcFmoSo+FHI+ci\n7pKH9qUY3GiYXiLOEcg1wKzU+CzGRZp++O71ROEzlOV/LSW7rdGvBbnYP6tE\na6AXllkbbpTZVPry6Vi63u7qROhBEihBNjPiDDlE0VtRNGdiQJhLoumGqxvJ\nazKzUugnkFF0Q9poybFRxlwrOHX4FLN5QmY+mbdQ3vcppNv0qankICjHJMM/\nzXqKhxhWe8tVHvLcDpljM8O3y9juAZvNBHKE63Lr0n2wu4R5da1SzJJiueuF\nzuSb//EsqkT6awvataWJVM8Css/FvWlTB3Hp2lEtIXmOfVpUiKvj9C2x2KpC\nMuAzTcrVjvKSobxHQvkdJjpxqFxlBdEM4548G6icl1Q4ckpM1v98FIgLj4Yl\nTX/WpKoOw3TQ7CZe80hgKny8jVgJWkDXtjo+O07pTgbVSRefvyzwDUEoEmkt\nckvjbegGnHeUsmjiIFCOI44P/OTPf99FgHA38tcpr0omMycypD5T8Y6GxfeC\n/r7U66jMNOk5buSZ9AvK8fYes0PrC/Hml4RMz79GWQKGnLHDdysLozkyT8HC\nFNm9h84TJSsmcEa2Q6MGa7tV0jpngAiTJvG65t+2DxxrPa/+xwTu28eWtkio\nVQJ/\r\n=yn3N\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","gitHead":"f11a65054bcc56000069c32d0802fc9be54bd230","scripts":{"test":"jest"},"_npmUser":{"name":"robertjgabriel","email":"robert_gabriel@outlook.com"},"repository":{"url":"git+https://github.com/coffeeandfun/Google-profanity-words.git","type":"git"},"_npmVersion":"8.1.4","description":"Full list of bad words and top swear words banned by Google.","directories":{},"resolutions":{"babel-jest":"^21.2.0","babel-preset-jest":"^21.2.0","babel-plugin-jest-hoist":"^21.2.0"},"_nodeVersion":"14.15.3","dependencies":{"co":"^4.6.0","ms":"^2.1.2","ws":"^7.5.6","ajv":"^6.12.6","has":"^1.0.3","psl":"^1.8.0","abab":"^2.0.5","bser":"^2.1.1","exit":"^0.1.2","glob":"^7.2.0","levn":"^0.3.0","once":"^1.4.0","pify":"^4.0.1","tmpl":"^1.0.5","tr46":"^2.1.0","y18n":"^5.0.8","acorn":"^8.6.0","chalk":"^4.1.2","cliui":"^7.0.4","cssom":"^0.4.4","debug":"^4.3.3","execa":"^5.1.1","isexe":"^2.0.0","jsdom":"^16.7.0","jsesc":"^2.5.2","json5":"^2.2.0","kleur":"^3.0.3","leven":"^3.1.0","p-try":"^2.2.0","saxes":"^5.0.1","slash":"^3.0.0","which":"^2.0.2","yargs":"^16.2.0","braces":"^3.0.2","dedent":"^0.7.0","eslint":"^8.5.0","espree":"^9.2.0","expect":"^27.4.2","ignore":"^4.0.6","lodash":"^4.17.21","nwsapi":"^2.2.0","parse5":"^6.0.1","rimraf":"^3.0.2","semver":"^6.3.0","throat":"^6.0.1","uri-js":"^4.4.1","walker":"^1.0.8","wrappy":"^1.0.2","ci-info":"^3.3.0","deep-is":"^0.1.4","esprima":"^4.0.1","esquery":"^1.4.0","esutils":"^2.0.3","find-up":"^4.1.0","flatted":"^3.2.4","gensync":"^1.0.0-beta.2","globals":"^11.12.0","is-glob":"^4.0.3","js-yaml":"^3.14.1","mime-db":"^1.51.0","onetime":"^5.1.2","p-limit":"^2.3.0","pirates":"^4.0.4","pkg-dir":"^4.2.0","prompts":"^2.4.2","regexpp":"^3.2.0","resolve":"^1.20.0","yallist":"^4.0.0","anymatch":"^3.1.2","argparse":"^1.0.10","asynckit":"^0.4.0","chokidar":"^3.5.2","cssstyle":"^2.3.0","doctrine":"^3.0.0","emittery":"^0.8.1","enquirer":"^2.3.6","escalade":"^3.1.1","fsevents":"^2.3.2","has-flag":"^4.0.0","inflight":"^1.0.6","inherits":"^2.0.4","jest-cli":"^27.4.5","make-dir":"^3.1.0","mimic-fn":"^2.1.0","minimist":"^1.2.5","p-locate":"^4.1.0","path-key":"^3.1.1","progress":"^2.0.3","punycode":"^2.1.1","react-is":"^17.0.2","readdirp":"^3.6.0","regjsgen":"^0.5.2","xmlchars":"^2.2.0","acorn-jsx":"^5.3.2","call-bind":"^1.0.2","callsites":"^3.1.0","camelcase":"^5.3.1","commander":"^4.1.1","data-urls":"^2.0.0","deepmerge":"^4.2.2","escodegen":"^2.0.0","esrecurse":"^4.3.0","form-data":"^3.0.1","is-number":"^7.0.0","is-stream":"^2.0.1","jest-diff":"^27.4.2","jest-each":"^27.4.2","jest-mock":"^27.4.2","jest-util":"^27.4.2","js-tokens":"^4.0.0","lru-cache":"^6.0.0","makeerror":"^1.0.12","minimatch":"^3.0.4","picomatch":"^2.3.0","strip-bom":"^4.0.0","type-fest":"^0.21.3","word-wrap":"^1.2.3","wrap-ansi":"^7.0.0","acorn-walk":"^7.2.0","agent-base":"^6.0.2","ansi-regex":"^5.0.1","babel-jest":"^27.4.5","char-regex":"^1.0.2","color-name":"^1.1.4","concat-map":"^0.0.1","decimal.js":"^10.3.1","estraverse":"^5.3.0","fill-range":"^7.0.1","flat-cache":"^3.0.4","get-stream":"^6.0.1","iconv-lite":"^0.4.24","is-extglob":"^2.1.1","micromatch":"^4.0.4","mime-types":"^2.1.34","node-int64":"^0.4.0","optionator":"^0.8.3","path-parse":"^1.0.7","picocolors":"^1.0.0","prelude-ls":"^1.1.2","regenerate":"^1.4.2","sisteransi":"^1.0.5","source-map":"^0.6.1","sprintf-js":"^1.0.3","strip-ansi":"^6.0.1","text-table":"^0.2.0","type-check":"^0.3.2","whatwg-url":"^8.7.0","ansi-colors":"^4.1.1","ansi-styles":"^4.3.0","buffer-from":"^1.1.2","cross-spawn":"^7.0.3","emoji-regex":"^8.0.0","fb-watchman":"^2.0.1","fs.realpath":"^1.0.0","glob-parent":"^6.0.2","graceful-fs":"^4.2.8","has-symbols":"^1.0.2","imurmurhash":"^0.1.4","jest-circus":"^27.4.5","jest-config":"^27.4.5","jest-runner":"^27.4.5","jest-worker":"^27.4.5","locate-path":"^5.0.0","object-keys":"^1.1.1","path-exists":"^4.0.0","regjsparser":"^0.7.0","resolve-cwd":"^3.0.0","safe-buffer":"^5.1.2","signal-exit":"^3.0.6","stack-utils":"^2.0.5","symbol-tree":"^3.2.4","type-detect":"^4.0.8","w3c-hr-time":"^1.0.2","ansi-escapes":"^4.3.2","browserslist":"^4.19.1","caniuse-lite":"^1.0.30001291","domexception":"^2.0.1","eslint-scope":"^7.1.0","eslint-utils":"^3.0.0","html-escaper":"^2.0.2","import-fresh":"^3.3.0","import-local":"^3.0.3","jest-resolve":"^27.4.5","jest-runtime":"^27.4.5","jest-watcher":"^27.4.2","lodash.merge":"^4.6.2","merge-stream":"^2.0.0","npm-run-path":"^4.0.1","regexpu-core":"^4.8.0","resolve-from":"^5.0.0","safer-buffer":"^2.1.2","string-width":"^4.2.3","test-exclude":"^6.0.0","tough-cookie":"^4.0.0","universalify":"^0.1.2","yargs-parser":"^20.2.9","acorn-globals":"^6.0.0","color-convert":"^2.0.1","function-bind":"^1.1.1","get-intrinsic":"^1.1.1","human-signals":"^2.1.0","is-typedarray":"^1.0.0","jest-docblock":"^27.4.0","jest-get-type":"^27.4.0","jest-jasmine2":"^27.4.5","jest-snapshot":"^27.4.5","jest-validate":"^27.4.2","node-releases":"^2.0.1","object.assign":"^4.1.2","parent-module":"^1.0.1","pretty-format":"^27.4.2","shebang-regex":"^3.0.0","string-length":"^4.0.2","terminal-link":"^2.1.1","balanced-match":"^1.0.2","core-js-compat":"^3.20.0","delayed-stream":"^1.0.0","detect-newline":"^3.1.0","diff-sequences":"^27.4.0","is-binary-path":"^2.1.0","is-core-module":"^2.8.0","jest-haste-map":"^27.4.5","normalize-path":"^3.0.0","supports-color":"^7.2.0","to-regex-range":"^5.0.1","v8-to-istanbul":"^8.1.0","brace-expansion":"^1.1.11","combined-stream":"^1.0.8","fast-deep-equal":"^3.1.3","get-caller-file":"^2.0.5","is-generator-fn":"^2.1.0","jest-regex-util":"^27.4.0","jest-serializer":"^27.4.0","lodash.debounce":"^4.0.8","natural-compare":"^1.4.0","resolve.exports":"^1.1.0","shebang-command":"^2.0.0","whatwg-encoding":"^1.0.5","whatwg-mimetype":"^2.3.0","cjs-module-lexer":"^1.2.2","fast-levenshtein":"^2.0.6","file-entry-cache":"^6.0.1","get-package-type":"^0.1.0","http-proxy-agent":"^4.0.1","istanbul-reports":"^3.1.1","path-is-absolute":"^1.0.1","v8-compile-cache":"^2.3.0","babel-preset-jest":"^27.4.0","binary-extensions":"^2.2.0","define-properties":"^1.1.3","https-proxy-agent":"^5.0.0","jest-message-util":"^27.4.2","jest-pnp-resolver":"^1.2.2","require-directory":"^2.1.1","w3c-xmlserializer":"^2.0.0","write-file-atomic":"^3.0.3","convert-source-map":"^1.8.0","jest-changed-files":"^27.4.2","jest-leak-detector":"^27.4.2","jest-matcher-utils":"^27.4.2","source-map-support":"^0.5.21","to-fast-properties":"^2.0.0","webidl-conversions":"^6.1.0","xml-name-validator":"^3.0.0","collect-v8-coverage":"^1.0.1","eslint-visitor-keys":"^1.3.0","istanbul-lib-report":"^3.0.0","regenerator-runtime":"^0.13.9","strip-final-newline":"^2.0.0","strip-json-comments":"^3.1.1","supports-hyperlinks":"^2.2.0","electron-to-chromium":"^1.4.24","escape-string-regexp":"^2.0.0","fs-readdir-recursive":"^1.1.0","json-schema-traverse":"^0.4.1","typedarray-to-buffer":"^3.1.5","babel-plugin-istanbul":"^6.1.1","html-encoding-sniffer":"^2.0.1","istanbul-lib-coverage":"^3.2.0","jest-environment-node":"^27.4.4","regenerator-transform":"^0.14.5","browser-process-hrtime":"^1.0.0","jest-environment-jsdom":"^27.4.4","babel-plugin-jest-hoist":"^27.4.0","is-fullwidth-code-point":"^3.0.0","istanbul-lib-instrument":"^4.0.3","istanbul-lib-source-maps":"^4.0.1","functional-red-black-tree":"^1.0.1","jest-resolve-dependencies":"^27.4.5","fast-json-stable-stringify":"^2.1.0","babel-plugin-polyfill-corejs2":"^0.3.0","babel-plugin-polyfill-corejs3":"^0.4.0","regenerate-unicode-properties":"^9.0.0","babel-plugin-dynamic-import-node":"^2.3.3","babel-preset-current-node-syntax":"^1.0.1","is-potential-custom-element-name":"^1.0.1","babel-plugin-polyfill-regenerator":"^0.3.0","unicode-match-property-ecmascript":"^2.0.0","unicode-property-aliases-ecmascript":"^2.0.0","json-stable-stringify-without-jsonify":"^1.0.1","unicode-match-property-value-ecmascript":"^2.0.0","unicode-canonical-property-names-ecmascript":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.4.5","@babel/cli":"^7.16.0","@babel/core":"^7.16.5","babel-eslint":"^10.1.0","@babel/preset-env":"^7.16.5","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_npmOperationalInternal":{"tmp":"tmp/google-profanity-words_1.0.0_1639971520186_0.9346853303152503","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@coffeeandfun/google-profanity-words","version":"1.0.2","keywords":["google","side-project","profanity","profanity-detection","profanityfilter"],"author":{"name":"Robert James Gabriel"},"license":"ISC","_id":"@coffeeandfun/google-profanity-words@1.0.2","maintainers":[{"name":"robertjgabriel","email":"robert_gabriel@outlook.com"}],"homepage":"https://github.com/ccoffeeandfun/Google-profanity-words#readme","bugs":{"url":"https://github.com/coffeeandfun/Google-profanity-words/issues"},"dist":{"shasum":"da1cd9e1a0a3a0fedc9d9a0b50ffbd586e5125c8","tarball":"https://registry.npmjs.org/@coffeeandfun/google-profanity-words/-/google-profanity-words-1.0.2.tgz","fileCount":8,"integrity":"sha512-qb1rEXhhIckNC+KEvRSke+SKBDu7q8AMaJVOZ/bi/GSGSsq/o05DS93WiBRn6QiSEjiVHvq2f4kRFe36iJpcEg==","signatures":[{"sig":"MEYCIQDa/Akdyw45K7Hpc/1PI+NPU1TK/FZHPr68pe6BbE+/ZgIhAK1rQUx0W8jLJt+ohsLgeKeFbuOFemH/q/Gjs515DaYj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":67175,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhv/7UCRA9TVsSAnZWagAA5c8P/3yklp7pTzvCh0pvZESl\nEYt8S5XHdtWw+K6JZKU9O/rdua9SlNgr/WYupMDufXlpvVVrt+MM6GNIeL4A\nzi7rrNeKvbZOUIyzxBwrKVgYcqAMBKk4np8FWCOfMKOIC65tw3q53EIMbY0K\nUrKhJlnQLruaYur9+5pzJQtLtORvdANYyHGfmpS+AodOjXcyw8R6TFN7wSGI\n9dJSz+rs59fudZbQdbJB9vh7KLFs61zN3a6ZUddcdacCAP3LOLicJmWg7sVK\naQPCDHLvF2iEK+onbZZA85mFnZEQ85PgHudmR7q6SR8KNOpox0MKUMxdFC1v\nztWxf4dElGyEgjeTN/ySJuSFtwzIbH+9j0ifBbda7DPFFiPxfUCw98CFnlTD\nl9I0MLfXJWpR1rj5COn4h9tqx/7yEwuSQiq81KpH5j+WU9Odg76LqnOwwHMt\nGeqDaUWP/psvFBqBy5MXXkiLJMEJ0arxwQEexr4Y4Z4WfWJauVzqyVJ4hit3\nKXSQpyEl42Sh0p3iMr6AqKYEe40AzWTBKTy5BCq3u5zjjDeydvR6nwr3yP0E\ni5dxzMfCy6Ro16Si2Q6mdT6DFXzgHgtANCB6dtPxbvK9aAC9bZXSIgp/IAEa\nJv7a8/40BdxrVznsLpT3H5ZMDr7sexI4LngvuJYMUSeP3wtOGzc/TIuoKFyP\nx1O6\r\n=GGny\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","gitHead":"f11a65054bcc56000069c32d0802fc9be54bd230","scripts":{"test":"jest"},"_npmUser":{"name":"robertjgabriel","email":"robert_gabriel@outlook.com"},"repository":{"url":"git+https://github.com/coffeeandfun/Google-profanity-words.git","type":"git"},"_npmVersion":"8.1.4","description":"Full list of bad words and top swear words banned by Google.","directories":{},"resolutions":{"babel-jest":"^21.2.0","babel-preset-jest":"^21.2.0","babel-plugin-jest-hoist":"^21.2.0"},"_nodeVersion":"14.15.3","dependencies":{"co":"^4.6.0","ms":"^2.1.2","ws":"^7.5.6","ajv":"^6.12.6","has":"^1.0.3","psl":"^1.8.0","abab":"^2.0.5","bser":"^2.1.1","exit":"^0.1.2","glob":"^7.2.0","levn":"^0.3.0","once":"^1.4.0","pify":"^4.0.1","tmpl":"^1.0.5","tr46":"^2.1.0","y18n":"^5.0.8","acorn":"^8.6.0","chalk":"^4.1.2","cliui":"^7.0.4","cssom":"^0.4.4","debug":"^4.3.3","execa":"^5.1.1","isexe":"^2.0.0","jsdom":"^16.7.0","jsesc":"^2.5.2","json5":"^2.2.0","kleur":"^3.0.3","leven":"^3.1.0","p-try":"^2.2.0","saxes":"^5.0.1","slash":"^3.0.0","which":"^2.0.2","yargs":"^16.2.0","braces":"^3.0.2","dedent":"^0.7.0","eslint":"^8.5.0","espree":"^9.2.0","expect":"^27.4.2","ignore":"^4.0.6","lodash":"^4.17.21","nwsapi":"^2.2.0","parse5":"^6.0.1","rimraf":"^3.0.2","semver":"^6.3.0","throat":"^6.0.1","uri-js":"^4.4.1","walker":"^1.0.8","wrappy":"^1.0.2","ci-info":"^3.3.0","deep-is":"^0.1.4","esprima":"^4.0.1","esquery":"^1.4.0","esutils":"^2.0.3","find-up":"^4.1.0","flatted":"^3.2.4","gensync":"^1.0.0-beta.2","globals":"^11.12.0","is-glob":"^4.0.3","js-yaml":"^3.14.1","mime-db":"^1.51.0","onetime":"^5.1.2","p-limit":"^2.3.0","pirates":"^4.0.4","pkg-dir":"^4.2.0","prompts":"^2.4.2","regexpp":"^3.2.0","resolve":"^1.20.0","yallist":"^4.0.0","anymatch":"^3.1.2","argparse":"^1.0.10","asynckit":"^0.4.0","chokidar":"^3.5.2","cssstyle":"^2.3.0","doctrine":"^3.0.0","emittery":"^0.8.1","enquirer":"^2.3.6","escalade":"^3.1.1","fsevents":"^2.3.2","has-flag":"^4.0.0","inflight":"^1.0.6","inherits":"^2.0.4","jest-cli":"^27.4.5","make-dir":"^3.1.0","mimic-fn":"^2.1.0","minimist":"^1.2.5","p-locate":"^4.1.0","path-key":"^3.1.1","progress":"^2.0.3","punycode":"^2.1.1","react-is":"^17.0.2","readdirp":"^3.6.0","regjsgen":"^0.5.2","xmlchars":"^2.2.0","acorn-jsx":"^5.3.2","call-bind":"^1.0.2","callsites":"^3.1.0","camelcase":"^5.3.1","commander":"^4.1.1","data-urls":"^2.0.0","deepmerge":"^4.2.2","escodegen":"^2.0.0","esrecurse":"^4.3.0","form-data":"^3.0.1","is-number":"^7.0.0","is-stream":"^2.0.1","jest-diff":"^27.4.2","jest-each":"^27.4.2","jest-mock":"^27.4.2","jest-util":"^27.4.2","js-tokens":"^4.0.0","lru-cache":"^6.0.0","makeerror":"^1.0.12","minimatch":"^3.0.4","picomatch":"^2.3.0","strip-bom":"^4.0.0","type-fest":"^0.21.3","word-wrap":"^1.2.3","wrap-ansi":"^7.0.0","acorn-walk":"^7.2.0","agent-base":"^6.0.2","ansi-regex":"^5.0.1","babel-jest":"^27.4.5","char-regex":"^1.0.2","color-name":"^1.1.4","concat-map":"^0.0.1","decimal.js":"^10.3.1","estraverse":"^5.3.0","fill-range":"^7.0.1","flat-cache":"^3.0.4","get-stream":"^6.0.1","iconv-lite":"^0.4.24","is-extglob":"^2.1.1","micromatch":"^4.0.4","mime-types":"^2.1.34","node-int64":"^0.4.0","optionator":"^0.8.3","path-parse":"^1.0.7","picocolors":"^1.0.0","prelude-ls":"^1.1.2","regenerate":"^1.4.2","sisteransi":"^1.0.5","source-map":"^0.6.1","sprintf-js":"^1.0.3","strip-ansi":"^6.0.1","text-table":"^0.2.0","type-check":"^0.3.2","whatwg-url":"^8.7.0","ansi-colors":"^4.1.1","ansi-styles":"^4.3.0","buffer-from":"^1.1.2","cross-spawn":"^7.0.3","emoji-regex":"^8.0.0","fb-watchman":"^2.0.1","fs.realpath":"^1.0.0","glob-parent":"^6.0.2","graceful-fs":"^4.2.8","has-symbols":"^1.0.2","imurmurhash":"^0.1.4","jest-circus":"^27.4.5","jest-config":"^27.4.5","jest-runner":"^27.4.5","jest-worker":"^27.4.5","locate-path":"^5.0.0","object-keys":"^1.1.1","path-exists":"^4.0.0","regjsparser":"^0.7.0","resolve-cwd":"^3.0.0","safe-buffer":"^5.1.2","signal-exit":"^3.0.6","stack-utils":"^2.0.5","symbol-tree":"^3.2.4","type-detect":"^4.0.8","w3c-hr-time":"^1.0.2","ansi-escapes":"^4.3.2","browserslist":"^4.19.1","caniuse-lite":"^1.0.30001291","domexception":"^2.0.1","eslint-scope":"^7.1.0","eslint-utils":"^3.0.0","html-escaper":"^2.0.2","import-fresh":"^3.3.0","import-local":"^3.0.3","jest-resolve":"^27.4.5","jest-runtime":"^27.4.5","jest-watcher":"^27.4.2","lodash.merge":"^4.6.2","merge-stream":"^2.0.0","npm-run-path":"^4.0.1","regexpu-core":"^4.8.0","resolve-from":"^5.0.0","safer-buffer":"^2.1.2","string-width":"^4.2.3","test-exclude":"^6.0.0","tough-cookie":"^4.0.0","universalify":"^0.1.2","yargs-parser":"^20.2.9","acorn-globals":"^6.0.0","color-convert":"^2.0.1","function-bind":"^1.1.1","get-intrinsic":"^1.1.1","human-signals":"^2.1.0","is-typedarray":"^1.0.0","jest-docblock":"^27.4.0","jest-get-type":"^27.4.0","jest-jasmine2":"^27.4.5","jest-snapshot":"^27.4.5","jest-validate":"^27.4.2","node-releases":"^2.0.1","object.assign":"^4.1.2","parent-module":"^1.0.1","pretty-format":"^27.4.2","shebang-regex":"^3.0.0","string-length":"^4.0.2","terminal-link":"^2.1.1","balanced-match":"^1.0.2","core-js-compat":"^3.20.0","delayed-stream":"^1.0.0","detect-newline":"^3.1.0","diff-sequences":"^27.4.0","is-binary-path":"^2.1.0","is-core-module":"^2.8.0","jest-haste-map":"^27.4.5","normalize-path":"^3.0.0","supports-color":"^7.2.0","to-regex-range":"^5.0.1","v8-to-istanbul":"^8.1.0","brace-expansion":"^1.1.11","combined-stream":"^1.0.8","fast-deep-equal":"^3.1.3","get-caller-file":"^2.0.5","is-generator-fn":"^2.1.0","jest-regex-util":"^27.4.0","jest-serializer":"^27.4.0","lodash.debounce":"^4.0.8","natural-compare":"^1.4.0","resolve.exports":"^1.1.0","shebang-command":"^2.0.0","whatwg-encoding":"^1.0.5","whatwg-mimetype":"^2.3.0","cjs-module-lexer":"^1.2.2","fast-levenshtein":"^2.0.6","file-entry-cache":"^6.0.1","get-package-type":"^0.1.0","http-proxy-agent":"^4.0.1","istanbul-reports":"^3.1.1","path-is-absolute":"^1.0.1","v8-compile-cache":"^2.3.0","babel-preset-jest":"^27.4.0","binary-extensions":"^2.2.0","define-properties":"^1.1.3","https-proxy-agent":"^5.0.0","jest-message-util":"^27.4.2","jest-pnp-resolver":"^1.2.2","require-directory":"^2.1.1","w3c-xmlserializer":"^2.0.0","write-file-atomic":"^3.0.3","convert-source-map":"^1.8.0","jest-changed-files":"^27.4.2","jest-leak-detector":"^27.4.2","jest-matcher-utils":"^27.4.2","source-map-support":"^0.5.21","to-fast-properties":"^2.0.0","webidl-conversions":"^6.1.0","xml-name-validator":"^3.0.0","collect-v8-coverage":"^1.0.1","eslint-visitor-keys":"^1.3.0","istanbul-lib-report":"^3.0.0","regenerator-runtime":"^0.13.9","strip-final-newline":"^2.0.0","strip-json-comments":"^3.1.1","supports-hyperlinks":"^2.2.0","electron-to-chromium":"^1.4.24","escape-string-regexp":"^2.0.0","fs-readdir-recursive":"^1.1.0","json-schema-traverse":"^0.4.1","typedarray-to-buffer":"^3.1.5","babel-plugin-istanbul":"^6.1.1","html-encoding-sniffer":"^2.0.1","istanbul-lib-coverage":"^3.2.0","jest-environment-node":"^27.4.4","regenerator-transform":"^0.14.5","browser-process-hrtime":"^1.0.0","jest-environment-jsdom":"^27.4.4","babel-plugin-jest-hoist":"^27.4.0","is-fullwidth-code-point":"^3.0.0","istanbul-lib-instrument":"^4.0.3","istanbul-lib-source-maps":"^4.0.1","functional-red-black-tree":"^1.0.1","jest-resolve-dependencies":"^27.4.5","fast-json-stable-stringify":"^2.1.0","babel-plugin-polyfill-corejs2":"^0.3.0","babel-plugin-polyfill-corejs3":"^0.4.0","regenerate-unicode-properties":"^9.0.0","babel-plugin-dynamic-import-node":"^2.3.3","babel-preset-current-node-syntax":"^1.0.1","is-potential-custom-element-name":"^1.0.1","babel-plugin-polyfill-regenerator":"^0.3.0","unicode-match-property-ecmascript":"^2.0.0","unicode-property-aliases-ecmascript":"^2.0.0","json-stable-stringify-without-jsonify":"^1.0.1","unicode-match-property-value-ecmascript":"^2.0.0","unicode-canonical-property-names-ecmascript":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.4.5","@babel/cli":"^7.16.0","@babel/core":"^7.16.5","babel-eslint":"^10.1.0","@babel/preset-env":"^7.16.5","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_npmOperationalInternal":{"tmp":"tmp/google-profanity-words_1.0.2_1639972563933_0.7795546264521265","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@coffeeandfun/google-profanity-words","version":"1.0.3","keywords":["google","side-project","profanity","profanity-detection","profanityfilter"],"author":{"name":"Robert James Gabriel"},"license":"ISC","_id":"@coffeeandfun/google-profanity-words@1.0.3","maintainers":[{"name":"robertjgabriel","email":"robert_gabriel@outlook.com"}],"homepage":"https://github.com/ccoffeeandfun/Google-profanity-words#readme","bugs":{"url":"https://github.com/coffeeandfun/Google-profanity-words/issues"},"dist":{"shasum":"001289410b5d86ed6c7c6c063c072e2e2bf230c4","tarball":"https://registry.npmjs.org/@coffeeandfun/google-profanity-words/-/google-profanity-words-1.0.3.tgz","fileCount":8,"integrity":"sha512-91RcfnkLiGO/rPmbqS/UJpPtaQZRTVpHJKsfWdyUzYi1h1/vbNo7LSXuU+F6FHU0S6E6Ve0s9zh4vwvwlKkC/g==","signatures":[{"sig":"MEUCIE+ZsWFBiAkRcriKDp7csqypsYeMFnE0aPEJu2rRD5z5AiEA2puzLVG2JJzVblafxZOnGzkjoqzjWRQR9lS64aUG6/I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":67356,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhv//RCRA9TVsSAnZWagAAa/8P/RZJ5qMSC+wmRdjMkmur\n0hIAY2MhQ1iiCF/hHCuvphUMmghpgJy/S0fbvXWdZJ57PGlO/bp3Wxvv1nRx\nr25Jmd79KrGcwxqbc7u4ZYjPRBJ3AmQVnsU7EF3N3HOcXyXQ7OlfdY88KcJn\nXEob71opVPhw5XN+Y4ZyQOjLCejuJCjCGJW2kimdg/b18llQVCPD/I5xITzl\nHz4KyDr8HsrBlPVCJJ0hZhdytG3BMFR8KtrmozI75YSMu79BFXZhL2ljmoUT\n16HoDZOmJieaABl+dwDs2VDYSrfxZn3v6lPvMHEZJT9IvNBhSvj2cPMXquPb\nRfy2dnqd3+QGznf9LORlW/3c1VTI0QNCLoa5KUXaVLorVqgQ6fVYSYFT6rpe\ncoZ+Uk5Az3Q6tLGiXa0mhJ9dET94wdYZLcKo0t3sD12TJc5xsG+06ndLMkY9\njXWxMIpx2X8UWYEvMZcjub2KwRTQHHx8Tg6yffuDen+W/N3m/UnS++tNslgl\nW9FCyaqJxc5C/jUj0Umk8vi7LVwY4UiJXhEYLYUpl5u2DZ6zWajXry3bpEkO\nv2r1Ce2Nb/v6nS70jU+VSTT34Q3DnAyIWUTrY5SmzwPmE3x6g6YTJmm65W7t\nmZKDwaE/agRRuFYTjWnS800yZPcvHZ2fgTL17GwiNV8lpJ0oZbdN2U5H+E9E\nDXih\r\n=P2KI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","gitHead":"885272f2eacec56e1653d037ce5304483efd458d","scripts":{"test":"jest"},"_npmUser":{"name":"robertjgabriel","email":"robert_gabriel@outlook.com"},"repository":{"url":"git+https://github.com/coffeeandfun/Google-profanity-words.git","type":"git"},"_npmVersion":"8.1.4","description":"Full list of bad words and top swear words banned by Google.","directories":{},"resolutions":{"babel-jest":"^21.2.0","babel-preset-jest":"^21.2.0","babel-plugin-jest-hoist":"^21.2.0"},"_nodeVersion":"14.15.3","dependencies":{"co":"^4.6.0","ms":"^2.1.2","ws":"^7.5.6","ajv":"^6.12.6","has":"^1.0.3","psl":"^1.8.0","abab":"^2.0.5","bser":"^2.1.1","exit":"^0.1.2","glob":"^7.2.0","levn":"^0.3.0","once":"^1.4.0","pify":"^4.0.1","tmpl":"^1.0.5","tr46":"^2.1.0","y18n":"^5.0.8","acorn":"^8.6.0","chalk":"^4.1.2","cliui":"^7.0.4","cssom":"^0.4.4","debug":"^4.3.3","execa":"^5.1.1","isexe":"^2.0.0","jsdom":"^16.7.0","jsesc":"^2.5.2","json5":"^2.2.0","kleur":"^3.0.3","leven":"^3.1.0","p-try":"^2.2.0","saxes":"^5.0.1","slash":"^3.0.0","which":"^2.0.2","yargs":"^16.2.0","braces":"^3.0.2","dedent":"^0.7.0","eslint":"^8.5.0","espree":"^9.2.0","expect":"^27.4.2","ignore":"^4.0.6","lodash":"^4.17.21","nwsapi":"^2.2.0","parse5":"^6.0.1","rimraf":"^3.0.2","semver":"^6.3.0","throat":"^6.0.1","uri-js":"^4.4.1","walker":"^1.0.8","wrappy":"^1.0.2","ci-info":"^3.3.0","deep-is":"^0.1.4","esprima":"^4.0.1","esquery":"^1.4.0","esutils":"^2.0.3","find-up":"^4.1.0","flatted":"^3.2.4","gensync":"^1.0.0-beta.2","globals":"^11.12.0","is-glob":"^4.0.3","js-yaml":"^3.14.1","mime-db":"^1.51.0","onetime":"^5.1.2","p-limit":"^2.3.0","pirates":"^4.0.4","pkg-dir":"^4.2.0","prompts":"^2.4.2","regexpp":"^3.2.0","resolve":"^1.20.0","yallist":"^4.0.0","anymatch":"^3.1.2","argparse":"^1.0.10","asynckit":"^0.4.0","chokidar":"^3.5.2","cssstyle":"^2.3.0","doctrine":"^3.0.0","emittery":"^0.8.1","enquirer":"^2.3.6","escalade":"^3.1.1","fsevents":"^2.3.2","has-flag":"^4.0.0","inflight":"^1.0.6","inherits":"^2.0.4","jest-cli":"^27.4.5","make-dir":"^3.1.0","mimic-fn":"^2.1.0","minimist":"^1.2.5","p-locate":"^4.1.0","path-key":"^3.1.1","progress":"^2.0.3","punycode":"^2.1.1","react-is":"^17.0.2","readdirp":"^3.6.0","regjsgen":"^0.5.2","xmlchars":"^2.2.0","acorn-jsx":"^5.3.2","call-bind":"^1.0.2","callsites":"^3.1.0","camelcase":"^5.3.1","commander":"^4.1.1","data-urls":"^2.0.0","deepmerge":"^4.2.2","escodegen":"^2.0.0","esrecurse":"^4.3.0","form-data":"^3.0.1","is-number":"^7.0.0","is-stream":"^2.0.1","jest-diff":"^27.4.2","jest-each":"^27.4.2","jest-mock":"^27.4.2","jest-util":"^27.4.2","js-tokens":"^4.0.0","lru-cache":"^6.0.0","makeerror":"^1.0.12","minimatch":"^3.0.4","picomatch":"^2.3.0","strip-bom":"^4.0.0","type-fest":"^0.21.3","word-wrap":"^1.2.3","wrap-ansi":"^7.0.0","acorn-walk":"^7.2.0","agent-base":"^6.0.2","ansi-regex":"^5.0.1","babel-jest":"^27.4.5","char-regex":"^1.0.2","color-name":"^1.1.4","concat-map":"^0.0.1","decimal.js":"^10.3.1","estraverse":"^5.3.0","fill-range":"^7.0.1","flat-cache":"^3.0.4","get-stream":"^6.0.1","iconv-lite":"^0.4.24","is-extglob":"^2.1.1","micromatch":"^4.0.4","mime-types":"^2.1.34","node-int64":"^0.4.0","optionator":"^0.8.3","path-parse":"^1.0.7","picocolors":"^1.0.0","prelude-ls":"^1.1.2","regenerate":"^1.4.2","sisteransi":"^1.0.5","source-map":"^0.6.1","sprintf-js":"^1.0.3","strip-ansi":"^6.0.1","text-table":"^0.2.0","type-check":"^0.3.2","whatwg-url":"^8.7.0","ansi-colors":"^4.1.1","ansi-styles":"^4.3.0","buffer-from":"^1.1.2","cross-spawn":"^7.0.3","emoji-regex":"^8.0.0","fb-watchman":"^2.0.1","fs.realpath":"^1.0.0","glob-parent":"^6.0.2","graceful-fs":"^4.2.8","has-symbols":"^1.0.2","imurmurhash":"^0.1.4","jest-circus":"^27.4.5","jest-config":"^27.4.5","jest-runner":"^27.4.5","jest-worker":"^27.4.5","locate-path":"^5.0.0","object-keys":"^1.1.1","path-exists":"^4.0.0","regjsparser":"^0.7.0","resolve-cwd":"^3.0.0","safe-buffer":"^5.1.2","signal-exit":"^3.0.6","stack-utils":"^2.0.5","symbol-tree":"^3.2.4","type-detect":"^4.0.8","w3c-hr-time":"^1.0.2","ansi-escapes":"^4.3.2","browserslist":"^4.19.1","caniuse-lite":"^1.0.30001291","domexception":"^2.0.1","eslint-scope":"^7.1.0","eslint-utils":"^3.0.0","html-escaper":"^2.0.2","import-fresh":"^3.3.0","import-local":"^3.0.3","jest-resolve":"^27.4.5","jest-runtime":"^27.4.5","jest-watcher":"^27.4.2","lodash.merge":"^4.6.2","merge-stream":"^2.0.0","npm-run-path":"^4.0.1","regexpu-core":"^4.8.0","resolve-from":"^5.0.0","safer-buffer":"^2.1.2","string-width":"^4.2.3","test-exclude":"^6.0.0","tough-cookie":"^4.0.0","universalify":"^0.1.2","yargs-parser":"^20.2.9","acorn-globals":"^6.0.0","color-convert":"^2.0.1","function-bind":"^1.1.1","get-intrinsic":"^1.1.1","human-signals":"^2.1.0","is-typedarray":"^1.0.0","jest-docblock":"^27.4.0","jest-get-type":"^27.4.0","jest-jasmine2":"^27.4.5","jest-snapshot":"^27.4.5","jest-validate":"^27.4.2","node-releases":"^2.0.1","object.assign":"^4.1.2","parent-module":"^1.0.1","pretty-format":"^27.4.2","shebang-regex":"^3.0.0","string-length":"^4.0.2","terminal-link":"^2.1.1","balanced-match":"^1.0.2","core-js-compat":"^3.20.0","delayed-stream":"^1.0.0","detect-newline":"^3.1.0","diff-sequences":"^27.4.0","is-binary-path":"^2.1.0","is-core-module":"^2.8.0","jest-haste-map":"^27.4.5","normalize-path":"^3.0.0","supports-color":"^7.2.0","to-regex-range":"^5.0.1","v8-to-istanbul":"^8.1.0","brace-expansion":"^1.1.11","combined-stream":"^1.0.8","fast-deep-equal":"^3.1.3","get-caller-file":"^2.0.5","is-generator-fn":"^2.1.0","jest-regex-util":"^27.4.0","jest-serializer":"^27.4.0","lodash.debounce":"^4.0.8","natural-compare":"^1.4.0","resolve.exports":"^1.1.0","shebang-command":"^2.0.0","whatwg-encoding":"^1.0.5","whatwg-mimetype":"^2.3.0","cjs-module-lexer":"^1.2.2","fast-levenshtein":"^2.0.6","file-entry-cache":"^6.0.1","get-package-type":"^0.1.0","http-proxy-agent":"^4.0.1","istanbul-reports":"^3.1.1","path-is-absolute":"^1.0.1","v8-compile-cache":"^2.3.0","babel-preset-jest":"^27.4.0","binary-extensions":"^2.2.0","define-properties":"^1.1.3","https-proxy-agent":"^5.0.0","jest-message-util":"^27.4.2","jest-pnp-resolver":"^1.2.2","require-directory":"^2.1.1","w3c-xmlserializer":"^2.0.0","write-file-atomic":"^3.0.3","convert-source-map":"^1.8.0","jest-changed-files":"^27.4.2","jest-leak-detector":"^27.4.2","jest-matcher-utils":"^27.4.2","source-map-support":"^0.5.21","to-fast-properties":"^2.0.0","webidl-conversions":"^6.1.0","xml-name-validator":"^3.0.0","collect-v8-coverage":"^1.0.1","eslint-visitor-keys":"^1.3.0","istanbul-lib-report":"^3.0.0","regenerator-runtime":"^0.13.9","strip-final-newline":"^2.0.0","strip-json-comments":"^3.1.1","supports-hyperlinks":"^2.2.0","electron-to-chromium":"^1.4.24","escape-string-regexp":"^2.0.0","fs-readdir-recursive":"^1.1.0","json-schema-traverse":"^0.4.1","typedarray-to-buffer":"^3.1.5","babel-plugin-istanbul":"^6.1.1","html-encoding-sniffer":"^2.0.1","istanbul-lib-coverage":"^3.2.0","jest-environment-node":"^27.4.4","regenerator-transform":"^0.14.5","browser-process-hrtime":"^1.0.0","jest-environment-jsdom":"^27.4.4","babel-plugin-jest-hoist":"^27.4.0","is-fullwidth-code-point":"^3.0.0","istanbul-lib-instrument":"^4.0.3","istanbul-lib-source-maps":"^4.0.1","functional-red-black-tree":"^1.0.1","jest-resolve-dependencies":"^27.4.5","fast-json-stable-stringify":"^2.1.0","babel-plugin-polyfill-corejs2":"^0.3.0","babel-plugin-polyfill-corejs3":"^0.4.0","regenerate-unicode-properties":"^9.0.0","babel-plugin-dynamic-import-node":"^2.3.3","babel-preset-current-node-syntax":"^1.0.1","is-potential-custom-element-name":"^1.0.1","babel-plugin-polyfill-regenerator":"^0.3.0","unicode-match-property-ecmascript":"^2.0.0","unicode-property-aliases-ecmascript":"^2.0.0","json-stable-stringify-without-jsonify":"^1.0.1","unicode-match-property-value-ecmascript":"^2.0.0","unicode-canonical-property-names-ecmascript":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.4.5","@babel/cli":"^7.16.0","@babel/core":"^7.16.5","babel-eslint":"^10.1.0","@babel/preset-env":"^7.16.5","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_npmOperationalInternal":{"tmp":"tmp/google-profanity-words_1.0.3_1639972817556_0.512787161972591","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@coffeeandfun/google-profanity-words","version":"1.0.4","keywords":["google","side-project","profanity","profanity-detection","profanityfilter"],"author":{"name":"Robert James Gabriel"},"license":"ISC","_id":"@coffeeandfun/google-profanity-words@1.0.4","maintainers":[{"name":"robertjgabriel","email":"robert_gabriel@outlook.com"}],"homepage":"https://github.com/ccoffeeandfun/Google-profanity-words#readme","bugs":{"url":"https://github.com/coffeeandfun/Google-profanity-words/issues"},"dist":{"shasum":"dd046801cf7c730ff0393c5699ac520c0d817070","tarball":"https://registry.npmjs.org/@coffeeandfun/google-profanity-words/-/google-profanity-words-1.0.4.tgz","fileCount":7,"integrity":"sha512-SJRzBxtCOMVqyLgJmESOm8z7jLKAn9uh/37zBwKX7R9ZmHiAr8CLQaMHpOeXJU6rLYfrXpNMVH80Mjmb9WoZEA==","signatures":[{"sig":"MEUCIQDAcAZIrIYf112CqkWA9NKAUAWKSVSwIJdx/qNSILqhCgIgCwbKacA6MvDz0dYodengWO1NC+59uwAu8xFWSYcPUNs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":57842,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh48aICRA9TVsSAnZWagAAhG4P/1U3A/a4reWX2H2wzbSh\nRMjK7q31gFNEq3/vkHuqDF7lx+GjcMDZp2MIeCViQtJMISNY0wD/xDjZyA5D\nqMyDtr26c/cxf5BwAGOnRycoNUwPXzmFcZV3WM0YdT5PuufpXwULIaLo+8cc\ncyL3D4ONnZIyAepSYoUau8xotljgN5dh7mNlG2/6zsHET/4Cv5ML4/F9ASwn\nR1sAKYwx6tPO9RWcIXkVLiTefVI8tBfgnCJ9KTiLvS/tNKby5W9maU+fbwk0\n900r184HsZ28jAVpDDS8kE9yN0IsZ24SfyiQXV4zDEdkoioE9upaL+kKQspT\njHi/NhROCf7zoJkS6ygBuMukULsVvuuTH9myL8wgTGxRpmyX1UteAXWt3KwH\ndaWkP+07M86xiPVuIqpQ2XsLTa6Nik+gE7wdmD+sUhKMIZvM7pMWxepjngkZ\nXcvoJCJSr546jhCzKZnVrI6x0Btv3ZtTEd7s3zmmT670+onMKsVsHU6JC3O7\nYwUC/esawNF1McJFcmZ0kurjaDgqf5Tj0WZMa0NV0/AYqwf9PaPae06or5Gf\nLO/cn2jcuIDxanhWPKaMjFuGwWEAzD3rbeKyGlbtnuj1Gs+FjBPg+AoFr339\nalRyXyWFAvDsGVR6aIZdS6Vr6kAIpiS1ar1s7LacBJe2u6GcG2axJ+oE+aFp\noa7M\r\n=M9aH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","gitHead":"d5e3b744f472d3ebac20802fb67d37a637e40797","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"robertjgabriel","email":"robert_gabriel@outlook.com"},"repository":{"url":"git+https://github.com/coffeeandfun/Google-profanity-words.git","type":"git"},"_npmVersion":"8.1.4","description":"Full list of bad words and top swear words banned by Google.","directories":{},"_nodeVersion":"14.15.3","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.4.5"},"_npmOperationalInternal":{"tmp":"tmp/google-profanity-words_1.0.4_1642317448344_0.8037390762073433","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@coffeeandfun/google-profanity-words","version":"2.0.0","keywords":["google","side-project","profanity","profanity-detection","profanityfilter"],"author":{"name":"Robert James Gabriel"},"license":"ISC","_id":"@coffeeandfun/google-profanity-words@2.0.0","maintainers":[{"name":"robertjgabriel","email":"robert_gabriel@outlook.com"}],"homepage":"https://github.com/coffee-and-fun/google-profanity-words#readme","bugs":{"url":"https://github.com/coffee-and-fun/google-profanity-words/issues"},"dist":{"shasum":"1f8c2f02f5e2266500a0bac22d8e5457e76afa31","tarball":"https://registry.npmjs.org/@coffeeandfun/google-profanity-words/-/google-profanity-words-2.0.0.tgz","fileCount":11,"integrity":"sha512-i4fB6aR4Egfhm+fyg4KtReLRiU1BI6q2PA750c4DT8qU1ZCZ8f2EB+gQu2tlTtSO4gEKGNd7wdOQZhf5GHJB8Q==","signatures":[{"sig":"MEUCIQCb2HjsApZE++7k1e9R9l58NtHJfJN6FQJm+NL4BUV+KgIgKUjGs0zmDpZqCx6f1dbO4AG/rGqbcSSuWiNE6gZMK+g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":76311},"main":"index.js","type":"module","gitHead":"1456ee013de8c51e6cc9c7e6967fb865a25ce72a","scripts":{"en":"NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 jest english.test.js","es":"NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 jest spanish.test.js","test":"NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 jest","engine":"NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 jest engine.test.js"},"_npmUser":{"name":"robertjgabriel","email":"robert_gabriel@outlook.com"},"repository":{"url":"git+https://github.com/coffee-and-fun/google-profanity-words.git","type":"git"},"_npmVersion":"8.19.4","description":"Full list of bad words and top swear words banned by Google.","directories":{},"_nodeVersion":"16.20.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.4.5"},"_npmOperationalInternal":{"tmp":"tmp/google-profanity-words_2.0.0_1690009268985_0.7023175893915092","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"@coffeeandfun/google-profanity-words","version":"2.1.0","keywords":["google","side-project","profanity","profanity-detection","profanityfilter"],"author":{"name":"Robert James Gabriel"},"license":"ISC","_id":"@coffeeandfun/google-profanity-words@2.1.0","maintainers":[{"name":"robertjgabriel","email":"robert_gabriel@outlook.com"}],"homepage":"https://github.com/coffee-and-fun/google-profanity-words#readme","bugs":{"url":"https://github.com/coffee-and-fun/google-profanity-words/issues"},"dist":{"shasum":"8e195868694ad655755f53069599dd766943b51f","tarball":"https://registry.npmjs.org/@coffeeandfun/google-profanity-words/-/google-profanity-words-2.1.0.tgz","fileCount":12,"integrity":"sha512-j7/N2C01g5W22ReQ4laVR5MdTFRidDLkVY9z6z9Mresla83sd9vQalMXypQnT1+RuHErEfGIYNm5/Hu/LF/zzA==","signatures":[{"sig":"MEUCIQD6nrJPlqoZ42oe+E/rLcWi2G40RQtoWo1/dKkMoICsEAIgI6NqgTLVPGWd3I/TXmAB8MMdqZNyoZ6tJz0uDr81/v0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":78382},"main":"index.js","type":"module","gitHead":"9e55efc743313642298b578fa6fabd5dc529c2ea","scripts":{"en":"NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 jest english.test.js","es":"NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 jest spanish.test.js","test":"NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 jest","engine":"NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 jest engine.test.js","format":"npx prettier . --write"},"_npmUser":{"name":"robertjgabriel","email":"robert_gabriel@outlook.com"},"repository":{"url":"git+https://github.com/coffee-and-fun/google-profanity-words.git","type":"git"},"_npmVersion":"8.19.4","description":"Full list of bad words and top swear words banned by Google.","directories":{},"_nodeVersion":"16.20.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^27.4.5","prettier":"3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/google-profanity-words_2.1.0_1690441661880_0.923730060389055","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"@coffeeandfun/google-profanity-words","version":"3.0.0","keywords":["google","side-project","profanity","profanity-detection","profanityfilter"],"author":{"name":"Robert James Gabriel"},"license":"ISC","_id":"@coffeeandfun/google-profanity-words@3.0.0","maintainers":[{"name":"robertjgabriel","email":"robert_gabriel@outlook.com"}],"homepage":"https://github.com/coffee-and-fun/google-profanity-words#readme","bugs":{"url":"https://github.com/coffee-and-fun/google-profanity-words/issues"},"dist":{"shasum":"8bff12b205fd114e117c8db5fca7e79e02175339","tarball":"https://registry.npmjs.org/@coffeeandfun/google-profanity-words/-/google-profanity-words-3.0.0.tgz","fileCount":21,"integrity":"sha512-uBwSFdqSqwvOFadr57zdxjvjq/M2/BKP57OIUeuB0b8jatl1B8FcNy11JDPNs8kaOFWPpPq9ujt2z/qqWXcjhQ==","signatures":[{"sig":"MEUCIQD44mNPrUk186uU5Q9cy0HxzqLH7glU43CU0Eckn67RVgIgL2DFztlltgv2hpMSmJanPPhwNen44PKQ9PMZnt+ugus=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":214422},"main":"index.js","type":"module","gitHead":"429f255a212f8f146a9ac6fda905df995f643aa8","scripts":{"en":"NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 jest english.test.js","es":"NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 jest spanish.test.js","test":"NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 jest","engine":"NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 jest engine.test.js","format":"npx prettier . --write"},"_npmUser":{"name":"robertjgabriel","email":"robert_gabriel@outlook.com"},"repository":{"url":"git+https://github.com/coffee-and-fun/google-profanity-words.git","type":"git"},"_npmVersion":"10.9.0","description":"Real profanity words banned by Google, extracted from their hidden API before shutdown. Now available as an easy-to-use Node.js library for content filtering.","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^27.4.5","prettier":"3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/google-profanity-words_3.0.0_1752633968946_0.28347295658594884","host":"s3://npm-registry-packages-npm-production"}},"3.0.7":{"name":"@coffeeandfun/google-profanity-words","version":"3.0.7","description":"Real profanity words banned by Google, extracted from their hidden API before shutdown. Now available as an easy-to-use Node.js library for content filtering.","main":"index.js","types":"index.d.ts","type":"module","exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./package.json":"./package.json"},"engines":{"node":">=16"},"scripts":{"format":"npx prettier . --write","test":"NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 jest","en":"NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 jest english.test.js","es":"NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 jest spanish.test.js","engine":"NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 jest engine.test.js"},"repository":{"type":"git","url":"git+https://github.com/coffee-and-fun/google-profanity-words.git"},"keywords":["google","side-project","profanity","profanity-detection","profanityfilter"],"author":{"name":"Robert James Gabriel"},"license":"MIT","bugs":{"url":"https://github.com/coffee-and-fun/google-profanity-words/issues"},"homepage":"https://github.com/coffee-and-fun/google-profanity-words#readme","devDependencies":{"jest":"^30.3.0","prettier":"3.0.0"},"gitHead":"0ae3460863120bc671361b9403cc65d5f2075b89","_id":"@coffeeandfun/google-profanity-words@3.0.7","_nodeVersion":"20.20.2","_npmVersion":"11.12.1","dist":{"integrity":"sha512-xbtxvk+MJbzRJHL2LyS/3YKkBQsqhK/aMI4OZQCNt3hW2b8WZ8zDKF+K+2925w5/mQdMC7RKN21LGaR0phnDmA==","shasum":"029621a3e2966380408cc0fe9d584316478f2d4b","tarball":"https://registry.npmjs.org/@coffeeandfun/google-profanity-words/-/google-profanity-words-3.0.7.tgz","fileCount":15,"unpackedSize":40139,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@coffeeandfun%2fgoogle-profanity-words@3.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCADpaI+1L9n3Oq9OVOFayUBPq5C39o5Tkzfnc4eRlqxwIgJVtSoeymb6mIoiUJYVmR8eUKZsFpGPQ4WtAcqk1LPvQ="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a5fb8665-8a37-4e34-a6c7-fb972361210f"}},"directories":{},"maintainers":[{"name":"robertjgabriel","email":"robert_gabriel@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/google-profanity-words_3.0.7_1776688451783_0.2987607865567412"},"_hasShrinkwrap":false}},"time":{"created":"2021-12-20T03:38:40.131Z","modified":"2026-04-20T12:34:12.536Z","1.0.0":"2021-12-20T03:38:40.379Z","1.0.2":"2021-12-20T03:56:04.148Z","1.0.3":"2021-12-20T04:00:17.664Z","1.0.4":"2022-01-16T07:17:28.509Z","2.0.0":"2023-07-22T07:01:09.263Z","2.1.0":"2023-07-27T07:07:42.113Z","3.0.0":"2025-07-16T02:46:09.154Z","3.0.7":"2026-04-20T12:34:11.917Z"},"bugs":{"url":"https://github.com/coffee-and-fun/google-profanity-words/issues"},"author":{"name":"Robert James Gabriel"},"license":"MIT","homepage":"https://github.com/coffee-and-fun/google-profanity-words#readme","keywords":["google","side-project","profanity","profanity-detection","profanityfilter"],"repository":{"type":"git","url":"git+https://github.com/coffee-and-fun/google-profanity-words.git"},"description":"Real profanity words banned by Google, extracted from their hidden API before shutdown. Now available as an easy-to-use Node.js library for content filtering.","maintainers":[{"name":"robertjgabriel","email":"robert_gabriel@outlook.com"}],"readme":"![alt text](.github/readme.png 'Logo Title Text 1')\n\n# ☕ Google Profanity Words\n\n> A fun and developer-friendly profanity detection library brought to you by [Coffee & Fun LLC](https://coffeeandfun.com) ☕🎉\n> Built and maintained with love by [Robert James Gabriel](https://github.com/robertgabriel) 💻✨\n\n[![npm version](https://img.shields.io/npm/v/@coffeeandfun/google-profanity-words.svg)](https://www.npmjs.com/package/@coffeeandfun/google-profanity-words) [![Stars](https://img.shields.io/github/stars/coffee-and-fun/google-profanity-words?style=social)](https://github.com/coffee-and-fun/google-profanity-words)\n\n---\n\n## 🚀 What's This?\n\n**Google Profanity Words** is a Node.js library that helps you detect and filter out naughty language (in multiple languages!) from your apps or content. Whether you're building a chat app, a comment section, a game, or a comment moderator — this one's your profanity-slaying sidekick.\n\nMade by devs for devs. Maintained by Robert at Coffee & Fun ☕❤️\n\n---\n\n## ✨ Features\n\n- 🌐 **Multilingual** — English, Spanish, French, Irish, Arabic, and Chinese out of the box\n- ⚡ **Fast & tiny** — zero runtime dependencies, O(1) lookups with `Set`\n- 🧪 **Battle-tested** — 200+ Jest tests across every language\n- 🔒 **Secure by default** — no polynomial regex, ships with provenance\n- 📝 **TypeScript ready** — types included, no `@types` install needed\n- 🎯 **Framework-friendly** — works with Express, Fastify, Koa, Next.js, Discord.js, you name it\n\n---\n\n## 📦 Install Me\n\n```bash\nnpm install @coffeeandfun/google-profanity-words\n```\n\nRequires **Node.js 16+**.\n\n---\n\n## ⚡ Quickstart Guide\n\n```js\nimport { ProfanityEngine } from '@coffeeandfun/google-profanity-words';\n\n// Default is English\nconst profanity = new ProfanityEngine();\n\n// Español? You got it.\nconst profanityES = new ProfanityEngine({ language: 'es' });\n\n// Check a single word\nconst isBad = await profanity.search('hell');\n\n// Or check a full sentence\nconst hasCurses = await profanity.hasCurseWords('This is a test sentence');\n\n// Or grab the actual bad words\nconst found = await profanity.getCurseWords('oh hell and damn');\n\nconsole.log(isBad, hasCurses, found);\n// → true, false, ['hell', 'damn']\n```\n\nThat's the whole idea. Everything below is detail. ✨\n\n---\n\n## 🧠 What a Returned Object Looks Like\n\nEvery check method is **async** and returns a Promise. Here's what you'll actually see back:\n\n```js\nawait profanity.hasCurseWords('oh hell no');\n// → true\n\nawait profanity.hasCurseWords('have a lovely day');\n// → false\n\nawait profanity.getCurseWords('hell, damn, and hell again');\n// → ['hell', 'damn']                 // unique, lowercase\n\nawait profanity.getCurseWords('a perfectly fine sentence');\n// → []                               // empty array, never null\n\nawait profanity.search('HELL');\n// → true                             // case-insensitive\n\nawait profanity.search('hello');\n// → false\n\nawait profanity.all();\n// → ['2 girls 1 cup', '2g1c', '4r5e', /* …962 total */]\n```\n\n---\n\n## 🔍 API Reference\n\n### 🛠️ `new ProfanityEngine(options?)`\n\nCreate a new profanity detector engine!\n\n```js\nconst profanity = new ProfanityEngine(); // Defaults to English\nconst spanishProfanity = new ProfanityEngine({ language: 'es' });\n```\n\n#### Options\n\n| Option     | Type      | Default | What it does                                                     |\n| ---------- | --------- | ------- | ---------------------------------------------------------------- |\n| `language` | `string`  | `'en'`  | ISO code matching a file in `data/`. Falls back to English.      |\n| `testMode` | `boolean` | `false` | When `true`, suppresses `console.warn` output (great in tests).  |\n\n---\n\n### 🔎 `search(word)`\n\nCheck a single word to see if it's naughty.\n\n```js\nawait profanity.search('heck');   // → false\nawait profanity.search('hell');   // → true\nawait profanity.search('HELL');   // → true (case-insensitive)\nawait profanity.search('  hell '); // → true (trimmed for you)\nawait profanity.search('');       // → false\nawait profanity.search(null);     // → false (handles bad input)\n```\n\n---\n\n### 💬 `hasCurseWords(sentence)`\n\nCheck a full sentence or phrase for profanity.\n\n```js\nawait profanity.hasCurseWords('You silly goose');        // → false\nawait profanity.hasCurseWords('oh hell no');             // → true\nawait profanity.hasCurseWords('(hell)!');                // → true (punctuation is handled)\nawait profanity.hasCurseWords('This is hellhole land');  // → false (whole-word match)\n```\n\n---\n\n### 📋 `getCurseWords(sentence)`\n\nGet the actual bad words that showed up (unique, lowercase).\n\n```js\nawait profanity.getCurseWords('hell and damn and hell again');\n// → ['hell', 'damn']\n\nawait profanity.getCurseWords('a clean message');\n// → []\n```\n\nGreat for logging moderation events or showing users exactly what tripped the filter.\n\n---\n\n### 📜 `all()`\n\nGet the full list of bad words in the current language.\n\n```js\nconst badWords = await profanity.all();\nconsole.log(badWords.length); // → 962 (for English)\nconsole.log(badWords[0]);     // → '2 girls 1 cup'\n```\n\nThe returned array is a **copy** — mutating it won't affect the engine.\n\n---\n\n### 🔄 `reset()`\n\nClears the in-memory cache. Next call re-reads the data file. Useful in tests or if you hot-swap the data file.\n\n```js\nprofanity.reset();\n```\n\n---\n\n## 🌐 Supported Languages\n\n| Code | Language              | Entries (approx.) |\n| ---- | --------------------- | ----------------- |\n| `en` | English 🇬🇧 (default) | 962               |\n| `es` | Spanish 🇪🇸           | 564               |\n| `fr` | French 🇫🇷            | 23                |\n| `ga` | Irish 🇮🇪             | 15                |\n| `ar` | Arabic                | 23                |\n| `zh` | Chinese 🇨🇳           | 30                |\n\n> If you pass a language code that doesn't exist, the engine gracefully falls back to English and prints a warning (unless `testMode: true`).\n\n---\n\n## 💡 Real Talk: Edge Cases\n\n- Empty strings? We gotchu. Returns `false` / `[]`. 👌\n- `null`, `undefined`, numbers, objects? No crashes — returns `false` / `[]`.\n- **Case-insensitive** by default (`Hell`, `HELL`, `hell` all match).\n- Handles punctuation: `hell!`, `(hell)`, `\"hell\"`, `hell.` — all detected.\n- **Whole-word matching**: `hellhole` does **not** trigger on `hell`.\n- Works with Unicode (Spanish `¿`/`¡`, Chinese characters, Arabic, etc.) thanks to `Intl.Segmenter`.\n\n---\n\n## 🧪 Testing with Jest\n\nWe've got testing covered like whipped cream on a latte ☕🎂\n\n```bash\n# Run the full suite\nnpm test\n\n# Run a single language's tests\nnpm run en\nnpm run es\nnpm run engine\n\n# Or use Jest directly\nnpx jest --watch\nnpx jest --coverage\nnpx jest path/to/file.test.js\n```\n\nTests live in `__tests__/` and run against the **real** word-list files — no mocking, no surprises. 🎯\n\n---\n\n## 🔀 Example Use Cases\n\n### ✅ Filter User Input\n\n```js\nimport { ProfanityEngine } from '@coffeeandfun/google-profanity-words';\n\nconst profanity = new ProfanityEngine();\n\nasync function cleanInput(input) {\n  if (await profanity.hasCurseWords(input)) {\n    return '⚠️ Whoa there! Language, please.';\n  }\n  return input;\n}\n```\n\n---\n\n### 🌍 Multi-Language Setup\n\n```js\nconst en = new ProfanityEngine({ language: 'en' });\nconst es = new ProfanityEngine({ language: 'es' });\n\nconst [englishHit, spanishHit] = await Promise.all([\n  en.hasCurseWords('oh hell no'),\n  es.hasCurseWords('¡qué mierda!'),\n]);\n\nconsole.log(englishHit, spanishHit); // → true, true\n```\n\n---\n\n### 🚦 Express Middleware\n\nBlock profane comments at the API boundary.\n\n```js\nimport express from 'express';\nimport { ProfanityEngine } from '@coffeeandfun/google-profanity-words';\n\nconst app = express();\nconst profanity = new ProfanityEngine();\n\napp.use(express.json());\n\napp.post('/comments', async (req, res) => {\n  const text = req.body?.text ?? '';\n  if (await profanity.hasCurseWords(text)) {\n    return res.status(400).json({\n      error: 'Please keep it friendly 💛',\n    });\n  }\n  res.json({ ok: true, comment: text });\n});\n\napp.listen(3000);\n```\n\n---\n\n### ⚡ Fastify\n\n```js\nimport Fastify from 'fastify';\nimport { ProfanityEngine } from '@coffeeandfun/google-profanity-words';\n\nconst app = Fastify();\nconst profanity = new ProfanityEngine();\n\napp.post('/chat', async (request, reply) => {\n  const { message } = request.body;\n  if (await profanity.hasCurseWords(message)) {\n    reply.code(400);\n    return { error: 'Please watch your language 😅' };\n  }\n  return { ok: true, message };\n});\n\nawait app.listen({ port: 3000 });\n```\n\n---\n\n### 🧭 Koa\n\n```js\nimport Koa from 'koa';\nimport bodyParser from 'koa-bodyparser';\nimport { ProfanityEngine } from '@coffeeandfun/google-profanity-words';\n\nconst app = new Koa();\nconst profanity = new ProfanityEngine();\n\napp.use(bodyParser());\napp.use(async (ctx) => {\n  const { text = '' } = ctx.request.body || {};\n  if (await profanity.hasCurseWords(text)) {\n    ctx.status = 400;\n    ctx.body = { error: 'Language, please 🙈' };\n    return;\n  }\n  ctx.body = { ok: true };\n});\n\napp.listen(3000);\n```\n\n---\n\n### 🔺 Next.js API Route (App Router)\n\n`app/api/moderate/route.js`:\n\n```js\nimport { NextResponse } from 'next/server';\nimport { ProfanityEngine } from '@coffeeandfun/google-profanity-words';\n\nconst profanity = new ProfanityEngine();\n\nexport async function POST(request) {\n  const { text } = await request.json();\n  const hasBadWords = await profanity.hasCurseWords(text);\n  return NextResponse.json({ clean: !hasBadWords });\n}\n```\n\n---\n\n### 🎮 Discord.js Bot\n\nDelete messages with profanity and warn the user.\n\n```js\nimport { Client, GatewayIntentBits } from 'discord.js';\nimport { ProfanityEngine } from '@coffeeandfun/google-profanity-words';\n\nconst client = new Client({\n  intents: [\n    GatewayIntentBits.Guilds,\n    GatewayIntentBits.GuildMessages,\n    GatewayIntentBits.MessageContent,\n  ],\n});\n\nconst profanity = new ProfanityEngine();\n\nclient.on('messageCreate', async (message) => {\n  if (message.author.bot) return;\n\n  if (await profanity.hasCurseWords(message.content)) {\n    await message.delete();\n    await message.channel.send(\n      `${message.author}, please keep the channel friendly 💛`\n    );\n  }\n});\n\nclient.login(process.env.DISCORD_TOKEN);\n```\n\n---\n\n### 🎭 Replace / Censor Matched Words\n\nSwap found words with asterisks.\n\n```js\nasync function censor(text) {\n  const bad = await profanity.getCurseWords(text);\n  let result = text;\n  for (const word of bad) {\n    const mask = '*'.repeat(word.length);\n    result = result.replaceAll(new RegExp(`\\\\b${word}\\\\b`, 'gi'), mask);\n  }\n  return result;\n}\n\nawait censor('what the hell, damn it');\n// → 'what the ****, **** it'\n```\n\n---\n\n### 📊 Count Profanity\n\n```js\nasync function countBad(text) {\n  const words = await profanity.getCurseWords(text);\n  return {\n    count: words.length,\n    words,\n    hasProfanity: words.length > 0,\n  };\n}\n\nawait countBad('hell and damn and hell again');\n// → { count: 2, words: ['hell', 'damn'], hasProfanity: true }\n```\n\n---\n\n### 📦 Batch Processing\n\nCheck a whole array of strings in parallel.\n\n```js\nconst messages = [\n  'hello world',\n  'oh hell no',\n  'have a great day',\n  'damn it',\n];\n\nconst results = await Promise.all(\n  messages.map(async (msg) => ({\n    message: msg,\n    clean: !(await profanity.hasCurseWords(msg)),\n  }))\n);\n\nconsole.log(results);\n// [\n//   { message: 'hello world',       clean: true  },\n//   { message: 'oh hell no',        clean: false },\n//   { message: 'have a great day',  clean: true  },\n//   { message: 'damn it',           clean: false },\n// ]\n```\n\n---\n\n### 🧩 TypeScript\n\nTypes ship with the package — just import.\n\n```ts\nimport {\n  ProfanityEngine,\n  ProfanityEngineOptions,\n} from '@coffeeandfun/google-profanity-words';\n\nconst options: ProfanityEngineOptions = { language: 'en', testMode: true };\nconst profanity = new ProfanityEngine(options);\n\nconst hit: boolean = await profanity.hasCurseWords('oh hell no');\nconst words: string[] = await profanity.getCurseWords('oh hell no');\n```\n\n---\n\n## 🌍 Want to Contribute?\n\nWe love open source buddies 💛\n\n### Add a New Language\n\n1. Fork it 🍴\n2. Add a file to `/data/` named like `de.txt` for German (ISO 639-1 code)\n3. Fill it with one profane word per line, **lowercase**\n4. Add a test file under `__tests__/` following `spanish.test.js` as a template\n5. Push & open a pull request! 🚀\n\n---\n\n## 🙌 Who Made This?\n\nBuilt by [Robert James Gabriel](https://github.com/robertgabriel) and the good people at **Coffee & Fun LLC**. We make dev tools with accessibility, coffee, and good vibes in mind.\n\n> Wanna support? Send a coffee our way or just spread the word! ☕🚀\n\n---\n\n## 🔐 Security\n\nFound a vulnerability? Please report it privately — see [SECURITY.md](SECURITY.md). 🙏\n\n---\n\n## 🧡 License\n\n[MIT](LICENSE) – because sharing is caring.\n\n---\n\n## 💬 Support & Community\n\n- 🐛 [Report Bugs](https://github.com/coffee-and-fun/google-profanity-words/issues)\n- 💡 [Join Discussions](https://github.com/coffee-and-fun/google-profanity-words/discussions)\n- 📬 Email: [hello@coffeeandfun.com](mailto:hello@coffeeandfun.com)\n\n---\n\nMade with ☕, code, and a sprinkle of magic at Coffee & Fun LLC 💖\n\n## 🤖 AI Usage\n\nClaude AI was used to help with this README and with adding extra Jest tests.\n","readmeFilename":"README.md"}