{"_id":"nsfwjs","_rev":"25-f386a26d457c5940b7f8e2df46ceaa1e","name":"nsfwjs","dist-tags":{"latest":"4.4.0"},"versions":{"0.0.1":{"name":"nsfwjs","version":"0.0.1","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","_id":"nsfwjs@0.0.1","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"}],"homepage":"https://github.com/infinitered/nsfwjs#readme","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"dist":{"shasum":"f5c55c7f4b3325d7e9d7bb19f4f702ef3b663e77","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-0.0.1.tgz","fileCount":1,"integrity":"sha512-JzimX+yMZvD6atRqQbMBSw3B96XwkJcP9K11yhgwdG2wiwoKXiJfrHwoZp4Uyc3WZCWM70Hbgp2janr6TxapGg==","signatures":[{"sig":"MEUCIDWyeh9hYCyjjFFbtgymBm1V9t1wbv3EJKXouzaE805oAiEAvKQr/v5W7+gAUji0Xo5boGuoqy6xr1wMoXF/WwUaPGc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":602,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcZDIlCRA9TVsSAnZWagAAt2wP+QE21Y2Q9GRi1W44bOoB\n/tKvw7iZSWE2lI3q3fYstVwNgPP1UXJ/Huz+GW/d6uHfM1SaykpakRBzKbH2\nrEs+uBDCKE1bXy1j1YgmJzugLRikWh52rp9jgNInK4weS5VRw45nMYLG9qRg\n5C1bxYh755cB3kmC9Hu6U5y7Ot+dWlONeQTqp3xjsxA0TQ4A7V8ycRzYaM9o\nofguuBb83DZx9C5gSuLYfpENUQe9w9zgaj9x1R/hessvmUO8kkssTzINhrO8\nqyElg1ExdFVTEglEZlev/LVuMGoYQnx9c5C/guhpzDbCmDoNk6Fvar506e/q\nj/G95tyL95RsB4vDo3u7DKfFGCXFy+Wy824JtPxDdh1Ru+7JJIerXxDbFZua\nPCDrWNQ1jw/VvDihYatkD+atFO6MP10hOcvvnGaWqINYfARCjIQX9a2ZRa/Z\nLkd3XSdQzLHLKBuVDtCmfNT3lvCryvY3+DxPRalK7FUd3TamgTt76MGOB9Lh\nWMiwKMDFeRghj6zHY2w8fHvtrDBPXHjaitUP23cgkYYSFcRlS2ITgz7FTwH5\nX94eCXe2lFh88ySHKS+CMmC0sjmMHMH/m5FZ0Uui+hH9QYzdUT+ZVTU2oLg/\nEJXyxx0W7JXYyQn7C22ASNCSPE/WqddusKlXHru5KV4Aua+WPIyXBk8TF6+7\nAZ3r\r\n=0YZr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"gantman","email":"gantman+npm@gmail.com"},"repository":{"url":"git+https://github.com/infinitered/nsfwjs.git","type":"git"},"_npmVersion":"6.5.0","description":"Detect NSFW content client side","directories":{},"_nodeVersion":"11.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nsfwjs_0.0.1_1550070308759_0.8772762757074297","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"nsfwjs","version":"0.0.2","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","_id":"nsfwjs@0.0.2","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"}],"homepage":"https://github.com/infinitered/nsfwjs#readme","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"dist":{"shasum":"df17d4e3b598baf76c53a8e6481c1b3bf58128e7","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-0.0.2.tgz","fileCount":9,"integrity":"sha512-dx3Rm7X0AcPpmjWkM3eGPxdALORcnIqwTjEGtxbs0mqb5+lsWvOCJ9ajL7M2OoAdFzUf/sS/O58OLjY72d7Fxg==","signatures":[{"sig":"MEQCIFPVRyvqd3k43xSpnCPnucHd8rlO9+YVmIavOlLlzZJxAiB3oe4ktZ1133UzEPXrNHwqKWM4lABoEVHLiEmtzud1VA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10890,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcZY8BCRA9TVsSAnZWagAAypsQAIJr78Xkeg6VLXod3bgx\nbL3xbuPBW+d6EKdgj0+mhBm5dQMKQJb9WbLz3LMSQX0ztnb/oEc2pgMHdZsR\n769yF/vsFa1XO7zj/GXN/KgxKPj79qyH5wV5gVmyu2SZwtgCmVY5tHxnrYWk\nF7X7klyg8bR72pvcnhqwtbjC0epbbxinotiv6f3BjhHEDbgOtr6FBpQJCrdX\nCeLaNFGY8VXEMdhFeXBkoGFfiHnRsC941qZ1Ro2Y+wNQiiNZT46JJmo639ij\nUiaqJuJjJuLal0179UDZdNnZHagnAlShSuYiuh9eN1PMGATTTnYNuhPJJEBT\nF7u8tcy3ohW8O8JkqXWkv0cgmGNn+bt8fP9iYpcvFwTlwzjQYTDdNf1I1kFd\nzVty2L5q91ky7FRaxdf+MJlk0gWWr9CdClH3r8/sJLx7yWS4XzWuvOlb6N+C\njsF9bMtFRt3IOx9w291gYoY2/akcueffog+2G8rFNJmVXdw1y3ZpQOMsBd+S\nuuAjQ4HMMtKIwoNfbf5r0cOpQsFYSWA1hqBDwf9GcgEC6c01MsYGFtEipush\neUX17eT4EYhnfxF+bjcBEKOwZ/rAdtxrP2FtH+3T+C9r5VK+T9xUAQfzwdJJ\nOCCBlSq5KL7qZHU+w+QHKYTdbLOAuIzvBvc/jCWLpV3+F5nb5WyZBCcRcm5X\nNx9r\r\n=sCBQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","scripts":{"lint":"tslint -p . -t verbose","test":"echo \"COMING SOON\"","build":"tsc --skipLibCheck","shipit":"yarn build && np"},"_npmUser":{"name":"gantman","email":"gantman+npm@gmail.com"},"repository":{"url":"git+https://github.com/infinitered/nsfwjs.git","type":"git"},"description":"Detect NSFW content client side","directories":{},"_hasShrinkwrap":false,"devDependencies":{"np":"^4.0.2","tslint":"~5.8.0","ts-node":"~5.0.0","babel-core":"^6.26.0","typescript":"2.9.2","@tensorflow/tfjs":"^0.12.0","babel-plugin-transform-runtime":"~6.23.0"},"peerDependencies":{"@tensorflow/tfjs":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/nsfwjs_0.0.2_1550159617088_0.06687146900334384","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"nsfwjs","version":"0.0.3","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","_id":"nsfwjs@0.0.3","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"}],"homepage":"https://github.com/infinitered/nsfwjs#readme","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"dist":{"shasum":"999ae9134d1bbcfc811faa097bee7fc7de7e4f25","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-0.0.3.tgz","fileCount":9,"integrity":"sha512-7XHxWx6UNWeRVMO2IGOzZU7nZkcQ+7CVuye3rxx1O34j4GALZgkD3prQTeuA11K1gWPfBJ6vVtzhx1iLESo9rw==","signatures":[{"sig":"MEQCIF9GIM6NdCWg46kGbWGHWwFXVLUa9EL6RA4/713IzbbpAiAhKJvXemKEPi7aYOJHi0g1e+qlfbdgbreHoe7EMf3FRw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10889,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcZZxUCRA9TVsSAnZWagAATdYQAJqhYdER5//b6Jlxkm4T\n8QqKBpRh4Zf2QEolfOyF6e9Y5vRf9aOuQsp5Ab1GyyKAvm2zZVvIn5BG5knZ\nC7yKHpRttyC1aVby57rqeBsPpGW4sXPXjivcs26VaFRnIjCPYhMzjBfevjyk\nRYdIB0BX0Xwsc3chZ+murEBabR4+m6DIlO1rsmWbQn65TuMDkIWAclwdLA/r\nuvy/wYbmwIIeQdV0B2t43BSUWdQvJ+jkUDssKla8rSbgskhEmBHTRxNUbL72\nX72FvojDXDqPt/lIwAaoBwctFRnEzl5BfwllBsMMP1r7JhuBF2rxYrhfDmOr\n/ANKQaHbhKK4FnPetZtf2LWWEjX0uOL3Hz5EmTrRmdbzSRzf0V3JcmfE8lTx\nSv4MUZsvwgSKzeDKCiJJsSxg/cod+RmbHgMrCjldcE5UQYgrz/UONZcEGnjI\nt7ruSE1e4a8CUXiWhZlZUOqWmIPKVCN5m3KRnwyy71yYgc1pBXqrGWAs+Sj/\nIKesrH3s0yxEMlteaYBsBcg2kwH+xB+OSoESRThInXtbDkvJ3trwWVAXf9Uq\nsf7g0+rXiAcv43+cPwmzEZeduTq0oftvBdXIAEODCYWjLQ41oOo6yNzU9OVR\n972j4hr7qxQxwoDELUcADBQ61gnfb4Kt6cZThbtt4cCN2BVH4NRdY7oNaFLv\nVRNZ\r\n=r9tC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","scripts":{"lint":"tslint -p . -t verbose","test":"echo \"COMING SOON\"","build":"tsc --skipLibCheck","shipit":"yarn build && np"},"_npmUser":{"name":"gantman","email":"gantman+npm@gmail.com"},"repository":{"url":"git+https://github.com/infinitered/nsfwjs.git","type":"git"},"description":"Detect NSFW content client side","directories":{},"_hasShrinkwrap":false,"devDependencies":{"np":"^4.0.2","tslint":"~5.8.0","ts-node":"~5.0.0","babel-core":"^6.26.0","typescript":"2.9.2","@tensorflow/tfjs":"^0.12.0","babel-plugin-transform-runtime":"~6.23.0"},"peerDependencies":{"@tensorflow/tfjs":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/nsfwjs_0.0.3_1550163027712_0.6711154184467976","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"nsfwjs","version":"0.1.0","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","_id":"nsfwjs@0.1.0","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"}],"homepage":"https://github.com/infinitered/nsfwjs#readme","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"dist":{"shasum":"9e81aaeaa1bc2bf2b4c2ec36756ffbdba5c4b616","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-0.1.0.tgz","fileCount":9,"integrity":"sha512-Z9YVNHU5OEyJl0+cUVS1zK5e2oWEbKQstqs3IWPOOHex/NnozIx+HFL8egY0AMzgh+GGnAg9lJEIwbixQjqFYQ==","signatures":[{"sig":"MEUCIEfpKit8qNPffvKrpLviE5yqQix8olguGLmFDR0YEJrQAiEA26zdI/TVR1FTAD9OwrufN50rBu5Ut8WDbR4Z135QN9Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11808,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcZ5sUCRA9TVsSAnZWagAAIpwQAJGXP0OzOGhTXwi+5YYE\niISwjWokMdEX2G4rQK+qiDv/x2+ARMzccOxCdTDq7ZxjPKqS8aaaVP59+kfe\nmy08raF16/NojrFkpaV8WDurTbXPmQPY1aVgYCat/0sR80GRh86HiEXMkJOF\nimew4nRKop9p64+ir06yp+FLW9EY9R50xKhGZuoDW8uw4oOgKa2kkJsQBHum\n4oJsjTFxUJGKKYT5CjaG/JwatMzK0ybPFCc/kHjWYYj1738Mnsg6YYdyevsq\nNePwU58WECWy9s7wC9xwLYg4tX9qrvsa2vDYM9nY2aIJvoDDaMSYdxvbB61Y\n7PQJvlIVhK1Spoc3Ydw0Cqb65rdOtW+9+UND+53PlUtZ3o06lV0QKzmdNbk9\ntvAhFFHk1YukoPFl4GFcngd7x0UBiqQ897VmumJae+c282kGVV+tUKbKtNId\n2WsqKCuyrHO0cLHxDIoHCcSQHi6XOi2nQ+EX4g0L7I7TnqZ1QkpeEXis9HE3\n8VMGhLK76CSNwWEoZTdrcdiEU+EWM/OPRONfZdh8NbVE+F/1aLdr1HVez8bS\nxmhJJyyQZjmt2kPV4UzUaJOmIenZuSYXioFViE6iyhPyL34iWe+72MjIb4Su\nye9xukxS9b5IFgDKJ5g7T4hdMZ/fbWeqDz4Fr1nmB6KWpry6X2jFHVrnE2oH\nvTE/\r\n=XXHj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","scripts":{"lint":"tslint -p . -t verbose","test":"echo \"COMING SOON\"","build":"tsc --skipLibCheck","shipit":"yarn build && np"},"_npmUser":{"name":"gantman","email":"gantman+npm@gmail.com"},"repository":{"url":"git+https://github.com/infinitered/nsfwjs.git","type":"git"},"description":"Detect NSFW content client side","directories":{},"_hasShrinkwrap":false,"devDependencies":{"np":"^4.0.2","tslint":"~5.8.0","ts-node":"~5.0.0","babel-core":"^6.26.0","typescript":"2.9.2","@tensorflow/tfjs":"^0.12.0","babel-plugin-transform-runtime":"~6.23.0"},"peerDependencies":{"@tensorflow/tfjs":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/nsfwjs_0.1.0_1550293779866_0.4904997722133766","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"nsfwjs","version":"0.1.1","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","_id":"nsfwjs@0.1.1","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"}],"homepage":"https://github.com/infinitered/nsfwjs#readme","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"dist":{"shasum":"f2b48248786f9b63e2549cf179863e7b617638a6","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-0.1.1.tgz","fileCount":13,"integrity":"sha512-owb6M9JePCydYaOKIG+Na9ZCPflJsKVAF7MHiGjF9ORnkvKzqz32y5TOuNkd9h3xy0ote46FYCkJiRnYKK/gvA==","signatures":[{"sig":"MEQCICT++ivYvO4hJRfu1ZkZAFIXIC+yfOcW6LlZx95kVYh/AiAl3f5hJUn1jVrJKjeGVPH1jlg4Qf6zI5u0ONcyah2Kow==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17008,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcbJAICRA9TVsSAnZWagAAkI0QAIZTg2IzrolYbmErRVOt\nhmOPeoWVrXjN23fNNVnFAwiZ8Vd04/7O/nUL1NULTjvA6kuzGaLCycX+085v\ngjfDBpmX/d/ywgJ4+AzzlfWslYl6m3Gzuw8LOyZKR6uwiF8Q/cu6yuBZCC3w\ngUAsQox5gx4kcwMNCwP8odeR8OquHah1d1IJ/RPu8oSpbogF8KU8rRvo+wn3\nBywfZU+kKgRVqlF5dv+Vztdls4nBQWTI47VBTz1shV0CBPt5Zze6/lgu4GJn\nJRL67le0OUr1nH+RB0tdEd0zOMf/8niVL+YlxWYirLerQxfOtYxzavRxJH+h\nt/6cYSMEYdyFiLqH6mPjPTcPotoQ/6yD9RIr7KByaYCzbMOngCvoOG7MdE+c\nZMkcjko1/5K2qihNRos8APfyF2QAodfbalWbqpTIi1qYvZVbHpiSRM8VkxdG\nNBW/f+yhXCigtux92f9DDs2qONQEKqBdGje6i8qrHlbkyJjfV5HAPY+k1DR9\nlCHZ0NW7eZ/W94uDtz6w/39AUwG/rh5bvaw+odNTfiOfNKIeflycnkfPpu/h\nxVSzFDhUezI15Y4NuMagWVWU7q5LtqG9FlYSJGdb4blyX0FPEf+BioDMxz1K\neTU50VnKQoAOjFE470EltpU3tto5HEWJEET2IxgOeJZjlTOfYB0aLkwehX2h\n3e52\r\n=sKlA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","scripts":{"lint":"tslint -p . -t verbose","prep":"yarn && yarn build && cd example/nsfw_demo/ && yarn add ../../ && cd -","test":"yarn build && jest","build":"tsc --skipLibCheck","shipit":"yarn build && np"},"_npmUser":{"name":"gantman","email":"gantman+npm@gmail.com"},"repository":{"url":"git+https://github.com/infinitered/nsfwjs.git","type":"git"},"description":"Detect NSFW content client side","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Infinite Red, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"np":"^4.0.2","jest":"^24.1.0","tslint":"~5.12.1","ts-jest":"^24.0.0","ts-node":"~8.0.2","babel-core":"^6.26.0","node-fetch":"^2.3.0","typescript":"3.3.3","@types/jest":"^24.0.6","@tensorflow/tfjs":"^0.15.2","babel-plugin-transform-runtime":"~6.23.0"},"peerDependencies":{"@tensorflow/tfjs":"^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/nsfwjs_0.1.1_1550618631987_0.39157905550422645","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"nsfwjs","version":"1.0.0","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","_id":"nsfwjs@1.0.0","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"}],"homepage":"https://nsfwjs.com/","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"dist":{"shasum":"452093d5bd5816408665d0591af1b2ef237b2c08","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-1.0.0.tgz","fileCount":17,"integrity":"sha512-Ir9JtB4cV+ItlkhF6vwu+TyVqfXSk61B5D0+xj6w3mUFClWdUs7/Svq6IRzz9EYJvkE2yAsRo4mdKL6ylp2Izw==","signatures":[{"sig":"MEUCIQDlyYc5f/a6Is1hEGAJyqo6WYSsv6fywxiKNLnBI3La1wIgY04Jsj+/EG2C3m+XMyCoRwgUljkgvdszaHNrr2slbf0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31630,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcvhWCCRA9TVsSAnZWagAAq2QQAJRbtoePoLCiiuL798Dd\nRaB2ZCovcoS45RLzHFSZvWSZbdAt7Yhzbq5tfqiqQgJsfmJBaFL9itWg2oKS\n8KP461gHhXjr3sLedKG2JvkArj47f/Lq07EjBk2VEeTs98VmxmIxJPn+cm9M\n/XxZrJxzO9zKj6WmJMNfSzAIT3IhC4lhZMCxH8zrGZlKAOSFMYCtFzs8IUpL\nxvoZSMjGeDy+mk97W7C1wdhPut9R7ZdR4IlGgyddAt+c6CeD3Q53ITnyIorF\nmHbwjYK656UDy27cexeXcRM0gAx3UsErnkwwF3/z7uT/FILpF893YyYuuVtQ\n6bcyA3N0cHI9oZ0J8Q0KrFvfabtQxhv09SymUC5aSVALBfZiWaQNT+blsRvA\n8u2OcNGJT1a6GWYp+zMZaiP8wd+gHtbxZlmb1yGcsF7TAWocd2XwS85vSOFD\n/br2OrHN7xt/UqzzLyMrc8rMBR3jaNXJKL1tPxgoLfQ6Jp2xT/jQqDsDFMOQ\nsEShWbV7msD8dPLQRbEWan0ISPoMmqbCsdG8f5w1qP2bzVCiKt9KR3MQA6Dm\nudAhVdpAQA+BDrPNWssAQdWAUqjfV3S9cLFH+EAgg/Csbl5n7HCXEGP5UXCd\nqcOEHHTGTaZmjvidVK/Z3aSo2vEwaR8ZJ1Zs156KcKQOfxZ6M0BUVkovCFT8\nIkQc\r\n=mhbM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","scripts":{"lint":"tslint -p . -t verbose","prep":"yarn && yarn build && cd example/nsfw_demo/ && yarn add ../../ && cd -","test":"yarn build && jest","build":"tsc --skipLibCheck","shipit":"yarn build && np","scriptbundle":"browserify -r ./dist/index.js:nsfwjs > bundle.js","contributors:add":"all-contributors add","contributors:generate":"all-contributors generate"},"_npmUser":{"name":"gantman","email":"gantman+npm@gmail.com"},"repository":{"url":"git+https://github.com/infinitered/nsfwjs.git","type":"git"},"description":"Detect NSFW content client side","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Infinite Red, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"libgif":"0.0.2"},"_hasShrinkwrap":false,"devDependencies":{"np":"^5.0.0","jest":"^24.1.0","tslint":"~5.16.0","jpeg-js":"^0.3.4","ts-jest":"^24.0.0","ts-node":"~8.1.0","babel-core":"^6.26.0","node-fetch":"^2.3.0","seedrandom":"^3.0.1","typescript":"3.4.4","@types/jest":"^24.0.6","@tensorflow/tfjs":"^1.0.4","all-contributors-cli":"^6.1.2","babel-plugin-transform-runtime":"~6.23.0"},"peerDependencies":{"@tensorflow/tfjs":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/nsfwjs_1.0.0_1555961218236_0.7687918175014943","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"nsfwjs","version":"2.0.0","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","_id":"nsfwjs@2.0.0","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"}],"homepage":"https://nsfwjs.com/","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"dist":{"shasum":"d6544bec841537b25ea89273f09ef8449d65d4b3","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-2.0.0.tgz","fileCount":17,"integrity":"sha512-A6eugewzB1Y99DSilNYG0Vrr+iDaMZ3bxk9Hm0TjAhGj3izlKAlSyQ8ulx0YEgrzdtSO2QdPumYyc0hp1rOlLA==","signatures":[{"sig":"MEQCIDaUoyEWP/zHaB6hslw3QjD48mwLjO9+yjJCJ1wQHlpKAiB0DRJynP7LK4HB+IozFycpwLVJarfS7gj6qLgsWJsULg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32337,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcywEtCRA9TVsSAnZWagAAJzEP/AkFpqXY9u7hRqU6URXP\nh+wZ7MxmfS87Ohtig7K4w873VhjQPt5y9dgjRIjYpZBpOJPvp/34UZB43pZT\nrQ28ZspFcaM2RcQB7qAyZtnGkLo1vpZR+PXMBWrIygRsBPuq7ETm1k4WAblQ\nzbWxhreZmsu+K8jrsiS8omvl3ypyBG0icnlunwXChrX3l4Erhcf7NhBAhZFm\n+6YAo1MTlUe+sboqskfkSWBxxmbAzwEkwgNzlSvHji78QpngooppCi+hfmar\nxVjsvpaeKIXT2rydXQcsg0KPrsDumtHopBKdN6u3UV3KgIq5Xun6G7mpIKMZ\nG/tLaOiYN/t+I2NyjUD2Hq3F378Q/oUpotkblPeYck0hlb/dgv78+yWNL0/G\njhoYo6cHVGZyswgjR3ASIYLdg5HOsR/9awCEGG7c4NX1pnrsgF50pqcy5b7Q\nrBk8IwY6Vc/hVi23HlIcFfxoX7WW2lfXYgZYlsolm6Uv0t9FfcTAJvpov5Pf\nInrAQvGNxXae4muKPyPgZ9CI16vcVdRScLG3rD0mr5zP0UIlrCmtl/gKL1cz\nNHM/KC2BXPojHlLm+KPsDBEs/AuOewVoCn1MjCcsqQxv/sFVjMLci2mHB/QA\n2a0n6yJh9jz5KVPDb7Cb5ReFGAor1VhjeiP4VXENiMC0yXxWCFm6PKZMNqFW\nrkjd\r\n=tNTr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","scripts":{"lint":"tslint -p . -t verbose","prep":"yarn && yarn build && cd example/nsfw_demo/ && yarn add ../../ && cd -","test":"yarn build && jest","build":"tsc --skipLibCheck","shipit":"yarn build && np","scriptbundle":"browserify -r ./dist/index.js:nsfwjs > ./dist/bundle.js","contributors:add":"all-contributors add","contributors:generate":"all-contributors generate"},"_npmUser":{"name":"gantman","email":"gantman+npm@gmail.com"},"repository":{"url":"git+https://github.com/infinitered/nsfwjs.git","type":"git"},"description":"Detect NSFW content client side","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Infinite Red, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"libgif":"0.0.2"},"_hasShrinkwrap":false,"devDependencies":{"np":"^5.0.0","jest":"^24.1.0","tslint":"~5.16.0","jpeg-js":"^0.3.4","ts-jest":"^24.0.0","ts-node":"~8.1.0","babel-core":"^6.26.0","browserify":"^16.2.3","node-fetch":"^2.3.0","seedrandom":"~2.4.3","typescript":"3.4.5","@types/jest":"^24.0.6","@tensorflow/tfjs":"^1.1.0","all-contributors-cli":"^6.1.2","babel-plugin-transform-runtime":"~6.23.0"},"peerDependencies":{"@tensorflow/tfjs":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/nsfwjs_2.0.0_1556807979954_0.8547601920761643","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"nsfwjs","version":"2.0.1","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","_id":"nsfwjs@2.0.1","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"}],"homepage":"https://nsfwjs.com/","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"dist":{"shasum":"5964debab49213a2a366e7772178a601acbda12a","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-2.0.1.tgz","fileCount":17,"integrity":"sha512-2QEGEk/FL3ATNMzUcmY+UnJfBGW2tbmKSCAGEaYEMayFlDUwqd3HVHPW9pNXjgcEJ2j2jZVfa21sEDNpgN3oXg==","signatures":[{"sig":"MEUCIQCocvvD1HXCGH8DtIgcZNtalPojjcQmOyGw/MVKTzOXpQIgZB/h2mtmVH4dklvyxGUbsHF9b7J5IqyDshs4LovUTQ0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33268,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdRPutCRA9TVsSAnZWagAAzu0P/AnW3XsRv4moNkzNVhFd\nD9lge3pGX0kVExMzOtnjxldUdjmNWd1137Zs/MiYQ3N+smq6rvidhniF41Qs\nPi98OH8e4IZOFQnBFPJSx53ztM9+50pKLd+WU8IP9QjJJH+VwdGxQ45PPsCs\nj5PDtLZPXVvmAafS8ICOheFbXrn5et1Uz16HAgbZ9sFaueDf5dgD5BO5gEy2\n06Np3pCddiUnk2mJiWnbxdu5Eb+xeJbemo5xk4pvBS4OI184wE/z09UUCr0s\n2Ee8vFWmNaiSHB/gqT3bDyqRuSieTeDGsCWGjZikOTd3Wkco52tZoQU/oliz\nBFWhWGprurdOYSbBa6WpbK3uYg3ocl2iT4B2tj0MKcmliDgcvl5Fb2uv9DKm\nKtnRiXoFWkfXtBAbGQmbDXa9KtvnzN7ggri7PbEewEbOMW0PrPTcxPZzHxMk\n989Oa/mX+swZZq/HSYMKLjyZi7fZ5S+cNfsImYf8FtDQ5e2Ud8Pa8QsiWRhH\nT5dlIeihvG7TxDO6p1cf6GCifW35uwHw8Bbk8gs5QNV/EVnowLKBo/s6058a\nJBE/EgeLFcsCWgQEAm4s7C3fNqTc52W+MZkOydjdmg0uNYGmcdY9vP9znHqk\nst8iWISg8B0SAEUfeTeHZgzMisPijxq3lYMDdd+BwHLsHMMxJqnP35yVynrp\nQ67Q\r\n=MMJI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","scripts":{"lint":"tslint -p . -t verbose","prep":"yarn && yarn build && cd example/nsfw_demo/ && yarn add ../../ && cd -","test":"yarn build && jest","build":"tsc --skipLibCheck","shipit":"yarn build && np","scriptbundle":"browserify -r ./dist/index.js:nsfwjs > ./dist/bundle.js","contributors:add":"all-contributors add","contributors:generate":"all-contributors generate"},"_npmUser":{"name":"gantman","email":"gantman+npm@gmail.com"},"repository":{"url":"git+https://github.com/infinitered/nsfwjs.git","type":"git"},"description":"Detect NSFW content client side","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Infinite Red, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"libgif":"0.0.2"},"_hasShrinkwrap":false,"devDependencies":{"np":"^5.0.0","jest":"^24.1.0","tslint":"~5.16.0","jpeg-js":"^0.3.4","ts-jest":"^24.0.0","ts-node":"~8.3.0","babel-core":"^6.26.0","browserify":"^16.2.3","node-fetch":"^2.3.0","seedrandom":"~2.4.3","typescript":"3.5.3","@types/jest":"^24.0.6","@tensorflow/tfjs":"^1.1.0","all-contributors-cli":"^6.1.2","babel-plugin-transform-runtime":"~6.23.0"},"peerDependencies":{"@tensorflow/tfjs":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/nsfwjs_2.0.1_1564801965061_0.6038160608382974","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"nsfwjs","version":"2.1.0","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","_id":"nsfwjs@2.1.0","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"}],"homepage":"https://nsfwjs.com/","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"dist":{"shasum":"20e817fd685625b7728b5b0c852db7b1cad7c522","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-2.1.0.tgz","fileCount":18,"integrity":"sha512-mRdPUX0aJJu73IMpQ0G9AnYmKV9IVYYE3cJAX/mhOuLqKpTg000SD9GotDQmyNSGTKSUdp5Gr5CbDVrIovuyWQ==","signatures":[{"sig":"MEYCIQChM1YQyLdl+67IzOcCsKMtHi620wcVA9eeU0x++koYPAIhAOIaZlJVBHJGQGHvxZNIfXmtDyqFAbU5JJ1IGCqJpecp","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1641108,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdbyMSCRA9TVsSAnZWagAA0ngP/ROY6cvdVK2lXIfvDdSg\nh/rUMVJjT/J022HEXm/bYshPAeF19ahQC8GwzKNFLFmZbDx9GE6b723k7Omx\nJxqiiRSRKnkoPkvkhFrY8VX8DFQ8nA9ykbVN7zSUoARbyH0wjfReNZQ5mbyz\nLkQfy8Y8aN36W/FEWghrv8XybDR0C1E8u8jI2CMZwHisdcosYqRBv5aN02/O\nnA0uAEgm07jg0ozErd2eF6CmdNK+fdxNSvJUyl8roexXwYVLa7HhOABop8IK\nQd9rXKm1CC614Im6Aw5/QYAxBBTiJ36jIuVqPGP9ddcF4WDtgashCyxCWq6V\nQnXNpcK7+1vbIsw97monUJ6j8rowqYzC+akjUzWpltxS8caeUecj+Jk2fVP3\nEcWBYoDjmFDUo/CcTdoY0C7Y+B8spBXSIHLKwl8bIbfGx9LO3SGRwwnc6a/Y\nU5VwD9WKXynwyU2IPiVTTn8pl8modLRcafA75b/lWWxnw1FQRdhl5tCyFdFY\n2NiynJFMViiNFln81BxWpnFRrmqoxFNCLelrUMUwi+PJ4jK/wWZ8hNv1EV5A\noLeRjf6kiFqMeMWdtslIAae/smuUGEAQbvUqVfInbA9HpythY5tcMngNB3uW\nnAOpIe5kmzCC0ezxAGYUWGuGhDhDHet93+qldbKgN0lOu+56M/BH7gPi68QA\nptDr\r\n=4SbG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","unpkg":"dist/nsfwjs.min.js","scripts":{"lint":"tslint -p . -t verbose","prep":"yarn && yarn build && cd example/nsfw_demo/ && yarn add ../../ && cd -","test":"yarn build && jest","build":"tsc --skipLibCheck","shipit":"yarn build && yarn scriptbundle && yarn minbundle && np","minbundle":"uglifyjs dist/bundle.js --compress --output dist/nsfwjs.min.js","scriptbundle":"browserify ./dist/nsfwjs.js --standalone nsfwjs --outfile ./dist/bundle.js","contributors:add":"all-contributors add","contributors:generate":"all-contributors generate"},"_npmUser":{"name":"gantman","email":"gantman+npm@gmail.com"},"repository":{"url":"git+https://github.com/infinitered/nsfwjs.git","type":"git"},"description":"Detect NSFW content client side","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Infinite Red, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"libgif":"0.0.2"},"_hasShrinkwrap":false,"devDependencies":{"np":"^5.0.0","jest":"^24.1.0","tslint":"~5.19.0","jpeg-js":"^0.3.4","ts-jest":"^24.0.0","ts-node":"~8.3.0","uglify-js":"^3.6.0","babel-core":"^6.26.0","browserify":"^16.2.3","node-fetch":"^2.3.0","seedrandom":"~3.0.3","typescript":"3.6.2","@types/jest":"^24.0.6","@tensorflow/tfjs":"^1.1.0","all-contributors-cli":"^6.1.2","babel-plugin-transform-runtime":"~6.23.0"},"peerDependencies":{"@tensorflow/tfjs":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/nsfwjs_2.1.0_1567564561446_0.9817288030980236","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"nsfwjs","version":"2.2.0","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","_id":"nsfwjs@2.2.0","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"}],"homepage":"https://nsfwjs.com/","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"dist":{"shasum":"963ade422a44953e6486cb293ba69722fd42fe89","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-2.2.0.tgz","fileCount":18,"integrity":"sha512-xNd+wpI7IcaEmtmYYzjOcpcBtR5BLA/nRgtmFe97ujiIqKHn4O0NGQcclfYZXLPknpTa7C6k9b8nzJIKtZPj6w==","signatures":[{"sig":"MEQCIDV239N00CjSa9If8HE9n/B6tnGm5aQmVL65Z2CP5RBJAiAqsIF6igxBUN5Ymx5JbGReMBwyFm1n0xFUMoqF0BSlWw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1739876,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJerE4UCRA9TVsSAnZWagAASaIP/ROssiIF/mdZCEL1+y4d\nkwl1hjc2akqAb2DAazsPTZKimAdorB/5cYpjOAj2mR7isgNqI2mzJF4iMg0B\nrH4vJf2uW8UvRtugiaSZzTVxDZMqQFZDYBGh8L3p7HMeD8W6m3iUYZFLaq3I\nyBoCxthqSDIJm8sszsH3FmAaP6qMPuFOk1oY3RwNA8MyrzVvk6S4CqXDrEJz\n7LURzE3p3TL9rG1+GOKbE0yEbz5fdEYLTHd5Q6Inbck5tLYsZfoRiBdGIqlC\nAffclsYwnFaf7LJg1FH1msuf6M7gYj8Ox/NOH0/cqf5fv6OwRxICdViyd0fm\nNx8iIG2RzPIaGLJcre4lLn07XgIng0MstX9q6IrGNtEWh7x1A5txOkR0irRq\nBwkOAdW8/5UJejf6306/lbz8a0L8qW2q8AnH2qP1/aM9nSs8F2QfTpxoKTiV\nChYueUhfZqsufPM0ZPtqlYUPIJFhQfB1IeGlnM+qKRKP+9WosvZXvUh+9R6B\njN904TVTjg3/F1bDjWqjFZkdkdI0Ffqk0C6fJv5V8xPXu5hsdAlSbv7F5aQy\nH8lCFPCMMSkNTZwNNmw/781YktLYa3hnj08ImhowSstTCvpZD2okF4wuzujB\npUF2DOsTejYdMjOBGj9cKZnnqT9WW+WNs0+rbRBIm5KOPAGfOknl+ROVmonn\nMAgW\r\n=NkWo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","unpkg":"dist/nsfwjs.min.js","scripts":{"toc":"doctoc .","lint":"tslint -p . -t verbose","prep":"yarn && yarn build && cd example/nsfw_demo/ && yarn add ../../ && cd -","test":"yarn build && jest","build":"tsc --skipLibCheck","shipit":"yarn build && yarn scriptbundle && yarn minbundle && np","minbundle":"uglifyjs dist/bundle.js --compress --output dist/nsfwjs.min.js","scriptbundle":"browserify ./dist/nsfwjs.js --standalone nsfwjs --outfile ./dist/bundle.js","contributors:add":"all-contributors add","contributors:generate":"all-contributors generate"},"_npmUser":{"name":"gantman","email":"gantman+npm@gmail.com"},"repository":{"url":"git+https://github.com/infinitered/nsfwjs.git","type":"git"},"description":"Detect NSFW content client side","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Infinite Red, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"libgif":"0.0.3"},"_hasShrinkwrap":false,"devDependencies":{"np":"^5.0.0","jest":"^25.2.1","doctoc":"^1.4.0","tslint":"~6.1.0","jpeg-js":"^0.4.0","ts-jest":"^25.2.1","ts-node":"~8.9.0","uglify-js":"^3.6.0","babel-core":"^6.26.0","browserify":"^16.2.3","node-fetch":"^2.3.0","seedrandom":"~3.0.3","typescript":"3.8.3","@types/jest":"^25.1.0","@tensorflow/tfjs":"^1.7.4","all-contributors-cli":"^6.1.2","babel-plugin-transform-runtime":"~6.23.0"},"peerDependencies":{"@tensorflow/tfjs":"^1.7.4"},"_npmOperationalInternal":{"tmp":"tmp/nsfwjs_2.2.0_1588350484257_0.9481734118852796","host":"s3://npm-registry-packages"}},"2.3.0":{"name":"nsfwjs","version":"2.3.0","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","_id":"nsfwjs@2.3.0","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"}],"homepage":"https://nsfwjs.com","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"dist":{"shasum":"f6c7445af0965da61cab3beefb48884d70bf3e7f","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-2.3.0.tgz","fileCount":15,"integrity":"sha512-kXtTYSf9Nr0+ydVA+W7Yp51TX1512OLPnzoPQe9z1/unmN4VlsED69lkPlJGl6PEVBBuQXhP2td8AMTbTjIWTg==","signatures":[{"sig":"MEUCIQDzmZJHsMF7G18tl2nf4Sr+swXrIv4OHT8Qj1RmPn8MdAIgRk8mBTOsaputeE0K5Fdp7N/tnayOE79zW8fySsTduFs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1783533,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkljQCRA9TVsSAnZWagAA/uUQAJ+2iV5WENfJbgrP6/l+\nO/a4JESWpUMmQpYd3MdhlmuswftbqYZz2ZWZPiLr6spoTdlQVmRhNiaKIVp3\nPQd9BH+DuYayUZmBpE5GpTKclk/OQMDZrHw5HEKK5lfW5oy9o0JfKtAKwiqS\nolNoSKxf7otzI9CE2qUH8V4jUhgrNh1t/JFE8EVohjFndIm6DNZWz89X551G\nBD2nlJOUejTufR3qM+JDeq7VkvEkZqjn0NrSq0G8z2oxERHOJiDIMJ4EJ9MM\nubTwc6ewpcjWmRujtng7VrKsf0n6Qdd7du/sbI+eMDDoEMN0Pi2ZNcdgAtgd\nxupmpGBvhVA4xy8OrNZWyQDlwovEh8LCm5G5QtnhMJDzn/TgoMaUkPX6RV2h\nRXmDI6b0u0ewoOGmYhVu68Kwh3y0XCbX7eNeQEAqWzfuNADHSzLcwrPO/SPH\nrokBePIXYZMWGVNNlrvHIceYwB/FRm53wYyTk0PfwEhYmwQ3juG5/vF3mmcK\nPED4yniXJO9EB7fSX/WssTeQ3JpFabFWsNjADO3uDUHZmDboORwC1Nad5m7x\n8dfKghC91hKLq5jnUWy91SEj1M6+mn79g4/hN13GGQUXErtZuxTPCybRT6sv\nUbXTQAUkJ0Y8WbvVrV9YO3k6+KQ60gJfat4ta84faitwu7S5Iol5GL23uuBX\nzf0p\r\n=Huwl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","unpkg":"dist/nsfwjs.min.js","gitHead":"3c34194ad361f60d158ba11d005f74498eaa09c1","scripts":{"toc":"doctoc .","lint":"tslint -p . -t verbose","prep":"yarn && yarn build && cd example/nsfw_demo/ && yarn add ../../ && cd -","test":"yarn build && jest","build":"tsc --skipLibCheck","shipit":"yarn build && yarn scriptbundle && yarn minbundle && np","minbundle":"terser dist/bundle.js --compress --mangle --output dist/nsfwjs.min.js","scriptbundle":"browserify ./dist/nsfwjs.js --standalone nsfwjs --outfile ./dist/bundle.js","contributors:add":"all-contributors add","contributors:generate":"all-contributors generate"},"_npmUser":{"name":"gantman","email":"gantman+npm@gmail.com"},"repository":{"url":"git+https://github.com/infinitered/nsfwjs.git","type":"git"},"_npmVersion":"6.14.8","description":"Detect NSFW content client-side","directories":{},"_nodeVersion":"10.16.3","dependencies":{"@nsfw-filter/gif-frames":"1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"np":"^5.0.0","jest":"^25.2.1","doctoc":"^1.4.0","terser":"^5.3.8","tslint":"~6.1.0","jpeg-js":"^0.4.0","ts-jest":"^25.2.1","ts-node":"~8.10.1","babel-core":"^6.26.0","browserify":"^17.0.0","node-fetch":"^2.3.0","seedrandom":"~3.0.3","typescript":"3.9.7","@types/jest":"^26.0.0","@tensorflow/tfjs":"^2.6.0","all-contributors-cli":"^6.1.2","babel-plugin-transform-runtime":"~6.23.0"},"peerDependencies":{"@tensorflow/tfjs":"^2.6.0"},"_npmOperationalInternal":{"tmp":"tmp/nsfwjs_2.3.0_1603426511657_0.9381318934506861","host":"s3://npm-registry-packages"}},"2.4.0":{"name":"nsfwjs","version":"2.4.0","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","_id":"nsfwjs@2.4.0","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"}],"homepage":"https://nsfwjs.com/","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"dist":{"shasum":"d31a8dcdddff9060c90e642ce6d2820f294ec540","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-2.4.0.tgz","fileCount":19,"integrity":"sha512-dU9i9kpegtW/Kn5JPTQ+IDa5zPaCxwkSfEvfG+9W6QTLD+4E90RRdE+TBxpnD4FCXL4LJFjjwL8h+UcT9ypzQQ==","signatures":[{"sig":"MEUCIQDxiWRfHwQNqd4tZNVnRj9xPr5NNLeGds9OGIRp8F46xAIgP8sGoMc/vRC+x/4QPpYEs3WeKmVEWJQaj67kmJwIJZw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2638402,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgaT86CRA9TVsSAnZWagAAdOYP/2w+q/mnX354Jht2foOl\nmq3RngNfjN28G0tqCRo1EUeKE3vY46xuQ6EJ/smKtBDlS/8m0ZONflGgCeea\nHQDztpgO6RtQKCDjNoKQFYeVCJ5vtcd0FDmNoDJzrqlHkgK3BsPC4fQJUf5t\naSNjfYiCofxbhudrpsuRt6aCyWwpgvJVUL0OexLce5vSLTV9LT4fIuQtt/Oq\n3V9ReyC5msP0s/3UDWtX2pTwehnF4S/IXDd5IvfR1TveWUjkEOZJPo8yzHmp\n4dfeogg1044pJdOcnAqmRUc34ETEAliQz7bTkcbi0orw4aTj6DVjNT9BRnyN\n+S21t9PFVosArQQqgMC6usjga6M2i7FUNBPEjOQbhf8LpjlcJmsUHsdmF3V/\nKxgYYMDx9RlDzGpHtCDPaG+Fk98raNcujU7odVrnZBB8hVHudYp999fGW+EZ\nvM8XkPAOVChBOba59xiSHbrv14HpgUCIOdmRhkd0XHufdVYr02RZCEr+zufp\nqCAXdT7mXpVIizZn965026bRU6F+bgDerNzuBdgRyctooZ0CMdnaawp8+ta7\nI/BpPHGVEkNUIEwJtMJLJ9cmHfIbNXa1HH2U69iHQawO9+kW/yG6iZLKHMWI\nsV9e+s9h8gYzTMjhKj6wBNHci7D2TKV7DKC8cUFS7qA6LewSWtqnn6be/hJz\nMvmA\r\n=wPG+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","unpkg":"dist/nsfwjs.min.js","scripts":{"toc":"doctoc .","lint":"tslint -p . -t verbose","prep":"yarn && yarn build && cd example/nsfw_demo/ && yarn add ../../ && cd -","test":"yarn build && jest","build":"tsc --skipLibCheck","shipit":"yarn build && yarn scriptbundle && yarn minbundle && np","minbundle":"terser dist/bundle.js --compress --mangle --output dist/nsfwjs.min.js","scriptbundle":"browserify ./dist/nsfwjs.js --standalone nsfwjs --outfile ./dist/bundle.js","contributors:add":"all-contributors add","contributors:generate":"all-contributors generate"},"_npmUser":{"name":"gantman","email":"gantman+npm@gmail.com"},"repository":{"url":"git+https://github.com/infinitered/nsfwjs.git","type":"git"},"description":"Detect NSFW content client-side","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Infinite Red, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"@nsfw-filter/gif-frames":"1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"np":"^5.0.0","jest":"^25.2.1","doctoc":"^2.0.0","terser":"^5.3.8","tslint":"~6.1.0","jpeg-js":"^0.4.0","ts-jest":"^25.2.1","ts-node":"~9.1.0","babel-core":"^6.26.0","browserify":"^17.0.0","node-fetch":"^2.3.0","seedrandom":"~3.0.3","typescript":"3.9.9","@types/jest":"^26.0.0","@tensorflow/tfjs":"^3.1.0","all-contributors-cli":"^6.1.2","babel-plugin-transform-runtime":"~6.23.0"},"peerDependencies":{"@tensorflow/tfjs":"^3.1.0"},"_npmOperationalInternal":{"tmp":"tmp/nsfwjs_2.4.0_1617510201834_0.675809531637259","host":"s3://npm-registry-packages"}},"2.4.1":{"name":"nsfwjs","version":"2.4.1","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","_id":"nsfwjs@2.4.1","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"}],"homepage":"https://nsfwjs.com/","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"dist":{"shasum":"406dff6e379f4fc1c5fd4d16b7a64e4ae4b355c1","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-2.4.1.tgz","fileCount":21,"integrity":"sha512-8XPUPVeIIfkSeWjHEytDMedZNISR0SCjv67JYbS75SIYcmz8Y7GZqNfLupltjcwsqV0e4bwdc4l4bEOno58QdA==","signatures":[{"sig":"MEUCIDwKrcWlYZ1cIumeFAjaSVIkECGtwUy1b2UwI+Is3OX9AiEAtAG5un0xJmQxqZ1+24To4UYcU1G17D1gDN5Zf/iooRA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2748137,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg12BeCRA9TVsSAnZWagAANjAP/0Rjsaq98GwiUeKzrCql\nkvY30e25oHdrPvGuzUn4VW3LjT5KqGoHho2nXyiwyBmMTlIlE16fGEP6h0X1\nv+CGGtlU73gcaVAPKuvvHbw3eyn+F62ymu4JXfN8dMiCI+CjVEg2wgYqJcYz\nTATtQYtgx6hB98sBsTcceRJ0H+rxKz5unEP9LaNDJ/87sdq/qpVWKZDZSGoH\nDsus7sEWTh2AUaYIsiGCVaAUAMBpLlGFlUcMTFl9QbctJCxVhIQnx25ksZWg\nnucFC85iaPloXUU8q8+gOCrKdDuH6Om2O9YwHlxY9ae8/fSXsClVrLh0Rok3\n6asK32Hj+HADFhFsn9QLM9GbXmstIlditiul6+tavF/YbEPEMzL7Dm6+NyzX\nn5FkH8MZCDX08BLVgOCkma6wuNSZsKput3t8KlMV9jKcCIYW/EjY0YTvsHmx\nhaISDV5TYKAO6i10Zgo+UVQKMV426VAsVqTNqg+qN0XdA0eQjb6knrhYnF8E\ni0hzUey1mMJw2TkfIs/vrKqMpo6tzy7obZcqMmT3eUa1W6uiHzKPdukzy0bT\ndM0ClLoFLS7WsNnodQL1LHVxjVz6xx0WCictOXz7MfQAGGCJEtXxCGmAaJ9I\n/+JDByjUOM/3OyCjZKeWTB0H6cetkYEXAc3JMzi7fu6k6HaXfCLX13FxA8yR\ny0cv\r\n=tkMX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","unpkg":"dist/nsfwjs.min.js","scripts":{"toc":"doctoc .","lint":"tslint -p . -t verbose","prep":"yarn && yarn build && cd example/nsfw_demo/ && yarn add ../../ && cd -","test":"yarn build && jest","build":"tsc --skipLibCheck","shipit":"yarn build && yarn scriptbundle && yarn minbundle && np","minbundle":"terser dist/bundle.js --compress --mangle --output dist/nsfwjs.min.js","scriptbundle":"browserify ./dist/nsfwjs.js --standalone nsfwjs --outfile ./dist/bundle.js","contributors:add":"all-contributors add","contributors:generate":"all-contributors generate"},"_npmUser":{"name":"gantman","email":"gantman+npm@gmail.com"},"repository":{"url":"git+https://github.com/infinitered/nsfwjs.git","type":"git"},"description":"Detect NSFW content client-side","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Infinite Red, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"@nsfw-filter/gif-frames":"1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"np":"^5.0.0","jest":"^26.6.3","doctoc":"^2.0.0","terser":"^5.3.8","tslint":"~6.1.0","jpeg-js":"^0.4.0","ts-jest":"^26.5.5","ts-node":"~9.1.0","babel-core":"^6.26.0","browserify":"^17.0.0","node-fetch":"^2.3.0","seedrandom":"~3.0.3","typescript":"4.3.4","@types/jest":"^26.0.0","@tensorflow/tfjs":"^3.1.0","all-contributors-cli":"^6.1.2","babel-plugin-transform-runtime":"~6.23.0"},"peerDependencies":{"@tensorflow/tfjs":"^3.1.0"},"_npmOperationalInternal":{"tmp":"tmp/nsfwjs_2.4.1_1624727645538_0.2031417012823331","host":"s3://npm-registry-packages"}},"2.4.2":{"name":"nsfwjs","version":"2.4.2","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","_id":"nsfwjs@2.4.2","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"}],"homepage":"https://nsfwjs.com","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"dist":{"shasum":"dd8656705f79f53d789245eaf317d6b6818a0032","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-2.4.2.tgz","fileCount":17,"integrity":"sha512-i4Pp2yt59qPQgeZFyg3wXFBX52uSeu/hkDoqdZfe+sILRxNBUu0VDogj7Lmqak0GlrXviS/wLiVeIx40IDUu7A==","signatures":[{"sig":"MEUCIBGBXtHJ5tspPQvOx1TGdZYBCtwYSY/f0lkQL6E3/b77AiEA8jHdvJspM/J2UO0VIkDLBFUUJ4Hd6u1qnLSxKbfcOFo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2750330,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjEMfDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpiiw/+OjqU/nt2XUwXRKKxPjj/SH2Ufod5tMp+f2gJKDPriFgaB8IF\r\nDv7v7ingMg0E5asnF1jL1BnQvwKxNatMAsmJBYmM1q5huCsFadOJaX2Oh5n2\r\nfkAGi9NqA46oIGB4mFHvLDoGpLXH+fpoIbQTEMAdo3ZVIciXZmT0/ErbNnQF\r\n/YsJEwwS/5nr/cGoJo6Gf2lf//FMlNj1XDZ7U8VtbjfQwsB9dO1hprrzYGUK\r\nP1Xc/ZDlmKFOAmSi/qwUbm9X3UT4rd8kdloCrMLDQBkKY9WubGrLl1LKkDe1\r\nHXV9Vq2T+iEKbCT9GPVHjjxJGnef9ZnbchTCz2zoMmiIAsT096CvCGRk0P3x\r\nJUUS/uCBrMMk7GZZ9ef4tXt2VWe90bvqhd24HhQrpWNWSfyMgCyHWSGE4dny\r\nsTJ1QBHbvEwRks23X9sy1THFmXZ6LuhcLTKwf5jCPX1pbshsCNEfs6A6la/h\r\nvkw84KcLov4+73ry2MxVvAtgzAx1Bi/oRE9p1WGR9RQJizl2oSmXOZUvDjew\r\nKUE2sWYr9UayrRA7AqFQc8uHGxgv18YhW3kBhXsgpnS/aZ3R4BH4LoYqPOSq\r\noxSUN/TxOtx5TJhsouHGPGDu4wvlZleE3pEbCfpJEoXIuxCo7zTVmyACl3n0\r\nZcebG2mGqS3/dBZU7s5qQIRT7Q03nvYr3yU=\r\n=JzA7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"./dist\\index.d.ts","unpkg":"dist/nsfwjs.min.js","gitHead":"0e0fce2fb676468af2f9e35737fe1efa75ffeef8","scripts":{"toc":"doctoc .","lint":"tslint -p . -t verbose","prep":"yarn && yarn build && cd example/nsfw_demo/ && yarn add ../../ && cd -","test":"yarn build && jest","build":"tsc --skipLibCheck","shipit":"yarn build && yarn scriptbundle && yarn minbundle && np","minbundle":"terser dist/bundle.js --compress --mangle --output dist/nsfwjs.min.js","scriptbundle":"browserify ./dist/nsfwjs.js --standalone nsfwjs --outfile ./dist/bundle.js","contributors:add":"all-contributors add","contributors:generate":"all-contributors generate"},"_npmUser":{"name":"gantman","email":"gantman+npm@gmail.com"},"repository":{"url":"git+https://github.com/infinitered/nsfwjs.git","type":"git"},"_npmVersion":"8.1.2","description":"Detect NSFW content client-side","directories":{},"_nodeVersion":"16.13.1","dependencies":{"@nsfw-filter/gif-frames":"1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"np":"5.0.2","jest":"^28.1.3","doctoc":"^2.2.0","terser":"^5.14.2","tslint":"~6.1.3","jpeg-js":"^0.4.4","ts-jest":"^28.0.7","ts-node":"~10.9.1","babel-core":"^6.26.3","browserify":"^17.0.0","node-fetch":"^2.6.7","seedrandom":"~3.0.5","typescript":"4.8.2","@types/jest":"^28.1.6","@tensorflow/tfjs":"^3.18.0","all-contributors-cli":"^6.20.0","babel-plugin-transform-runtime":"~6.23.0"},"peerDependencies":{"@tensorflow/tfjs":"^3.18.0"},"_npmOperationalInternal":{"tmp":"tmp/nsfwjs_2.4.2_1662044098789_0.5716969085172761","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"nsfwjs","version":"3.0.0","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","_id":"nsfwjs@3.0.0","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"},{"name":"infinitered-owner","email":"npm@infinite.red"},{"name":"mazenchami","email":"mazenchami@gmail.com"}],"homepage":"https://nsfwjs.com/","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"dist":{"shasum":"4a1ed6f365b8e5bd5e6ba3ef76c7c81d236130e4","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-3.0.0.tgz","fileCount":23,"integrity":"sha512-A7si+H96Q4gbtjjtmfcS25JrNimnJMTs2e6kveTMo0M+ZrRfjDiCV9UxpKPpXRTyoI6A7PHrUGM4S3R3PbFpEQ==","signatures":[{"sig":"MEUCIFkA4gtQmbd4SE3FrSsBigaZ5SJga9gC9mh6DNIFi+PtAiEA+HLZXLeD6N4T2LmzXRCKcthz8KOgCo9V+gyPkCNSXdw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2747180},"main":"dist/index.js","unpkg":"dist/nsfwjs.min.js","scripts":{"toc":"doctoc .","lint":"tslint -p . -t verbose","prep":"yarn && yarn build && cd examples/nsfw_demo/ && yarn add ../../ && cd -","test":"yarn build && jest","build":"tsc --skipLibCheck","shipit":"yarn build && yarn scriptbundle && yarn minbundle && np","minbundle":"terser dist/bundle.js --compress --mangle --output dist/nsfwjs.min.js","scriptbundle":"browserify ./dist/nsfwjs.js --standalone nsfwjs --outfile ./dist/bundle.js","contributors:add":"all-contributors add","contributors:generate":"all-contributors generate"},"_npmUser":{"name":"mazenchami","email":"mazenchami@gmail.com"},"repository":{"url":"git+https://github.com/infinitered/nsfwjs.git","type":"git"},"description":"Detect NSFW content client-side","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Infinite Red, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.19","devDependencies":{"np":"^9.2.0","jest":"^28.1.3","doctoc":"^2.2.0","terser":"^5.14.2","tslint":"~6.1.3","jpeg-js":"^0.4.4","ts-jest":"^28.0.7","ts-node":"~10.9.1","babel-core":"^6.26.3","browserify":"^17.0.0","node-fetch":"^2.6.7","seedrandom":"~3.0.5","typescript":"5.3.3","@types/jest":"^28.1.6","@tensorflow/tfjs":"^4.0.0","all-contributors-cli":"^6.20.0","babel-plugin-transform-runtime":"~6.23.0"},"peerDependencies":{"@tensorflow/tfjs":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nsfwjs_3.0.0_1707506743994_0.9072285785069163","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"nsfwjs","version":"4.0.0","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","_id":"nsfwjs@4.0.0","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"},{"name":"infinitered-owner","email":"npm@infinite.red"},{"name":"mazenchami","email":"mazenchami@gmail.com"}],"homepage":"https://nsfwjs.com/","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"dist":{"shasum":"69bf7ed68816dcfc99e577a5eb6c1cc171c340a0","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-4.0.0.tgz","fileCount":27,"integrity":"sha512-5FJKjAma8XBX9WEOWL/v1F6rCiKjomYzpiTzjhnql2WedWfCu4VLSp7aVDMzNdQ0aVgSl2t2yx2nPKw32UaYLw==","signatures":[{"sig":"MEQCIEF8vovA4zcxhE2inY1h70jBQsP1eJV48J+DAAcpEnOlAiBNOeUzQcvP9mOVxpeAbpXbZq5rq2Sco329D7rxX8q9xg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5479185},"main":"dist/cjs/index.js","unpkg":"dist/nsfwjs.min.js","module":"dist/esm/index.js","exports":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"scripts":{"toc":"doctoc .","lint":"tslint -p . -t verbose","prep":"yarn && yarn build && cd examples/nsfw_demo/ && yarn add ../../ && cd -","test":"jest","build":"yarn build:esm && yarn build:cjs","bundle":"yarn build && yarn scriptbundle && yarn minbundle","shipit":"npm run shipit:precheck && yarn bundle && np","pretest":"yarn build && node ./scripts/pre-test.mjs","posttest":"node ./scripts/post-test.mjs","build:cjs":"tsc -p ./tsconfig.cjs.json","build:esm":"tsc -p ./tsconfig.esm.json","minbundle":"terser dist/browser/bundle.js -c -m -o dist/browser/nsfwjs.min.js","postbuild":"yarn bundle:models","scriptbundle":"browserify ./dist/cjs/nsfwjs.js -s nsfwjs -o ./dist/browser/bundle.js","bundle:models":"yarn bundle:mobilenet_v2 && yarn bundle:mobilenet_v2_mid && yarn bundle:inception_v3","shipit:precheck":"if [ \"$npm_config_user_agent\" != \"${npm_config_user_agent#*yarn}\" ]; then echo 'Use `npm run shipit` instead of yarn.' && exit 1;  fi","contributors:add":"all-contributors add","bundle:inception_v3":"node ./scripts/bundle-model.mjs inception_v3 6","bundle:mobilenet_v2":"node ./scripts/bundle-model.mjs mobilenet_v2 1","contributors:generate":"all-contributors generate","bundle:mobilenet_v2_mid":"node ./scripts/bundle-model.mjs mobilenet_v2_mid 2"},"_npmUser":{"name":"mazenchami","email":"mazenchami@gmail.com"},"repository":{"url":"git+https://github.com/infinitered/nsfwjs.git","type":"git"},"description":"Detect NSFW content client-side","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Infinite Red, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.19","devDependencies":{"np":"^10.0.0","jest":"^28.1.3","doctoc":"^2.2.0","terser":"^5.14.2","tslint":"~6.1.3","jpeg-js":"^0.4.4","ts-jest":"^28.0.7","ts-node":"~10.9.1","babel-core":"^6.26.3","browserify":"^17.0.0","seedrandom":"~3.0.5","typescript":"5.3.3","@types/jest":"^28.1.6","@tensorflow/tfjs":"^4.0.0","all-contributors-cli":"^6.20.0","babel-plugin-transform-runtime":"~6.23.0"},"peerDependencies":{"@tensorflow/tfjs":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nsfwjs_4.0.0_1709656866073_0.25149563888990323","host":"s3://npm-registry-packages"}},"4.1.0":{"name":"nsfwjs","version":"4.1.0","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","_id":"nsfwjs@4.1.0","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"},{"name":"infinitered-owner","email":"npm@infinite.red"},{"name":"mazenchami","email":"mazenchami@gmail.com"}],"homepage":"https://nsfwjs.com/","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"dist":{"shasum":"021b7b38a043630e5f1f66bc7ef5d65afaf1eb59","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-4.1.0.tgz","fileCount":35,"integrity":"sha512-2V27SoNXUJbAAi+vW8RHJbONs2AHa1odmjlRsVX2mirxR4IGt1OIzZ49IXgPVg6nktwA8Su61YEJql7VreEKyg==","signatures":[{"sig":"MEUCIQDOYZa5/noNzWjMMDKH27ZnPneGdeXlChOiCCGO4+1hmwIgM7VQrZgcoPr9C1WsvJJdgu8wppswoOlJRjdXZBKX5yY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":42232312},"main":"dist/cjs/index.js","unpkg":"dist/nsfwjs.min.js","module":"dist/esm/index.js","exports":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"scripts":{"toc":"doctoc .","lint":"tslint -p . -t verbose","prep":"yarn && yarn build && cd examples/nsfw_demo/ && yarn add ../../ && cd -","test":"jest","build":"yarn build:esm && yarn build:cjs","bundle":"yarn build && yarn scriptbundle && yarn minbundle","shipit":"npm run shipit:precheck && yarn bundle && np","pretest":"yarn build && node ./scripts/pre-test.mjs","posttest":"node ./scripts/post-test.mjs","build:cjs":"tsc -p ./tsconfig.cjs.json","build:esm":"tsc -p ./tsconfig.esm.json","minbundle":"terser dist/browser/bundle.js -c -m -o dist/browser/nsfwjs.min.js","postbuild":"yarn bundle:models","scriptbundle":"browserify ./dist/cjs/nsfwjs.js -s nsfwjs -o ./dist/browser/bundle.js","bundle:models":"yarn bundle:mobilenet_v2 && yarn bundle:mobilenet_v2_mid && yarn bundle:inception_v3","shipit:precheck":"if [ \"$npm_config_user_agent\" != \"${npm_config_user_agent#*yarn}\" ]; then echo 'Use `npm run shipit` instead of yarn.' && exit 1;  fi","contributors:add":"all-contributors add","bundle:inception_v3":"node ./scripts/bundle-model.mjs inception_v3 6","bundle:mobilenet_v2":"node ./scripts/bundle-model.mjs mobilenet_v2 1","contributors:generate":"all-contributors generate","bundle:mobilenet_v2_mid":"node ./scripts/bundle-model.mjs mobilenet_v2_mid 2"},"_npmUser":{"name":"mazenchami","email":"mazenchami@gmail.com"},"repository":{"url":"git+https://github.com/infinitered/nsfwjs.git","type":"git"},"description":"Detect NSFW content client-side","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Infinite Red, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.19","devDependencies":{"np":"^10.0.0","jest":"^28.1.3","doctoc":"^2.2.0","terser":"^5.14.2","tslint":"~6.1.3","jpeg-js":"^0.4.4","ts-jest":"^28.0.7","ts-node":"~10.9.1","babel-core":"^6.26.3","browserify":"^17.0.0","seedrandom":"~3.0.5","typescript":"5.3.3","@types/jest":"^28.1.6","@tensorflow/tfjs":"^4.0.0","all-contributors-cli":"^6.20.0","babel-plugin-transform-runtime":"~6.23.0"},"peerDependencies":{"@tensorflow/tfjs":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nsfwjs_4.1.0_1709738748124_0.7101147909626573","host":"s3://npm-registry-packages"}},"4.2.0":{"name":"nsfwjs","version":"4.2.0","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","_id":"nsfwjs@4.2.0","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"},{"name":"infinitered-owner","email":"npm@infinite.red"},{"name":"mazenchami","email":"mazenchami@gmail.com"}],"homepage":"https://nsfwjs.com/","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"dist":{"shasum":"8514794447723cdc18edaff673717915a719e428","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-4.2.0.tgz","fileCount":83,"integrity":"sha512-8eMmV+Hfr3hqSX7PzDJx94kFSP4QiN4/G9+b92I3catgQuqOb9Qmns1nDyVI0jMcWc1sVWdqBIA6eYLvKkryxA==","signatures":[{"sig":"MEQCIEBV3itNrRpN25l/5dCcRfWdWH9xTRb3lRkNwJS9KbkdAiBmayMUD6ihC52wTOe6yuEPsXXVMj0xRpt2ByNu2M4P/Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":121166486},"main":"dist/cjs/index.js","type":"commonjs","unpkg":"dist/browser/nsfwjs.min.js","module":"dist/esm/index.js","exports":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"scripts":{"toc":"doctoc .","lint":"tslint -p . -t verbose","prep":"yarn && yarn build && cd examples/nsfw_demo/ && yarn add ../../ && cd -","test":"jest","build":"yarn build:esm && yarn build:cjs && node ./scripts/add-nested-package-json.mjs","bundle":"yarn build && yarn scriptbundle && yarn minbundle","shipit":"npm run shipit:precheck && yarn bundle && np","pretest":"yarn build && node ./scripts/pre-test.mjs","posttest":"node ./scripts/post-test.mjs","build:cjs":"tsc -p ./tsconfig.cjs.json","build:esm":"tsc -p ./tsconfig.esm.json && node ./scripts/add-extensions.mjs","minbundle":"terser dist/browser/bundle.js -c -m -o dist/browser/nsfwjs.min.js","postbuild":"yarn bundle:models","scriptbundle":"browserify ./dist/cjs/nsfwjs.js -s nsfwjs -o ./dist/browser/bundle.js","bundle:models":"yarn bundle:mobilenet_v2 && yarn bundle:mobilenet_v2_mid && yarn bundle:inception_v3","shipit:precheck":"if [ \"$npm_config_user_agent\" != \"${npm_config_user_agent#*yarn}\" ]; then echo 'Use `npm run shipit` instead of yarn.' && exit 1;  fi","contributors:add":"all-contributors add","bundle:inception_v3":"node ./scripts/bundle-model.mjs inception_v3 6","bundle:mobilenet_v2":"node ./scripts/bundle-model.mjs mobilenet_v2 1","contributors:generate":"all-contributors generate","bundle:mobilenet_v2_mid":"node ./scripts/bundle-model.mjs mobilenet_v2_mid 2"},"_npmUser":{"name":"mazenchami","email":"mazenchami@gmail.com"},"repository":{"url":"git+https://github.com/infinitered/nsfwjs.git","type":"git"},"description":"Detect NSFW content client-side","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Infinite Red, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.19","devDependencies":{"np":"^10.0.0","jest":"^28.1.3","buffer":"^6.0.3","doctoc":"^2.2.0","terser":"^5.14.2","tslint":"~6.1.3","esbuild":"^0.24.0","jpeg-js":"^0.4.4","ts-jest":"^28.0.7","ts-node":"~10.9.1","babel-core":"^6.26.3","browserify":"^17.0.0","seedrandom":"~3.0.5","typescript":"5.6.2","@types/jest":"^28.1.6","@tensorflow/tfjs":"^4.0.0","all-contributors-cli":"^6.20.0","babel-plugin-transform-runtime":"~6.23.0"},"peerDependencies":{"buffer":"^6.0.3","@tensorflow/tfjs":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nsfwjs_4.2.0_1728663467204_0.43231772643470423","host":"s3://npm-registry-packages"}},"4.2.1":{"name":"nsfwjs","version":"4.2.1","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","_id":"nsfwjs@4.2.1","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"},{"name":"infinitered-owner","email":"npm@infinite.red"},{"name":"mazenchami","email":"mazenchami@gmail.com"}],"homepage":"https://nsfwjs.com/","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"dist":{"shasum":"817ffcf0111fab9118d4c2b4ba547170ca422329","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-4.2.1.tgz","fileCount":83,"integrity":"sha512-8ixL8Uk7+9Ir67yUxwtbLFZv6NgmsXsgP2oX5zNxmyTIXUfNdj6FLLVS+YI0pYlMEOExLp69ocfQznzTU9ATGw==","signatures":[{"sig":"MEUCIAF97a/b0HfjYsExFeDyLU+xysLsH3mXIzhrkoYNx/w6AiEAmyKCqJthukaUdkueActrsd0G4+FbgYr3ZqTXhrfNUT0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":121194205},"main":"dist/cjs/index.js","type":"commonjs","unpkg":"dist/browser/nsfwjs.min.js","module":"dist/esm/index.js","exports":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"scripts":{"toc":"doctoc .","lint":"tslint -p . -t verbose","prep":"yarn && yarn build && cd examples/nsfw_demo/ && yarn add ../../ && cd -","test":"jest","build":"yarn build:esm && yarn build:cjs && node ./scripts/add-nested-package-json.mjs","bundle":"yarn build && yarn scriptbundle && yarn minbundle","shipit":"npm run shipit:precheck && yarn bundle && np","pretest":"yarn build && node ./scripts/pre-test.mjs","posttest":"node ./scripts/post-test.mjs","build:cjs":"tsc -p ./tsconfig.cjs.json","build:esm":"tsc -p ./tsconfig.esm.json && node ./scripts/add-extensions.mjs","minbundle":"terser dist/browser/bundle.js -c -m -o dist/browser/nsfwjs.min.js","postbuild":"yarn bundle:models","scriptbundle":"browserify ./dist/cjs/nsfwjs.js -s nsfwjs -o ./dist/browser/bundle.js","bundle:models":"yarn bundle:mobilenet_v2 && yarn bundle:mobilenet_v2_mid && yarn bundle:inception_v3","shipit:precheck":"if [ \"$npm_config_user_agent\" != \"${npm_config_user_agent#*yarn}\" ]; then echo 'Use `npm run shipit` instead of yarn.' && exit 1;  fi","contributors:add":"all-contributors add","bundle:inception_v3":"node ./scripts/bundle-model.mjs inception_v3 6","bundle:mobilenet_v2":"node ./scripts/bundle-model.mjs mobilenet_v2 1","contributors:generate":"all-contributors generate","bundle:mobilenet_v2_mid":"node ./scripts/bundle-model.mjs mobilenet_v2_mid 2"},"_npmUser":{"name":"mazenchami","email":"mazenchami@gmail.com"},"repository":{"url":"git+https://github.com/infinitered/nsfwjs.git","type":"git"},"description":"Detect NSFW content client-side","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Infinite Red, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.19","devDependencies":{"np":"^10.0.0","jest":"^28.1.3","buffer":"^6.0.3","doctoc":"^2.2.0","terser":"^5.14.2","tslint":"~6.1.3","esbuild":"^0.24.0","jpeg-js":"^0.4.4","ts-jest":"^28.0.7","ts-node":"~10.9.1","babel-core":"^6.26.3","browserify":"^17.0.0","seedrandom":"~3.0.5","typescript":"5.6.2","@types/jest":"^28.1.6","@tensorflow/tfjs":"^4.0.0","all-contributors-cli":"^6.20.0","babel-plugin-transform-runtime":"~6.23.0"},"peerDependencies":{"buffer":"^6.0.3","@tensorflow/tfjs":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nsfwjs_4.2.1_1731326187136_0.39601952831320264","host":"s3://npm-registry-packages"}},"4.3.0":{"name":"nsfwjs","version":"4.3.0","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","_id":"nsfwjs@4.3.0","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"},{"name":"infinitered-owner","email":"npm@infinite.red"},{"name":"mazenchami","email":"mazenchami@gmail.com"}],"homepage":"https://nsfwjs.com","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"dist":{"shasum":"897636d4926a9f852e4a9fe48a01b66f380bdd14","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-4.3.0.tgz","fileCount":59,"integrity":"sha512-WTKDte0vp1X97N1h34P79G/hG+sVT3+TnDz9di1WseIJR93v11E4viNX7Vg9WsO6HYoR772Nzq2iM8jo3XBZ+g==","signatures":[{"sig":"MEUCICiipGezPd1MVBAZ/R0HJf8B6YrNBkXOvl1qNatzSOJxAiEA08AVbUxMWD6D+fIA0kHqs8jdP7vSmps60hSdaRen3Qg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42269607},"main":"dist/cjs/index.js","type":"module","types":"./dist/cjs/index.d.ts","unpkg":"dist/browser/nsfwjs.min.js","module":"dist/esm/index.js","exports":{".":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./core":{"import":"./dist/esm/core.js","require":"./dist/cjs/core.js"},"./models/inception_v3":{"import":"./dist/esm/models/inception_v3.js","require":"./dist/cjs/models/inception_v3.js"},"./models/mobilenet_v2":{"import":"./dist/esm/models/mobilenet_v2.js","require":"./dist/cjs/models/mobilenet_v2.js"},"./models/mobilenet_v2_mid":{"import":"./dist/esm/models/mobilenet_v2_mid.js","require":"./dist/cjs/models/mobilenet_v2_mid.js"}},"gitHead":"dc2293f164d45c29604470835702d5778a517936","scripts":{"toc":"doctoc .","demo":"yarn demo:prep && yarn demo:dev","lint":"eslint .","test":"jest","build":"yarn build:esm && yarn build:cjs && node ./scripts/add-nested-package-json.mjs","bundle":"yarn build && yarn scriptbundle && yarn minbundle","shipit":"npm run shipit:precheck && yarn bundle && np","prepare":"yarn bundle","pretest":"yarn build && node ./scripts/pre-test.mjs","demo:dev":"yarn --cwd examples/nsfw_demo dev","posttest":"node ./scripts/post-test.mjs","prebuild":"node ./scripts/pre-build.mjs","build:cjs":"tsc -p ./tsconfig.cjs.json","build:esm":"tsc -p ./tsconfig.esm.json && node ./scripts/add-extensions.mjs","demo:prep":"yarn && yarn build && yarn --cwd examples/nsfw_demo add ../../","minbundle":"terser dist/browser/bundle.js -c -m -o dist/browser/nsfwjs.min.js","postbuild":"yarn bundle:models","scriptbundle":"browserify ./dist/cjs/nsfwjs.js -s nsfwjs -o ./dist/browser/bundle.js","bundle:models":"yarn bundle:mobilenet_v2 && yarn bundle:mobilenet_v2_mid && yarn bundle:inception_v3","shipit:precheck":"if [ \"$npm_config_user_agent\" != \"${npm_config_user_agent#*yarn}\" ]; then echo 'Use `npm run shipit` instead of yarn.' && exit 1;  fi","contributors:add":"all-contributors add","bundle:inception_v3":"node ./scripts/bundle-model.mjs inception_v3 6","bundle:mobilenet_v2":"node ./scripts/bundle-model.mjs mobilenet_v2 1","contributors:generate":"all-contributors generate","bundle:mobilenet_v2_mid":"node ./scripts/bundle-model.mjs mobilenet_v2_mid 2"},"_npmUser":{"name":"mazenchami","email":"mazenchami@gmail.com"},"repository":{"url":"git+https://github.com/infinitered/nsfwjs.git","type":"git"},"_npmVersion":"11.11.0","description":"Detect NSFW content client-side","directories":{},"_nodeVersion":"25.8.1","dependencies":{},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"np":"^11.0.2","jest":"^30.2.0","buffer":"^6.0.3","doctoc":"^2.3.0","eslint":"^10.0.1","terser":"^5.46.0","jpeg-js":"^0.4.4","ts-jest":"^29.4.6","browserify":"^17.0.1","seedrandom":"^3.0.5","typescript":"5.9.3","@types/jest":"^30.0.0","@tensorflow/tfjs":"^4.22.0","all-contributors-cli":"^6.26.1","@typescript-eslint/parser":"^8.56.0","@typescript-eslint/eslint-plugin":"^8.56.0"},"peerDependencies":{"buffer":"^6.0.3","@tensorflow/tfjs":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nsfwjs_4.3.0_1773841845761_0.952553956234091","host":"s3://npm-registry-packages-npm-production"}},"4.4.0":{"name":"nsfwjs","version":"4.4.0","unpkg":"dist/browser/nsfwjs.min.js","description":"Detect NSFW content client-side","type":"module","module":"dist/esm/index.js","main":"dist/cjs/index.js","exports":{".":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./core":{"import":"./dist/esm/core.js","require":"./dist/cjs/core.js"},"./models/mobilenet_v2":{"import":"./dist/esm/models/mobilenet_v2.js","require":"./dist/cjs/models/mobilenet_v2.js"},"./models/mobilenet_v2_mid":{"import":"./dist/esm/models/mobilenet_v2_mid.js","require":"./dist/cjs/models/mobilenet_v2_mid.js"},"./models/inception_v3":{"import":"./dist/esm/models/inception_v3.js","require":"./dist/cjs/models/inception_v3.js"}},"scripts":{"lint":"eslint .","prebuild":"node ./scripts/pre-build.mjs","build:esm":"tsc -p ./tsconfig.esm.json","build:cjs":"tsc -p ./tsconfig.cjs.json","build":"yarn build:esm && yarn build:cjs && node ./scripts/add-nested-package-json.mjs","bundle:mobilenet_v2":"node ./scripts/bundle-model.mjs mobilenet_v2 1","bundle:mobilenet_v2_mid":"node ./scripts/bundle-model.mjs mobilenet_v2_mid 2","bundle:inception_v3":"node ./scripts/bundle-model.mjs inception_v3 6","bundle:models":"yarn bundle:mobilenet_v2 && yarn bundle:mobilenet_v2_mid && yarn bundle:inception_v3","postbuild":"yarn bundle:models","pretest":"yarn build && node ./scripts/pre-test.mjs","test":"jest","posttest":"node ./scripts/post-test.mjs && node ./scripts/check-sourcemaps.mjs","toc":"doctoc .","contributors:add":"all-contributors add","contributors:generate":"all-contributors generate","demo:prep":"yarn && yarn build && yarn --cwd examples/nsfw_demo add ../../","demo:dev":"yarn --cwd examples/nsfw_demo dev","demo":"yarn demo:prep && yarn demo:dev","scriptbundle":"browserify ./dist/cjs/nsfwjs.js -s nsfwjs -o ./dist/browser/bundle.js","minbundle":"terser dist/browser/bundle.js -c -m -o dist/browser/nsfwjs.min.js","bundle":"yarn build && yarn scriptbundle && yarn minbundle","prepare":"yarn bundle","shipit:precheck":"if [ \"$npm_config_user_agent\" != \"${npm_config_user_agent#*yarn}\" ]; then echo 'Use `npm run shipit` instead of yarn.' && exit 1;  fi","shipit":"npm run shipit:precheck && yarn bundle && np"},"repository":{"type":"git","url":"git+https://github.com/infinitered/nsfwjs.git"},"peerDependencies":{"@tensorflow/tfjs":"^4.0.0","buffer":"^6.0.3"},"devDependencies":{"@tensorflow/tfjs":"^4.22.0","@types/jest":"^30.0.0","@typescript-eslint/eslint-plugin":"^8.56.0","@typescript-eslint/parser":"^8.56.0","all-contributors-cli":"^6.26.1","browserify":"^17.0.1","buffer":"^6.0.3","doctoc":"^2.3.0","eslint":"^10.0.1","jest":"^30.2.0","jpeg-js":"^0.4.4","np":"^11.0.2","seedrandom":"^3.0.5","terser":"^5.46.0","ts-jest":"^29.4.6","typescript":"5.9.3"},"packageManager":"yarn@1.22.22","engines":{"node":"22.13.0","npm":">=10 <12"},"keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"author":{"name":"Gant Laborde"},"license":"MIT","bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"homepage":"https://nsfwjs.com","dependencies":{},"_id":"nsfwjs@4.4.0","gitHead":"d55a54c51f14380670064cc129b2ea51029c5e46","types":"./dist/cjs/index.d.ts","_nodeVersion":"22.13.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-krC1fgeTLXtZwgdpKJ0jm7hqv0gTSRQQRL+FhOaxaJ9Wj92t42BO3csO2odwgTAgZgf2RvkwPtp0R8Aa7dc+MA==","shasum":"706017d11e44de0803b73a568819f800a50ae470","tarball":"https://registry.npmjs.org/nsfwjs/-/nsfwjs-4.4.0.tgz","fileCount":81,"unpackedSize":42339734,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCEhBTeYCsewmTLujeT1uQdk9ECNB7HcLbrDc0U2YMxqgIhAOGWIGTy0LSviucFE8YzLJ10gbRqJO4pzHk6Xg4mzomq"}]},"_npmUser":{"name":"jonmajorc","email":"jmajorcondon@gmail.com"},"directories":{},"maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"},{"name":"infinitered-owner","email":"npm@infinite.red"},{"name":"jonmajorc","email":"jmajorcondon@gmail.com"},{"name":"mazenchami","email":"mazenchami@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nsfwjs_4.4.0_1785857283459_0.033820225079381094"},"_hasShrinkwrap":false}},"time":{"created":"2019-02-13T15:05:08.759Z","modified":"2026-08-04T15:28:04.137Z","0.0.1":"2019-02-13T15:05:08.907Z","0.0.2":"2019-02-14T15:53:37.227Z","0.0.3":"2019-02-14T16:50:27.836Z","0.1.0":"2019-02-16T05:09:39.980Z","0.1.1":"2019-02-19T23:23:52.128Z","1.0.0":"2019-04-22T19:26:58.343Z","2.0.0":"2019-05-02T14:39:40.099Z","2.0.1":"2019-08-03T03:12:45.262Z","2.1.0":"2019-09-04T02:36:01.627Z","2.2.0":"2020-05-01T16:28:04.392Z","2.3.0":"2020-10-23T04:15:11.818Z","2.4.0":"2021-04-04T04:23:21.992Z","2.4.1":"2021-06-26T17:14:05.756Z","2.4.2":"2022-09-01T14:54:59.017Z","3.0.0":"2024-02-09T19:25:44.334Z","4.0.0":"2024-03-05T16:41:06.294Z","4.1.0":"2024-03-06T15:25:48.577Z","4.2.0":"2024-10-11T16:17:48.204Z","4.2.1":"2024-11-11T11:56:28.110Z","4.3.0":"2026-03-18T13:50:46.570Z","4.4.0":"2026-08-04T15:28:03.943Z"},"bugs":{"url":"https://github.com/infinitered/nsfwjs/issues"},"author":{"name":"Gant Laborde"},"license":"MIT","homepage":"https://nsfwjs.com","keywords":["NSFW","JavaScript","ML","Machine","Learning","Tensorflow","JS"],"repository":{"type":"git","url":"git+https://github.com/infinitered/nsfwjs.git"},"description":"Detect NSFW content client-side","maintainers":[{"name":"gantman","email":"gantman+npm@gmail.com"},{"name":"infinitered-owner","email":"npm@infinite.red"},{"name":"jonmajorc","email":"jmajorcondon@gmail.com"},{"name":"mazenchami","email":"mazenchami@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"https://github.com/infinitered/nsfwjs/raw/master/_art/nsfwjs_logo.jpg\" alt=\"NSFWJS Logo\" width=\"400\" />\n  <h2 align=\"center\">Client-side indecent content checking</h2>\n</p>\n\n[![All Contributors](https://img.shields.io/badge/all_contributors-25-green.svg?style=flat-square)](#contributors)\n[![CircleCI](https://dl.circleci.com/status-badge/img/gh/infinitered/nsfwjs/tree/master.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/infinitered/nsfwjs/tree/master)\n[![Netlify Status](https://api.netlify.com/api/v1/badges/72d19dc0-d316-4f75-9904-a33d833ff628/deploy-status)](https://app.netlify.com/sites/nsfwjs/deploys)\n\nA simple JavaScript library to help you quickly identify unseemly images; all in the client's browser. NSFWJS isn't perfect, but it's pretty accurate (~90% with small and ~93% with midsized model)... and it's getting more accurate all the time.\n\nWhy would this be useful? [Check out the announcement blog post](https://shift.infinite.red/avoid-nightmares-nsfw-js-ab7b176978b1).\n\n<p align=\"center\">\n<img src=\"https://github.com/infinitered/nsfwjs/raw/master/_art/nsfw_demo.gif\" alt=\"demo example\" width=\"800\" align=\"center\" />\n</p>\n\n## NOTE\n\nIf you're trying to access the Cloudfront hosted model and are running into an error, it's likely due to the fact that the model has been moved to a new location. Please take a look at our [Host your own model](#host-your-own-model) section. We will be returning the model after some hotlinkers have been dealt with.\n\n## **Table of Contents**\n\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n\n\n- [QUICK: How to use the module](#quick-how-to-use-the-module)\n  - [Selective model bundles (tree-shaking)](#selective-model-bundles-tree-shaking)\n- [Library API](#library-api)\n  - [`load` the model](#load-the-model)\n  - [Caching](#caching)\n  - [`classify` an image](#classify-an-image)\n  - [`dispose` a loaded model](#dispose-a-loaded-model)\n- [Production](#production)\n- [Backend selection](#backend-selection)\n  - [WASM backend (optional)](#wasm-backend-optional)\n  - [WebGPU backend (optional)](#webgpu-backend-optional)\n  - [Node.js backend](#nodejs-backend)\n- [Install](#install)\n  - [Host your own model](#host-your-own-model)\n- [Run the Examples](#run-the-examples)\n  - [Tensorflow.js in the browser](#tensorflowjs-in-the-browser)\n  - [Browserify](#browserify)\n  - [React Native](#react-native)\n  - [Node JS App](#node-js-app)\n  - [NSFW Filter](#nsfw-filter)\n- [Learn TensorFlow.js](#learn-tensorflowjs)\n- [More!](#more)\n  - [Open Source](#open-source)\n  - [Need the experts? Hire Infinite Red for your next project](#need-the-experts-hire-infinite-red-for-your-next-project)\n- [Contributors](#contributors)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\nThe library categorizes image probabilities in the following 5 classes:\n\n- `Drawing` - safe for work drawings (including anime)\n- `Hentai` - hentai and pornographic drawings\n- `Neutral` - safe for work neutral images\n- `Porn` - pornographic images, sexual acts\n- `Sexy` - sexually explicit images, not pornography\n\n> _The demo is a continuous deployment source - Give it a go: http://nsfwjs.com_\n\n## QUICK: How to use the module\n\n```js\nimport * as nsfwjs from \"nsfwjs\";\n\nconst img = document.getElementById(\"img\");\n\n// If you want to host models on your own or use different model from the ones available, see the section \"Host your own model\".\nconst model = await nsfwjs.load();\n\n// Classify the image\nconst predictions = await model.classify(img);\nconsole.log(\"Predictions: \", predictions);\n```\n\n### Selective model bundles (tree-shaking)\n\n`nsfwjs` keeps the default behavior and includes built-in model definitions. For selective bundling, import from `nsfwjs/core` and pass only the models you want in `modelDefinitions`.\n\n```js\nimport { load } from \"nsfwjs/core\";\nimport { MobileNetV2Model } from \"nsfwjs/models/mobilenet_v2\";\nimport { MobileNetV2MidModel } from \"nsfwjs/models/mobilenet_v2_mid\";\n\nconst model = await load(\"MobileNetV2\", {\n  modelDefinitions: [MobileNetV2Model, MobileNetV2MidModel],\n});\n```\n\nIf you pass an empty model registry, named bundled model loads will fail:\n\n```js\nawait load(\"MobileNetV2\", { modelDefinitions: [] }); // throws\n```\n\n## Library API\n\n### `load` the model\n\nBefore you can classify any image, you'll need to load the model.\n\n```js\nconst model = nsfwjs.load(); // Default: \"MobileNetV2\"\n```\n\nYou can use the optional first parameter to specify which model you want to use from the three built-in bundled models. Defaults to: `\"MobileNetV2\"`.\n\nFor tree-shaken selective model bundling, use `nsfwjs/core` and pass `modelDefinitions` as shown above.\n\n```js\nconst model = nsfwjs.load(\"MobileNetV2Mid\"); // \"MobileNetV2\" | \"MobileNetV2Mid\" | \"InceptionV3\"\n```\n\nYou can also use same parameter and load the model from your website/server, as explained in the [Host your own model](#host-your-own-model) section. Doing so could reduce the bundle size for loading the model by approximately 1.33 times (33%) since you can directly use the binary files instead of the base64 that are bundled with the package. i.e. The `\"MobileNetV2\"` model bundled into the package is 3.5MB instead of 2.6MB for hosted binary files. This would only make a difference if you are loading the model every time (without [Caching](#caching)) on the client-side browser since on the server-side, you'd only be loading the model once at the server start.\n\nIf you are hosting your own model via URL and want the smallest app bundle, import `load` from `nsfwjs/core` instead of `nsfwjs`. The core entrypoint does not include built-in model definitions by default, so bundlers do not pull those model assets into your app bundle.\n\n```js\nimport { load } from \"nsfwjs/core\";\n\nconst model = await load(\"/path/to/mobilenet_v2/model.json\");\n```\n\nModel MobileNetV2 - [224x224](https://github.com/infinitered/nsfwjs/blob/master/models/mobilenet_v2/)\n\n```js\nconst model = nsfwjs.load(\"/path/to/mobilenet_v2/\");\n```\n\nIf you're using a model that needs an image of dimension other than 224x224, you can pass the size in the options parameter.\n\nModel MobileNetV2Mid - [Graph](https://github.com/infinitered/nsfwjs/tree/master/models/mobilenet_v2_mid)\n\n```js\n/* You may need to load this model with graph type */\nconst model = nsfwjs.load(\"/path/to/mobilenet_v2_mid/\", { type: 'graph' });\n```\n\nIf you're using a graph model, you cannot use the infer method, and you'll need to tell model load that you're dealing with a graph model in options.\n\nModel InceptionV3 - [299x299](https://github.com/infinitered/nsfwjs/tree/master/models/inception_v3)\n\n```js\nconst model = nsfwjs.load(\"/path/to/inception_v3/\", { size: 299 });\n```\n\n### Caching\n\nIf you're using in the browser and you'd like to subsequently load from indexed db or local storage (NOTE: model size may be too large for local storage!) you can save the underlying model using the appropriate scheme and load from there.\n\n```js\nconst initialLoad = await nsfwjs.load(\n  \"/path/to/different/model/\" /*, { ...options }*/\n);\nawait initialLoad.model.save(\"indexeddb://exampleModel\");\nconst model = await nsfwjs.load(\"indexeddb://exampleModel\" /*, { ...options }*/);\n```\n\n**Parameters**\n\nInitial Load:\n1. URL or path to folder containing `model.json`.\n2. Optional object with size or type property that your model expects.\n\nSubsequent Load:\n1. IndexedDB path.\n2. Optional object with size or type property that your model expects.\n\n\n**Returns**\n\n- Ready to use NSFWJS model object\n  \n\n**Troubleshooting**\n\n- On the tab where the model is being loaded, inspect element and navigate to the the \"Application\" tab. On the left pane under the \"Storage\" section, there is a subsection named \"IndexedDB\". Here you can view if the model is being saved.\n\nFor a complete browser worker implementation (including backend initialization, IndexedDB-first load, and save-on-miss caching), see [`examples/nsfw_demo/src/nsfwjs.worker.ts`](./examples/nsfw_demo/src/nsfwjs.worker.ts).\n\n### `classify` an image\n\nThis function can take any browser-based image elements (`<img>`, `<video>`, `<canvas>`) and returns an array of most likely predictions and their confidence levels.\n\n```js\n// Return top 3 guesses (instead of all 5)\nconst predictions = await model.classify(img, 3);\n```\n\n**Parameters**\n\n- Tensor, Image data, Image element, video element, or canvas element to check\n- Number of results to return (default all 5)\n\n**Returns**\n\n- Array of objects that contain `className` and `probability`. Array size is determined by the second parameter in the `classify` function.\n\n### `dispose` a loaded model\n\nIf you are done with a model instance, call `dispose()` to release held tensors and model resources.\n\n```js\nconst model = await nsfwjs.load();\n// ... classify/infer\nmodel.dispose();\n```\n\n## Production\n\nTensorflow.js offers two flags, `enableProdMode` and `enableDebugMode`. If you're going to use NSFWJS in production, be sure to enable prod mode before loading the NSFWJS model.\n\n```js\nimport * as tf from \"@tensorflow/tfjs\";\nimport * as nsfwjs from \"nsfwjs\";\ntf.enableProdMode();\n//...\nlet model = await nsfwjs.load(`${urlToNSFWJSModel}`);\n```\n\n**NOTE:** Consider downloading and hosting the model yourself before moving to production as explained in the [Host your own model](#host-your-own-model) section. This could potentially improve the initial load time of the model. Furthermore, consider [Caching](#caching) the model, if you are using it in the browser.\n\n## Backend selection\n\nNSFWJS uses whichever TensorFlow.js backend is active.\n\nSetting a backend explicitly is optional. If you import one or more backends and call `await tf.ready()`, TensorFlow.js will pick the best available backend.\n\nUse `tf.setBackend(...)` only when you want deterministic behavior across devices.\n\nAutomatic backend selection:\n\n```js\nimport * as tf from \"@tensorflow/tfjs\";\nimport \"@tensorflow/tfjs-backend-webgpu\";\nimport \"@tensorflow/tfjs-backend-wasm\";\nimport * as nsfwjs from \"nsfwjs\";\n\nawait tf.ready();\n\nconst model = await nsfwjs.load();\n```\n\nPinned backend selection:\n\n```js\nimport * as tf from \"@tensorflow/tfjs\";\nimport \"@tensorflow/tfjs-backend-webgpu\";\n\nawait tf.setBackend(\"webgpu\");\nawait tf.ready();\n```\n\n### WASM backend (optional)\n\n```bash\nyarn add @tensorflow/tfjs-backend-wasm\n```\n\n```js\nimport * as tf from \"@tensorflow/tfjs\";\nimport {\n  setWasmPaths,\n} from \"@tensorflow/tfjs-backend-wasm\";\nimport \"@tensorflow/tfjs-backend-wasm\";\n\n// If you aren't using a standard bundler, set the path to the .wasm binaries.\nsetWasmPaths(\"https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-wasm/dist/\");\n\nawait tf.setBackend(\"wasm\");\nawait tf.ready();\n```\n\n### WebGPU backend (optional)\n\n```bash\nyarn add @tensorflow/tfjs-backend-webgpu\n```\n\n```js\nimport * as tf from \"@tensorflow/tfjs\";\nimport \"@tensorflow/tfjs-backend-webgpu\";\n\nawait tf.setBackend(\"webgpu\");\nawait tf.ready();\n```\n\nBackend guidance:\n\n- `webgpu`: often fastest on supported browsers/hardware.\n- `webgl`: strong default in modern desktop/mobile browsers.\n- `wasm`: useful fallback for environments where WebGL is unavailable/restricted.\n- `cpu`: broad compatibility but typically slower.\n\n### Node.js backend\n\nFor Node.js workloads, consider using `@tensorflow/tfjs-node` (or `@tensorflow/tfjs-node-gpu` where applicable) for better performance. See the [Node JS App](#node-js-app) section for examples.\n\nAlways benchmark in your target browser/device set.\n\n## Install\n\nNSFWJS is powered by TensorFlow.js as a peer dependency. If your project does not already have TFJS you'll may want to add it.\n\n```bash\n# peer dependency\n$ yarn add @tensorflow/tfjs\n# install NSFWJS\n$ yarn add nsfwjs\n```\n\nFor script tags include all the bundles as shown [here](#browserify). Then simply access the nsfwjs global variable. This requires that you've already imported TensorFlow.js as well.\n\n### Host your own model\n\nThe magic that powers NSFWJS is the [NSFW detection model](https://github.com/gantman/nsfw_model). By default, the models are bundled into this package. But you may want to host the models on your own server to reduce bundle size by loading them as raw binary files or to host your own custom model. If you want to host your own version of [the model files](https://github.com/infinitered/nsfwjs/tree/master/models), you can do so by following the steps below. You can then pass the relative URL to your hosted files in the `load` function along with the `options` if necessary.\n\nIf you are loading a hosted model URL, prefer `nsfwjs/core` so your app does not bundle built-in model definitions. See [Selective model bundles (tree-shaking)](#selective-model-bundles-tree-shaking).\n\nHere is how to install the default model on a website:\n\n1. Download the project by either downloading as zip or cloning `git clone https://github.com/infinitered/nsfwjs.git`.\n2. Extract the `models` folder from the root of the project and drop it in the `public` directory of your web application to serve them as static files along side your website. (You can host it anywhere such as on a s3 bucket as long as you can access it via URL).\n3. Retrieve the URL and put it into `nsfwjs.load()`. For example: `nsfwjs.load(https://yourwebsite.com/models/mobilenet_v2/model.json)`.\n\n## Run the Examples\n\n### Tensorflow.js in the browser\n\nThe demo that powers https://nsfwjs.com/ is available in the [`examples/nsfw_demo`](https://github.com/infinitered/nsfwjs/tree/master/examples/nsfw_demo) folder.\n\nTo run the demo, run `yarn demo` which will copy the latest code into the demo and start the dev server.\n\n### Browserify\n\nA browserified version using nothing but promises and script tags is available in the [`minimal_demo`](https://github.com/infinitered/nsfwjs/tree/master/examples/minimal_demo) folder.\n\n```js\n<script src=\"/path/to/model/directory/model.min.js\"></script>\n<script src=\"/path/to/model/directory/group1-shard1of2.min.js\"></script>\n<script src=\"/path/to/model/directory/group1-shard2of2.min.js\"></script>\n<script src=\"/path/to/bundle/nsfwjs.min.js\"></script>\n```\n\nYou should host the `nsfwjs.min.js` file and all the model bundles that you want to use alongside your project, and reference them using the `src` attribute in the script tags.\n\n### React Native\n\nThe [NSFWJS React Native app](https://github.com/infinitered/nsfwjs-mobile)\n\n![React Native Demo](./_art/nsfwjs-mobile.jpg)\n\nLoads a local copy of the model to reduce network load and utilizes TFJS-React-Native. [Blog Post](https://shift.infinite.red/nsfw-js-for-react-native-a37c9ba45fe9)\n\n### Node JS App\n\nUsing NPM, you can also use the model on the server side.\n\n```bash\n$ npm install nsfwjs\n$ npm install @tensorflow/tfjs-node\n```\n\n```javascript\nconst axios = require(\"axios\"); //you can use any http client\nconst tf = require(\"@tensorflow/tfjs-node\");\nconst nsfw = require(\"nsfwjs\");\nasync function fn() {\n  const pic = await axios.get(`link-to-picture`, {\n    responseType: \"arraybuffer\",\n  });\n  const model = await nsfw.load(); // To load a local model, nsfw.load('file://./path/to/model/')\n  // Image must be in tf.tensor3d format\n  // you can convert image to tf.tensor3d with tf.node.decodeImage(Uint8Array,channels)\n  const image = await tf.node.decodeImage(pic.data, 3);\n  const predictions = await model.classify(image);\n  image.dispose(); // Tensor memory must be managed explicitly (it is not sufficient to let a tf.Tensor go out of scope for its memory to be released).\n  console.log(predictions);\n}\nfn();\n```\n\nHere is another full example of a [multipart/form-data POST using Express](examples/node_demo), supposing you are using JPG format.\n\n```javascript\nconst express = require(\"express\");\nconst multer = require(\"multer\");\nconst jpeg = require(\"jpeg-js\");\n\nconst tf = require(\"@tensorflow/tfjs-node\");\nconst nsfw = require(\"nsfwjs\");\n\nconst app = express();\nconst upload = multer();\n\nlet _model;\n\nconst convert = async (img) => {\n  // Decoded image in UInt8 Byte array\n  const image = await jpeg.decode(img, { useTArray: true });\n\n  const numChannels = 3;\n  const numPixels = image.width * image.height;\n  const values = new Int32Array(numPixels * numChannels);\n\n  for (let i = 0; i < numPixels; i++)\n    for (let c = 0; c < numChannels; ++c)\n      values[i * numChannels + c] = image.data[i * 4 + c];\n\n  return tf.tensor3d(values, [image.height, image.width, numChannels], \"int32\");\n};\n\napp.post(\"/nsfw\", upload.single(\"image\"), async (req, res) => {\n  if (!req.file) res.status(400).send(\"Missing image multipart/form-data\");\n  else {\n    const image = await convert(req.file.buffer);\n    const predictions = await _model.classify(image);\n    image.dispose();\n    res.json(predictions);\n  }\n});\n\nconst load_model = async () => {\n  _model = await nsfw.load();\n};\n\n// Keep the model in memory, make sure it's loaded only once\nload_model().then(() => app.listen(8080));\n\n// curl --request POST localhost:8080/nsfw --header 'Content-Type: multipart/form-data' --data-binary 'image=@/full/path/to/picture.jpg'\n```\n\nYou can also use [`lovell/sharp`](https://github.com/lovell/sharp) for preprocessing tasks and more file formats.\n\n### NSFW Filter\n\n[**NSFW Filter**](https://github.com/navendu-pottekkat/nsfw-filter) is an open source web extension for Google Chrome that uses NSFWJS for filtering out NSFW images.\n\nCheck out the project [here](https://github.com/navendu-pottekkat/nsfw-filter).\n\n## Learn TensorFlow.js\n\nLearn how to write your own library like NSFWJS with my O'Reilly book \"Learning TensorFlow.js\" available on [O'Reilly](https://learning.oreilly.com/library/view/learning-tensorflowjs/9781492090786/) and [Amazon](https://amzn.to/3dR3vpY).\n\n[![Learning TensorFlow.js JavaScript Book Red](_art/red_mockup_top.jpg)](https://amzn.to/3dR3vpY)\n\n## More!\n\nAn [FAQ](https://github.com/infinitered/nsfwjs/wiki/FAQ:-NSFW-JS) page is available.\n\nMore about NSFWJS and TensorFlow.js - https://youtu.be/uzQwmZwy3yw\n\nThe [model was trained in Keras over several days](https://medium.freecodecamp.org/how-to-set-up-nsfw-content-detection-with-machine-learning-229a9725829c) and 60+ Gigs of data. Be sure to [check out the model code](https://github.com/GantMan/nsfw_model) which was trained on data provided by [Alexander Kim's](https://github.com/alexkimxyz) [nsfw_data_scraper](https://github.com/alexkimxyz/nsfw_data_scraper).\n\n### Open Source\n\nNSFWJS, as open source, is free to use and always will be :heart:. It's MIT licensed, and we'll always do our best to help and quickly answer issues. If you'd like to get a hold of us, join our [community slack](http://community.infinite.red).\n\n### Need the experts? Hire Infinite Red for your next project\n\nIf your project's calling for the experts in all things React Native, Infinite Red’s here to help! Our experienced team of software engineers have worked with companies like Microsoft, Zoom, and Mercari to bring even some of the most complex projects to life.\n\nWhether it’s running a full project or training a team on React Native, we can help you solve your company’s toughest engineering challenges – and make it a great experience at the same time.\nReady to see how we can work together? [Send us a message](mailto:hello@infinite.red)\n\n## Contributors\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://gantlaborde.com/\"><img src=\"https://avatars0.githubusercontent.com/u/997157?v=4?s=100\" width=\"100px;\" alt=\"Gant Laborde\"/><br /><sub><b>Gant Laborde</b></sub></a><br /><a href=\"#question-GantMan\" title=\"Answering Questions\">💬</a> <a href=\"#blog-GantMan\" title=\"Blogposts\">📝</a> <a href=\"https://github.com/infinitered/nsfwjs/commits?author=GantMan\" title=\"Code\">💻</a> <a href=\"#example-GantMan\" title=\"Examples\">💡</a> <a href=\"#ideas-GantMan\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-GantMan\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a> <a href=\"https://github.com/infinitered/nsfwjs/pulls?q=is%3Apr+reviewed-by%3AGantMan\" title=\"Reviewed Pull Requests\">👀</a> <a href=\"https://github.com/infinitered/nsfwjs/commits?author=GantMan\" title=\"Tests\">⚠️</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://jamonholmgren.com\"><img src=\"https://avatars3.githubusercontent.com/u/1479215?v=4?s=100\" width=\"100px;\" alt=\"Jamon Holmgren\"/><br /><sub><b>Jamon Holmgren</b></sub></a><br /><a href=\"https://github.com/infinitered/nsfwjs/commits?author=jamonholmgren\" title=\"Documentation\">📖</a> <a href=\"#ideas-jamonholmgren\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"https://github.com/infinitered/nsfwjs/commits?author=jamonholmgren\" title=\"Code\">💻</a> <a href=\"#content-jamonholmgren\" title=\"Content\">🖋</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/mazenchami\"><img src=\"https://avatars.githubusercontent.com/u/9324607?v=4?s=100\" width=\"100px;\" alt=\"Mazen Chami\"/><br /><sub><b>Mazen Chami</b></sub></a><br /><a href=\"https://github.com/infinitered/nsfwjs/commits?author=mazenchami\" title=\"Documentation\">📖</a> <a href=\"https://github.com/infinitered/nsfwjs/commits?author=mazenchami\" title=\"Code\">💻</a> <a href=\"https://github.com/infinitered/nsfwjs/pulls?q=is%3Apr+reviewed-by%3Amazenchami\" title=\"Reviewed Pull Requests\">👀</a> <a href=\"https://github.com/infinitered/nsfwjs/commits?author=mazenchami\" title=\"Tests\">⚠️</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/jstudenski\"><img src=\"https://avatars0.githubusercontent.com/u/7350279?v=4?s=100\" width=\"100px;\" alt=\"Jeff Studenski\"/><br /><sub><b>Jeff Studenski</b></sub></a><br /><a href=\"#design-jstudenski\" title=\"Design\">🎨</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/fvonhoven\"><img src=\"https://avatars2.githubusercontent.com/u/10098988?v=4?s=100\" width=\"100px;\" alt=\"Frank von Hoven III\"/><br /><sub><b>Frank von Hoven III</b></sub></a><br /><a href=\"https://github.com/infinitered/nsfwjs/commits?author=fvonhoven\" title=\"Documentation\">📖</a> <a href=\"#ideas-fvonhoven\" title=\"Ideas, Planning, & Feedback\">🤔</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/sandeshsoni\"><img src=\"https://avatars3.githubusercontent.com/u/3761745?v=4?s=100\" width=\"100px;\" alt=\"Sandesh Soni\"/><br /><sub><b>Sandesh Soni</b></sub></a><br /><a href=\"https://github.com/infinitered/nsfwjs/commits?author=sandeshsoni\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/seannam1218\"><img src=\"https://avatars1.githubusercontent.com/u/24437898?v=4?s=100\" width=\"100px;\" alt=\"Sean Nam\"/><br /><sub><b>Sean Nam</b></sub></a><br /><a href=\"https://github.com/infinitered/nsfwjs/commits?author=seannam1218\" title=\"Documentation\">📖</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/emer7\"><img src=\"https://avatars1.githubusercontent.com/u/21377166?v=4?s=100\" width=\"100px;\" alt=\"Gilbert Emerson\"/><br /><sub><b>Gilbert Emerson</b></sub></a><br /><a href=\"https://github.com/infinitered/nsfwjs/commits?author=emer7\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/xilaraux\"><img src=\"https://avatars2.githubusercontent.com/u/17703730?v=4?s=100\" width=\"100px;\" alt=\"Oleksandr Kozlov\"/><br /><sub><b>Oleksandr Kozlov</b></sub></a><br /><a href=\"#infra-xilaraux\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a> <a href=\"https://github.com/infinitered/nsfwjs/commits?author=xilaraux\" title=\"Tests\">⚠️</a> <a href=\"https://github.com/infinitered/nsfwjs/commits?author=xilaraux\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://morganlaco.com\"><img src=\"https://avatars2.githubusercontent.com/u/4466642?v=4?s=100\" width=\"100px;\" alt=\"Morgan\"/><br /><sub><b>Morgan</b></sub></a><br /><a href=\"https://github.com/infinitered/nsfwjs/commits?author=mlaco\" title=\"Code\">💻</a> <a href=\"#ideas-mlaco\" title=\"Ideas, Planning, & Feedback\">🤔</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://mycaule.github.io/\"><img src=\"https://avatars2.githubusercontent.com/u/6161385?v=4?s=100\" width=\"100px;\" alt=\"Michel Hua\"/><br /><sub><b>Michel Hua</b></sub></a><br /><a href=\"https://github.com/infinitered/nsfwjs/commits?author=mycaule\" title=\"Code\">💻</a> <a href=\"https://github.com/infinitered/nsfwjs/commits?author=mycaule\" title=\"Documentation\">📖</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://www.infinite.red\"><img src=\"https://avatars2.githubusercontent.com/u/1771152?v=4?s=100\" width=\"100px;\" alt=\"Kevin VanGelder\"/><br /><sub><b>Kevin VanGelder</b></sub></a><br /><a href=\"https://github.com/infinitered/nsfwjs/commits?author=kevinvangelder\" title=\"Code\">💻</a> <a href=\"https://github.com/infinitered/nsfwjs/commits?author=kevinvangelder\" title=\"Documentation\">📖</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://technikempire.com\"><img src=\"https://avatars2.githubusercontent.com/u/11234763?v=4?s=100\" width=\"100px;\" alt=\"Jesse Nicholson\"/><br /><sub><b>Jesse Nicholson</b></sub></a><br /><a href=\"#data-TechnikEmpire\" title=\"Data\">🔣</a> <a href=\"#ideas-TechnikEmpire\" title=\"Ideas, Planning, & Feedback\">🤔</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/camhart\"><img src=\"https://avatars0.githubusercontent.com/u/3038809?v=4?s=100\" width=\"100px;\" alt=\"camhart\"/><br /><sub><b>camhart</b></sub></a><br /><a href=\"https://github.com/infinitered/nsfwjs/commits?author=camhart\" title=\"Documentation\">📖</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/Cameron-Burkholder\"><img src=\"https://avatars2.githubusercontent.com/u/13265710?v=4?s=100\" width=\"100px;\" alt=\"Cameron Burkholder\"/><br /><sub><b>Cameron Burkholder</b></sub></a><br /><a href=\"#design-Cameron-Burkholder\" title=\"Design\">🎨</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://qwertyforce.ru\"><img src=\"https://avatars0.githubusercontent.com/u/44163887?v=4?s=100\" width=\"100px;\" alt=\"qwertyforce\"/><br /><sub><b>qwertyforce</b></sub></a><br /><a href=\"https://github.com/infinitered/nsfwjs/commits?author=qwertyforce\" title=\"Documentation\">📖</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/YegorZaremba\"><img src=\"https://avatars3.githubusercontent.com/u/31797554?v=4?s=100\" width=\"100px;\" alt=\"Yegor <3\"/><br /><sub><b>Yegor <3</b></sub></a><br /><a href=\"https://github.com/infinitered/nsfwjs/commits?author=YegorZaremba\" title=\"Code\">💻</a> <a href=\"https://github.com/infinitered/nsfwjs/commits?author=YegorZaremba\" title=\"Tests\">⚠️</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://navendu.me\"><img src=\"https://avatars1.githubusercontent.com/u/49474499?v=4?s=100\" width=\"100px;\" alt=\"Navendu Pottekkat\"/><br /><sub><b>Navendu Pottekkat</b></sub></a><br /><a href=\"https://github.com/infinitered/nsfwjs/commits?author=navendu-pottekkat\" title=\"Documentation\">📖</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/VladStepanov\"><img src=\"https://avatars0.githubusercontent.com/u/49880862?v=4?s=100\" width=\"100px;\" alt=\"Vladislav\"/><br /><sub><b>Vladislav</b></sub></a><br /><a href=\"https://github.com/infinitered/nsfwjs/commits?author=VladStepanov\" title=\"Code\">💻</a> <a href=\"https://github.com/infinitered/nsfwjs/commits?author=VladStepanov\" title=\"Documentation\">📖</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/nacht42\"><img src=\"https://avatars1.githubusercontent.com/u/37903575?v=4?s=100\" width=\"100px;\" alt=\"Nacht\"/><br /><sub><b>Nacht</b></sub></a><br /><a href=\"https://github.com/infinitered/nsfwjs/commits?author=nacht42\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/kateinkim\"><img src=\"https://avatars.githubusercontent.com/u/53795920?v=4?s=100\" width=\"100px;\" alt=\"kateinkim\"/><br /><sub><b>kateinkim</b></sub></a><br /><a href=\"https://github.com/infinitered/nsfwjs/commits?author=kateinkim\" title=\"Code\">💻</a> <a href=\"https://github.com/infinitered/nsfwjs/commits?author=kateinkim\" title=\"Documentation\">📖</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://janpoonthong.github.io/portfolio/\"><img src=\"https://avatars.githubusercontent.com/u/56725335?v=4?s=100\" width=\"100px;\" alt=\"jan\"/><br /><sub><b>jan</b></sub></a><br /><a href=\"https://github.com/infinitered/nsfwjs/commits?author=JanPoonthong\" title=\"Documentation\">📖</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/roerohan\"><img src=\"https://avatars.githubusercontent.com/u/42958812?v=4?s=100\" width=\"100px;\" alt=\"Rohan Mukherjee\"/><br /><sub><b>Rohan Mukherjee</b></sub></a><br /><a href=\"#question-roerohan\" title=\"Answering Questions\">💬</a> <a href=\"#infra-roerohan\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a> <a href=\"#maintenance-roerohan\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/infinitered/nsfwjs/commits?author=roerohan\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://hazya.dev\"><img src=\"https://avatars.githubusercontent.com/u/63403456?v=4?s=100\" width=\"100px;\" alt=\"Hasitha Wickramasinghe\"/><br /><sub><b>Hasitha Wickramasinghe</b></sub></a><br /><a href=\"https://github.com/infinitered/nsfwjs/commits?author=haZya\" title=\"Code\">💻</a> <a href=\"https://github.com/infinitered/nsfwjs/commits?author=haZya\" title=\"Documentation\">📖</a> <a href=\"#example-haZya\" title=\"Examples\">💡</a> <a href=\"#ideas-haZya\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-haZya\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a> <a href=\"https://github.com/infinitered/nsfwjs/commits?author=haZya\" title=\"Tests\">⚠️</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/jonmajorc\"><img src=\"https://avatars.githubusercontent.com/u/7799266?v=4?s=100\" width=\"100px;\" alt=\"Jon Major Condon\"/><br /><sub><b>Jon Major Condon</b></sub></a><br /><a href=\"https://github.com/infinitered/nsfwjs/commits?author=jonmajorc\" title=\"Code\">💻</a> <a href=\"#infra-jonmajorc\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a> <a href=\"https://github.com/infinitered/nsfwjs/pulls?q=is%3Apr+reviewed-by%3Ajonmajorc\" title=\"Reviewed Pull Requests\">👀</a></td>\n    </tr>\n  </tbody>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","readmeFilename":"README.md"}