{"_id":"request-filtering-agent","_rev":"18-33a7df51d122ddc9796242b1429ffbf4","name":"request-filtering-agent","dist-tags":{"latest":"3.2.1"},"versions":{"1.0.1":{"name":"request-filtering-agent","version":"1.0.1","keywords":["http","https","proxy","agent","ssrf","security"],"author":{"name":"azu"},"license":"MIT","_id":"request-filtering-agent@1.0.1","maintainers":[{"name":"azu","email":"azuciao@gmail.com"}],"homepage":"https://github.com/azu/request-filtering-agent","bugs":{"url":"https://github.com/azu/request-filtering-agent/issues"},"dist":{"shasum":"227c8faf56a7ab8b8f25bcfda42eb90916a302de","tarball":"https://registry.npmjs.org/request-filtering-agent/-/request-filtering-agent-1.0.1.tgz","fileCount":7,"integrity":"sha512-aTd4JN/dMzNta5FTo68G4/M+Mb65p2pM9VMgMdyqZT8XLNstKmgGIxPMzSvXX3Iu4mFwAVIqig3uMeIl7xIfzg==","signatures":[{"sig":"MEUCIGiOZLm67f9CJk/4IsHA73ONGy5nzEYXtppwSxq394F/AiEAnFf6HtutF7CWVMJKKgbI3Ky84MqRJ6p3vZVjaiYG6PM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23469,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdZ661CRA9TVsSAnZWagAA1yYP/i5dmQ2m2hBdVypcp0J2\nS6l8GWsTr7zg3BykF0dwHpzlCCWhh6/MKVohjsziVkE0+oKwr73Ft7t/Wxmo\nxmb5xE6MfpVjlrkiKdICcfcLZvSjgIJk5WzUBSY/eOKcSUO5+Qxco4rCKoep\nw8t7CWaaw4abbgVP7NNjvht9vWXQi6rq+swNnvwPX9mU77L5j/OZ9X1J1QVK\nnLXhW5zVkrK2BjGxN2E4LbPDSNkMzhC+StkZy71OTGR7eeQIo++E69YrAba+\nSWijMd0f47gLqB/rTlSVNH8OkeMzZ0eAcsZ6BL+IRkATlcASpx+SCli4d2uT\nIweq3UWMr/OB94JYLmUBilVJdVmod199HZxb6gb7l45xB7FuXi+R7/BSFTsy\na9pX48AIEKnO4rC93b707zfDAQBP9NDLLOg0s1383FPulWBAngX69HREBqJZ\nZMkSrMEEeUJT42xMpaeTHZ0xHzDCiNk9VT1Grp3Ay44/SRJRreXNMuuN6eQu\ngdltkMhdEEkXuj3kGH0Uj1Vn5BjkOoyVgeD+lCKdyaDd7sFZlaUWMkruRE/I\nuVE35Kz8iQVtss2FvMoR20fFBHTgR6rv9T5ISQbz+fE6Lzc9onE5aawiHLpe\n+xQVKpfsKueC6FkProJKlRlnbgna4xGyV9GJrR5iPmx5B4Jy0iYWUB3jyeJS\n7tbm\r\n=wJHT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/request-filtering-agent.js","husky":{"hooks":{"precommit":"lint-staged"}},"types":"lib/request-filtering-agent.d.ts","gitHead":"60fd192ca6731836033bf0582509d1a50996def7","scripts":{"test":"mocha \"test/**/*.ts\"","build":"cross-env NODE_ENV=production tsc -p .","clean":"rimraf lib/","watch":"tsc -p . --watch","prettier":"prettier --write \"**/*.{js,jsx,ts,tsx,css}\"","prepublish":"npm run --if-present build"},"_npmUser":{"name":"azu","email":"azuciao@gmail.com"},"prettier":{"tabWidth":4,"printWidth":120,"singleQuote":false},"deprecated":"This version is not maintain. Please upgrade to the latest version.","repository":{"url":"git+https://github.com/azu/request-filtering-agent.git","type":"git"},"_npmVersion":"6.11.1","description":"A http(s).Agent implementation that block request Private IP address.","directories":{"lib":"lib","test":"test"},"lint-staged":{"*.{js,jsx,ts,tsx,css}":["prettier --write","git add"]},"_nodeVersion":"10.15.1","dependencies":{"ip":"^1.1.5"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^3.0.4","mocha":"^6.2.0","rimraf":"^3.0.0","ts-node":"^8.3.0","prettier":"^1.18.2","@types/ip":"^1.1.0","cross-env":"^5.2.0","node-fetch":"^2.6.0","typescript":"^3.5.3","@types/node":"^12.7.2","lint-staged":"^9.2.5","@types/mocha":"^5.2.7","@types/node-fetch":"^2.5.0","ts-node-test-register":"^8.0.1"},"_npmOperationalInternal":{"tmp":"tmp/request-filtering-agent_1.0.1_1567076021066_0.26629893372450075","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"request-filtering-agent","version":"1.0.2","keywords":["http","https","proxy","agent","ssrf","security"],"author":{"name":"azu"},"license":"MIT","_id":"request-filtering-agent@1.0.2","maintainers":[{"name":"azu","email":"azuciao@gmail.com"}],"homepage":"https://github.com/azu/request-filtering-agent","bugs":{"url":"https://github.com/azu/request-filtering-agent/issues"},"dist":{"shasum":"ba34248e2a902d7eab5c10658f129c312038579e","tarball":"https://registry.npmjs.org/request-filtering-agent/-/request-filtering-agent-1.0.2.tgz","fileCount":7,"integrity":"sha512-TYnlSV010I5hM0JG7DRwiF9HuTdMrVM+KRS2j7rml4jX5gnOfOREMhw2qIwMIxUjxI3+Mc0AT0xLGAuSlk103Q==","signatures":[{"sig":"MEUCIHneZByXkO5vnu/hmNQJ5v/QaaPi2R5mTy/gc27/dH5TAiEA9k+4MmbxxTaW/llDul5vBh8Hni6fMJt1MKGbC4jWhRw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdZ87XCRA9TVsSAnZWagAAp/wP/0NQlqCwkdES4PvexLU+\n+0rBJfX89X6sIu5eOWbGh4o74WALBB67waHZmIPTDGRf0l1yon0XSB1hV81P\nhJfSDXHorjfCidCY+aIOWUp9wAAWjXCnTGe8CLU0zUxrLpLbqUx1mS4W7Wce\nOInQRQTjjI1l+U4QitPzHdSEKzvHNzp3zmLuUpXjtJOob/HPRACJZhzTM2Qb\nsZL+MK6pwC7u5YFLUk4mAa03e+p5IoeJGhdIFwZE0NUKAgVgijbcpjuUGfNz\npq2l0a4XULP1jUo+hk0gskMSMGefuhF/U0N7+pkG2wj3IB0pMKcxf0T5qaEL\nizDUxtDrEfTlkEsuNeCB6YnaGSVAsVM1aN1TNO2OWetJnOGwSCx4Tydeid+F\nfXBt11KcHDh3B2GCio7pftdOJSnLvpJXZAKr7uwn6NTDSLT251ahzt4OLBxZ\nnohNnMVm6kcOtB5WZN+pQMJxQLaVopsGSE1/dswd10L8RPqqYj7lPSbKwrsP\nlPOar+G7TZ3r0Rdy9shLcSMetY3C1pA/4V4Fu4BM14FwZkoNWF1NzW2cV/cs\n+zsoyM5WFJsGVBNs2Cslg9pD2NNQT73NvMaC2neUVJSiksHdIpxjMK+fMsZr\nLa3/ExzteHsqlyU98mK1UfIG1TgFQ8YnAzGzoq55J9p9+daHN7fKg9rz8NLT\nfYoj\r\n=IQdC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/request-filtering-agent.js","husky":{"hooks":{"precommit":"lint-staged"}},"types":"lib/request-filtering-agent.d.ts","gitHead":"8191c805484b051fc48ff011955019ad24beb67c","scripts":{"test":"mocha \"test/**/*.ts\"","build":"cross-env NODE_ENV=production tsc -p .","clean":"rimraf lib/","watch":"tsc -p . --watch","prettier":"prettier --write \"**/*.{js,jsx,ts,tsx,css}\"","prepublish":"npm run --if-present build"},"_npmUser":{"name":"azu","email":"azuciao@gmail.com"},"prettier":{"tabWidth":4,"printWidth":120,"singleQuote":false},"deprecated":"This version is not maintain. Please upgrade to the latest version.","repository":{"url":"git+https://github.com/azu/request-filtering-agent.git","type":"git"},"_npmVersion":"6.11.1","description":"An http(s).Agent implementation that block request Private IP address.","directories":{"lib":"lib","test":"test"},"lint-staged":{"*.{js,jsx,ts,tsx,css}":["prettier --write","git add"]},"_nodeVersion":"10.15.1","dependencies":{"ip":"^1.1.5"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^3.0.4","mocha":"^6.2.0","rimraf":"^3.0.0","ts-node":"^8.3.0","prettier":"^1.18.2","@types/ip":"^1.1.0","cross-env":"^5.2.0","node-fetch":"^2.6.0","typescript":"^3.5.3","@types/node":"^12.7.2","lint-staged":"^9.2.5","@types/mocha":"^5.2.7","@types/node-fetch":"^2.5.0","ts-node-test-register":"^8.0.1"},"_npmOperationalInternal":{"tmp":"tmp/request-filtering-agent_1.0.2_1567084246972_0.12154241027760593","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"request-filtering-agent","version":"1.0.3","keywords":["http","https","proxy","agent","ssrf","security"],"author":{"name":"azu"},"license":"MIT","_id":"request-filtering-agent@1.0.3","maintainers":[{"name":"azu","email":"azuciao@gmail.com"}],"homepage":"https://github.com/azu/request-filtering-agent","bugs":{"url":"https://github.com/azu/request-filtering-agent/issues"},"dist":{"shasum":"44d6bd817332f7af393ebf42253386bf5f73fc0a","tarball":"https://registry.npmjs.org/request-filtering-agent/-/request-filtering-agent-1.0.3.tgz","fileCount":7,"integrity":"sha512-C43YWpFNKx9mVumTEWwD6YSdHeS+vUfHpaN1K1PvPH5NCDJH0Uk4qeaLlQ1ZSnFAFkYEc3nuwxu1qTidTYVcxg==","signatures":[{"sig":"MEQCIFSB6F4VyxUU8mFJKPyNFZTaNKVtF7FejrxQjBR3axdCAiA4zILtTvgMKL1nTP15FCzp7QrUQWbAeN5BeEQbdzk1gg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25673,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdZ+WwCRA9TVsSAnZWagAAdqIQAJI2Zcv3xsxeacWRsyeN\nQHPd0Hv9R5JM55SrkI9thdrH/bvNtksHJzvK7KZ8YBv/HCojswsOkNuayVLb\nJyIfA97w8cg25+7hbmABIokvQNPD7RCsp0FUeGpBdq8Lk720nuZgtN8QqZM2\nw83ojpsSCuyLpAqSw0vJGxkp7zWDs1WMvY02MFsc5LYMAns3noL+dfys70Wy\nv/GldGBBH/GkIA/2Za2lG5lRZwQXLGFrIPxji/3+WZr25iYZwsSCuYj3wLKW\nG16d+8us3P4a/ewuoy2qf22uJ5ZTO4HOBxzJSEzdTM59cfNYVIbwEDsBHF7x\nLYNDOoJoxv65T3aPGbqFG0b3SS+VeiqrlzUBNvNSuW06454SzH5Oic728oBy\nNYJ69P0unpCBxdqkSzzrUz/pWBsS4833RlWjKyerCCK3LDBbEC8blld3TeZa\nfvm6G9OEvsUwAsZnJYRjGjZFhCTk4fWKTgcL/aZZabcTNsrzWP+872/Xb8yW\nnj6S8JXP2zLJFjQrXbo/eF6vypsM5ySnd5Q/KWb5Xjm4jr52xTo1ucBa84nA\nz9lxnSd5unL+qD7As14Ch8B3tOkpxjiqcCoiW5RIJ5+rG9wpujSHif/yHhDY\nD53Wlq7Q+58CD/gv27oPApS8ksIlJgjbfxryPqz0kwc1UOu/e3WAK7WjDQxt\nE688\r\n=YZ2Y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/request-filtering-agent.js","husky":{"hooks":{"precommit":"lint-staged"}},"types":"lib/request-filtering-agent.d.ts","gitHead":"9a6268917944ff511060824b877678dfa230abb5","scripts":{"test":"mocha \"test/**/*.ts\"","build":"cross-env NODE_ENV=production tsc -p .","clean":"rimraf lib/","watch":"tsc -p . --watch","prettier":"prettier --write \"**/*.{js,jsx,ts,tsx,css}\"","prepublish":"npm run --if-present build"},"_npmUser":{"name":"azu","email":"azuciao@gmail.com"},"prettier":{"tabWidth":4,"printWidth":120,"singleQuote":false},"deprecated":"This version is not maintain. Please upgrade to the latest version.","repository":{"url":"git+https://github.com/azu/request-filtering-agent.git","type":"git"},"_npmVersion":"6.11.1","description":"An http(s).Agent implementation that block request Private IP address.","directories":{"lib":"lib","test":"test"},"lint-staged":{"*.{js,jsx,ts,tsx,css}":["prettier --write","git add"]},"_nodeVersion":"10.15.1","dependencies":{"ip":"^1.1.5"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^3.0.4","mocha":"^6.2.0","rimraf":"^3.0.0","ts-node":"^8.3.0","prettier":"^1.18.2","@types/ip":"^1.1.0","cross-env":"^5.2.0","node-fetch":"^2.6.0","typescript":"^3.5.3","@types/node":"^12.7.2","lint-staged":"^9.2.5","@types/mocha":"^5.2.7","@types/node-fetch":"^2.5.0","ts-node-test-register":"^8.0.1"},"_npmOperationalInternal":{"tmp":"tmp/request-filtering-agent_1.0.3_1567090096342_0.38796906728922864","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"request-filtering-agent","version":"1.0.4","keywords":["http","https","proxy","agent","ssrf","security"],"author":{"name":"azu"},"license":"MIT","_id":"request-filtering-agent@1.0.4","maintainers":[{"name":"azu","email":"azuciao@gmail.com"}],"homepage":"https://github.com/azu/request-filtering-agent","bugs":{"url":"https://github.com/azu/request-filtering-agent/issues"},"dist":{"shasum":"f438a774c8687c8e89d4315a51b3f4cf85ecc845","tarball":"https://registry.npmjs.org/request-filtering-agent/-/request-filtering-agent-1.0.4.tgz","fileCount":7,"integrity":"sha512-PsyjlsrSpxX9x87B3AN0xMWvddTbbiz3+iDxo977Bj3JY05LkBKXiFFOQazGLeZwn7gIsCHchAd2wTcxRUM68A==","signatures":[{"sig":"MEQCIDRsWPzORcpKq+AbS3WdKy30plBslL76l9HMnBd9KuenAiAj5SZde2sZ7X5IFx0SEkQxZCafd45xJ4NwmnxBs0qWKw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26911,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdcQrsCRA9TVsSAnZWagAAhBMP/2tjHKL+83EP9mCzWdtN\nAdWxLpfsujX14o5lVANvw3XIDUB8o6F0JlBeRhQQc1/6V2OxC7AVsTGydZG3\nLeZUtiNWHKC18OSU47mz1P4wLPwohDPMjEVVxQoOQjW7kFjQXr9QDFbNq6CA\nhm/vq2YsnWlEQJ438t5VB0BORudn3j5Fpjlnqz/IR5D+209rnYTgWF+vAN2+\nmONA085YdYkoaJVMA7yt9tkx7Lka2dKculR6RTUwCpOa71mqRRQs44D5QZuu\nPBhbXG78BGSJKfZJsmYfTjW+sfrKgKlMowjUJjurK0EfQlbwuBraifYVweuq\nJyO/vQUAItvbJzl1/Kk6YDPyYbs3eD00yp/THN9DqnGr6qzKpR80T4WnYIV1\n5kRU7s9TdnsCXnIDDMxROcLs486h9tPfg+ERjkbMWlQguUEP7whn4/2SgeU1\nlgLMwIKfEdv9jAnyJOEQJumfV+vDUWpOisJ/f+edLXLGH1zSpRO8BuHMO558\nHKW+VYBY0wRPIFE+bDkzsobGqukcVBlTDJvgx6Ct+f1heT2thW5HfIyu0gEp\nFYCDWA0MhXDNz4VoUYqC+YwiT6LDDdNQh/llaKcJ0HkF7B1mVh9sufW8ubtA\njpWBEAAr4qfALEmC+9RwBGG3IPoE+GyquwS9e2DqFoD9keNAzBptL1fU9yB1\nWLmL\r\n=Ytqi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/request-filtering-agent.js","husky":{"hooks":{"precommit":"lint-staged"}},"types":"lib/request-filtering-agent.d.ts","gitHead":"466876d40eb2393b7ea7edda9d5b168f900a80f3","scripts":{"test":"mocha \"test/**/*.ts\"","build":"cross-env NODE_ENV=production tsc -p .","clean":"rimraf lib/","watch":"tsc -p . --watch","prettier":"prettier --write \"**/*.{js,jsx,ts,tsx,css}\"","prepublish":"npm run --if-present build"},"_npmUser":{"name":"azu","email":"azuciao@gmail.com"},"prettier":{"tabWidth":4,"printWidth":120,"singleQuote":false},"deprecated":"This version is not maintain. Please upgrade to the latest version.","repository":{"url":"git+https://github.com/azu/request-filtering-agent.git","type":"git"},"_npmVersion":"6.11.1","description":"An http(s).Agent implementation that block request Private IP address.","directories":{"lib":"lib","test":"test"},"lint-staged":{"*.{js,jsx,ts,tsx,css}":["prettier --write","git add"]},"_nodeVersion":"10.15.1","dependencies":{"ipaddr.js":"^1.9.1"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^3.0.4","mocha":"^6.2.0","rimraf":"^3.0.0","ts-node":"^8.3.0","prettier":"^1.18.2","@types/ip":"^1.1.0","cross-env":"^5.2.0","node-fetch":"^2.6.0","typescript":"^3.5.3","@types/node":"^12.7.2","lint-staged":"^9.2.5","@types/mocha":"^5.2.7","@types/node-fetch":"^2.5.0","ts-node-test-register":"^8.0.1"},"_npmOperationalInternal":{"tmp":"tmp/request-filtering-agent_1.0.4_1567689451643_0.9198174710869573","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"request-filtering-agent","version":"1.0.5","keywords":["http","https","proxy","agent","ssrf","security"],"author":{"name":"azu"},"license":"MIT","_id":"request-filtering-agent@1.0.5","maintainers":[{"name":"azu","email":"azuciao@gmail.com"}],"homepage":"https://github.com/azu/request-filtering-agent","bugs":{"url":"https://github.com/azu/request-filtering-agent/issues"},"dist":{"shasum":"94740a1cef4e1cd0522dcfa6b3d9394e59b92afc","tarball":"https://registry.npmjs.org/request-filtering-agent/-/request-filtering-agent-1.0.5.tgz","fileCount":7,"integrity":"sha512-zkO5wg1VhoPqz5FIIXLY+iEveiX+p6A/i++SS4ZXd0UDms6VtHLLYLw9hQnIbMsKbYwHgzhNeIis7jMncoG9ag==","signatures":[{"sig":"MEYCIQDbrQVe+x87K3Rz+2Lmoh5jAnnYT0p+Jd7k8oUhkSEp+gIhAJyUooYH7HmrQ6g10Y2UcK1FY1Z609EKevJ0bT0JoB9J","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29485,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe//9uCRA9TVsSAnZWagAAxw4QAJnFvCaUx8tS6a/8SuD5\nKZuGzZaCnSZrf8vywHeVQNQEFQshYfTTQ90n3u2kRQE1acPiqCpSj6dvhDPU\nvmwhJ7gdsF4YOXIxaheV7ghXdL6NeaCOaUL6QXPWJZVVA7D2qZZRGRcH62oZ\ndtGAnKahIGKLwYdwGvjVhANPDxAfN4kAlzE1RMGXyJbJ6T/OThxBqTMm2wwO\nNy9RC4DvesrVcKlf7otl10fzlMjsKIyHYNckBXlgFWCxxmBfQqOpRH6t1dhT\n+EsK2hwtrNfOs/4NyimvW3ipllRxdVqoSBQfvqRkOcYEhKir+RWTJbNl3rET\nZYAYj36gZpO0Bjd8HiXXKsIBjtduZi/Goa1pGDROJQuAxcAzng1WR3uLGkNs\n1PWTMxZR7ilB8JTRiieRXywDzPTPQOgOP7T072xIPpxgELb6J1dnGlUeWCZ0\nKQSKPgkwasV6yQvB+0NeCUIZA1PriKQkKSbeGqkpQ+/T7Z3HCRLl7P2q68ec\nG2S8AQeVKR1VcxmwriBgzsn14p7VbznrVtbYRXSm2zq4Hqwqo4bc91GjJA8H\nxrOJ/vd0rAH7Mv3LwUszCHjU95FHAEld8krXh2zxceHjwmo1zqoEwl7bBYxS\nsnOieHaVfhJkPYkFhXdxyUUbDmrrtoaUoYUoWkw+zAzWx+f3C1Q/ARX4FsD4\n7aCX\r\n=9YAm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/request-filtering-agent.js","husky":{"hooks":{"precommit":"lint-staged"}},"types":"lib/request-filtering-agent.d.ts","gitHead":"68ac37ed78d7c39f52d18f99e82e8aba4a38b4f4","scripts":{"test":"mocha \"test/**/*.ts\"","build":"cross-env NODE_ENV=production tsc -p .","clean":"rimraf lib/","watch":"tsc -p . --watch","prettier":"prettier --write \"**/*.{js,jsx,ts,tsx,css}\"","prepublish":"npm run --if-present build"},"_npmUser":{"name":"azu","email":"azuciao@gmail.com"},"prettier":{"tabWidth":4,"printWidth":120,"singleQuote":false},"deprecated":"This version is not maintain. Please upgrade to the latest version.","repository":{"url":"git+https://github.com/azu/request-filtering-agent.git","type":"git"},"_npmVersion":"6.14.4","description":"An http(s).Agent implementation that block request Private IP address.","directories":{"lib":"lib","test":"test"},"lint-staged":{"*.{js,jsx,ts,tsx,css}":["prettier --write","git add"]},"_nodeVersion":"12.12.0","dependencies":{"ipaddr.js":"^1.9.1"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^4.2.5","mocha":"^8.0.1","rimraf":"^3.0.0","ts-node":"^8.3.0","prettier":"^2.0.5","@types/ip":"^1.1.0","cross-env":"^7.0.2","node-fetch":"^2.6.0","typescript":"^3.5.3","@types/node":"^14.0.14","lint-staged":"^10.2.11","@types/mocha":"^7.0.2","@types/node-fetch":"^2.5.0","ts-node-test-register":"^8.0.1"},"_npmOperationalInternal":{"tmp":"tmp/request-filtering-agent_1.0.5_1593835373917_0.7569498543745898","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"request-filtering-agent","version":"1.0.6","keywords":["http","https","proxy","agent","ssrf","security"],"author":{"name":"azu"},"license":"MIT","_id":"request-filtering-agent@1.0.6","maintainers":[{"name":"azu","email":"azuciao@gmail.com"}],"homepage":"https://github.com/azu/request-filtering-agent","bugs":{"url":"https://github.com/azu/request-filtering-agent/issues"},"dist":{"shasum":"8a23e72a01dd02a35fe42b9b4e3a43d8639fb5fd","tarball":"https://registry.npmjs.org/request-filtering-agent/-/request-filtering-agent-1.0.6.tgz","fileCount":7,"integrity":"sha512-vn+MlI0YSwcGk9QAwelYPoslyN+/ixwJs6eaJxSMQsPXVK4pT/TxPnCJuRhWAlilz/XWWI9pdRGHBg5EtVgHAw==","signatures":[{"sig":"MEYCIQDUEe3wdiweotEA9y9FKrzFBQdesglPRExauL2Px9MlBQIhAMeRouFSWT5Lnq4aCs3zHO+224cyBS38DNWO5BuXMeda","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29957,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgujQTCRA9TVsSAnZWagAALfEP/0LY3JJnkKw3CGJ+qruF\nNRvUD9O/3TtUOcg7nhqPnHBYEbZ63u6qOpK00DfibdPcQQeGYM3dD4TRMVkI\nRv/EwY3d6CQH4ymjA3QAh3qtNddPsAjPx0bULmXYXzcZarNQkRGlgTBJkcTx\nHFIfXQFDGtn352A2hzTjI2XN9Y2/fmX+CyA613A8pKbiu7u1w8hsvKYUabU2\nY0ca7yQV0ba7TxZMgTe7tB7k/eCc90gqFsJQ2I3udHthqRY3MV5lVbxwxjE6\ngHLmOADPoYkruX6YQnhbPf8/t0mzEXXQBmHnMu80Zm2csGbiJ8EKqyZmUnam\nTH7H6RfdeLlDQDjPhbZzEuQlvlxWdJlpD3hMmZ+Ze7ZKraxIFG290SlqrHaj\nuEUBkd+pVfaiUaLh7zUBbf4uU1hxEEH+9olJfgvHJlQm3E1YR5hJcqWJSLYC\nGGSkUa0jKoJLUFF9gps+PtKN00d89ioElssbbTYzTVCtOiWaoSMKtRB1+QWk\n5vgrFCVF90cN1Wl1yMKnlvPGHpFDb8PpPPEbyvP+/pfUA8WwIMEww22n/D3D\nKCYcG+lrANjBaSwSk03Ce5087nNg+VvzBU6G+vxmw34+BhocCI8VU1I51shw\n4kfW7Ji9NZrPkIlGf0j9m+p+PXjhecFM34QoQLe9ATvxJMtL0JoodvjyJGDb\nJtQq\r\n=ukWC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/request-filtering-agent.js","husky":{"hooks":{"precommit":"lint-staged"}},"types":"lib/request-filtering-agent.d.ts","gitHead":"58722383e3769b4e72ca0afb91b464f36c917d15","scripts":{"test":"mocha \"test/**/*.ts\"","build":"cross-env NODE_ENV=production tsc -p .","clean":"rimraf lib/","watch":"tsc -p . --watch","format":"prettier --write \"**/*.{js,jsx,ts,tsx,css}\"","prepare":"git config --local core.hooksPath .githooks","prepublish":"npm run --if-present build"},"_npmUser":{"name":"azu","email":"azuciao@gmail.com"},"prettier":{"tabWidth":4,"printWidth":120,"singleQuote":false,"trailingComma":"none"},"deprecated":"This version is not maintain. Please upgrade to the latest version.","repository":{"url":"git+https://github.com/azu/request-filtering-agent.git","type":"git"},"_npmVersion":"6.14.12","description":"An http(s).Agent implementation that block request Private IP address.","directories":{"lib":"lib","test":"test"},"lint-staged":{"*.{js,jsx,ts,tsx,css}":["prettier --write"]},"_nodeVersion":"14.16.1","dependencies":{"ipaddr.js":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^8.4.0","rimraf":"^3.0.0","ts-node":"^10.0.0","prettier":"^2.3.0","@types/ip":"^1.1.0","cross-env":"^7.0.3","node-fetch":"^2.6.1","typescript":"^4.3.2","@types/node":"^15.12.0","lint-staged":"^11.0.0","@types/mocha":"^8.2.2","@types/node-fetch":"^2.5.10","ts-node-test-register":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/request-filtering-agent_1.0.6_1622815763273_0.8750532751863092","host":"s3://npm-registry-packages"}},"1.0.7":{"name":"request-filtering-agent","version":"1.0.7","keywords":["http","https","proxy","agent","ssrf","security"],"author":{"name":"azu"},"license":"MIT","_id":"request-filtering-agent@1.0.7","maintainers":[{"name":"azu","email":"azuciao@gmail.com"}],"homepage":"https://github.com/azu/request-filtering-agent","bugs":{"url":"https://github.com/azu/request-filtering-agent/issues"},"dist":{"shasum":"8484c5465645eec017a111ee5d943dd4e7de7b47","tarball":"https://registry.npmjs.org/request-filtering-agent/-/request-filtering-agent-1.0.7.tgz","fileCount":7,"integrity":"sha512-SxtN35ClIAh4Pgae0ju9NGyPt3vxrb53r3gw7vSP/NAfauvSyiE3VHvGyX08Q1nhoIehLc00ooX8JYOOIt6lKg==","signatures":[{"sig":"MEUCIQCRwnl8kxxweOIbuYShmdHjetUfvSaA/kl79WoJ/Y43XAIgJ3VSIexS9S4DytUySMEMah9x+x9LVSZuBgiJzpJcrVo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29935,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg9or0CRA9TVsSAnZWagAAjEUQAKO5Qf7AEuK9o86fcMf0\njqqDbgjjGTvtQoc78FZXs937DWeDqo8z3GMa2n4Ha5cKleS9dODA8wF+AynM\nl0AF4FOIf2eUiR7q6qkCheNJYnbJnmWZ2CTWRV0P8lg6T8O9g5eUqDwpztq2\nWqRDUBMl+svuPKV6sW5Rs8kLzTZ6zh6U8GkI+6VIAg+gaW2xSxoEroVpVnIn\nvybR1R6B1Wz6lIp4/DZwTIOLcglIWN8GdX68A5obGuR/5BKEDCMlF9P3PXEW\n0VrXG//8/GYhCvrVwUD6NkEXW0VHZPAdoRI2/JAw7w7Tx9UPg8Gb9zQpBGYb\nYvfzIaxkOxVLQtjd/WvsokKHevRqiKQZAESdea0W1kdXhE1dZ3zrprweBO0M\nAU0JuBRdvgk18PKLs6aqIRSh5Nl7ecQwCDs7/KVZT79RP/KMXtYIbSc6ELyO\nAaShhS6d2gDUcMOgrYU3Hp3LdOL8orEw3dj9RUMrvf5DVPdSULoU58eUSY1A\n3kvbjcAFulJdmK+rFFjy0+0SPnIj9VQsTFNy4dOBVsTeD8OnUQI0k0Fhetsq\nMXaYweFmAUSoXyon3HIWmStoq7+mBdV14r6YmroQvOBYOcEdaL3uj2FSz7zv\nw683CNEFkxsKjp7yliWwRj/jz9lfTGk82ZuwvdLpmG4deYVEmXfrM9QClFfa\ndkd6\r\n=oCmS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/request-filtering-agent.js","husky":{"hooks":{"precommit":"lint-staged"}},"types":"lib/request-filtering-agent.d.ts","gitHead":"37513d74fae60cf17088cf2933418bb4bdb316d2","scripts":{"test":"mocha \"test/**/*.ts\"","build":"cross-env NODE_ENV=production tsc -p .","clean":"rimraf lib/","watch":"tsc -p . --watch","format":"prettier --write \"**/*.{js,jsx,ts,tsx,css}\"","prepare":"git config --local core.hooksPath .githooks","prepublish":"npm run --if-present build"},"_npmUser":{"name":"azu","email":"azuciao@gmail.com"},"prettier":{"tabWidth":4,"printWidth":120,"singleQuote":false,"trailingComma":"none"},"deprecated":"This version is not maintain. Please upgrade to the latest version.","repository":{"url":"git+https://github.com/azu/request-filtering-agent.git","type":"git"},"_npmVersion":"6.14.13","description":"An http(s).Agent implementation that block request Private IP address.","directories":{"lib":"lib","test":"test"},"lint-staged":{"*.{js,jsx,ts,tsx,css}":["prettier --write"]},"_nodeVersion":"14.16.1","dependencies":{"ipaddr.js":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^8.4.0","rimraf":"^3.0.0","ts-node":"^10.0.0","prettier":"^2.3.0","@types/ip":"^1.1.0","cross-env":"^7.0.3","node-fetch":"^2.6.1","typescript":"^4.3.2","@types/node":"^15.12.0","lint-staged":"^11.0.0","@types/mocha":"^8.2.2","@types/node-fetch":"^2.5.10","ts-node-test-register":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/request-filtering-agent_1.0.7_1626770164083_0.09307651915215542","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"request-filtering-agent","version":"1.1.0","keywords":["http","https","proxy","agent","ssrf","security"],"author":{"name":"azu"},"license":"MIT","_id":"request-filtering-agent@1.1.0","maintainers":[{"name":"azu","email":"azuciao@gmail.com"}],"homepage":"https://github.com/azu/request-filtering-agent","bugs":{"url":"https://github.com/azu/request-filtering-agent/issues"},"dist":{"shasum":"1fead0d7889a99d62051df05d0d3475bcb87b285","tarball":"https://registry.npmjs.org/request-filtering-agent/-/request-filtering-agent-1.1.0.tgz","fileCount":7,"integrity":"sha512-uH18yIavEe89IV0HYi3lZv05EIj58LlvlswfLzUKsT1zDerdBwO2PiBNuzN0ZyQDCBCPn8ILETFoy8UOhAE9fQ==","signatures":[{"sig":"MEQCIBeLOTKSqHcB3RmljSKvTAjYnpLypM/Lx4NwvkTSgSfpAiBGYDLQOP5INWkARhh3F6LCCRvQUNsD4zZ78xsQ5vJhTA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32438,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZVtbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr8QQ//cFiTMebrRPNb+EdDpEmXfd+ITZmix5HL2Jd+FX9Qbq9nb3NX\r\nnHlmPybFmn4ppswGxIpgb93qXXhSBFaNSkOnkLT+A+YD3RUAzwH7Qv2/mJBf\r\n0MOwc+em9Nalslznek4B3+GdB9E+wmnTjMJxq05JdPdebanbcbaM/lUCtupb\r\nSyKEZh8j7BrsUInrqG/aVb9++dJqTlLpkyoMd3aGcjJ1qyIyM++LWzlK3Iw1\r\njoCXktZxM+DhvZlIpuSUWdg+S4hTBA3M+Dy8Q8BPAKW6rTM/pvIyJ9zyDVsx\r\nWapVzyEfH7ATbBL12sImGO1lrJVjjqMbA0LahPIo4fWlIzvqxINh66lyTaI2\r\nECKpZAqFgDGFwONuHSwSf1uBJiFQkAG1GIzca7X57IR4tp8j3c3I7fdX5D2N\r\nA1Ap+4TGKi3ygJqMPOe8eMCCTNLYNmn481dUuZctF1vXQPfnLh1yCtdvf4n8\r\n00UIZjkHfpyj2RY2w1HBm7ZchJYII6Wtfnn8b75SBEUr1JxICCfQe3ECQEXx\r\nC1HaNs/q5PrjMDbx5up5AXKaaQgdk5umCG1UTJQOozrWS8Bmm97y/mid5MAJ\r\nCdmREOm7rsR1kpThe4MHCkzShTb7lGaPUL8F0nogKecmmiMp7bsDWPP3jkJf\r\nrY4HoQxKM/8K3svPNOcGRCkyInSgBs2jF9w=\r\n=NM+i\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/request-filtering-agent.js","husky":{"hooks":{"precommit":"lint-staged"}},"types":"lib/request-filtering-agent.d.ts","gitHead":"3c3e9edbdb7dfe0495a5cb5ba0d0b4c1c89010a3","scripts":{"test":"mocha \"test/**/*.ts\"","build":"cross-env NODE_ENV=production tsc -p .","clean":"rimraf lib/","watch":"tsc -p . --watch","format":"prettier --write \"**/*.{js,jsx,ts,tsx,css}\"","prepare":"git config --local core.hooksPath .githooks","prepublish":"npm run --if-present build"},"_npmUser":{"name":"azu","email":"azuciao@gmail.com"},"prettier":{"tabWidth":4,"printWidth":120,"singleQuote":false,"trailingComma":"none"},"deprecated":"This version is not maintain. Please upgrade to the latest version.","repository":{"url":"git+https://github.com/azu/request-filtering-agent.git","type":"git"},"_npmVersion":"8.3.0","description":"An http(s).Agent implementation that block request Private IP address.","directories":{"lib":"lib","test":"test"},"lint-staged":{"*.{js,jsx,ts,tsx,css}":["prettier --write"]},"_nodeVersion":"16.13.0","dependencies":{"ipaddr.js":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^8.4.0","rimraf":"^3.0.0","ts-node":"^10.0.0","prettier":"^2.3.0","@types/ip":"^1.1.0","cross-env":"^7.0.3","node-fetch":"^2.6.1","typescript":"^4.3.2","@types/node":"^15.12.0","lint-staged":"^11.0.0","@types/mocha":"^8.2.2","@types/node-fetch":"^2.5.10","ts-node-test-register":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/request-filtering-agent_1.1.0_1650809691674_0.7966913733489547","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"request-filtering-agent","version":"1.1.2","keywords":["http","https","proxy","agent","ssrf","security"],"author":{"name":"azu"},"license":"MIT","_id":"request-filtering-agent@1.1.2","maintainers":[{"name":"azu","email":"azuciao@gmail.com"}],"homepage":"https://github.com/azu/request-filtering-agent","bugs":{"url":"https://github.com/azu/request-filtering-agent/issues"},"dist":{"shasum":"327deaff55dfee0b32efa0025ff9b8e6e121f2f4","tarball":"https://registry.npmjs.org/request-filtering-agent/-/request-filtering-agent-1.1.2.tgz","fileCount":7,"integrity":"sha512-v6uYIoey6rhe+nQXB5rlYEWJI+5SrnvM72XGeLUsykzu2omOEPoW4QmzEH+8/sheK4M/hwQ85L7aPj1cTJfPLg==","signatures":[{"sig":"MEYCIQCb7+wDRcQnVM7EA//85OwPo3WLhZmyU1HDTVHvs/XJegIhAJ7KzlUYi8SGRv8dYOkRk1ipIeIT4szeNtpyYd90kwh+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33242,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiw2KtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmodUA//bNBoxgCglWFfSheirSw5iWiwPC1ln+IXjayL9PWXyXWyGKFH\r\n6vj5XYqauQdrLSvHQ8iH0VRd1lXKoOH/8xh046cxwrt7Tf6YhaqeGSeQtV+6\r\nZxQ+jd64dzLFBWHUw2KkwlDO/1jwnR1qrv1SFa3N7CveDWFIdLlA3cKWkhg9\r\n3exfaq9W42n2KHFyVa7TpIdxEGQVfl9IK0tHyqtApODjh7f6DqIoLKJJIvOF\r\n+Q76FYs1dcWEUNu8/OxbuWUBuh6YXuVyXbuE5O9gZv87VdImwmMNFaq9QmDo\r\niF8dcIOEWdCjpMOYcnWMmQTftT+cGnKSAJBbHseQ1SRgMk9grigVhmiRS92C\r\n76u3X1v3lV5Ap0Cw+sV1EBKQlkvBy6j2bpgedNxeaMzGsACJYF0wVewaMlmO\r\nlAPAVnFmlo2xtz8PQrB6Cv1c/s+eFjv/vViNToTfJnW1x2qzsTaH92vLgXEW\r\nuwHt5agzGYazGRnspT2d1ncyrVd8JGhCDVpAn0zAZWRjwCliRfR/6IFRfX48\r\nUyMtMXehB2pjG8wC+AZpHDHaWqWWp0TG87fZ4zY4+BIC8UutN7Uq45MrDsia\r\nb0Yx+/HCGXUijSuMwn1kLsy1B/BFKS6KivRwVWltQk7phn5PvTRTB9PjV6Bb\r\nKN/nNtRMUqI1sgsES2lQDLVnQtYPPozmG08=\r\n=JrLk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/request-filtering-agent.js","husky":{"hooks":{"precommit":"lint-staged"}},"types":"lib/request-filtering-agent.d.ts","gitHead":"d3c03e0f55c4df8720c128fc0fbb2ff09f998dee","scripts":{"test":"mocha \"test/**/*.ts\"","build":"cross-env NODE_ENV=production tsc -p .","clean":"rimraf lib/","watch":"tsc -p . --watch","format":"prettier --write \"**/*.{js,jsx,ts,tsx,css}\"","prepare":"git config --local core.hooksPath .githooks","prepublish":"npm run --if-present build"},"_npmUser":{"name":"azu","email":"azuciao@gmail.com"},"prettier":{"tabWidth":4,"printWidth":120,"singleQuote":false,"trailingComma":"none"},"deprecated":"This version is not maintain. Please upgrade to the latest version.","repository":{"url":"git+https://github.com/azu/request-filtering-agent.git","type":"git"},"_npmVersion":"8.11.0","description":"An http(s).Agent implementation that block request Private IP address.","directories":{"lib":"lib","test":"test"},"lint-staged":{"*.{js,jsx,ts,tsx,css}":["prettier --write"]},"_nodeVersion":"16.15.0","dependencies":{"ipaddr.js":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^8.4.0","rimraf":"^3.0.0","ts-node":"^10.0.0","prettier":"^2.3.0","@types/ip":"^1.1.0","cross-env":"^7.0.3","node-fetch":"^2.6.1","typescript":"^4.3.2","@types/node":"^15.12.0","lint-staged":"^11.0.0","@types/mocha":"^8.2.2","@types/node-fetch":"^2.5.10","ts-node-test-register":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/request-filtering-agent_1.1.2_1656971949138_0.40181250212037445","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"request-filtering-agent","version":"2.0.0","keywords":["http","https","proxy","agent","ssrf","security"],"author":{"name":"azu"},"license":"MIT","_id":"request-filtering-agent@2.0.0","maintainers":[{"name":"azu","email":"azuciao@gmail.com"}],"homepage":"https://github.com/azu/request-filtering-agent","bugs":{"url":"https://github.com/azu/request-filtering-agent/issues"},"dist":{"shasum":"16e5c1d4370d9a52bddbd035a4a4cc38e18fbea1","tarball":"https://registry.npmjs.org/request-filtering-agent/-/request-filtering-agent-2.0.0.tgz","fileCount":7,"integrity":"sha512-MiRd+4k8OoB0kXdERh/oSl7CnAhED9Gxh5Irx6OLNCpXcm74LPzZcTax6yrOu7V84LZOUxf0MWum26yDvq7swg==","signatures":[{"sig":"MEYCIQCmRDjByZWT5/SwkzuhBK6dj9LaNRoZIZNzCaCz8ZE5TAIhALYrDoS2WMVgS+Sz02sdee7wMBM2Nd6sA+hm9vOg+OSg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":37146},"main":"lib/request-filtering-agent.js","types":"lib/request-filtering-agent.d.ts","gitHead":"6e8455e6b229a9ba74f5d9f25ebd3b7b3e722a53","scripts":{"test":"mocha \"test/**/*.ts\"","build":"tsc -p .","clean":"rimraf lib/","watch":"tsc -p . --watch","format":"prettier --write \"**/*.{js,jsx,ts,tsx,css}\"","prepare":"git config --local core.hooksPath .githooks","prepublish":"npm run --if-present build"},"_npmUser":{"name":"azu","email":"azuciao@gmail.com"},"prettier":{"tabWidth":4,"printWidth":120,"singleQuote":false,"trailingComma":"none"},"repository":{"url":"git+https://github.com/azu/request-filtering-agent.git","type":"git"},"_npmVersion":"9.2.0","description":"An http(s).Agent implementation that block request Private IP address.","directories":{"lib":"lib","test":"test"},"lint-staged":{"*.{js,jsx,ts,tsx,css}":["prettier --write"]},"_nodeVersion":"20.8.0","dependencies":{"ipaddr.js":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.2.0","rimraf":"^5.0.5","ts-node":"^10.9.1","prettier":"^3.0.3","@types/ip":"^1.1.2","node-fetch":"^2.7.0","typescript":"^5.2.2","@types/node":"^20.8.7","lint-staged":"^15.0.2","@types/mocha":"^10.0.3","@types/node-fetch":"^2.6.7","ts-node-test-register":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/request-filtering-agent_2.0.0_1697867943678_0.1102414338882094","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"request-filtering-agent","version":"2.0.1","keywords":["http","https","proxy","agent","ssrf","security"],"author":{"name":"azu"},"license":"MIT","_id":"request-filtering-agent@2.0.1","maintainers":[{"name":"azu","email":"azuciao@gmail.com"}],"homepage":"https://github.com/azu/request-filtering-agent","bugs":{"url":"https://github.com/azu/request-filtering-agent/issues"},"dist":{"shasum":"aa65ba7077d4519426ee25aaa74bcd6f3809c072","tarball":"https://registry.npmjs.org/request-filtering-agent/-/request-filtering-agent-2.0.1.tgz","fileCount":7,"integrity":"sha512-QvD3qwthEt9J+2hCdQ3wTn3Z/ZsgyiMECjY9yVJ0F8FtnGfNQG+dRz65eKayYRHIRQ6OGjH8Zuqr1lw7G6pz1Q==","signatures":[{"sig":"MEUCIEnsW71L749qZek44XhBC8JA1m6p/rS129ZJxhk8SqBUAiEAosVit940pKlwC022r1/VfKCtImBelZ8UXJJNSQKfaG4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":37177},"main":"lib/request-filtering-agent.js","types":"lib/request-filtering-agent.d.ts","gitHead":"a663735e2bd14ee517e9cae910f6d1984cb5e1c6","scripts":{"test":"mocha \"test/**/*.ts\"","build":"tsc -p .","clean":"rimraf lib/","watch":"tsc -p . --watch","format":"prettier --write \"**/*.{js,jsx,ts,tsx,css}\"","prepare":"git config --local core.hooksPath .githooks","prepublish":"npm run --if-present build"},"_npmUser":{"name":"azu","email":"azuciao@gmail.com"},"prettier":{"tabWidth":4,"printWidth":120,"singleQuote":false,"trailingComma":"none"},"repository":{"url":"git+https://github.com/azu/request-filtering-agent.git","type":"git"},"_npmVersion":"9.2.0","description":"An http(s).Agent implementation that block request Private IP address.","directories":{"lib":"lib","test":"test"},"lint-staged":{"*.{js,jsx,ts,tsx,css}":["prettier --write"]},"_nodeVersion":"18.16.0","dependencies":{"ipaddr.js":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.2.0","rimraf":"^5.0.5","ts-node":"^10.9.1","prettier":"^3.0.3","@types/ip":"^1.1.2","node-fetch":"^2.7.0","typescript":"^5.2.2","@types/node":"^20.8.7","lint-staged":"^15.0.2","@types/mocha":"^10.0.3","@types/node-fetch":"^2.6.7","ts-node-test-register":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/request-filtering-agent_2.0.1_1698714495720_0.5648479405987856","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"request-filtering-agent","version":"3.0.0","keywords":["http","https","proxy","agent","ssrf","security"],"author":{"name":"azu"},"license":"MIT","_id":"request-filtering-agent@3.0.0","maintainers":[{"name":"azu","email":"azuciao@gmail.com"}],"homepage":"https://github.com/azu/request-filtering-agent","bugs":{"url":"https://github.com/azu/request-filtering-agent/issues"},"dist":{"shasum":"878504471d3f15c4cc61570d268e68acd5878a94","tarball":"https://registry.npmjs.org/request-filtering-agent/-/request-filtering-agent-3.0.0.tgz","fileCount":7,"integrity":"sha512-1L8iZSfJnluFtFutdajTt+Xn6xRgVxENt8wiqlesZNl0bw3FxFCMXbKi/ZyUN92HyXXcr2MIS/kR+OSu3oNElA==","signatures":[{"sig":"MEUCIBU3NpPwPsS2XHWovHg2cE5njcVuuGruFpVBe7+/gnDYAiEA+VGU+ORESKiq92gQb5E5oGc/MTiOqIdAFpdYYAx9Ii0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35962},"main":"lib/request-filtering-agent.js","type":"module","types":"lib/request-filtering-agent.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./lib/request-filtering-agent.d.ts","import":"./lib/request-filtering-agent.js","default":"./lib/request-filtering-agent.js"}},"gitHead":"e5dfaa7b8c7130ab991c786e5252df7f863dfeae","scripts":{"test":"tsx --test test/request-filtering-agent.test.ts","build":"tsc -p .","clean":"rimraf lib/","watch":"tsc -p . --watch","format":"prettier --write \"**/*.{js,jsx,ts,tsx,css}\"","prepare":"git config --local core.hooksPath .githooks","typecheck":"tsc --noEmit","prepublish":"npm run --if-present build"},"_npmUser":{"name":"azu","email":"azuciao@gmail.com"},"prettier":{"tabWidth":4,"printWidth":120,"singleQuote":false,"trailingComma":"none"},"repository":{"url":"git+https://github.com/azu/request-filtering-agent.git","type":"git"},"_npmVersion":"10.9.3","description":"An http(s).Agent implementation that block request Private IP address.","directories":{"lib":"lib","test":"test"},"lint-staged":{"*.{js,jsx,ts,tsx,css}":["prettier --write"]},"_nodeVersion":"24.5.0","dependencies":{"ipaddr.js":"^2.1.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.15.0+sha512.486ebc259d3e999a4e8691ce03b5cac4a71cbeca39372a9b762cb500cfdf0873e2cb16abe3d951b1ee2cf012503f027b98b6584e4df22524e0c7450d9ec7aa7b","devDependencies":{"tsx":"^4.20.5","rimraf":"^5.0.5","prettier":"^3.0.3","@types/ip":"^1.1.2","node-fetch":"^2.7.0","typescript":"^5.2.2","@types/node":"^20.8.7","lint-staged":"^15.0.2","@types/node-fetch":"^2.6.7"},"_npmOperationalInternal":{"tmp":"tmp/request-filtering-agent_3.0.0_1756018926909_0.9887340453740001","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"request-filtering-agent","version":"3.0.2","keywords":["http","https","proxy","agent","ssrf","security"],"author":{"name":"azu"},"license":"MIT","_id":"request-filtering-agent@3.0.2","maintainers":[{"name":"azu","email":"azuciao@gmail.com"}],"homepage":"https://github.com/azu/request-filtering-agent","bugs":{"url":"https://github.com/azu/request-filtering-agent/issues"},"dist":{"shasum":"d73fd4115c6614abbdb1dca917fc7b6113f837a0","tarball":"https://registry.npmjs.org/request-filtering-agent/-/request-filtering-agent-3.0.2.tgz","fileCount":7,"integrity":"sha512-1btYBgWx++9bDFjXARo9K1Zrhf4mnzwZH9bp9XPUCz0aiBzuYZNJUlA1BaQ+7Z5+a9N2QIR/TmU/tgQlHVgv+A==","signatures":[{"sig":"MEUCICE8uIH6BBrXYMakCY5bLr0e7zRG62SIAEYgx0s6tZbKAiEA7LtMpQJtaa0yK3NAGdtY4kAYxAdVb+b+KN768sHJc94=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/request-filtering-agent@3.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":35727},"main":"lib/request-filtering-agent.js","type":"module","_from":"file:request-filtering-agent-3.0.2.tgz","types":"lib/request-filtering-agent.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./lib/request-filtering-agent.d.ts","import":"./lib/request-filtering-agent.js","default":"./lib/request-filtering-agent.js"}},"scripts":{"test":"tsx --test test/request-filtering-agent.test.ts","build":"tsc -p .","clean":"rimraf lib/","watch":"tsc -p . --watch","format":"prettier --write \"**/*.{js,jsx,ts,tsx,css}\"","typecheck":"tsc --noEmit","prepublish":"npm run --if-present build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:12292f5f-1bb5-4e49-ac78-48f24632cd25"}},"prettier":{"tabWidth":4,"printWidth":120,"singleQuote":false,"trailingComma":"none"},"_resolved":"/tmp/cf0b353679c8dcaccf0907725e940574/request-filtering-agent-3.0.2.tgz","_integrity":"sha512-1btYBgWx++9bDFjXARo9K1Zrhf4mnzwZH9bp9XPUCz0aiBzuYZNJUlA1BaQ+7Z5+a9N2QIR/TmU/tgQlHVgv+A==","repository":{"url":"git+https://github.com/azu/request-filtering-agent.git","type":"git"},"_npmVersion":"11.6.0","description":"An http(s).Agent implementation that block request Private IP address.","directories":{"lib":"lib","test":"test"},"lint-staged":{"*.{js,jsx,ts,tsx,css}":["prettier --write"]},"_nodeVersion":"22.19.0","dependencies":{"ipaddr.js":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","rimraf":"^5.0.5","prettier":"^3.0.3","@types/ip":"^1.1.2","node-fetch":"^2.7.0","typescript":"^5.2.2","@types/node":"^20.8.7","lint-staged":"^15.0.2","@types/node-fetch":"^2.6.7"},"_npmOperationalInternal":{"tmp":"tmp/request-filtering-agent_3.0.2_1757116594426_0.7384296467684506","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"request-filtering-agent","version":"3.1.0","keywords":["http","https","proxy","agent","ssrf","security"],"author":{"name":"azu"},"license":"MIT","_id":"request-filtering-agent@3.1.0","maintainers":[{"name":"azu","email":"azuciao@gmail.com"}],"homepage":"https://github.com/azu/request-filtering-agent","bugs":{"url":"https://github.com/azu/request-filtering-agent/issues"},"dist":{"shasum":"ffb70f15546c90e5a7c8315082a6ffca2222d05b","tarball":"https://registry.npmjs.org/request-filtering-agent/-/request-filtering-agent-3.1.0.tgz","fileCount":7,"integrity":"sha512-oENLCsLKNEsIAnb7YoKdoELhM/nhUCXPCfx75LQloclI/6yJZzFnMxaaDSHVm9POI2ebsHtNmpTU9jxgvIixiA==","signatures":[{"sig":"MEUCIC7We9CjjkYBmKHlvLN36eOOEmftyoGAWrueKjCvb7YcAiEA3Xmm59VI26YdmAZ0Ykwwzs0aeGs+1/4H5ET4/TrCzkc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/request-filtering-agent@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38179},"main":"lib/request-filtering-agent.js","type":"module","_from":"file:request-filtering-agent-3.1.0.tgz","types":"lib/request-filtering-agent.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./lib/request-filtering-agent.d.ts","import":"./lib/request-filtering-agent.js","default":"./lib/request-filtering-agent.js"}},"scripts":{"test":"tsx --test test/request-filtering-agent.test.ts","build":"tsc -p .","clean":"rimraf lib/","watch":"tsc -p . --watch","format":"prettier --write \"**/*.{js,jsx,ts,tsx,css}\"","typecheck":"tsc --noEmit","prepublish":"npm run --if-present build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:12292f5f-1bb5-4e49-ac78-48f24632cd25"}},"prettier":{"tabWidth":4,"printWidth":120,"singleQuote":false,"trailingComma":"none"},"_resolved":"/tmp/feb030a587dbde2ab22f569094967baa/request-filtering-agent-3.1.0.tgz","_integrity":"sha512-oENLCsLKNEsIAnb7YoKdoELhM/nhUCXPCfx75LQloclI/6yJZzFnMxaaDSHVm9POI2ebsHtNmpTU9jxgvIixiA==","repository":{"url":"git+https://github.com/azu/request-filtering-agent.git","type":"git"},"_npmVersion":"11.6.2","description":"An http(s).Agent implementation that block request Private IP address.","directories":{"lib":"lib","test":"test"},"lint-staged":{"*.{js,jsx,ts,tsx,css}":["prettier --write"]},"_nodeVersion":"24.11.1","dependencies":{"ipaddr.js":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","rimraf":"^5.0.5","prettier":"^3.0.3","@types/ip":"^1.1.2","node-fetch":"^2.7.0","typescript":"^5.2.2","@types/node":"^20.8.7","lint-staged":"^15.0.2","@types/node-fetch":"^2.6.7"},"_npmOperationalInternal":{"tmp":"tmp/request-filtering-agent_3.1.0_1765839854610_0.2407850840193626","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"request-filtering-agent","version":"3.2.0","keywords":["http","https","proxy","agent","ssrf","security"],"author":{"name":"azu"},"license":"MIT","_id":"request-filtering-agent@3.2.0","maintainers":[{"name":"azu","email":"azuciao@gmail.com"}],"homepage":"https://github.com/azu/request-filtering-agent","bugs":{"url":"https://github.com/azu/request-filtering-agent/issues"},"dist":{"shasum":"4b42c95624a88080454282e6df0cb8e41a2ae365","tarball":"https://registry.npmjs.org/request-filtering-agent/-/request-filtering-agent-3.2.0.tgz","fileCount":7,"integrity":"sha512-tKPrKdsmTFuGG1/pBEpzTB66mDZ2lZLW8kjW4N6jj4QjnxUTKrIfv5p2zuJRfztOos86jRPD41lRaGjh+1QqDw==","signatures":[{"sig":"MEYCIQCCJ3zE5TlorS7UaOBgTDZKaZX1DKAz8JC6NKOFrbCRFAIhAMd9TxejRgeA3cAF66JXVs1lK7y8mYuM7p7BSnBeIbHt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/request-filtering-agent@3.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41665},"main":"lib/request-filtering-agent.js","type":"module","_from":"file:request-filtering-agent-3.2.0.tgz","types":"lib/request-filtering-agent.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./lib/request-filtering-agent.d.ts","import":"./lib/request-filtering-agent.js","default":"./lib/request-filtering-agent.js"}},"scripts":{"test":"tsx --test test/request-filtering-agent.test.ts","build":"tsc -p .","clean":"rimraf lib/","watch":"tsc -p . --watch","format":"prettier --write \"**/*.{js,jsx,ts,tsx,css}\"","typecheck":"tsc --noEmit","prepublish":"npm run --if-present build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:12292f5f-1bb5-4e49-ac78-48f24632cd25"}},"prettier":{"tabWidth":4,"printWidth":120,"singleQuote":false,"trailingComma":"none"},"_resolved":"/tmp/7fbd6c5b22a0ce543ea3d73d217eb570/request-filtering-agent-3.2.0.tgz","_integrity":"sha512-tKPrKdsmTFuGG1/pBEpzTB66mDZ2lZLW8kjW4N6jj4QjnxUTKrIfv5p2zuJRfztOos86jRPD41lRaGjh+1QqDw==","repository":{"url":"git+https://github.com/azu/request-filtering-agent.git","type":"git"},"_npmVersion":"11.6.2","description":"An http(s).Agent implementation that block request Private IP address.","directories":{"lib":"lib","test":"test"},"lint-staged":{"*.{js,jsx,ts,tsx,css}":["prettier --write"]},"_nodeVersion":"24.11.1","dependencies":{"ipaddr.js":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","rimraf":"^5.0.5","prettier":"^3.0.3","@types/ip":"^1.1.2","node-fetch":"^2.7.0","typescript":"^5.2.2","@types/node":"^20.8.7","lint-staged":"^15.0.2","@types/node-fetch":"^2.6.7"},"_npmOperationalInternal":{"tmp":"tmp/request-filtering-agent_3.2.0_1765842640128_0.7256400082308685","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"request-filtering-agent","version":"3.2.1","type":"module","description":"An http(s).Agent implementation that block request Private IP address.","engines":{"node":">=20.0.0"},"homepage":"https://github.com/azu/request-filtering-agent","bugs":{"url":"https://github.com/azu/request-filtering-agent/issues"},"repository":{"type":"git","url":"git+https://github.com/azu/request-filtering-agent.git"},"license":"MIT","author":{"name":"azu"},"keywords":["http","https","proxy","agent","ssrf","security"],"main":"lib/request-filtering-agent.js","types":"lib/request-filtering-agent.d.ts","exports":{".":{"types":"./lib/request-filtering-agent.d.ts","import":"./lib/request-filtering-agent.js","default":"./lib/request-filtering-agent.js"}},"directories":{"lib":"lib","test":"test"},"lint-staged":{"*.{js,jsx,ts,tsx,css}":["prettier --write"]},"prettier":{"singleQuote":false,"printWidth":120,"tabWidth":4,"trailingComma":"none"},"devDependencies":{"@types/ip":"^1.1.2","@types/node":"^20.8.7","@types/node-fetch":"^2.6.7","lint-staged":"^15.0.2","node-fetch":"^2.7.0","prettier":"^3.0.3","rimraf":"^5.0.5","tsx":"^4.20.5","typescript":"^5.2.2"},"dependencies":{"ipaddr.js":"^2.1.0"},"scripts":{"build":"tsc -p .","clean":"rimraf lib/","prepublish":"npm run --if-present build","test":"tsx --test test/request-filtering-agent.test.ts","typecheck":"tsc --noEmit","watch":"tsc -p . --watch","format":"prettier --write \"**/*.{js,jsx,ts,tsx,css}\""},"_id":"request-filtering-agent@3.2.1","_integrity":"sha512-NUz5G9n6GRSgB9JNurHCeeJX60s+qxL/DKTPjC6+fXrQ20w7iQy+ST6h4hKjeu1AjfH7FtIV+uw5eOq4CqWe8Q==","_resolved":"/tmp/2c7a229171a7298cc4b5a3dbbb0603f1/request-filtering-agent-3.2.1.tgz","_from":"file:request-filtering-agent-3.2.1.tgz","_nodeVersion":"24.17.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-NUz5G9n6GRSgB9JNurHCeeJX60s+qxL/DKTPjC6+fXrQ20w7iQy+ST6h4hKjeu1AjfH7FtIV+uw5eOq4CqWe8Q==","shasum":"d91719418578581ecbce6372616652927c9a32cf","tarball":"https://registry.npmjs.org/request-filtering-agent/-/request-filtering-agent-3.2.1.tgz","fileCount":7,"unpackedSize":42851,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/request-filtering-agent@3.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC2nuupb/yEOa/zRNz65m3+9ev7V160A6HeINDYakD3zwIgMidnXr8IixXB2hfbeh1MRrM3rXc24G7rHBspSBUooAI="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:12292f5f-1bb5-4e49-ac78-48f24632cd25"}},"maintainers":[{"name":"azu","email":"azuciao@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/request-filtering-agent_3.2.1_1782700017856_0.6470278610183418"},"_hasShrinkwrap":false}},"time":{"created":"2019-08-29T10:53:40.851Z","modified":"2026-06-29T02:26:58.324Z","1.0.1":"2019-08-29T10:53:41.227Z","1.0.2":"2019-08-29T13:10:47.105Z","1.0.3":"2019-08-29T14:48:16.463Z","1.0.4":"2019-09-05T13:17:31.802Z","1.0.5":"2020-07-04T04:02:54.035Z","1.0.6":"2021-06-04T14:09:23.421Z","1.0.7":"2021-07-20T08:36:04.232Z","1.1.0":"2022-04-24T14:14:51.855Z","1.1.2":"2022-07-04T21:59:09.302Z","2.0.0":"2023-10-21T05:59:03.861Z","2.0.1":"2023-10-31T01:08:16.012Z","3.0.0":"2025-08-24T07:02:07.077Z","3.0.2":"2025-09-05T23:56:34.603Z","3.1.0":"2025-12-15T23:04:14.747Z","3.2.0":"2025-12-15T23:50:40.250Z","3.2.1":"2026-06-29T02:26:58.046Z"},"bugs":{"url":"https://github.com/azu/request-filtering-agent/issues"},"author":{"name":"azu"},"license":"MIT","homepage":"https://github.com/azu/request-filtering-agent","keywords":["http","https","proxy","agent","ssrf","security"],"repository":{"type":"git","url":"git+https://github.com/azu/request-filtering-agent.git"},"description":"An http(s).Agent implementation that block request Private IP address.","maintainers":[{"name":"azu","email":"azuciao@gmail.com"}],"readme":"# request-filtering-agent [![Actions Status](https://github.com/azu/request-filtering-agent/workflows/ci/badge.svg)](https://github.com/azu/request-filtering-agent/actions)\n\nAn [http(s).Agent](https://nodejs.org/api/http.html#http_class_http_agent) class block the request to [Private IP addresses](https://en.wikipedia.org/wiki/Private_network) and [Reserved IP addresses](https://en.wikipedia.org/wiki/Reserved_IP_addresses).\n\nIt helps to prevent [server-side request forgery (SSRF)](https://en.wikipedia.org/wiki/Server-side_request_forgery) attack.\n\n- [What is SSRF (Server-side request forgery)? Tutorial & Examples](https://portswigger.net/web-security/ssrf)\n\nThis library depends on [ipaddr.js](https://github.com/whitequark/ipaddr.js) definitions.\nThis library blocks the request to these IP addresses by default.\n\n- [Private IPv4 addresses](https://en.wikipedia.org/wiki/Private_network#Private_IPv4_addresses)\n- [Private IPv6 addresses](https://en.wikipedia.org/wiki/Private_network#Private_IPv6_addresses)\n- [Link-local addresses](https://en.wikipedia.org/wiki/Private_network#Link-local_addresses)\n- [Reserved IP addresses](https://en.wikipedia.org/wiki/Reserved_IP_addresses)\n\nSo, This library block the request to non-`unicast` IP addresses.\n\n:warning: Node.js's built-in `fetch` does not support `http.Agent`.\n\n- [Support nodejs/undici · Issue #23 · azu/request-filtering-agent](https://github.com/azu/request-filtering-agent/issues/23)\n\n## Support `http.Agent` libraries\n\nThis library provides Node.js's [http.Agent](https://nodejs.org/api/http.html#http_class_http_agent) implementation.\n[http.Agent](https://nodejs.org/api/http.html#http_class_http_agent) is supported by popular library.\n\n- Node.js's built-in `http` and `https`\n- [node-fetch](https://github.com/bitinn/node-fetch)\n- [node-http-proxy](https://github.com/http-party/node-http-proxy)\n- [axios](https://github.com/axios/axios)\n- [got](https://github.com/sindresorhus/got)\n- [@cypress/request](https://github.com/cypress-io/request)\n  - :memo: [Request](https://github.com/request/request) is deprecated and it has SSRF issue\n  - [CVE-2023-28155 Request allows a bypass of SSRF mitigations via an attacker-controller server that does a cross-protocol redirect · Issue #3442 · request/request](https://github.com/request/request/issues/3442)\n  - [Server-Side Request Forgery in Request · CVE-2023-28155 · GitHub Advisory Database](https://github.com/advisories/GHSA-p8p7-x288-28g6)\n\n\n`request-filtering-agent` works with these libraries!\n\n## Install\n\nInstall with [npm](https://www.npmjs.com/):\n\n    npm install request-filtering-agent\n\n### Support Node.js version\n\n| Version | Node.js 14 | Node.js 16 | Node.js 18 | Node.js 20 | Node.js 22 |\n| :------ | :--------- | :--------- | :--------- | :--------- | :--------- |\n| v1.x.x  | Support    | Support    | Support    | No Support | No Support |\n| v2.x.x  | No Support | No Support | Support    | Support    | Support    |\n| v3.x.x  | No Support | No Support | No Support | Support    | Support    |\n\n## Usage\n\n`useAgent(url, options)` return an agent for the url.\n\nThe agent blocks the request to [Private network](https://en.wikipedia.org/wiki/Private_network) and [Reserved IP addresses](https://en.wikipedia.org/wiki/Reserved_IP_addresses) by default.\n\n```js\nconst fetch = require(\"node-fetch\");\nconst { useAgent } = require(\"request-filtering-agent\");\nconst url = 'http://127.0.0.1:8080/';\nfetch(url, {\n    // use http or https agent for url\n    agent: useAgent(url)\n}).catch(err => {\n    console.err(err); // DNS lookup 127.0.0.1(family:4, host:127.0.0.1.nip.io) is not allowed. Because, It is private IP address.\n});\n```\n\n`request-filtering-agent` support loopback domain like [nip.io](http://nip.io).\nThis library detects the IP address that is dns lookup-ed.\n\n```\n$ dig 127.0.0.1.nip.io\n\n;127.0.0.1.nip.io.\t\tIN\tA\n\n;; ANSWER SECTION:\n127.0.0.1.nip.io.\t300\tIN\tA\t127.0.0.1\n```\n\nExample code:\n\n```js\nconst fetch = require(\"node-fetch\");\nconst { useAgent } = require(\"request-filtering-agent\");\nconst url = 'http://127.0.0.1.nip.io:8080/';\nfetch(url, {\n    agent: useAgent(url) // use http or https agent for url\n}).catch(err => {\n    console.err(err); // DNS lookup 127.0.0.1(family:4, host:127.0.0.1.nip.io) is not allowed. Because, It is private IP address.\n});\n```\n\nIt will prevent [DNS rebinding](https://en.wikipedia.org/wiki/DNS_rebinding)\n\n## API\n\n```ts\nexport interface RequestFilteringAgentOptions {\n    // Allow to connect private IP address\n    // This includes Private IP addresses and Reserved IP addresses.\n    // https://en.wikipedia.org/wiki/Private_network\n    // https://en.wikipedia.org/wiki/Reserved_IP_addresses\n    // Example, http://127.0.0.1/, http://localhost/, https://169.254.169.254/\n    // Default: false\n    allowPrivateIPAddress?: boolean;\n    // Allow to connect meta address 0.0.0.0\n    // 0.0.0.0 (IPv4) and :: (IPv6) a meta address that routing another address\n    // https://en.wikipedia.org/wiki/Reserved_IP_addresses\n    // https://tools.ietf.org/html/rfc6890\n    // Default: false\n    allowMetaIPAddress?: boolean;\n    // Allow address list\n    // It supports CIDR notation.\n    // This values are preferred than denyAddressList\n    // Default: []\n    allowIPAddressList?: string[];\n    // Deny address list\n    // It supports CIDR notation.\n    // Default: []\n    denyIPAddressList?: string[];\n}\n/**\n * A subclass of http.Agent with request filtering\n */\nexport declare class RequestFilteringHttpAgent extends http.Agent {\n    constructor(options?: http.AgentOptions & RequestFilteringAgentOptions);\n}\n/**\n * A subclass of https.Agent with request filtering\n */\nexport declare class RequestFilteringHttpsAgent extends https.Agent {\n    constructor(options?: https.AgentOptions & RequestFilteringAgentOptions);\n}\nexport declare const globalHttpAgent: RequestFilteringHttpAgent;\nexport declare const globalHttpsAgent: RequestFilteringHttpsAgent;\n/**\n * Get an agent for the url\n * return http or https agent\n * @param url\n */\nexport declare const useAgent: (url: string, options?: https.AgentOptions & RequestFilteringAgentOptions) => RequestFilteringHttpAgent | RequestFilteringHttpsAgent;\n```\n\n### Example: Create an Agent with options\n\nAn agent that allow requesting `127.0.0.1`, but it disallows other Private IP.\n\n```js\nconst fetch = require(\"node-fetch\");\nconst { RequestFilteringHttpAgent } = require(\"request-filtering-agent\");\n\n// Create http agent that allow 127.0.0.1, but it disallow other private ip\nconst agent = new RequestFilteringHttpAgent({\n    allowIPAddressList: [\"127.0.0.1\"], // it is preferred than allowPrivateIPAddress option\n    allowPrivateIPAddress: false, // Default: false\n});\n// 127.0.0.1 is private ip address, but it is allowed\nconst url = 'http://127.0.0.1:8080/';\nfetch(url, {\n    agent: agent\n}).then(res => {\n    console.log(res); // OK\n});\n\n// Allow requests to a specific CIDR range\nconst agentWithCIDR = new RequestFilteringHttpAgent({\n    allowIPAddressList: [\"192.168.1.0/24\"],\n});\nconst urlInCIDR = 'http://192.168.1.1:8080/';\nfetch(urlInCIDR, {\n    agent: agentWithCIDR\n}).then(res => {\n    console.log(res); // OK\n});\n\n// Deny requests to a specific CIDR range\nconst agentWithDenyCIDR = new RequestFilteringHttpAgent({\n    allowPrivateIPAddress: true,\n    denyIPAddressList: [\"192.168.1.0/24\"],\n});\nconst urlInDenyCIDR = 'http://192.168.1.1:8080/';\nfetch(urlInDenyCIDR, {\n    agent: agentWithDenyCIDR\n}).catch(err => {\n    console.err(err); // DNS lookup 192.168.1.1(family:4, host:192.168.1.1) is not allowed. Because It is defined in denyIPAddressList.\n});\n```\n\n## Related\n\n- [welefen/ssrf-agent: make http(s) request to prevent SSRF](https://github.com/welefen/ssrf-agent)\n    - It provides only high level wrapper\n    - It only handles Private IP address that is definition in [node-ip](https://github.com/indutny/node-ip/blob/43e442366bf5a93493c8c4c36736f87d675b0c3d/lib/ip.js#L302-L314)\n        - Missing Meta IP Address like `0.0.0.0`\n\n## Changelog\n\nSee [Releases page](https://github.com/azu/request-filtering-agent/releases).\n\n## Running tests\n\nInstall devDependencies and Run `yarn test`:\n\n    yarn test\n\n:memo: This testing require IPv6 supports:\n\n- Travis CI: NG \n- GitHub Actions: OK\n\n## Contributing\n\nPull requests and stars are always welcome.\n\nFor bugs and feature requests, [please create an issue](https://github.com/azu/request-filtering-agent/issues).\n\nFor security issue, please see [SECURITY.md](./SECURITY.md)\n\n1. Fork it!\n2. Create your feature branch: `git checkout -b my-new-feature`\n3. Commit your changes: `git commit -am 'Add some feature'`\n4. Push to the branch: `git push origin my-new-feature`\n5. Submit a pull request :D\n\n## Author\n\n- [github/azu](https://github.com/azu)\n- [twitter/azu_re](https://twitter.com/azu_re)\n\n## License\n\nMIT © azu\n","readmeFilename":"README.md"}