{"_id":"perimeterx-node-express","_rev":"98-1a2bb8cc8d6ab97decc130508d871245","name":"perimeterx-node-express","dist-tags":{"beta":"1.4.3","rc1":"3.0.0-rc1","l-version":"6.6.0-l","latest":"7.9.0"},"versions":{"1.0.0":{"name":"perimeterx-node-express","version":"1.0.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@1.0.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"c2c2f78de18cb30396ad3adea5c866f3ceced82c","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-1.0.0.tgz","integrity":"sha512-j9/sHCfa7EWpm2GAgAYRWW4aY9rwXPHHEt+x8Ymhsbth7Xrt+KdcVFfqwjhFNbIVa54w7ciEbbLRopyF+w1s6g==","signatures":[{"sig":"MEYCIQCihUE5LP5Iw8MjoONnpbewdqgYEOusDLg0XMI+SpTEuwIhAJ/y6WodaEDwd/uAxBm6memBUaFG270ajmDfB2J6o2Rh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"c2c2f78de18cb30396ad3adea5c866f3ceced82c","gitHead":"ef60d131059848e3d5f772382fc28cd9a711462e","scripts":{"test":"mocha"},"_npmUser":{"name":"bendpx","email":"ben@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"3.8.8","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"4.4.3","dependencies":{"lodash":"4.11.1","moment":"2.13.0","express":"4.13.4","restler":"3.4.0","node-uuid":"1.4.7","cookie-parser":"1.4.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-1.0.0.tgz_1463041502258_0.8877568163443357","host":"packages-12-west.internal.npmjs.com"}},"1.0.1":{"name":"perimeterx-node-express","version":"1.0.1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@1.0.1","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"c6d3a7b1ca9fd771edae89d56f4923c598740f4e","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-1.0.1.tgz","integrity":"sha512-E6ZJTh+PfvGr8rEzurY6lGGcKIIuc8d81wrHUs/RB/v13Q/6ow0BxgdyAaz11Tdm/tWoBIPxuLCadFIsMhJMAw==","signatures":[{"sig":"MEUCIQDg6f6YECBSEBYT3lq3cENlOJskOerZhxs7+Sl6vNDcWgIgf9dkmECWLqovBWvewTx9/11+gr4flRk5YDgJ7IWmUzc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"c6d3a7b1ca9fd771edae89d56f4923c598740f4e","gitHead":"e022a567474f0cb55690ec4ba4de43a4aa35149d","scripts":{"test":"mocha"},"_npmUser":{"name":"bendpx","email":"ben@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"3.8.8","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"4.4.3","dependencies":{"lodash":"4.11.1","moment":"2.13.0","express":"4.13.4","restler":"3.4.0","node-uuid":"1.4.7","cookie-parser":"1.4.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-1.0.1.tgz_1463091339826_0.04542739759199321","host":"packages-12-west.internal.npmjs.com"}},"1.2.0":{"name":"perimeterx-node-express","version":"1.2.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@1.2.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"681f800ce591a27dcfe095479d8e359699717112","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-1.2.0.tgz","integrity":"sha512-fVFIdsYeMKf3w0AtRpiXPAQubW0oT2iNnW+/+hqKkX0gwS4opOBh4h4WALYMdXGFaOn3Jlvxtb5IAAUyttOp7g==","signatures":[{"sig":"MEYCIQD+UbIRK6A9RYEarNDdIBnywSn5+GaB+oFx+HjnaZZJcwIhAM+/NASJWlTto9SLTz3Bf2Yc46ujSkRucK+XPrrEC58e","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"681f800ce591a27dcfe095479d8e359699717112","gitHead":"9149f61d9a7be4e0dd5285f1351ad14f159d0881","scripts":{"test":"mocha"},"_npmUser":{"name":"bendpx","email":"ben@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"3.8.8","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"4.4.3","dependencies":{"lodash":"4.11.1","moment":"2.13.0","express":"4.13.4","request":"2.72.0","node-uuid":"1.4.7","cookie-parser":"1.4.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-1.2.0.tgz_1463249546780_0.5469591468572617","host":"packages-12-west.internal.npmjs.com"}},"1.2.1":{"name":"perimeterx-node-express","version":"1.2.1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@1.2.1","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"e301b130cc777cdd9e64c1cc7ff878ff5659ab95","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-1.2.1.tgz","integrity":"sha512-O5FQ59H/n0/Vy/Fs5b8Tk4WfGmkk2yXbsgi3Fms7QV/TnRiv/aednjiXGKfXO3YyyKmn8rwmoWDa4DpnInkeLw==","signatures":[{"sig":"MEYCIQDuBzG8aPICU9NiRQ3+vLTlcfyZiaSTz10fcU2ljZ5wFgIhAJd02WtHMfo2SC3yl1QhOdwAntA+rRbX0koqrv9+sg3q","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"e301b130cc777cdd9e64c1cc7ff878ff5659ab95","gitHead":"742ca16e44d7475e8747d03f75273b08ea2ef614","scripts":{"test":"mocha"},"_npmUser":{"name":"bendpx","email":"ben@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"3.8.8","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"4.4.3","dependencies":{"lodash":"4.11.1","moment":"2.13.0","express":"4.13.4","request":"2.72.0","node-uuid":"1.4.7","cookie-parser":"1.4.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-1.2.1.tgz_1463250172192_0.7619900738354772","host":"packages-16-east.internal.npmjs.com"}},"1.3.1":{"name":"perimeterx-node-express","version":"1.3.1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@1.3.1","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"ea4b31060f77b7aae26afed5347f67e962428f49","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-1.3.1.tgz","integrity":"sha512-1v4xs84NgYyQJs+TqYx5hqmJ1cOwda000WT3Pow8YEcELyAXxwhmupkUutClI7Kf/72xdfOr6HxWDRe6xv7KnA==","signatures":[{"sig":"MEUCIQDCBCmhTooRCQrPU6IdENHF9HbYkVBdICCrLHg93CTg7wIgBBuqU/M63fVwHPQsb/OPwPyML3oY3wW6z2ci2sDWZOg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"ea4b31060f77b7aae26afed5347f67e962428f49","gitHead":"7b9b16cef48c357c9a6050918d0f45224392543c","scripts":{"test":"mocha"},"_npmUser":{"name":"bendpx","email":"ben@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"2.14.7","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"4.2.3","dependencies":{"lodash":"4.11.1","moment":"2.13.0","express":"4.13.4","request":"2.72.0","node-uuid":"1.4.7","cookie-parser":"1.4.1","agentkeepalive":"^2.1.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-1.3.1.tgz_1463432160279_0.012791393091902137","host":"packages-12-west.internal.npmjs.com"}},"1.3.2":{"name":"perimeterx-node-express","version":"1.3.2","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@1.3.2","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"656bfbc3415e9b38352f30d608d7ffa847241c83","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-1.3.2.tgz","integrity":"sha512-hpwjgpD0i1k/LZ6oANv+vihrqG2MSYFEFQPW/hUrFUpA45v2M4jmdswMF+6XGz1ZmG7jP5L+qZkwyo+QbmXxRg==","signatures":[{"sig":"MEQCIFSEMsYQHrEhm6rAwKtefg7Ig7iLv7kMw+wm++i9qQveAiBd+QWipmSCT1z0FwfIF2RR7JIWATN6KAfbUkc/P4mZPg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"656bfbc3415e9b38352f30d608d7ffa847241c83","gitHead":"623e5f0259086d2581d1255e74f4345ec852fe26","scripts":{"test":"mocha","start":"node server.js"},"_npmUser":{"name":"bendpx","email":"ben@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"3.8.8","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"4.4.3","dependencies":{"lodash":"4.11.1","moment":"2.13.0","express":"4.13.4","request":"^2.69.0","node-uuid":"1.4.7","cookie-parser":"1.4.1","agentkeepalive":"^2.1.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-1.3.2.tgz_1464073806144_0.924602190265432","host":"packages-16-east.internal.npmjs.com"}},"1.4.0":{"name":"perimeterx-node-express","version":"1.4.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@1.4.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"31251fdd36901830e6150d251a52a6eab12e3706","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-1.4.0.tgz","integrity":"sha512-gcDKLxdW8EnUoK6TeXle57iyY+HGd9hB3cenFHr2P9a5BzroKTW3mnYMmUsJy353kvD+YvH58ryZNNc72wN2ug==","signatures":[{"sig":"MEUCIFrUBNDine4/CMssRHrwaA+Lcp9tnJsV1PCldJjCrFSNAiEA5vc+LHtthOM+bvGCkJXXzprbORqLUfESKaZIc3YWN0w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"31251fdd36901830e6150d251a52a6eab12e3706","gitHead":"22d8e4778b1c9a59c88627f9e7d593cb21678156","scripts":{"test":"mocha","start":"node server.js"},"_npmUser":{"name":"bendpx","email":"ben@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"3.8.8","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"4.4.3","dependencies":{"lodash":"4.11.1","moment":"2.13.0","express":"4.13.4","request":"^2.69.0","node-uuid":"1.4.7","cookie-parser":"1.4.1","agentkeepalive":"^2.1.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-1.4.0.tgz_1464500543740_0.03968887194059789","host":"packages-16-east.internal.npmjs.com"}},"1.4.1":{"name":"perimeterx-node-express","version":"1.4.1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@1.4.1","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"9f7a2a9cbcd336de84aefa4b1cd40d7dbcb17e53","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-1.4.1.tgz","integrity":"sha512-He8Y0wTwIA0YfRA8f8sbL7hl/5QK5LrEx2wC7HM+pNakPn/Lr5B1nCA9OrYbkzN+8q0KHvICx+zQdYXitAMk9A==","signatures":[{"sig":"MEUCIQCtpkoUROwa7yn83oSho19bEl2Vz/+tetsGcwAtqi1jmQIgNZrx2HyBWpxwazCS4t7aOwvtXA5tu9gRZYlCpvl2GPg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"9f7a2a9cbcd336de84aefa4b1cd40d7dbcb17e53","gitHead":"aaf8eacd3cb82bce7610d03e0b214b7c6fe34da3","scripts":{"test":"mocha","start":"node server.js"},"_npmUser":{"name":"bendpx","email":"ben@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"3.8.8","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"4.4.3","dependencies":{"lodash":"4.11.1","moment":"2.13.0","express":"4.13.4","request":"^2.69.0","node-uuid":"1.4.7","cookie-parser":"1.4.1","agentkeepalive":"^2.1.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-1.4.1.tgz_1464938399403_0.2032368085347116","host":"packages-12-west.internal.npmjs.com"}},"1.4.3":{"name":"perimeterx-node-express","version":"1.4.3","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@1.4.3","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"b050164f1950d08bb948e7f24659a7b1f765e7a6","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-1.4.3.tgz","integrity":"sha512-zRcGjH6Vm1P82kbt6/qmobD6qnzvpIC2RG0iY7hzMdHb5mLBlw+iNk9Cj7cUv5AkartS0MiSddwe5aFqVaYx2w==","signatures":[{"sig":"MEUCIGTqJVKgQykESNQ3w3uaHuKtUenwhFk/eZPQ4hRb+BXYAiEAyBDvYSuPzV7YplcD/uieJdy86vnvkNNYwgOmLesK2DA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"b050164f1950d08bb948e7f24659a7b1f765e7a6","gitHead":"c3542bc845a5b626a010c88a47fb2822efc4a6a3","scripts":{"test":"mocha","start":"node server.js"},"_npmUser":{"name":"bendpx","email":"ben@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"3.8.8","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"4.4.3","dependencies":{"lodash":"4.11.1","moment":"2.13.0","express":"4.13.4","request":"^2.69.0","node-uuid":"1.4.7","cookie-parser":"1.4.1","agentkeepalive":"^2.1.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-1.4.3.tgz_1464942386569_0.5689856375101954","host":"packages-12-west.internal.npmjs.com"}},"1.5.0":{"name":"perimeterx-node-express","version":"1.5.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@1.5.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"f266dbeacd6d1957e2ff2c475049436bf2bcc819","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-1.5.0.tgz","integrity":"sha512-ouBTE6vDCZs7HwAcDFkm/CxJCZkp4LdmHXukcp/2TJ8Z7yA9GxdPKIEjwwJQ2JQ2lHa5y+QGVke7pbMhfMwd0w==","signatures":[{"sig":"MEUCIQDFjCCYQ2mRdb1Gl0Mthp68s1D+SDYt2YgWres//VfwNgIgGnzH8ly/9PQk1KLfAM2NtbFCdOoorrvTyAugGh5KtQs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"f266dbeacd6d1957e2ff2c475049436bf2bcc819","gitHead":"6080bf47b4d76cbc29279f915b9f436bf6d0501f","scripts":{"test":"mocha","start":"node server.js"},"_npmUser":{"name":"bendpx","email":"ben@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"3.8.8","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"4.4.3","dependencies":{"lodash":"4.11.1","moment":"2.13.0","express":"4.13.4","request":"^2.69.0","node-uuid":"1.4.7","cookie-parser":"1.4.1","agentkeepalive":"^2.1.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-1.5.0.tgz_1464971517853_0.5154095680918545","host":"packages-12-west.internal.npmjs.com"}},"1.5.1":{"name":"perimeterx-node-express","version":"1.5.1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@1.5.1","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"d4b05db6034fefafdf9d4aa770612f6ed7faa2da","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-1.5.1.tgz","integrity":"sha512-3nI0gqlqe6cFGe5wbUaxrL3aoMIqI66Fkhs0xALzYm17NbUoQWVcL9Lai9cva8O0nQzW7bN2CbTVb9WvKLaFlQ==","signatures":[{"sig":"MEYCIQCK4IZHg2z4VQX7GTztMxqeYF+xbakg7wxZqiDJNzVjSQIhAPIpAcf0af3n3yNtimU/011ByYA8DkYWodpSiPB0JIqA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"d4b05db6034fefafdf9d4aa770612f6ed7faa2da","gitHead":"cda63bd3c5721c055f576b791ed01da87a3a1bd1","scripts":{"test":"mocha","start":"node server.js"},"_npmUser":{"name":"bendpx","email":"ben@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"3.8.8","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"4.4.3","dependencies":{"lodash":"4.11.1","moment":"2.13.0","express":"4.13.4","request":"^2.69.0","node-uuid":"1.4.7","cookie-parser":"1.4.1","agentkeepalive":"^2.1.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-1.5.1.tgz_1465748054250_0.9614988684188575","host":"packages-16-east.internal.npmjs.com"}},"1.6.0":{"name":"perimeterx-node-express","version":"1.6.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@1.6.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"e805c63693ea727fea42f3127a29fa5a3dfb95c6","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-1.6.0.tgz","integrity":"sha512-67u18JzO10L6Zeoh+67cU6Ro6KXGT0N9v8NmyL01HOjT4EeALPXwobsxWJbTopm5L9oJ04Rwpf96jInBdb2L9A==","signatures":[{"sig":"MEYCIQC7SAfmVdeYJI4WxXLZTwPjDlY+AliNX1SArXW6ZpPgWQIhAKQJybKmgEpeKLHp0NPLL4LSFI3I87J+8SPXtYtKkiYK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"e805c63693ea727fea42f3127a29fa5a3dfb95c6","gitHead":"fef2798009e15597894c066b86c27acbc8dfd630","scripts":{"test":"mocha","start":"node server.js"},"_npmUser":{"name":"bendpx","email":"ben@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"3.8.8","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"4.4.3","dependencies":{"lodash":"4.11.1","moment":"2.13.0","express":"4.13.4","request":"^2.69.0","node-uuid":"1.4.7","cookie-parser":"1.4.1","agentkeepalive":"^2.1.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-1.6.0.tgz_1467285873075_0.4554653116501868","host":"packages-12-west.internal.npmjs.com"}},"1.6.1":{"name":"perimeterx-node-express","version":"1.6.1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@1.6.1","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"be16cae56eea38d832f71989ee7565b489a8e1e1","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-1.6.1.tgz","integrity":"sha512-4MhrGynKtendMPJcRgVYeg/UQbEcT9iyDGSuC6lmllKhLqeVDdIJVpViLytOZQUGVK65vMx3U2QssB/Rsa1tMA==","signatures":[{"sig":"MEUCIBq5j2/8pquCb7MJ0tqMkvrZSUDFSdXQQpcZtAcpU7/zAiEA2Hr0L0leS6A/kruz6Pw4ipE1/Ylq39O2yDXycuTFjrg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"be16cae56eea38d832f71989ee7565b489a8e1e1","gitHead":"0dcccc636f6f1a77c537c19638f7a74f949f140f","scripts":{"test":"mocha","start":"node server.js"},"_npmUser":{"name":"bendpx","email":"ben@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"3.8.8","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"4.4.3","dependencies":{"lodash":"4.11.1","moment":"2.13.0","express":"4.13.4","request":"^2.69.0","node-uuid":"1.4.7","cookie-parser":"1.4.1","agentkeepalive":"^2.1.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-1.6.1.tgz_1470895383208_0.8027849143836647","host":"packages-12-west.internal.npmjs.com"}},"1.6.2":{"name":"perimeterx-node-express","version":"1.6.2","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@1.6.2","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"da1606abec0c4f9369559ba84633a79be1fe24ca","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-1.6.2.tgz","integrity":"sha512-HNtlmn2wlbN5pOg+eMNX0N2J+/R6zhPyXP3vrtDx0S77AeST4mcgkbsEhx1T76CI9qoI5cS/KxefPvVn9t7X8A==","signatures":[{"sig":"MEUCIC7KfuPtiRHTmesui0Yo93mmmLGWkUCYj4g04iF5Y5kLAiEA137pJXWvp4k8IoKEff0IAEbBeGN9oCtq7xkm3KaEOrA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"da1606abec0c4f9369559ba84633a79be1fe24ca","gitHead":"dda2b1910ea526679beb3b03258f1db9f200a41f","scripts":{"test":"mocha","start":"node server.js"},"_npmUser":{"name":"bendpx","email":"ben@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"3.8.8","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"4.4.3","dependencies":{"lodash":"4.11.1","moment":"2.13.0","express":"4.13.4","request":"^2.69.0","node-uuid":"1.4.7","htmlencode":"0.0.4","cookie-parser":"1.4.1","agentkeepalive":"^2.1.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-1.6.2.tgz_1473455650562_0.11359643121249974","host":"packages-12-west.internal.npmjs.com"}},"1.6.3":{"name":"perimeterx-node-express","version":"1.6.3","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@1.6.3","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"b54eedaaada03141a6142067f0a3fc8749bbce3c","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-1.6.3.tgz","integrity":"sha512-L69Vy9fp1in+po7kq9r8VMEQyM2IQjLb+h4mWNenvMKagRxWC50MVHAiyUs7/FzE4IpaiqJnyZhwV7D9r2xINQ==","signatures":[{"sig":"MEYCIQCsZCqAtNr/ie0OSS4WM6NE/lcaOwFi1IhgGJiaXLkekwIhAP4zAdxvqM7NcFUJRmK0FT/3uANOlnOOLvTCt77f/6gJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"b54eedaaada03141a6142067f0a3fc8749bbce3c","gitHead":"47290e5e4722f62c1db6c0982ea01b086041a4d8","scripts":{"test":"mocha","start":"node server.js"},"_npmUser":{"name":"bendpx","email":"ben@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"3.8.8","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"4.4.3","dependencies":{"lodash":"4.11.1","moment":"2.13.0","express":"4.14.0","request":"^2.69.0","node-uuid":"1.4.7","htmlencode":"0.0.4","cookie-parser":"1.4.1","agentkeepalive":"^2.1.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-1.6.3.tgz_1474351491195_0.5153876563999802","host":"packages-12-west.internal.npmjs.com"}},"1.7.0":{"name":"perimeterx-node-express","version":"1.7.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@1.7.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"abf8786d24bc3ee6957bd8bd6be8b9556201e2e0","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-1.7.0.tgz","integrity":"sha512-8D/n49JbIzUoZ2vfLNWxjq6UEYt/93ztThb/ZyHE/svQBBkN+L/usanrsh95uHHJrYuraA3cC0vrIr7JlmBBlw==","signatures":[{"sig":"MEUCIQCPA1GKqOWly2eCZjdWxzkMAKgXPzDJliobfaX3smWTDwIgRmf24sBbeLFGuL5bzoZdLvZdroOvwzpbZ4OwBKu2Tq4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"abf8786d24bc3ee6957bd8bd6be8b9556201e2e0","gitHead":"ca0f37d6edefcfd901285c16d082901075312a7e","scripts":{"test":"mocha","start":"node server.js"},"_npmUser":{"name":"bendpx","email":"ben@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"3.10.8","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"6.9.1","dependencies":{"uuid":"^3.0.0","lodash":"4.11.1","moment":"2.13.0","express":"4.14.0","request":"^2.69.0","htmlencode":"0.0.4","cookie-parser":"1.4.1","agentkeepalive":"^2.1.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-1.7.0.tgz_1480594749097_0.9044990842230618","host":"packages-12-west.internal.npmjs.com"}},"1.7.1":{"name":"perimeterx-node-express","version":"1.7.1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@1.7.1","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"871d8eeb481767f7e9c5b20b7c60ed870bb23ede","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-1.7.1.tgz","integrity":"sha512-jIK93VMIxvKbgyLYqJqgFS8JgALXfYFOwl/v57EJOqtiisazW5o+6BBnI0NkR2yNDDwIQM7i0IW8qCxxB6HpBA==","signatures":[{"sig":"MEYCIQDX2zgXMI88Rqzr0g4LJkUlakB14Q/7ZhQXxcffh6VcLAIhAJPovbx2F8oJCW7EXyvkEvjZx0uxjP+89z1fefz4bZXR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"871d8eeb481767f7e9c5b20b7c60ed870bb23ede","gitHead":"65441fdda00724aeb74e3c658562584699ce6749","scripts":{"test":"mocha","start":"node server.js"},"_npmUser":{"name":"bendpx","email":"ben@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"3.10.8","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"6.9.1","dependencies":{"uuid":"^3.0.0","lodash":"4.11.1","moment":"2.13.0","express":"4.14.0","request":"^2.69.0","htmlencode":"0.0.4","cookie-parser":"1.4.1","agentkeepalive":"^2.1.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-1.7.1.tgz_1485847597542_0.7290410487912595","host":"packages-12-west.internal.npmjs.com"}},"1.8.0":{"name":"perimeterx-node-express","version":"1.8.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@1.8.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"4a19f177c3ef98a6419ba9178ad5b98c108d61f7","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-1.8.0.tgz","integrity":"sha512-o89oUYgaC0CPp/PPSgZzpotfm527i7evWPduur4+CKPj3IGzUasP0BdWyTQt+huYCZopmPs5tneLyUXCKxk/CQ==","signatures":[{"sig":"MEUCIQDpO2tPWvwSRpCB4g0ny8mmnJS4IE1kINWrJS8iS19A1QIgL5+Wa7Musav1jCzdeU7xEJt4BTCJDz4fcVG85V0uLMc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"4a19f177c3ef98a6419ba9178ad5b98c108d61f7","gitHead":"2f49b66ecfe2ac5543c44d50c6e9b5f252a31f6d","scripts":{"test":"mocha","start":"node server.js"},"_npmUser":{"name":"bendpx","email":"ben@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"3.10.8","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"6.9.1","dependencies":{"mu2":"^0.5.21","uuid":"^3.0.0","lodash":"4.11.1","moment":"2.17.1","express":"4.15.2","request":"^2.69.0","htmlencode":"0.0.4","cookie-parser":"1.4.1","agentkeepalive":"^2.1.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-1.8.0.tgz_1490492863878_0.8153026355430484","host":"packages-18-east.internal.npmjs.com"}},"1.9.0":{"name":"perimeterx-node-express","version":"1.9.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@1.9.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"nitzanpx","email":"nitzan@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"680aae29b68d96950c38872aa964d60637eb5f85","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-1.9.0.tgz","integrity":"sha512-TDBGlDJRd56rrBflln8nODsMtcB0Ody5Twb6nW4Dbaux5/0m3jAVyeeZVK51255a31yptABo6miHjGnTvhVbhw==","signatures":[{"sig":"MEUCIQCjCriU1JS5PFDaFAHFPGCx9pNze2gu1JH0JSgO0hTt/AIgW2rZ/9VwNULIDORs7dLerJGVqikfjw+yeS7afpQvGHk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"680aae29b68d96950c38872aa964d60637eb5f85","gitHead":"a3de1310468a71206bda744767d859065851216a","scripts":{"test":"mocha","start":"node server.js"},"_npmUser":{"name":"bendpx","email":"ben@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"3.10.8","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"6.9.1","dependencies":{"mu2":"^0.5.21","uuid":"^3.0.0","lodash":"4.11.1","moment":"2.17.1","express":"4.15.3","request":"^2.69.0","htmlencode":"0.0.4","cookie-parser":"1.4.1","agentkeepalive":"^2.1.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","sinon":"^2.1.0","rewire":"^2.5.2","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-1.9.0.tgz_1496907996751_0.5078844630625099","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"perimeterx-node-express","version":"3.0.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@3.0.0","maintainers":[{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"nitzanpx","email":"nitzan@perimeterx.com"},{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"e28ab750613736bf498320102f2ccfb7adc0bbc3","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-3.0.0.tgz","integrity":"sha512-Y2Sb0CsqQ69f5/TRF0RphITWN4njiRq4nlcZHJ0AWTBMJnAV1xxndYzzngGA7bPGSDKfP4DTwVu2YJU9BKlB9A==","signatures":[{"sig":"MEUCIDq1juh2ZSwRdGwJ3Xi4trC9jveG6mBzarFR70731a4fAiEA5IndGA6J2ot1xD4TZYPn0d2nivVuZ8UdE80GJwOObkg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"e28ab750613736bf498320102f2ccfb7adc0bbc3","gitHead":"00debd393df54b17cf9e483915785ee28c1bb4b3","scripts":{"test":"mocha","start":"node server.js"},"_npmUser":{"name":"yaronpx","email":"yaron@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"4.1.2","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"6.10.0","dependencies":{"mu2":"^0.5.21","uuid":"^3.0.0","lodash":"4.11.1","moment":"2.17.1","express":"4.15.3","request":"^2.69.0","cookie-parser":"1.4.1","agentkeepalive":"^2.1.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","sinon":"^2.1.0","rewire":"^2.5.2","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-3.0.0.tgz_1499331957852_0.49610755289904773","host":"s3://npm-registry-packages"}},"3.0.0-rc1":{"name":"perimeterx-node-express","version":"3.0.0-rc1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@3.0.0-rc1","maintainers":[{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"nitzanpx","email":"nitzan@perimeterx.com"},{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"7cdc0df68e3f3bdaee5945385d6b4e45bdca2dfb","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-3.0.0-rc1.tgz","integrity":"sha512-QiQ3K5jKXrkowFQX75k3M4gJDyBVnnZgqIJ6+8fTIqUbUbdvz8Fg5pd72XzPdp8j6RBs69oM2OQNXr/bj4mpeA==","signatures":[{"sig":"MEUCIAfxiYsYP3wgviz2ZL+ZOk0uXp1m5v06zsxD9TsOEtkIAiEAu0m4cXlLRqSYpkDXumgBMisjOEHtACitRDsyRXYLTt4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"7cdc0df68e3f3bdaee5945385d6b4e45bdca2dfb","gitHead":"00debd393df54b17cf9e483915785ee28c1bb4b3","scripts":{"test":"mocha","start":"node server.js"},"_npmUser":{"name":"yaronpx","email":"yaron@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"4.1.2","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"6.10.0","dependencies":{"mu2":"^0.5.21","uuid":"^3.0.0","lodash":"4.11.1","moment":"2.17.1","express":"4.15.3","request":"^2.69.0","cookie-parser":"1.4.1","agentkeepalive":"^2.1.1"},"devDependencies":{"faker":"^3.1.0","mocha":"^2.4.5","sinon":"^2.1.0","rewire":"^2.5.2","should":"^8.3.0","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-3.0.0-rc1.tgz_1499762738115_0.3154866143595427","host":"s3://npm-registry-packages"}},"3.0.1":{"name":"perimeterx-node-express","version":"3.0.1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@3.0.1","maintainers":[{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"nitzanpx","email":"nitzan@perimeterx.com"},{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"3f4588fa1ce14aeb6720e837f50ade39df687e2f","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-3.0.1.tgz","integrity":"sha512-tz7mBQskjhKQTwLGxQshsqElDfYch4a/jn33Bqr3LkfE6Xp4+djjuKItjNngshzV4w8lWsyZ3LGTfOg3fPVJXg==","signatures":[{"sig":"MEQCIBzMPsGKTtL6OfJXIVxevxnya77Li9CHB9tJ+hBBJO+1AiARgeHBILZWEVgMkxLWAexGhpr2lJy45CynpMV7NPErRA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"3f4588fa1ce14aeb6720e837f50ade39df687e2f","gitHead":"d16eed7f698fe13108b19918c95e967baa6b7afc","scripts":{"test":"mocha","start":"node server.js"},"_npmUser":{"name":"yaronpx","email":"yaron@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"4.1.2","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"6.10.0","dependencies":{"moment":"^2.19.3","cookie-parser":"1.4.1","perimeterx-node-core":"~1.0.0"},"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^2.4.5","sinon":"^2.1.0","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-3.0.1.tgz_1514126738980_0.758576387539506","host":"s3://npm-registry-packages"}},"3.1.0":{"name":"perimeterx-node-express","version":"3.1.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@3.1.0","maintainers":[{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"nitzanpx","email":"nitzan@perimeterx.com"},{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"069413b0236b39df81954485036d43b70903591f","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-3.1.0.tgz","integrity":"sha512-9yXldkZZpiusEvHNsGuJQUFffGQT6m1G6C0dQpOiN8LFEVeH5MFgth+qZ281jpBxrGcuGncdvqTvJCCgiCN/ZQ==","signatures":[{"sig":"MEUCIHhVwI0gNpo/v5ZFMVnlV3aDOqlkybBgchkTjaS8FxavAiEA9pm2v07ljw4THR+yK3RYhsmJVuKU3znIMlctEkLQvbg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","gitHead":"bd4f34e8135933bd6f88719d1f04aef59ce1bf31","scripts":{"test":"mocha","cover":"istanbul cover _mocha","start":"node server.js"},"_npmUser":{"name":"yaronpx","email":"yaron@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"5.5.1","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"8.9.1","dependencies":{"moment":"^2.19.3","cookie-parser":"^1.4.1","perimeterx-node-core":"~1.1.0"},"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^2.5.3","sinon":"^2.1.0","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-3.1.0.tgz_1516621218216_0.3269693760666996","host":"s3://npm-registry-packages"}},"3.1.1":{"name":"perimeterx-node-express","version":"3.1.1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@3.1.1","maintainers":[{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"nitzanpx","email":"nitzan@perimeterx.com"},{"name":"bendpx","email":"ben@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"83b8e5ebfc9808432c118075a119d8b4b95a5ae9","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-3.1.1.tgz","integrity":"sha512-aHzyQE7EOjPAReNp5df4HmOmMwksgZIwVLrdrw/ij8qiVYWl9eg02NmVCycokaKc1vwcuYkXxlqe5hZlPbXOkg==","signatures":[{"sig":"MEYCIQDcEKd8aI17RuiRc8jTWWs7jxvMMfqwyUeLrs+Q0NObkwIhAPQavT1+wtdC5sG2Sgtfy0rkMWgvVKBvbRh0AcKDtNIY","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","gitHead":"94262301ba5912bebe767e5ddc3087fd03d47379","scripts":{"test":"mocha","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"5.5.1","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"6.11.0","dependencies":{"moment":"^2.19.3","cookie-parser":"^1.4.1","perimeterx-node-core":"~1.1.3"},"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^2.5.3","sinon":"^2.1.0","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express-3.1.1.tgz_1516798763859_0.6105168326757848","host":"s3://npm-registry-packages"}},"3.2.0":{"name":"perimeterx-node-express","version":"3.2.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@3.2.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"nitzanpx","email":"nitzan@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"c3306127943fc9136a310e50cdb1020cdf87cc66","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-3.2.0.tgz","fileCount":11,"integrity":"sha512-nUCPTfqEvp8K6M91hPBLeSORK0bLPP9BY81E9vCVGFUJQ0Mc5gpbe/RYwgANOss8+YV8l1QzZoNsGE6hQfSDUQ==","signatures":[{"sig":"MEQCICVVJ2iM6X0U+OFG6qOx0No+9sWiOvQZveG/E/8jSSTiAiACwVSgPXKJMolb5uCNursYVP5TInk/B+RrDj5APx30Sg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34106},"main":"index.js","gitHead":"c15393fe241ea30bcdea9b50f7688a8913d5f29b","scripts":{"test":"mocha","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"5.6.0","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"8.9.4","dependencies":{"moment":"^2.19.3","cookie-parser":"^1.4.1","perimeterx-node-core":"~1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^2.5.3","sinon":"^2.1.0","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_3.2.0_1519116784894_0.644012805295997","host":"s3://npm-registry-packages"}},"3.2.1":{"name":"perimeterx-node-express","version":"3.2.1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@3.2.1","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"nitzanpx","email":"nitzan@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"765b5a98511bbfb999fe4d923a1cee62a5fcee2a","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-3.2.1.tgz","fileCount":11,"integrity":"sha512-8tegfp+9ymf4SWh+HiflHVfyPVqIPmYGjwMG4vT75onAKo4xmHxw/qb/hshEodj44r+81bQT/WoNQd6sxtOWJA==","signatures":[{"sig":"MEUCIQDbO5QeM8ingfCckYpWy6XFcTVSFnmpGe2Oyma6XSQA2QIgIvc7ToSfWd5Yu+8ShPecZ+yh71R0Ar9c6XGapNcNxXo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34121},"main":"index.js","gitHead":"6bec125e2cc55dfdc05b29b60cce71d6745b9dcb","scripts":{"test":"mocha","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"5.6.0","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"8.9.4","dependencies":{"moment":"^2.19.3","cookie-parser":"^1.4.1","perimeterx-node-core":"~1.2.1"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^2.5.3","sinon":"^2.1.0","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_3.2.1_1519822263397_0.9924033614991594","host":"s3://npm-registry-packages"}},"3.3.0":{"name":"perimeterx-node-express","version":"3.3.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@3.3.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"nitzanpx","email":"nitzan@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"1b7dfaa7130c2845cdbb047c3db7d0f13fabe1a6","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-3.3.0.tgz","fileCount":11,"integrity":"sha512-gV/WsatsrdHvozdPrqSiY6Lp0/j6Vh7m2Pq+neYUPSF3IOlGRIh5sS/KyxYV81zqTZI0dHeNuleTIhRCsYSl+g==","signatures":[{"sig":"MEUCIEZwFLbP089Nr7AZEcFebwSCSJAhVgwBKGYJbDvUsTPoAiEAqZj/CU3WpqIgld3J/shJ8+DLDhItWENbl+FiImOuDc4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31988,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbHST7CRA9TVsSAnZWagAAT3gP/jq3xUFFb18lWWUE/2zn\nC8QxN69cUdm4B0hvBpAVckArv5OSj5RGQR0YCKYvQyPoEF9frWnlwdEZSN/p\n3QG+dvqZyqZ3ZOSYaqv+j2YdKucLrnGkp8ravBN/3hQiQlnx1q61iRm8PJuo\nwKGQ5oHKh7G3lc1Pjvsw+caqIfWk0ImJ9paqV4jAnlgK9BMdVEuEq7yk82ox\ntm67h6GE/9mFNAU1rzDIJAPXIbJ4MNrBWK0RZU8Wxx63qv8s6Roowk/ltI9L\n68J10VbNEn0TQjjd9kQrQ6nt0P47eNUQx0e1sJypI6oQbgU7w6tQHOmUcmBs\n1jeuJ4sh/Tle9lIRynzOqaTPZ7My/90LzoiWTRYUVQGLQMnQibHSsqrdQJhA\nS+aeHztimBXlfHt1sbygg2nOp6neetPbmE8MUru538a5uXp6beUM4lNb2pSl\nDqaU6xDjuU1GAzVlQ8ODpONARrHP6sH+ewk6KsRzUlMj8qxmZx0LJC+167gF\nT26Q7zwFZwDzmu+/hnK7Ar9U6JBV3ec3FQt5qLH3pf+nuNa3cd4MQXqS6oCH\nNdT9CGOejcnz9sq+yvVfFXUP8ddEPfzNIzRhVIciurvUUgUBxe9gvVJGghK4\ngkDDfNQE+UUitCFenWRqeRs7WuFGjUsEUkXfKmr/0xDLPprzGy/5qLeL57W7\nbihZ\r\n=d5LQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"2c5443a5b4f5055a6cf64adb09e41baf878432f8","scripts":{"test":"mocha","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"5.6.0","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"8.11.1","dependencies":{"moment":"^2.19.3","cookie-parser":"^1.4.1","perimeterx-node-core":"~1.3.0"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^2.5.3","sinon":"^2.1.0","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_3.3.0_1528636666340_0.8828272535116606","host":"s3://npm-registry-packages"}},"3.4.0":{"name":"perimeterx-node-express","version":"3.4.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@3.4.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"nitzanpx","email":"nitzan@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"4e9596e66b93ad8e9be204d3f596a80b0ac27398","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-3.4.0.tgz","fileCount":11,"integrity":"sha512-XsmQFT7aWPB+XevwqgLoUMe4FzscaJtpbju0LAqqx6FNYLQ/O7oDvDU2FIkgSE/ur14kXlBk5dLhGa/HUh6n1w==","signatures":[{"sig":"MEQCIBL0VrL6T5d8W2mbfjYQWAGMKjfAQuIOgqR6ljnPentkAiB/OF7BNFgjMv9Eii1joP6YOE4B3Y5CositoFZMn6lKIg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31718,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbRcg0CRA9TVsSAnZWagAAKusP/2oOEVWseYAVesKTFKeZ\nreZH8lkuoKWNtw4afyqnjtfDJx76mZ865ymH3RiauH5sdryqj/4DaA/HH9bU\nEstNOUrbztdL9Lb4FASG9fdppFjEO3Yd0wHoMBSJJADrW4QU4fyRSoMwEnSV\nCXKWnFbykrGERP+POFz2xNRPjMT/hcGTQTxzOO/8H4MnWCn+xyDdfx4z5DOE\nLbCxNYiyYkmI+CbvDD45fyf3fp4+/4Y0kEh/cAgeNQxec5CvWt4CycqTR8oq\n5T33LMf5sDxaRIfd9M5hGhd0+NaSSubZhDMdh2XX0JTWm13uRONNNgeOUsdj\nTuIEUuV9ioHfAywM7R4Wlxbf1gITSXUoBNjv5c6Q/g6vjVJa2stx6LH0/aji\nz4GFXCKLbzm46uOelMl0H1VAWY7PT/qRNnWAENZg12ryR4csluYNKBB4AJEZ\nz84EuisXZn+2sjmbJyrS2qjjC0QxpMooygeIlVz8ghWG4/UDLfqXSWiBIUcY\nATAOsAKKV+c/lcwkQS8fwLneg1fpYqX936/q0TBoSle/Z+NALRhuW0r8o4wZ\nG9N4Bnl9AWbsUMYkyubgzsmGaJyMUoda7XTQVhneIRnTqLsWAqJsNNX4Q14y\nW1ZF/u9LlYy7l3RYuqJaIui7FnmLm8YD96VaRgaBiC0y2N/e5yLhMt+84HO4\n4C1Q\r\n=md5M\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"43e3d251e15d61041004af8193fe9fc76b74f676","scripts":{"test":"mocha","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"5.6.0","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"8.11.1","dependencies":{"moment":"^2.19.3","cookie-parser":"^1.4.1","perimeterx-node-core":"~1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^2.5.3","sinon":"^2.1.0","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_3.4.0_1531299892677_0.8046209554139201","host":"s3://npm-registry-packages"}},"3.4.1":{"name":"perimeterx-node-express","version":"3.4.1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@3.4.1","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"nitzanpx","email":"nitzan@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"bae6de444388573a9ef0733b62a5d9f086840887","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-3.4.1.tgz","fileCount":11,"integrity":"sha512-U6xSUs7gAZq1j8a1Ul84A32d5Kzm5urYXvMHehGtTnfO3GyLG/Sdc9lJk6ePT0w2BXJBWnRsAm6l657P1ZmNQA==","signatures":[{"sig":"MEQCIGLI5B0oRNnTYcmQvCz0bFqzCnaxuBCpP08P7+ph6lKrAiAAw2uKJLYfd5jzu7FOYKXQadBDNrGjvG10oulo2tqt1Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31807,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbbFbWCRA9TVsSAnZWagAADb4P/ic7k4c7p4KEZjvFGW3g\nWthwzor34+sDsnNnAPs5wOC0SHmhQQKkCjbseTDuDOxzS353K0LEtLd9K4hQ\nCbj2aUMm/DIkq3C0PmJBnoEac6h9bBhEVHSQGmqltsRC8Lp26GI2pD+KNR1P\ngN963WjK8y0n7q9lE+TiIyVBZT4QRzHKVqImOTBIkOMx/LxS15bBR9jYf/O3\nFfZYg2turPGEhcHv1fpNQjmeOpMBsyp9JIu2ZX3qobGDcDU071EcjAicoYaf\nJKkSVkytedCsNItX6OmWfnpgdi3ocdDF9pJWXC7bVCgViU3pjDh3rBZSCutm\nfoNx6VywdkjGMCMUE6e5siYUd38CAFay5c/4WBWt2L+bZ9DEw7XCRF0SirT3\ndReZTIMFgT8CMr1PsAG5cdlPbW3bwdHzqZw8n8QfI5ub9ceeehbEHqdrvjLd\nJeRXjVxZOcDy7zqE1oR1N5xCMR6kK2JBsvF66t/RcXuyG3t8Z4Q5xk41lj/J\nF0jQgkwXb5SkM3s0A/aubTscjJetBJn6/PfSQ0sD2pqOoSTR2IQGm4NjVRck\nHiFMZrGKQHe/8Z58tdJGXWfzKuaY9xM0ON7TUXNfWyxG8FZVlv5tBEcZgs1B\n0QQoz/bqHlXZv5sfcg1ZOOHrpVoeZIPNL6wXqtfEi3QUnUwz3dpQazKl1mj6\n8wm/\r\n=H7vu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"0639f724f60f5fcaf1396266f46b16a9d1ca5122","scripts":{"test":"mocha","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"5.6.0","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"8.11.1","dependencies":{"moment":"^2.19.3","cookie-parser":"^1.4.1","perimeterx-node-core":"~1.4.2"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^2.5.3","sinon":"^2.1.0","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_3.4.1_1533826774033_0.886642547818691","host":"s3://npm-registry-packages"}},"3.5.0":{"name":"perimeterx-node-express","version":"3.5.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@3.5.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"nitzanpx","email":"nitzan@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"c303e8d9a579d65c79e6ebdc5d173bae43b4d0e4","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-3.5.0.tgz","fileCount":11,"integrity":"sha512-yEuoMuUasuOIoRU0MBHxjYtQc3R+Bf9cO249VcWdddw3o6zpBG6OYP3/30RVKrOqi8B+pz//CO+VMx9kvAiZBw==","signatures":[{"sig":"MEYCIQDjsenJke9jdTgUoMyKTCV27e6NC+oevWz0qKvB/x5Q3AIhAP3U6ZAtotUeH8fE0t4OQzTgB/5NlWnUSHC6lBxtxMyQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32058,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb1yStCRA9TVsSAnZWagAAYZ0P/jrazgdB2Z76w/eOYi9b\n+2OwEVnbm2iGzwKCBDvaDRS2exLbYU0qPtOWdJ/EIgiEqccOdj8tRibevwDH\nHdAhoRuJunAnwd2Uj/4tcOOZ6q0b+Te9U4cPzE22weKWRlhr1CAKv+6iZFlG\nfIfJjjNytvwX92bbyjxSi1rhwm42kNAdoatlVBPRjaVFgZzkdsrmukFpNE/q\nLequx2njBeQo49R9/JiueB50PRq3dS0fWLTk9MQu1LHQkewQXvgUabe4d86l\nq/OvD12HxzM1zRSZiBCs4YIv+ZQX/1ZHcZhore7jKqVO5lseXQQInIE3WxVc\nXR645GhAb/5EmrrLcSPxVtVoZS2YiRWKNfgQh2JvRxDmDXeFOL7Iu+pt/cDs\nIkrhbf3j7lSW8l81YYuPmiwXFXd/eSVHAbf6zOWxs2j7M00GNbQJ6ZSglET1\n24ZjOyWHSgv0+OhUkIL42snrhmlhi5IuBWHsafMwlzoGqq21slM7mHnn/6Rq\nBjNZohiXAj7YgCbwCOIhy/yS7/ZwNPHCusCeTDIYmx/RC6MTJTnTVXrPffyf\nd++hpvMmUjK65gl+IvENF5U+Voj9ZRdfzeUrRVd8NvC5GkU2tIukx2xAYceu\nf5zZGPMSBIQHZi7XVscp2gBKvjjXvSG0RRLevJ6MUfhj2jqI83PBkR1+7Iq5\nwN6w\r\n=6tWn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"f10e7a37961b951d8a324a1f33b030494e656444","scripts":{"test":"mocha","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"6.4.1","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"moment":"^2.19.3","cookie-parser":"^1.4.1","perimeterx-node-core":"~1.5.0"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^5.2.0","sinon":"^2.1.0","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_3.5.0_1540826284859_0.07865096823289797","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"perimeterx-node-express","version":"4.0.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@4.0.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"nitzanpx","email":"nitzan@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"2b9df2168b32f4f757e4fdd8df1e116d3f7ed3c7","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-4.0.0.tgz","fileCount":11,"integrity":"sha512-I8BjGPmkAmx58FhXjMRvtvU/rKsedcSiEBqdLF+/0G+82ro20gmNyCWV0ZQt9k2AIfyRnzkBQFFrgIFZE35T3g==","signatures":[{"sig":"MEUCIQCZif9/zJXddEmPqG8D9LsnEp54Fb397zLfqymqUoL89AIgM8OjVwP8d3EC8os2eHHWxezF3eaqY4RTOFXn0bant0w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33272,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcLMv+CRA9TVsSAnZWagAA5osP/0896oqNp88ebOTeYNjr\nJfN/+TXbY7mLYgV7yDxBYRj8qvh6JPLh3CgS5KbSsCTh6yVCHTUNR+iZMT2B\n+V46tiF0UPIu/XF5XUufWNUWd9QKi6z+fBqK34x+n8R58qU2CEjrkoqrlYGB\nkFxNLuTL1VZ0NLgyr1d1z798tb2wse6aCkRkqA1zJeyITJ7oOyALjBx77CNR\ngZNSQdxNE3CuiY8QldYorZhPYlR4NQIVRHNWcIhMEtr+jkU9CxIUQAbjZS3q\nC5Dww0AyeiMjo3pJc8lFrL8jA82Zx6g3lHAk0+IHna1aclgFY0O0V6VBNhWR\nsKWdmQ6sLXvtYhFZLhxbN4s/GaZ1tj08LxJYMyP+dkxD/lrYg3xkud3MQ3MN\nfuWcnc5gXykCwtHmXlBKn90oyAVcjh0IQSCXUXONvz1nkrDCjE47YLr5nKiM\nmZQUhS3AOcG9P7Tnd2uG77UtBVa7uIXCrIWbhhVG+2EezvspMPJ6hZGfF3Xq\n0ORb9F6a1aQBUGvkRyb/L1eMS/ypRqqe+32NuXkORgtt1wf52bVgWKd31VeT\nmlWvCnvhmdBJ4RjIJSj5qhFrEClcACtEQs+IezW2xKad4HXLzDaoba4Hd1QD\nCBf2cbQ0kuja6UERmxOBZfJLi7nGOe+OJcAQvDyzh79YbYSgKuPWVFiS6lWV\nC8R3\r\n=Ro9Q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"710b7619edfaee36c56656e370d25e74b03edf83","scripts":{"test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"6.4.1","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"moment":"^2.19.3","cookie-parser":"^1.4.1","perimeterx-node-core":"~1.6.0"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^5.2.0","sinon":"^2.1.0","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_4.0.0_1546439677583_0.8763517111278163","host":"s3://npm-registry-packages"}},"5.0.0":{"name":"perimeterx-node-express","version":"5.0.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@5.0.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"nitzanpx","email":"nitzan@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"bf80e8a3608463bf6414972882652b6ddd83ee4c","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-5.0.0.tgz","fileCount":11,"integrity":"sha512-hklembyGFgMcfyh7WqKrG1mVewfxSBGh6cHfPDpQ9/XWGVj3C5MONIGTV3sNhATF3LP2K89Vud/fjYijqoIUQw==","signatures":[{"sig":"MEQCIEJsQkjshpywP7xrSTwesdmsgYSWUHo1RjTM3M8zA2ykAiAcESyFcWRqGoLL1OtJ7UQORKZjqpGFcdmsekaD5OuNAw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcOx9mCRA9TVsSAnZWagAABhYP/RAenoAyxo24nkN2EMB3\nIJ+UX6FTbW55qCypblDNnA3WIhE2M8goYN/IQLtIooh+mUJBCxXYv5jKY8LX\nzIROs5i1lBLMEEi2RQqL1hj6BgTUJzmPD7bcKy21zaZo/ESFTYnK8+OoOF84\nHRZv+GfNiLzCat4hPBKWnBTov3ZuddCIfXk+z291MI3XCg/PXiWvZSfU0tCt\ni5igSIYI5dvk1SbRCtI1LxcHmM28ePi0yBS3pdtujHsAYPn+6K2MhIK/Is54\npIRQ9iz7rfWkx37QPi7Gml/Dyc1XYHHc8LokGRSCp/CiR2fwX36u6qyJUMnj\n5IoLiVsLLlCIfCn10YGr+Qwhi0PjPkSlLdWaG5og0lWU7hx5H/Ks20xB4rNl\nkw0tMOe22UTiMk5lkVuM6soSGSgP4f1B5gDom029GVE5UQ7lf69mlQNmSkkx\n7dwUKN1SOa/8bdmG/i3j/3H/eQ1pMPi7RUO0bdKzHIgKbj1H7/45KjTENQ56\nRFBOuTohJregCNe4zOa70LV+tNBnv3B+5j4Vtc7LQ9XJ8kVgIY+m5c5RdCtJ\n6aGOfuVBfWchhQb0Pvq/YBRNvH1RvIb1tYiBdlVuInjwmHiMsZ7FIR1NJUEY\ntFseKyiWZuPYDDrrvf4PmpbE/+DuG6zHbs8gEchAybEMKLUKoghWRj4OTd32\nNEYW\r\n=Ddbw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"4553d6f75dba139a1447b9f2f8697a292750f5b5","scripts":{"test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"6.4.1","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"moment":"^2.19.3","cookie-parser":"^1.4.1","perimeterx-node-core":"~1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^5.2.0","sinon":"^2.1.0","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_5.0.0_1547378533576_0.8090040178582973","host":"s3://npm-registry-packages"}},"5.1.0":{"name":"perimeterx-node-express","version":"5.1.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@5.1.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"nitzanpx","email":"nitzan@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"e2a13a4256f03f3c9f2bfe1612170aaf658992c6","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-5.1.0.tgz","fileCount":11,"integrity":"sha512-N+nfgaMgqiQE9WZIGE+hGW9iIKDQkk1no2yCt3F5A8Ib0v7oiRaz+G9R0+57CZJd2+cb9smMaOgGxXs21HR21Q==","signatures":[{"sig":"MEYCIQDFwU/UNEB41MDJtS6Q2MuYeYE/pYJ2dg5bqz8XhNNiwAIhAPneWvsVDdu8v5STUwduZ8djSSaF4/u+ozNnA5pJlm0T","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34992,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcc+DaCRA9TVsSAnZWagAAvJIP/i3Z/h1/cyw10w2L6hWC\nID/ZvoD66yppqyVzqyzXBsCg1WZ0c3xBnLvWcqigEfjRrgu9LShKA+ITahYH\nos+creVEgdmWu6cZAvybG5JxnnbTaHIed52TW9aqazqOo/ejoLq1WPTKc7ts\nSTD4MXXWLJ0Bga66BvYnTAeNVUln9QmJzuXYxaLKyDgcv48S/Escilo3qQVn\nq/+hwhTECHaWYzpWDXEDcI/kx5/96h03TC4zswjS0SSLdTOd3JuvaEi2g5tu\n94Bw6AE4lK4Jf8EMCa/ETkzwQgjv5GNUfyhiNTQAtu9aMsnrLWAmpYtb03hC\ngyHVzrqsbcpGztyK8+WPoiSkPRQqxe/AjQNk25JHyqPgvRACl8SHjCt7oJ5M\nL2ca+OQLnkklzaZs/o2gSgzb9z+aECz5mVIi6gJCn7fV+i0sAklvaGin9dSB\nYf5kefGyBH3/qqk06YFXKrNWk7ckcLn6JIkN3wFTB2EKntuCMTPMLFDvc5cw\nFCIYOvH83ESkFUyphhuqU/EmNQ4RSfxlllGHBPZIUXo09ppkPhqyqAf6Yank\n0So6lpOW0OO5lfQ7kKfmPZAC/ZK4iWeGPqm9j9N+8a69hpVvDUJ/2tx0jkWS\nhch9ytN5w69w3f5C+s0XMsXp/QF5PDUMHjgi32HmdjdD9zJwYQ4eZWo5jfNm\nQdC7\r\n=I7tH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"0ff958f5cf41c3c1b6948f019b5ba319cb071bc4","scripts":{"test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"6.4.1","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"10.15.0","dependencies":{"moment":"^2.19.3","cookie-parser":"^1.4.1","perimeterx-node-core":"~1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^5.2.0","sinon":"^2.1.0","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_5.1.0_1551098073522_0.548776914234071","host":"s3://npm-registry-packages"}},"6.0.0":{"name":"perimeterx-node-express","version":"6.0.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@6.0.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"9421ade81128832220d9f9b494328d7feead859e","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-6.0.0.tgz","fileCount":12,"integrity":"sha512-i1HA99GWx3BD1pX4mpqBR7aPc+Jvfxy/+oRQ9MYQTRuwgA8CnaGMxdoTIOPhpdK3RIkUfht/KV7Q4nwUA6HDRw==","signatures":[{"sig":"MEQCIEIjcmgeRPhyvFBkbKjtxIugeOxeo+lvkKKOGtJ1Ha0/AiAJUwWYfw0jkidnWb2ZNa31DJDy3n1wt0V/Es2VgvRmFQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":37317,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcihj8CRA9TVsSAnZWagAAyzsP/01EtPx2bLXqos8uG8FZ\n2Qpz9/0jfkn6Ir+W632K1V6IxySZJU4xJtycLoToM2Z/loJ7FSsLtcB4DsTd\n3CDNXeapPFJr06zubtDkH1Kzxm3GfPdnUKWMGQaSbdZHs0e1B1l99ZMvq9yb\ncO2ILwAzY9+PqzbFEtncfhUQA4RZMO70USMD1puD7Z0U/IP+ZCe58ReXwzke\nN4xEHttDNNTj45N+fFjDTmqnjd+kDhN6FDz7jvBnMgWXi+tPaO2J9kymAd1b\n3utcE27KdtWgZkCVx5HhABLAWZzzKZDsGWEYYhs7d2c6RYD08iJr6zA9iLNP\ni03FmNwvU6ys16I1P631GznHzDsH3noRIGr+FRzciF4EiXQiwLt7xNwVKy5t\nDNR5fC6eDmsbVu0KgZbJYCDRDdMSzlZZYdap2cM235n61C4oC5pO5WT1J3ti\nY3y7inj9gBGaJ8wKZDsTuPFMq89e3uqDK1eigGTScf8JLu44lVbIar3PQEDS\nNZcCSS6Wz/RRIurKWz/5v7I3tULBvJu6djB9H7cJqpUoy/jBIDICKzMBeS0Y\nDxP0odgNKiai4CX9uFytvWD/DRyQpZ2Q4Yb2AHQ+ZruPjswG3rxo8cYmbD0n\nw9HfRcI5Lcgx/rQbYH+qAPQBdbGprOrOrbD7gYBV+vufxaKB+C/zdPxdSum9\noHbA\r\n=Poor\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"8dfa09ffdf8cc9bb409cbe950296f65c47e3fa32","scripts":{"test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"ilaipx","email":"ilai@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"6.1.0","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"10.4.1","dependencies":{"moment":"^2.19.3","cookie-parser":"^1.4.1","perimeterx-node-core":"~2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^5.2.0","sinon":"^2.1.0","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_6.0.0_1552554235766_0.9541020644230389","host":"s3://npm-registry-packages"}},"6.1.0":{"name":"perimeterx-node-express","version":"6.1.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@6.1.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"f8c75c36b606ffdeff4e30dac94cbba9a6216777","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-6.1.0.tgz","fileCount":12,"integrity":"sha512-Sc+3vxpEkBs0eyNWPceMguX9SLEJw5Ozy2nszgrQl4Ji3U4Ujol/xe1mNWLf043v43Bwvz17TcvAgYbI1id2Tw==","signatures":[{"sig":"MEYCIQCINjJJ/kaQbEBrnd9Tfs1J4+qUeWCs5ppvfgx6fqOj1AIhAKiBcaYXBPotQCA4GHDenLWJs8tB3gErxHde3mW0/mn9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":37740,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcknJsCRA9TVsSAnZWagAAKuIP/2ycgNtH2qa8jzvb9gRv\nk9dTQ9QMA4//49PV6VE5+fSLNReVnuTiy/hqQlQPcAwaY5/tTI7wgCpbCPym\n1EEAQrB52lOZ1f7Pn4PwGWYGwJS4moQg8TG/8HJ9iutplNQWyJzLpAipH7hi\n+M6DCHZFZ7eaJoauk2HJh0bKHauqV583GEvzH6Dcl2LHSV+tkEtWruJpbdjf\nopoKTLePo9wZELFmNbuZGpvU5YeQuHWfbxzzSo1E4aNQMQ8W5Xn/u+hgIBaF\neDFhiv7YreN8p6y/1qgkvSRuotRN1JhfDauJA1xEnIPaDAVlBpQA0rwl0vL6\n6aMfJ7X5t1gOFFp6DNFxmzsrXR8kT/O3jE8cvMSYRDuIG4/WPPJKuHZLtyt1\nu+2OSNm/U/VsdTb/x+HWj1PKdOWuSU+qpjVdi/aXkGgQfTOUDoBBrkp/WBLB\nPckMlH9GqPDRzyahkxPSUkT8IvrpuTg6qI0Qh7mh243KeWsSoQuhdJtxh+AE\nYRrznGGbTY2KJVUzRgi4/bWNDEybfVIVuP2R4haWfonROwAy+ZArK8+jhcQ2\njKO4WfRxP94BGC9AvH6b5OILALuvJThA6zNqXIrRdNFuff8Ljpu/AjWjJDr4\nMn1NNe0HvQDp7rRKiQvLd75iYlx3TfFIE47YsHkHB9vTVQ7lPLXpFJtnzQTD\nWw5m\r\n=qLB+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"ee37d985b7ef12c827bcc14b712ddd883f9330bf","scripts":{"test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"ilaipx","email":"ilai@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"6.4.1","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"8.13.0","dependencies":{"moment":"^2.19.3","cookie-parser":"^1.4.1","perimeterx-node-core":"~2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^5.2.0","sinon":"^2.1.0","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_6.1.0_1553101420175_0.7954881564010114","host":"s3://npm-registry-packages"}},"6.1.1":{"name":"perimeterx-node-express","version":"6.1.1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@6.1.1","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"bf58416734a7305bf2e023687d3823cc0efe77ca","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-6.1.1.tgz","fileCount":13,"integrity":"sha512-hZ5jP9IBNNA3jXJHyKKZHxMxKpUdEQc3gFEEaP5m9suVcebIU1hyE2NQjoWJtlz+3zgrMToAs2BeoZQmD+VlhQ==","signatures":[{"sig":"MEUCICVwWUCmzMn2jpr26o6LxgZQG4uDfK+IigMxo2kLfM5WAiEAkG83yR98NlJwMShZRfKQVCcP7/Bh8Vy+JMdl1iQFLgQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38134,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcy0u5CRA9TVsSAnZWagAAl4cP/isZEv47255LxlqCAlRg\nZSmFHOHffrW1T84xDqmGZJzU38nLaFBmVjYc/PwO4QN5PAX3deCD7kTZ0ki8\n5FlKSeohaTxELsXO04b/y9wocsqXDs6/8CS4w+KLwSQS5t1cBf5oFUvfdrLT\n+zVdGOJaPas6H41/BavJJVpg7Kbkv5UhFN3l4h+jry3+v+XVik0JxqvukRFS\no71rJ6PTMzlQDl75qDbinFj8DMgm/Tmmd44A7diK5oMmO0hjp1CuDXEnGLvM\nlmI4bSEISQAvcw9taX5q+4QjISeUFEeMCXawxRezuKfAEW9zf2DF3cZoPVq1\n6JDL+1oGqgpelciwOyDTJTsVSG/WwWMpgE7ZjwRdUNZ0MWAjGttKgpGzRSE/\noidHuLIhzXp912Xo1ZT3qxEednM/dcc6b4XLLwHIdDc3tmuciPej+F/x2QGb\nkZVcSt9iyYFCngb/FT3LQgJAaQYVgINXjpg2G7yawnRZl0LgVxB/CXcLg7Yu\nIy5EIL/lrFLKYc2zPsPdT9QnGrMBcDmG3GKX7KGS2CowE/DXgGcAgcY27V8X\ns/TDrewe2oc0Z5BebIzyxunie5gLoB5quS4E2mKUPSoN7XjCBo1NNLpjCEyZ\nZA+2E/jvPrqKhmsLMMB3vKOkhz/EmxH5LHgLvcdGJSgu6IIckXtnPhxjUTZr\nvnE4\r\n=1jPB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"433bb029f70e2a080ae6997287b7f05c77ab0ae8","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"6.4.1","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"10.15.0","dependencies":{"moment":"^2.19.3","cookie-parser":"^1.4.1","perimeterx-node-core":"~2.1.1"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^5.2.0","sinon":"^2.1.0","eslint":"^5.16.0","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_6.1.1_1556827064651_0.446169721711849","host":"s3://npm-registry-packages"}},"6.2.0":{"name":"perimeterx-node-express","version":"6.2.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@6.2.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"702dc8ff3fb3abae1006dc75f5b2f3396e8d5c67","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-6.2.0.tgz","fileCount":13,"integrity":"sha512-xfz2wvWfHzJ0kqhssClnur3Cv8deyf+V2zDl6AWRiNMXNtMLb2so1TeVkeUek25MMjA5P46Om2me94h1ZdhbVA==","signatures":[{"sig":"MEUCIHfacxnyQW0CUq62/mNMzH33becJDlVuQntvx6zvFPmPAiEAsaxC5oAGdrgIkqRoh97Xza14+efajnkyJaIM+FZApUA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38246,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc6VX6CRA9TVsSAnZWagAAzb0P/3Xtf0qyGbTNXzXA53Wx\nFpY63b5HqQHx6QTeIALhHYeVjuOS8iiThdwospwVi2Rys1FMSPkNE0TR8Sh4\nZpw+QV58JpQK4xd0EznEbxsiOK6pB5535vEB5mnPgkfySiKj82bZgOAnDbLG\nPIr5/FjXvYY6Sk5R5Jn40jy4LHCOGw5j8nbiQSu/kMSdiHQ8//JcmMh3fcxp\n9OPa4OdDkvKbvxPMYgBc1vwU36Ab7NZpUqlHHxguUmPBKBcS6D2zQogUpQXw\n72IM+vKDxD7CRGXw2v5t0Gor9yHZnryWk6EJCm/CR6BB8HgBK8Q5wVts5lKZ\n4JgZw1Xv5hpmxqU6K8MHYy6/Hnp7JSF8Yjn2iEQHJM+x9UH9RXRA3ezTz4w9\nSIS7xxKjEVVDt2oOLovOal/Z+AeMKGSDBLEo9/CsIOPqlO/05yRUmmQecpI/\nk5RSoEWtiMWLXGgK0cpzJqAJugz6G+Nm+gKzh8RUd8yq3nikTkt/b69PCeBx\ne54aIghVxPHZZdpkid9+YoeLP+c4TUTy5ECxuwPVUx1woTuMOJWTSHrAkfDz\nWaEi0bBWs6EBXLe6/8lz3EezU5h4L938+Bph9nB841l5sAzZTAFBbovYsBmI\nhv89rNSRTQGu7kdi23dby9PZJCQZbjN7Qd1y6dG/ZEyiBwMfbll+DTk8UF/i\n2jIv\r\n=RRos\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"fedf36fd70c52c98d1515353b2062b57194394da","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"ilaipx","email":"ilai@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"6.1.0","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"10.4.1","dependencies":{"moment":"^2.19.3","cookie-parser":"^1.4.1","perimeterx-node-core":"^2.2.1"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^5.2.0","sinon":"^2.1.0","eslint":"^5.16.0","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_6.2.0_1558795769809_0.048526432236468686","host":"s3://npm-registry-packages"}},"6.2.1":{"name":"perimeterx-node-express","version":"6.2.1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@6.2.1","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"3b75ea638f999588e7c641f63fbf6f752d97c4e6","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-6.2.1.tgz","fileCount":13,"integrity":"sha512-xv2c89e5OeYUXTWF5HAJTWmr4sWUYovSohJCwjZ5qGYdPyeJc9Msf8aMgnZ3NJDHVvC0ix/kE0WZZXAb1eQWXA==","signatures":[{"sig":"MEQCIHB0oTjqPQsoSb+1NqFezhwCnnilD+J/CSvqT49ToHO6AiBMsaxIvOABTNSQiP61syHh4YnI1MjCfKkWuEzWKevD6A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":39227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdlNcSCRA9TVsSAnZWagAADTEQAI2k07NvAPqRQmg9vVjg\nCEwgxOQ6vKRx86SIphx8Zq7fNgIsA7DMzQ137+eNy27BA4keUhEEZ6UGPN2k\ntRYBm+Pcj0TWokw/bZzn33IEEhle+ZjjnUDXhLyWI5yPnRI29cyVwB6HOoEZ\naEGLQpFGAjomqY7wiRZxBLl4GGiajKKgM/Zrp6H42o5WwhAedA2bOWwOlg/9\nN2y6cfOci+xhAW0A8+iR7LaGaCdcMy03J7jFbL7jnN1mikJXe29dfMfJW48S\nQHMV1TfsU5YsZTLxT7qaNe1jYiu6NKDKTALW7bmPfnR40sUIlcv0pysd2BbO\n2IUADxOqb/AWrJZw1nB22H+XU0DJtQb1dQWvnFQaGRjIXnFW6/RCGrZardqe\nfbNAmAZgJtJwXo4kh7R0GbjvWEpf1WZVa5R7m+ztyusNitIZm04BsrID690X\nR+z5VentthR0YbqEKrO+bIqpYSUhKZ184FqQpxrZ8MWem6XIssR/Gf+XrEMX\nrs/Ff0LJa6pI2WiFuz67F4mEzYeTVw+JD1LEtHi5PBISmQRhaFMELyz1XYs9\nPNXnRe806KjpoUB6GzMjisOggtgPgC9acLvjf2d0dGDdG/B34nHpnlpWJOed\ngEG9EcPvc0ZTm4uTrW3SlrxreENHHdGpJwXsV6schLKjBxVR7Xk9sYeBTH45\nfp9R\r\n=L8zB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"1478aaecd54e5d412bed5c41baf1e0106b48aa04","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"6.4.1","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"10.15.3","dependencies":{"moment":"^2.19.3","cookie-parser":"^1.4.1","perimeterx-node-core":"^2.3.2"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^5.2.0","sinon":"^2.1.0","eslint":"^6.5.1","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_6.2.1_1570035474060_0.9742913519749392","host":"s3://npm-registry-packages"}},"6.3.0":{"name":"perimeterx-node-express","version":"6.3.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@6.3.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"5ab6a38a659cb99c146d4b1a5bd3e1102782a23a","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-6.3.0.tgz","fileCount":13,"integrity":"sha512-/ct87CbkHrkf/80ojYPvMV9VIGZr/wcDggtIFtB1t4D+5lqyZ3hUzA5ygJ7dH95A/2qg6D4TBz+xXzHI1Sk4IA==","signatures":[{"sig":"MEQCIHakMzG5uWUGEMjeuChPP6uswP4F8fI6IKX9p0rravx8AiAiARO1caQV/bP83At8RE6TxKUFCbDkRckru6FUZMKSgw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40142,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdsdnDCRA9TVsSAnZWagAATm4P/0DRlnzZfBtsSo20ib6A\nRzqgePHctoAQtY72yZCqUtZyNRVI+OqPDrlNApE6DnQU/k5ZcrxNIq5I2alj\nKxLFwmCCmqwaNn4wIm1KsnMnpBPVgbvBpQ0b3+S1O/E4u6sAevb7NxZjoYiL\nylE4j54Vieaa8f9qsY8uVm74Szys49r2basa+FhG6ooi2wKxdKMCXY+4n+uK\nW94LkroLg6ITfnLC0XYX87GrIenOX3SH5WAPag7ftX7CWe82g6Emb9zX/0AM\nQYuWqlj24RD/2IQdh5VFlnLgC1w/DNFRxnu9Fs19deDwhCpbGeougtkbbmtZ\n9efZF6rcgVcrKlPIGirx5PEOVJN9nZwx6TJU7a0xRuvu5x4iDcNiB5YbkEKx\nc0xswhZpbM45o5PBh2q5nFtv5G9rmtDdyJjclzZNAV9bs+es/AsHIkqaaPQo\nRnqy7LxrxlxtcPNvbqLBSSdIReZuXG0hJFTKHeb0XTUhzBimbkK4uF2ZnepO\nLP0TRl+1QtpO+2VlwgEzAWLwplIVeomMHMIAE52KK/R1zXcoAtozxQCkNFaT\nb1mpe9PpBQPs5pe+c/64zOEols4G1EGhrbY+KY9ljsl6iQj6N5NdJSm7aAJA\nu1MqYqc18GsOnwLU1Re5Ci/GLmcIYE/rQqolwW1MMx+wSBzRZ+qXr7eI45FB\n+5JI\r\n=2Zcx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"f4de4df0bae2ff7f7da480952fa014d3f1ec3d1b","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"6.9.0","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"10.16.3","dependencies":{"moment":"^2.19.3","cookie-parser":"^1.4.1","perimeterx-node-core":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^5.2.0","sinon":"^2.1.0","eslint":"^6.5.1","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_6.3.0_1571936707202_0.33822292534956944","host":"s3://npm-registry-packages"}},"6.3.1":{"name":"perimeterx-node-express","version":"6.3.1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@6.3.1","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"4e1fb80a1c3533e1f40b6d5f118fbd46805e16c2","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-6.3.1.tgz","fileCount":13,"integrity":"sha512-5zLg0DMjQVFh+wfGBf6fYsl1oD07VEHBAHZkgsSjM7Mf0cFJtyOLDV8CAwv2woXWoYb2M3GZmkWKXzNq4qL02w==","signatures":[{"sig":"MEUCIQDBaLbuFJg9iTZMM8cMJ1RzEF6njlGnGZ5o2w774AAu9QIgCLpu1kZqs3/TaBQ+i+bk85I9S3EAB8GXhVCNdEVEeko=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41004,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd1Qz9CRA9TVsSAnZWagAADWkQAJj7aN1quLf2U4vIg3wh\nqaOwPkfflfX0T5qLnLkGC+bd7iuCQ88TbkQGMa5WrqPzXC1vNdyk4HWrgcty\nbySjH/taLKpRpvn0klhy1WUKhXy4q7xhrg1lud4Eb8urCUjhDNaiV0dea+jj\nCFePTE7dJQf3EcwYWFqIfGo+MqM40D+IVfbC3ypk3sKxQNvZt2eKW1Y2h5Ly\ng8UsSwPFeMP7RhYYs+OiYDAhdCte9XmAYcVWF/ADVW4roWWV+441CECccv4P\npZaPMtTQCHD5RwxTbleIIKdZd3m3WpqHTognMUlgI0RJVR+EJxE6fwMWSXD8\nqjmbAXmm1XgM8Cth/xc5xagOc3tNA5OCf5p1UTNPd1KCvrEhQWmVbsP13kkn\nFnay7Z90h51zS8Oi/blpxYvvwWi1aoSnLjsIKqI90sLyz+oKM5KK64NssShV\nxBuA5Btz/LiXWT2/sNIlHJUfPFCcsntWVk7+YzVls36guIKfyK9rSVZf5utu\nUe9QrzIu4fJlhRL20RRgTIBnRCdQvEtc33o9/VO2URrRMvYP7bYVaywwtACL\nN1p/xg7uWULy6CTb/PCAW5FWSX6l8TgXHetRRCoafJQfTBlGx4fmZ9CXW31d\nF18d+v04yQhlnf9QnByhbSZZkQBlmg5RHT2nuWBRDKomghOhWwHKKaxt7svt\n1J1y\r\n=0kII\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"30fa27780949690be2a8adeeaac8054b407dbed9","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"6.12.1","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"10.16.3","dependencies":{"cookie-parser":"^1.4.1","perimeterx-node-core":"^2.4.1"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^5.2.0","sinon":"^2.1.0","eslint":"^6.5.1","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_6.3.1_1574243580686_0.5764217601547201","host":"s3://npm-registry-packages"}},"6.4.0":{"name":"perimeterx-node-express","version":"6.4.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@6.4.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"ee3fd6b957a4e898127574c1c452c45ffe332b75","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-6.4.0.tgz","fileCount":13,"integrity":"sha512-Egf5TecoeMBFgVMRUHfT4oUFhmNdRhZp2AEHcHrqhOT5tQEm1If6v1BYAAh+vsfXrfdLilbqhbY6ZhZWz5mCcA==","signatures":[{"sig":"MEYCIQDo8XTGvq03ONS+UsT5tckU0BXMuAlHVnYfyvXYCdVNgwIhAMHQvmRx5akh0lRoybKodvdDTgTNpo302eQS/xMuMOx5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":42511,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3Ri2CRA9TVsSAnZWagAAYloP/RDOT5Ks9Noch9eGcbFo\nu+MHdqySMa5gpxslXP2VGOjHFMuokuZKGWOK9PsABtAaD8s2Ys4qaLWZnnpD\nxmCPUNSWNyvH+m2JwuZUgaNR9K9d4m/3I4roZOD/VVQVqPbEkVgBxKiLCe6y\nqVSiiaDkP8Hzp4dFju9zcGYPmrgY1uQB1WPQdZyRcJk7rt6bHfsBMix7mMnl\nDDXQs1lbeVfkWiHaEk5verFEKJsKqINztSfSZtBiLNPLKcNE+mpRK7eLKUNO\nIOYYwNGc2F2PZts+0JVwjSdFJ58j/9yvrCzAEWfsV/zsyMlxqoSIO3QFINJM\nd/3S9U1UmcMcW7XPjWL+mamnp0bv6ns45IyfB5rt95BxJmVbirqRjIW6eE2H\nDF0t2RpcJq516MkBUzucmU3x0aHd2zQtrmm5ENEy3sYIt7OWDwgtfPqG3ObD\noVfSSIrbdRwLEBMgYBXsCFeyX7ZyymVQ1L1c+mU8LNtPMVHIoHBqB+Ck4C04\nEctHF+N2wDPWM1GIxoHD083AUdxyYji6bTP9jmJmUlFQianO8ognDqDmZcIW\n4D7+ZaxtXXh9KK2fZOgYSG9k2EwiAUd1ozRedxrZZaa9yvKsVZZWu9g++8GM\nsu3QqKOuI0mgRUzEElB2ceKG39gXfKBnxICWZIuQnzzqk9Y40en/Sc7HHJgP\nFC6a\r\n=7RnZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"d57caa8e41e3ba5e2d34e79f63de879b10180795","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"6.12.1","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"10.16.3","dependencies":{"cookie-parser":"^1.4.1","perimeterx-node-core":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^5.2.0","sinon":"^2.1.0","eslint":"^6.5.1","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_6.4.0_1574770870055_0.06540548862968554","host":"s3://npm-registry-packages"}},"6.5.0":{"name":"perimeterx-node-express","version":"6.5.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@6.5.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"a157cc46b07953b8243c09a41c314e93a370ee87","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-6.5.0.tgz","fileCount":13,"integrity":"sha512-n9391QZ0fXl1vohXeT9vAz575D4UAlfNuETObI++orx58a+VkpElkVqjp4Jnxe6coqYMTUtWGO5wnedPzHLemA==","signatures":[{"sig":"MEUCIDxBc0eN48bhLcyQi0iwOKdSGWBI8bMZs14FJQ2zdMAzAiEA7MoVFn/xOyNju4xzJYoyS8PXgk6KvpyR/DfsdFQZkG4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":42916,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd7Nf+CRA9TVsSAnZWagAAP54QAI/Fsr0puLmoFXMqP6HQ\nsc7bolRFaoTLRxXrWBPUyoLD8aAcmYjMIaIqgdMW47VMuXBEX79lOQtrE14Y\nQoMQTZt+LwBUtA0poVs1UsQDQTgwFj4+hcF+Avzis40V+hHBQDQfP4Ga54dt\nOXfrk9u78dxXh0Zk0gc/mqHHmcZQ0/u1roqsdgi8MaPZlzdweZQ9BEATQ+bw\nqyqF+1WUjJwN7o/Ss3pFiJF99TvbwLPjwy/Wx1t8wM8taP8PQq6OKeLXtY4i\naaQIvAnlPKbKsffXz5RhciyR5E+VPcpfL4G0os2Mkl2//CaQmipuZHDFeqPW\nxzbdnDAKri5AqsjCE9ayvY0U43W02Cwic7AzbEeOV0Rb0NPLBeDJKVtRyQQa\nSLjF+DhnrmJwHok/d5T7GRA35teHVrlLSsgTEqOizmCmH/p/C4XrwtTkMk9o\nKcK+f7nmnUiyTDB7CyPOxAQiW+E10/jMeHVLo9cuwJoMLDeog3cvcFErLdMK\n1h5DxophUFa4XCJ9hPTitRaqdiwdcFGgpvJ+0LTh+4t/FK6Pgfo5lo/XmzUZ\nIFwaEwxKLL8AW0wKGudbMy2EpWbriQU1DA661zFKd3TVK2TqVamPTtrqfuRl\n1+b1WIriKoeLZvKVWM4dm1ALmBCI5pY1xRhAqXo4RagmEaNQVIUDSAbfhO84\nQOfQ\r\n=HW/8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"90b058f6a8dbf82e34acf2d3f2cf2dfa9da60233","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"6.12.1","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"10.16.3","dependencies":{"cookie-parser":"^1.4.1","perimeterx-node-core":"^2.6.0"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^5.2.0","sinon":"^2.1.0","eslint":"^6.5.1","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_6.5.0_1575802877706_0.7328813049418264","host":"s3://npm-registry-packages"}},"6.5.1":{"name":"perimeterx-node-express","version":"6.5.1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@6.5.1","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"1c564feb965759a3d136b581d25f2502a7b10518","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-6.5.1.tgz","fileCount":13,"integrity":"sha512-Zt53vRKtAeV/WX/qfSnKTDYRN75gp0+myC6FajfYTTdGQc0EZJbWYmeSjOQ7ComRPCIlIcP1vu3j2haO5rOQpA==","signatures":[{"sig":"MEQCIHqfGSqeKBviosnU0b2OLr75pLRr6V4s+f0SNGq6hKIsAiAdzBiLeBHzQ2Jwa6NC4QZ0IDshjW+DVgPSexjqvpYmsA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43072,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeQvEuCRA9TVsSAnZWagAAwMMP/3aOx5GcaeouB8D6fQBp\nh3rgGPPsxvPrQ9Pkfn6sYDHUBDQ7xo8qERQx17P1oVrSV5+0YerRQlg7OMUU\nvEWSoRhtR4Jea9E2NTfc6mNQJ3h37Tq/WGYQa6B4fjkMqQe9gs11xsveiFMe\nvNykhwYopN//RDOcgJWWFHvy4Ti3l8AaDPlC5NqNslKzFvLwGAZ8SrVXWIue\n8dLNMbbE+/01xuWedILH6NW0rPfk+XJ2YnWVitcf5+BHTldWWRlZPbf2L7Qu\n6FbBJyaP6Jjj2ZCdOaXKhBrvVJ/Hd8snG5S/L+sxggZvEywxneWrWcIiwE5v\n9lW4MQRrvVIc9c2Wo0NhAh5vqnFYaQXfTfv3TYfy3iebUFptTgjH98qdq0rU\nsbTTYAO1edEJNCgfVklGqoT/dKEeWNIPc+1caOI5K8bA2DUiCDY3Swd9yVAw\ny/LLUjo4DZmf4SrRW+WMN/9RLQ2DfcEfsp8pD65xi1R6eBlDzMpSaHsszMwE\nAFvfJ0bPCNQ6Ln8770hPiz4uEpdXh1qyLSm0qOCdWPGwwCwdVSpK/thYAaEu\n2gENZX2lmX7y8NMkpPbl3TxRH44C5rINrH6VfTIHMRyZ/TYyyeJb7V/GC6ag\nfXoRaE3UEdNrEF9JRGN8yxffbvTNHJHW2iCpY4vIt46lVgsjqohjjUUoM5p7\nANp4\r\n=9o8k\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"341ebe4fa3f24812c186ca5c6a443f190aea6b91","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"6.12.1","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"10.16.3","dependencies":{"cookie-parser":"^1.4.1","perimeterx-node-core":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^5.2.0","sinon":"^2.1.0","eslint":"^6.5.1","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_6.5.1_1581445421618_0.10544878204169916","host":"s3://npm-registry-packages"}},"6.5.2":{"name":"perimeterx-node-express","version":"6.5.2","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@6.5.2","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"cc909e45a6f49a7e913257183a6e1fb08366fa6e","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-6.5.2.tgz","fileCount":13,"integrity":"sha512-Ga3LIVDGAwF/Z23RyXnRSBRZNufkc+29SiY/WWDil0bAqTRGk7XQ94HQW6LatCOVrgOdv/YSwDspYJd06u1ejw==","signatures":[{"sig":"MEUCIQC7bQ4e8YHzX1leLfQ+e8Y/NV7mvTR0dbV6VF09Kbu3gQIgQR7VjjA4v9iUWQAwI2UZaYBeLQnUBZGT/SsllR05czI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43149,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeQwnPCRA9TVsSAnZWagAAVMMP/jYtYByBUzNOieU5YlVo\n1WuUrqzlRvlsNjgwub0/GMlFbZc4tJnUZzSbiOwYGiQ2GmiLWEDwA+wcp/ko\nZiKVeB30vDiGKdnH8GYzB6SSOKTNfBqjtVI5gFs+pJYs3CTE6Zia/o3AAaZi\nejUq/2hWbBWT7Wb0ejlA8ard9VosYkAhSycxANi6Tb2/tV9KpDvpiVk31Q2l\nU9rJiLW0/hDhBE4GMowTbnPD6RRyuHk+Ze3riVVJygbzRaQey3M+qKiu5DH5\n2lv3PNZ66PetLrzw14IysB91Hc0M9ycxYmeJiB5tsj4LgQzjvVMNRB9f/sX1\nprkWbbH6KRAMIfIVbYhTyX5Eru4ooI29XKfTYtnb7yLY94vegxfyyIc7gkf1\nw/bK5xpmndp5cgGc8p3gi2HIvBAl2N8B3n4BArYU/BfeDf/YMbdjQVzFO+qa\nVFJQmLqJ2wKrhXvQd+ArEjTiYca8XbpeJ0o+AoHPKhQQst0WMdMnfB3KRPxv\nN+r9495byXeUbQb4trjR4xVTuoYiPi+iji9J8AenIIa4uJphQAeFiDPS8Rcp\n1BGgVS9vtEpJtj/JNeFap6/hBbVk/Fbx+xxF4b7ICAuUGZrnZM+yx2rWrUle\nIB+WWIxAFL/jHO/s+56e+3H0e4SGUxxlLz2GPk1WyJe7yETPTzNv/fsrxfTI\ngzO1\r\n=2Kbt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"133cdb0cd5454b13a8ab9783b11b53d7111f7711","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"6.12.1","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"10.16.3","dependencies":{"cookie-parser":"^1.4.1","perimeterx-node-core":"^2.6.2"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^5.2.0","sinon":"^2.1.0","eslint":"^6.5.1","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_6.5.2_1581451727132_0.40052740230887385","host":"s3://npm-registry-packages"}},"6.5.3":{"name":"perimeterx-node-express","version":"6.5.3","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@6.5.3","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"7568efd040de0be579ca43dfa4d56c8840d29572","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-6.5.3.tgz","fileCount":13,"integrity":"sha512-0Ux2q81jilJZmCJWfJl5mFtfr5Xw3Koq8x2raYcBDSdfxhaSYP+ofFCDJms45ruzhDajHlcYDmB1CeFQHkb5Ew==","signatures":[{"sig":"MEQCIB3FhYtJjwZ4Sb7Mgld/eDAyCbO+0L0vYA2NF86TqAQFAiAv6NrWVBAhy4GDw/uupdMuh9Z4RmixPvqgUaRapBumcQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43477,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJenyzWCRA9TVsSAnZWagAA8GQP/3jdjhtRQJFt3B610Eu2\nCq6yZ/RxI9SUONV1jrYuA5wfc123dLFcv+aTx3IX7Db1IyDimXuJmQ330/Fi\ne59VWHeT8SwRa3jC5AydFV9fWZkBFVH2EoBnSjeMSA/v0XVsKexG0Qn2ZeMO\n8D7nYn5XsKJ/Ai+hK0ItAnAkwlP8xUEsuDGbLDNDfFlIpc4JGKWOE579ZCLF\n3UrL/QlqI1bQUlWoecMzt3ecwsP0LAcCp6/cZLcmlCh+hJCWl0H7G0TeAEO9\n7tlZGE751+rwhKcPxwkKMVW4B8Hva5O2fiM/TBeZ1b/CFkZpt1H4oaL/KO0+\ni/Nab9gho3tWxSCt3RZv2H3cuxTucWQjXtknj1u0EDAdTjTd0lA7ohiJakj1\nixLn++vvEyDpIl48S5ndvDmeANbvFN+BULY3CRG8bFSDiuebor27izYP5YvC\nSw2P2VE5za+55JCWNBDsu3JZSQNS+DL0GISufvXi0Stq30d3Rat4EUW72TSD\n8+MSckqk7Coe6KYyZgjG/YzqlY3kn8oHG82i6VT7vbfdMP5J7X9EM6DzL4To\nA98qdPzTFAjADA0AT+7toDCaVCIKwRSP/qHfsZM+Emld5wS/mSCdw2zU6m2q\ny2HlRJw3/EUkLg6S6MbUCoUMVEBRORIO+/yNiPJ8oyFOzF6o7L3oGvNmR/z9\nirvl\r\n=ODRS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"527c7a00709483057475234d12bae5556f060850","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"6.14.4","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"13.12.0","dependencies":{"cookie-parser":"^1.4.1","perimeterx-node-core":"^2.7.1"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^5.2.0","sinon":"^2.1.0","eslint":"^6.5.1","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_6.5.3_1587490006133_0.06346797030474738","host":"s3://npm-registry-packages"}},"6.5.4":{"name":"perimeterx-node-express","version":"6.5.4","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@6.5.4","maintainers":[{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"000236236264e545e67a382c3d09fa494cb35be7","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-6.5.4.tgz","fileCount":13,"integrity":"sha512-j7sdBIpaGwocm6k8APjQq55sP2Te4z4usC3OIOZfdjxm9oERlVE8zzCSs8Q/usaZHpdpmLV5Bru0eDDvK6umgA==","signatures":[{"sig":"MEQCIFKjXYPflw7yyKz365rhVmS+yoPeU+nyXt+oMTSJUr6wAiB0BtbxgcJIqj43Rk2Fl8uLIb5v3NRlWaL+AnXoe65Y0A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43579,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflY1nCRA9TVsSAnZWagAAD9sP/1DAlrekIPIziKcweHBj\nS+9lomLlqj/Il2Hd0R9vSq6O2htIYtSl094idSElOpOUgc5zAGTx3eHfBkwp\naCZuWb3tbTNl9M0BF/DT5tnexZ7AvMU+x708/eKdIkLyvmzBnKvvtXK70ThO\nsmh1h+6q2BMTgknXKmB6bqPVg6r6u4T7AbYQKUwYWFjdzEqVbuNNEDbh6nhH\nVW793CCzR4AEPUHQ34S9J7d2VyTq4FnO8T0YooXD/LCtO3fVIG6dfb3HYVHa\nnqhvwVTQ5JkJZK4m3VuM3+riRZSOTL2CLe2N9UexpSaE3QZPuTmr8NtuDczO\nf/aJ9k9gGEK4UWWphRrJM1bEFVEo/O7wAG+iojLmFBANSP0/TJ6dk2g86bNj\nj041bldqWlZhNSghuiMdH8IGZzAqbXJKPcmYHVyQyz40RYkq+qU6tZXVv3pF\nUwLuvsSi7jq2OEwJ23WAY3JhHLsbEyTDBtq9aU16hE+sifHf/RZkZJkJNg0R\n0e/JlscTkN/4k74MaZnYvvog9hHLdDxHSf9jS+s4+xtYcqiCIC5KyRwnfR6H\nUnbYPDbwTt9OqqrsyIR/mO3srbCzYuokYOPfgXijGysSjiMZq9npe/v/PdFW\nqzTKSWHqTeYOMdXbrDJsPaYZiOSKNPqwcUO/zwNjf03F+8qNwV9YOWKx3tLr\nvLss\r\n=7ojx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"de970ad6828292b806a599460830343cb5c1410e","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"6.12.1","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"10.16.3","dependencies":{"cookie-parser":"^1.4.1","perimeterx-node-core":"^2.7.2"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^8.2.0","sinon":"^2.1.0","eslint":"^7.12.0","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_6.5.4_1603636582557_0.2659444686338637","host":"s3://npm-registry-packages"}},"6.6.0":{"name":"perimeterx-node-express","version":"6.6.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@6.6.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"ad1761fa0d74d4e767197e5da73863cad864cce2","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-6.6.0.tgz","fileCount":13,"integrity":"sha512-TNGU5b26gN9zHwJmk2eemrZhMoGIx7Ldhro/Bg3Z6f69+f6TmiypVLSFoy6+OiepO0VYHhdkHkdGWS/Ocy3rJA==","signatures":[{"sig":"MEYCIQDHVo7ALXEAkqYAb+7H4dNgAzRpxnxpP+KrDLQrgqEtOQIhANDsIMe+c8cqiZhR8T0kUGdEz601QYanDCzMUsMp2ib3","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45786,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgI40FCRA9TVsSAnZWagAAb2oP/ilYUU2j0yowtQWCaive\nP6lPKQmvIFDo1vd19mdIXSuWQTqD7Mp2mFcXI9+/SUjfrWGstNTkppwfy0W8\nwA/6u8i1z/+XjxjzpHbNKUeElefeSgP7Wn0YMen9ZZByODYCt7r00W8HuHVu\nxQ4fDBghRhI2LbFIK3jW+6TawTM3V1w1dfMrTV2/fbqWvlPcDqeEjLzrYc+w\n6X+5bnCMTgslb7OTw1a8qWmLxdEyInmBXIADYPNeRUIRBoBKGs8dhEQtx/fN\na79PY870vgEYdJZuE56wyO+VJjba7fbv/u9qYmNE/Bom+Z79p1YSNseHL2ON\nJjGpeOz8xDgCrBKy9bAu4R0NgX93Ukp6JDpDSPaNRgqgnv4NgGm5BGU9DIe3\nFz2T1X2koitfgyNdQLO3xGXfgsaTsm/Co/Aui15JpLcwRfzTRv+NgGQZW500\nDMPPVya/foaBI9XTBUd7IyPd2Gkko7aX2MQVknm3VJmGC16dz/0hLrvmqMS8\n+YUMxNi976N7pXVybE8GGVkvcBWBhW2cRodmVUWoUEFmDPIiTueoYgTX8vWx\nzwVeVVyAL5RQFhPmROadmPk/ldwH0/24CGrC4PX3U3LlPWZymbvDMYXy8iT4\nX1BZsJJDETg02okPLHiyQ5ucES/7ngQt3+LXLpwwnwfMimx85JIgItD2MZ6h\nb69X\r\n=Cgn7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"979f6975478632ffbf8de772d636317bd9360b1d","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"6.14.9","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"14.15.3","dependencies":{"cookie-parser":"^1.4.1","perimeterx-node-core":"^2.9.1"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^8.2.0","sinon":"^2.1.0","eslint":"^7.12.0","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_6.6.0_1612942597232_0.1998949173676272","host":"s3://npm-registry-packages"}},"6.7.0":{"name":"perimeterx-node-express","version":"6.7.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@6.7.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"f2f5bfc5c6b9a2abb99f2c1edbdeea61a2b6f639","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-6.7.0.tgz","fileCount":13,"integrity":"sha512-0R5RbXWmX803OiNbcbOxMDrdkX0rxo9eI8neVB3J7w8lV5aBnoNQlO7nYATe0s3c7Ox1VnAWzsNTifrYzovE/Q==","signatures":[{"sig":"MEUCIAE6gWTv67HLD9l9PhszzWsadTfJTjc1rcGsZzx+IgaTAiEAsby4aX+0cvTw9LgM/8hAx3mPxn8Y4iFLX5hXLOymtuI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":46361,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbas+CRA9TVsSAnZWagAA2lsP/R26kRPsUgnnjXPydwWK\n1/Kp0LiZeNY/t+iW4d3v06+tUi0+ROKjpyijAW/zwv46H1fW56+y40pVVDDq\n0V2MuXIMMyfLtWdkeTCORvU8Y6ucRe4jI09Dn1mkscM1v+mTvodZYYAex+9b\n+JYiRQQEkdYaFIC7NkOzOU2w/5EXowhsMtPDCcmof6RKis6xgCJRCUucRUls\na1iJBNsSWs2i2vYgTncx0XJCVokyN6O6NEWf0FAAnEWNWQZ1513GgAf+0eXe\niGaXRnnLlFzce9goQJ2ma5c+34f7lQKgV5nCV+dT8XS11s+4O5ldaCIX1KUo\nxZSK2+2rYsMs4IsnYr4Qyvc0tBcZM62jxZ6aRzCVUfKRy6V2Rp+Q+hbxwa3b\n64AgQUTpmaSisAR9CPto0kdU+q36tABa8x5svTx+0gW5axrmaYwmVVTIGQ5H\njJ9wxk12wgtcE2vh0MLWRnfiHWDpjjH0wEMRt4uW1/s6Y0g1SIssNWWJhnLa\nwQRs2SRv7sw7c5IZT4JBw+0oM01kDskpiytpY/simpmXy2sWcMA2lfXKw20O\n+r9w4+qSUcDYrDlDzAsYW/YwjfjtQaT6yWsEuuJSblEAqAP/H0pvdiJKOmhH\nOiSmyckSW75w5xPUc9H8oAGYOuhRZKyuqWAAfWmx4tHSvSAKkgwQgXfHr+Al\nLiIT\r\n=Gk/g\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"7b58d54c051f3c8aef818ee6ad14476b4eeb8e07","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"pxjohnny","email":"johnny@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"6.14.9","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"14.15.3","dependencies":{"cookie-parser":"^1.4.1","perimeterx-node-core":"^2.11.0"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^8.2.0","sinon":"^2.1.0","eslint":"^7.12.0","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_6.7.0_1617799998401_0.432717074945802","host":"s3://npm-registry-packages"}},"6.8.1":{"name":"perimeterx-node-express","version":"6.8.1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@6.8.1","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"shaulpx","email":"shaul.badusa@perimeterx.com"},{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"139fa1a809ea03aa2df774135cfbb38b3a949302","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-6.8.1.tgz","fileCount":15,"integrity":"sha512-9SNeHAcOU6oZGtb2hcGx8VIqaBm+NgM3Ch5SHKyf85joSDvUUh4WHbyRvpSqngt+csoV2MtbFtmeQPL84plfVQ==","signatures":[{"sig":"MEYCIQCS/AdXKm5jJEvn9gUqb/EjrV94o6gPuVpVOYpN0IhBRgIhAOaakIKmdaZSV3PH5d7GtZ5SxuTlkzdZZQjx7PdM469c","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45978,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwHLSCRA9TVsSAnZWagAAdAkP/0ysuyQcgjU+tohKUJE3\n390mYQehTvBrGj/+jjKhaClyuv0v33beAVVAdLWqgnf4KQYdJNJ4TrTrqLqz\neigfuQ4nqz2uTDHARLVXUZZsUO5h72pPkz6UD8lKphk3yCMdI8AvOxv8xlcV\nSh06Mw8wydtf0xtPsDbEKVsIO3SWnV65FUb5AkCGjdU7flq1YVGoRKGipe6s\nw1zMqFHjA9wtvcPOG1Owm5XGfNp5qeE5Enq/ZHVy0WO8RgnW18+yWC9sa6TA\n4Z7/bysPnzBe888xTnd2a+NRqLg+7OoFHEUcNttCokfeMJShlPZ4ejRSoU68\nZ+FCVXkZ5RiQn+zkbKecCwr/spWz959Lzu7YnJbnInlRjgHkmT7+txeISgDg\npgR/tBGo6qELkpVCrXHWEx/duYgwLZxAcYqN9hhycJ+KVXmyrNttcSm72rlq\nvczKdDb9tP2s/o0Ufj42onlOn5Zd03U1ysHWA3pgrPgNcZccSkGQ/kStRsIQ\njXYvsRKJaqOgX2P+hT8RX8Opye7kDz9ZxaFFmVNeo+o3I9eDJ9GsjDNKFWYW\neL8HYnljhpV379ueG2giygivV6VQzicZXBXmExpFpUhAkfAUM/pcK8fWWG45\nlk/AlP8mLshBeuenV3jxwO8B8G9EWrEatNPPHrB+fiVQcalruIsC8JVBFOS3\nA+pU\r\n=dDsx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"48185430b6fa7ec67f29472641f2dbae3d714012","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"6.14.6","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"12.18.4","dependencies":{"axios":"^0.21.1","cookie-parser":"^1.4.1","perimeterx-node-core":"^2.11.0"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^8.2.0","sinon":"^2.1.0","eslint":"^7.12.0","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_6.8.1_1623225042577_0.46601458202461377","host":"s3://npm-registry-packages"}},"6.8.2":{"name":"perimeterx-node-express","version":"6.8.2","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@6.8.2","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"shaulpx","email":"shaul.badusa@perimeterx.com"},{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},{"name":"asafpx","email":"asaf.akler@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"b5f4b57baacefa12b7ecbf148ec91d84121da520","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-6.8.2.tgz","fileCount":17,"integrity":"sha512-sGZIthLh4rdiVPsA6YYWsBrfr5fl8Tarbu+MxJ9qVXudT5ZNA83wZ9EBSpYZayej2iDIGn9TYAeM9S1HF1p7AA==","signatures":[{"sig":"MEUCIH+RIao5RAY3k3BudSuHQ44VnRIfU4eNTP/wpbUOuP0sAiEAzH3at1VSjKU0pBi4xjXFUPNhf3Pn4niJib2gfYcU7AE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":53815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5DfrCRA9TVsSAnZWagAAAHUQAIqmeysetKlk+c8WQoNQ\ng78XnsuOMuqcuMyLd/BVAPFRtRRCt/JhKa3nS3PWZ0wHqt8rXJAGDRu+a/c9\nNPygYJuAqos/r3v5ZrddaFhokr8inmKKpDtlaNUI/92sDxSMu0VSdwuL35Ub\njxZWYBgfeve0rng004sxYUkVT+CcQLZ/E8Uy0XE9I+3NDEu281XkHK3JVM36\nxZBS37/nV3A0Zi4NCMGLq4VB8wnrue/yghoR7awEyHnpPbjfCnORn/85xMno\npDU7zBnvs7n7raIpPmTX7CzckRhoyEJZIg0p+iJHsTuMZeoxlu4jVnO9lSjx\nzhcPlRJyNtd5Hih1FTdMeH3XauGj8D4TyzeYMpndH9O/8gJ6Zk3QZG4SZbW9\ntlQqU1Yhezsp7p0+V2O+Fe0jAtsm5GDGcLmKQMUkGmziyGqJSkiI49ek4VoC\nO6kkwhqcr6NDZxbuN/C/VzZ5IL9ajb33fITq8WAOvfs9XEclAJ3+cVh9xQUd\nwa3zhLMbE34vf/dP8HFo3VytLKm0VWTtmX7d5WGNlm45J4Yg/CwYPwmnU++p\ni6GjEgdWEm0xhf1hrDDipSkuWEo8nxJzn1WYs7LbH3jaY7uj5VmQ4BkrpXYB\nTld/wiq3susLjaTAmOaDjBlREOaIyuHfaVk+NKmurZNiOYAYhTX3ISP/1bml\nHdCm\r\n=sS8+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"46c7990c323649715939d79537973835d45a189a","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"asafpx","email":"asaf.akler@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"7.10.0","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"14.16.1","dependencies":{"axios":"^0.21.1","cookie-parser":"^1.4.1","perimeterx-node-core":"^2.13.0"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^8.2.0","sinon":"^2.1.0","eslint":"^7.12.0","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_6.8.2_1625569258744_0.7856008827998333","host":"s3://npm-registry-packages"}},"7.0.0":{"name":"perimeterx-node-express","version":"7.0.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@7.0.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"ori.gold","email":"ori.gold@perimeterx.com"},{"name":"shaulpx","email":"shaul.badusa@perimeterx.com"},{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},{"name":"asafpx","email":"asaf.akler@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"1add6b014d0b103471fc2855070c1906a2b3ba7f","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-7.0.0.tgz","fileCount":15,"integrity":"sha512-xscmEWQpvIgV0lQlj2AtpfgUX9p+aQvwyABGps5SXU6ONvOiPA1cdqERyb9rsfuIoxDDiRJxULjE8cH26Ac+sQ==","signatures":[{"sig":"MEQCICUdLH5O6rSiianRnd0LgwabbJBFJPpGz6s5NpL2yVKxAiAEbEhYElE4pzT4dcoLX5TIMH4lg+Zc4jxCfhqhD5V1hQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":48013},"main":"index.js","gitHead":"930fe673bb142177fdaa2d8a8d31ad0581089918","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"ori.gold","email":"ori.gold@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"7.24.0","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"14.15.4","dependencies":{"axios":"^0.21.1","cookie-parser":"^1.4.1","perimeterx-node-core":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^8.2.0","sinon":"^2.1.0","eslint":"^7.12.0","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_7.0.0_1635064589758_0.7318994036996322","host":"s3://npm-registry-packages"}},"7.0.1":{"name":"perimeterx-node-express","version":"7.0.1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@7.0.1","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"ori.gold","email":"ori.gold@perimeterx.com"},{"name":"shaulpx","email":"shaul.badusa@perimeterx.com"},{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},{"name":"asafpx","email":"asaf.akler@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"b23a59d61c7c7cbb5f7dab6129671feb2ffc536c","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-7.0.1.tgz","fileCount":15,"integrity":"sha512-cVFN4ngTewN4OjSHQf99gBXPqXzi0BBGvj0gFClcuhaL36f2POMBm0jAHrLpfRNH1cml8V2QgFRPNlU13odPNg==","signatures":[{"sig":"MEQCIHJxJrn2S6s0FdKAjYw5vbz2/hfZuplV9SQyWdmBDKekAiAgvrubqDKxMsf8mpaOyGHL1Vk94Qv9SgEQTT/KPpBffg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":48439},"main":"index.js","gitHead":"4bdf5710a2edaf7416f9f1460c299c6b033a848f","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"ori.gold","email":"ori.gold@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"7.24.0","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"14.15.4","dependencies":{"axios":"^0.21.1","cookie-parser":"^1.4.1","perimeterx-node-core":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^8.2.0","sinon":"^2.1.0","eslint":"^7.12.0","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_7.0.1_1635183027041_0.17483345318412624","host":"s3://npm-registry-packages"}},"7.0.2":{"name":"perimeterx-node-express","version":"7.0.2","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@7.0.2","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"ori.gold","email":"ori.gold@perimeterx.com"},{"name":"shaulpx","email":"shaul.badusa@perimeterx.com"},{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},{"name":"asafpx","email":"asaf.akler@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"172eff1399dbb386a485b3ad2a222c6f8b3d4b05","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-7.0.2.tgz","fileCount":15,"integrity":"sha512-NhZtlOhHnR9Dr1qOLXJGK1GjrlUynUakh5C2jfznGDuoDcBQcwMZNhD/FqpyICGkNYN0OcpGP00RDFioWX+zOQ==","signatures":[{"sig":"MEUCIEJUD5HPogug6xu+r0NhN8h1F48gN/e+DpKuRuf6CdIDAiEAp6VrQUGGhNjxeWttW+P44ynoxw0KqGCFJJQ4uhMBdl8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":49595},"main":"index.js","gitHead":"0f2f5a0d8556eac74112a69ab9e772489df955cf","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"7.20.6","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"16.5.0","dependencies":{"axios":"^0.21.1","cookie-parser":"^1.4.1","perimeterx-node-core":"^3.0.2"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^8.2.0","sinon":"^2.1.0","eslint":"^7.12.0","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_7.0.2_1636903445228_0.9368033175149977","host":"s3://npm-registry-packages"}},"6.6.0-l":{"name":"perimeterx-node-express","version":"6.6.0-l","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@6.6.0-l","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"ori.gold","email":"ori.gold@perimeterx.com"},{"name":"shaulpx","email":"shaul.badusa@perimeterx.com"},{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},{"name":"asafpx","email":"asaf.akler@perimeterx.com"},{"name":"chennakarpx","email":"chen.nakar@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"0aeb7ed1e9f334523fbd77ac351e80c3c5debdd2","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-6.6.0-l.tgz","fileCount":13,"integrity":"sha512-TdowjMHry6DJbahdog9pfZ8aOq9YnJu34C7Zs+JfB0gZyBW12GTuCEGTVmi/Al4HbJICoZvIbv4acFRJ9h935w==","signatures":[{"sig":"MEUCIGZV0vgSy+wnq3udgIV6LmyvHpmfUwbQ3He1+/sPyvmSAiEA5DDSC7hTW836aAQ+nW61KYH2nJUzlXCCP2yA7r0c9jU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45794,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhuwQtCRA9TVsSAnZWagAAYvUP/jFq1OVHTJX6lIZri6o0\nhl5sJNJlozkOIfcIUbcLjlm9OhiU8Pn9frH6kcWnjrddFJV9SE3Y7gy/VPun\n0Jn9HE1aItYH1DWVJHGpjpYeNHq0W8rzLSwcnbgcwIlMyNms1zEk14U5E0n6\nZqslZSOHBkTFWTjyiBvsSaEqhlwvcjP7TINZKxL54s6mPDx0SXsYOhHzEurF\nlRDGTcWlDdbZ9cT4JT8TK7i7W/tOadsCkfeG73YXzZ1VsNrXHkiS+I+11wtt\njeLPbubLlE692TvX3fx8cVKeKoptJ3GHL51/4GL4BwJbZ1DiGerveWand1XB\n1tkISNN2UMd0VD3KhrYu5QslPDKIIslTmDncSJFtWCNvPN1zcjdgniF/oAY/\nuSyDwaBYxp6mgc/KQuJI6hKK13veXcSafnGJO6pk2Gx8KtfXEP6Vq0XDvK/S\na1gGKaRAVRNbQ1rHHHa5+vSpk8R3VQRd2+9cTjkhCtayvXNQ6IhI00erI3w7\nj2BSQtzWl+xDj+BvFvG+Fd5+KdA0pDHUgJB+Kts1vbrFv+HgdTcerXN+2b3p\nrgFXf3rtI5HaDlDOFSXx0Ec7UjHSq/1DBENEfQkeYM7Hs67+nv6b4iPda4lH\n7Ne+jfLM0pJ6/ARWU98KWCxAxIAT1mU499PypJHPNeyeZv5yB1Za4bfZwchZ\nHD0f\r\n=kmM6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"[![Build Status](https://travis-ci.org/PerimeterX/perimeterx-node-express.svg?branch=master)](https://travis-ci.org/PerimeterX/perimeterx-node-express)\n[![Known Vulnerabilities](https://snyk.io/test/github/PerimeterX/perimeterx-node-express/badge.svg)](https://snyk.io/test/github/PerimeterX/perimeterx-node-express)\n\n![image](https://storage.googleapis.com/perimeterx-logos/primary_logo_red_cropped.png)\n\n# [PerimeterX](http://www.perimeterx.com) Express.js Middleware\n\n> Latest stable version: [v6.6.0](https://www.npmjs.com/package/perimeterx-node-express)\n\n## Table of Contents\n\n-   [Installation](#installation)\n-   [Upgrading](#upgrading)\n-   [Configuration](#configuration)\n    -   [Required Configuration](#requiredConfiguration)\n    -   [Optional Configuration](#optionalConfiguration)\n        -   [Module Enabled](#moduleEnabled)\n        -   [Module Mode](#moduleMode)\n        -   [Blocking Score](#blockingScore)\n        -   [Send Page Activities](#sendPageActivities)\n        -   [Send Block Activities](#sendBlockActivities)\n        -   [Debug Mode](#debugMode)\n        -   [Sensitive Routes](#sensitiveRoutes)\n        -   [Whitelist Specific Routes](#whitelistRoutes)\n        -   [Enforced Specific Routes](#enforcedSpecificRoutes)\n        -   [Monitored Specific Routes](#monitoredSpecificRoutes)\n        -   [Sensitive Headers](#sensitiveHeaders)\n        -   [IP Headers](#ipHeaders)\n        -   [First Party Enabled](#firstPartyEnabled)\n        -   [Custom Request Handler](#customRequestHandler)\n        -   [Additional Activity Handler](#additionalActivityHandler)\n        -   [Enrich Custom Parameters](#enrichCustomParams)\n        -   [CSS Ref](#cssRef)\n        -   [JS Ref](#jsRef)\n        -   [Custom Logo](#customLogo)\n        -   [Secured PXHD cookie](#securedpxhd)\n        -   [Proxy Support](#proxySupport)\n        -   [Custom Cookie Header](#customCookieHeader)\n        -   [Filter Traffic by User Agent](#filterByUserAgent)\n        -   [Filter Traffic by IP](#filterByIP)\n        -   [Filter Traffic by HTTP Method](#filterByMethod)\n        -   [Test Block Flow on Monitoring Mode](#bypassMonitorHeader)\n-   [Advanced Blocking Response](#advancedBlockingResponse)\n-   [Multiple App Support](#multipleAppSupport)\n\n## <a name=\"installation\"></a> Installation\n\nPerimeterX Express.js middleware is installed via NPM:\n`$ npm install --save perimeterx-node-express`\n\n> Please note: As stated in [NodeJS's release schedule](https://github.com/nodejs/Release#release-schedule), NodeJS 6.x is reaching EOL. Thus, support for it will be dropped starting with version 5.0.0.\n\n## <a name=\"upgrading\"></a> Upgrading\n\nTo upgrade to the latest Enforcer version, run:\n\n`npm install -s perimeterx-node-express`\n\nFor more information, contact [PerimeterX Support](support@perimeterx.com).\n\n## <a name=\"configuration\"></a> Configuration\n\n### <a name=\"requiredConfiguration\"></a> Required Configuration\n\nTo use PerimeterX middleware on a specific route follow this example:\n\n```javascript\n'use strict';\n\nconst express = require('express');\nconst perimeterx = require('perimeterx-node-express');\n\nconst server = express();\n\n/* px-module and cookie parser need to be initiated before any route usage */\nconst pxConfig = {\n    pxAppId: 'PX_APP_ID',\n    cookieSecretKey: 'PX_COOKIE_ENCRYPTION_KEY',\n    authToken: 'PX_TOKEN',\n};\nperimeterx.init(pxConfig);\n\n/*  block users with high bot scores using px-module for the route /helloWorld */\nserver.get('/helloWorld', perimeterx.middleware, (req, res) => {\n    res.send('Hello from PX');\n});\n\nserver.listen(8081, () => {\n    console.log('server started');\n});\n```\n\n-   The PerimeterX **Application ID / AppId** and PerimeterX **Token / Auth Token** can be found in the Portal, in <a href=\"https://console.perimeterx.com/botDefender/admin?page=applicationsmgmt\" onclick=\"window.open(this.href); return false;\">**Applications**</a>.\n\n-   The PerimeterX **Cookie Encryption Key** can be found in the portal, in <a href=\"https://console.perimeterx.com/botDefender/admin?page=policiesmgmt\" onclick=\"window.open(this.href); return false;\">**Policies**</a>.\n\n    The Policy from where the **Cookie Encryption Key** is taken must correspond with the Application from where the **Application ID / AppId** and PerimeterX **Token / Auth Token**\n\nSetting the PerimeterX middleware on all server's routes:\n\n> When configuring the PerimeterX middleware on all the server's routes, you will have a\n> score evaluation on each incoming request. The recommended pattern is to use\n> on top of page views routes.\n\n```javascript\n'use strict';\n\nconst express = require('express');\nconst perimeterx = require('perimeterx-node-express');\n\nconst server = express();\n\n/* the px-module and parser need to be initialized before any route usage */\nconst pxConfig = {\n    pxAppId: 'PX_APP_ID',\n    cookieSecretKey: 'PX_COOKIE_ENCRYPTION_KEY',\n    authToken: 'PX_TOKEN',\n};\nperimeterx.init(pxConfig);\n\n/* block high scored users using px-module for all routes */\nserver.use(perimeterx.middleware);\n\nserver.get('/helloWorld', (req, res) => {\n    res.send('Hello from PX');\n});\n\nserver.listen(8081, () => {\n    console.log('server started');\n});\n```\n\n## <a name=\"upgrade\"></a> Upgrading\n\nTo upgrade to the latest Enforcer version, run:\n\n`npm install -s perimeterx-node-express`\n\nYour Enforcer version is now upgraded to the latest enforcer version.\n\nFor more information,contact [PerimeterX Support](support@perimeterx.com).\n\n### <a name=\"optionalConfiguration\"></a>Optional Configuration\n\nIn addition to the basic installation configuration [above](#requiredConfiguration), the following configurations options are available:\n\n#### <a name=\"moduleEnabled\"></a>Module Enabled\n\nA boolean flag to enable/disable the PerimeterX Enforcer.\n\n**Default:** true\n\n```js\nconst pxConfig = {\n  ...\n  enableModule: false\n  ...\n};\n```\n\n#### <a name=\"moduleMode\"></a>Module Mode\n\nSets the working mode of the Enforcer.\n\nPossible values:\n\n-   `0` - Monitor Mode\n-   `1` - Blocking Mode\n\n**Default:** `0` - Monitor Mode\n\n```js\nconst pxConfig = {\n  ...\n  moduleMode: 1\n  ...\n};\n```\n\n#### <a name=\"blockingScore\"></a>Blocking Score\n\nSets the minimum blocking score of a request.\n\nPossible values:\n\n-   Any integer between 0 and 100.\n\n**Default:** 100\n\n```js\nconst pxConfig = {\n  ...\n  blockingScore: 100\n  ...\n};\n```\n\n#### <a name=\"sendPageActivities\"></a>Send Page Activities\n\nA boolean flag to enable/disable sending activities and metrics to PerimeterX with each request. <br/>\nEnabling this feature allows data to populate the PerimeterX Portal with valuable information, such as the number of requests blocked and additional API usage statistics.\n\n**Default:** true\n\n```js\nconst pxConfig = {\n  ...\n  sendPageActivities: true\n  ...\n};\n```\n\n#### <a name=\"sendBlockActivities\"></a>Send Block Activities\n\nA boolean flag to enable/disable sending block activities to PerimeterX with each request.\n\n**Default:** true\n\n```js\nconst pxConfig = {\n  ...\n  sendBlockActivities: true\n  ...\n};\n```\n\n#### <a name=\"debugMode\"></a>Debug Mode\n\nA boolean flag to enable/disable the debug log messages.\n\n**Default:** false\n\n```js\nconst pxConfig = {\n  ...\n  debugMode: true\n  ...\n};\n```\n\n#### <a name=\"sensitiveRoutes\"></a> Sensitive Routes\n\nAn array of route prefixes that trigger a server call to PerimeterX servers every time the page is viewed, regardless of viewing history.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  sensitiveRoutes: ['/login', '/user/checkout']\n  ...\n};\n```\n\n#### <a name=\"whitelistRoutes\"></a> Whitelist Specific Routes\n\nAn array of route prefixes and/or regular expressions that are always whitelisted and not validated by the PerimeterX Worker.\n<br/>A regular expression can be defined using `new RegExp` or directly as an expression, and will be treated as is.\n<br/>A string value of a path will be treated as a prefix.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  whitelistRoutes: ['/contact-us', /\\/user\\/.*\\/show/]\n  ...\n};\n```\n\n#### <a name=\"enforcedSpecificRoutes\"></a>Enforced Specific Routes\n\nAn array of route prefixes and/or regular expressions that are always validated by the PerimeterX Worker (as opposed to whitelisted routes).\n<br/>A regular expression can be defined using `new RegExp` or directly as an expression, and will be treated as is.\n<br/>A string value of a path will be treated as a prefix.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  enforcedRoutes: ['/home',/^\\/$/]\n  ...\n};\n```\n\n#### <a name=\"monitoredSpecificRoutes\"></a>Monitored Specific Routes\n\nAn array of route prefixes and/or regular expressions that are always set to be in [monitor mode](#moduleMode). This only takes effect when the module is enabled and in blocking mode.\n<br/>A regular expression can be defined using `new RegExp` or directly as an expression, and will be treated as is.\n<br/>A string value of a path will be treated as a prefix.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  monitoredRoutes: ['/home', new RegExp(/^\\/$/)]\n  ...\n};\n```\n\n#### <a name=\"sensitiveHeaders\"></a>Sensitive Headers\n\nAn array of headers that are not sent to PerimeterX servers on API calls.\n\n**Default:** ['cookie', 'cookies']\n\n```js\nconst pxConfig = {\n  ...\n  sensitiveHeaders: ['cookie', 'cookies', 'x-sensitive-header']\n  ...\n};\n```\n\n#### <a name=\"ipHeaders\"></a>IP Headers\n\nAn array of trusted headers that specify an IP to be extracted.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  ipHeaders: ['x-user-real-ip']\n  ...\n};\n```\n\n#### <a name=\"firstPartyEnabled\"></a>First Party Enabled\n\nA boolean flag to enable/disable first party mode.\n\n**Default:** true\n\n```js\nconst pxConfig = {\n  ...\n  firstPartyEnabled: false\n  ...\n};\n```\n\n#### <a name=\"customRequestHandler\"></a>Custom Request Handler\n\nA JavaScript function that adds a custom response handler to the request.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  customRequestHandler: function(pxCtx, pxconfig, req, cb) {\n    ...\n    cb({body: result, status: 200, statusDescription: \"OK\", header: {key: 'Content-Type', value:'application/json'}})\n  }\n  ...\n};\n```\n\n#### <a name=\"additionalActivityHandler\"></a>Additional Activity Handler\n\nA JavaScript function that allows interaction with the request data collected by PerimeterX before the data is returned to the PerimeterX servers. Does not alter the response.\n\n**Default:** Empty\n\n```javascript\nconst pxConfig = {\n  ...\n  additionalActivityHandler: function(pxCtx, request) {\n    ...\n  }\n  ...\n};\n```\n\n#### <a name=\"enrichCustomParams\"></a>Enrich Custom Parameters\n\nWith the `enrichCustomParameters` function you can add up to 10 custom parameters to be sent back to PerimeterX servers. When set, the function is called before seting the payload on every request to PerimetrX servers. The parameters should be passed according to the correct order (1-10).\n\n**Default:** Empty\n\n```javascript\nconst pxConfig = {\n  ...\n  enrichCustomParameters: function(customParams, originalRequest) {\n    customParams[\"custom_param1\"] = \"yay, test value\";\n    return customParams;\n  }\n  ...\n};\n```\n\n#### <a name=\"cssRef\"></a>CSS Ref\n\nModifies a custom CSS by adding the CSSRef directive and providing a valid URL to the CSS.\n\n**Default:** Empty\n\n```javascript\nconst pxConfig = {\n  ...\n  cssRef: 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css'\n  ...\n};\n```\n\n#### <a name=\"jsRef\"></a>JS Ref\n\nAdds a custom JS file by adding JSRef directive and providing the JS file that is loaded with the block page.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  jsRef: 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js'\n  ...\n};\n```\n\n#### <a name=\"customLogo\"></a>Custom Logo\n\nThe logo is displayed at the top of the the block page.\nMax-height = 150px, Width = auto.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  customLogo: 'https://s.perimeterx.net/logo.png',\n  ...\n};\n```\n\n#### <a name=\"securedpxhd\"></a>Secured PXHD cookie\n\nA boolean flag to enable/disable the `Secure` flag when baking a PXHD cookie.\n\n**Default:** false\n\n```js\nconst pxConfig = {\n  ...\n  pxhdSecure: true\n  ...\n};\n```\n\n#### <a name=\"proxySupport\"></a>Proxy Support\n\nAllows traffic to pass through a http proxy server.\n\n**Default:** Empty\n\n```javascript\nconst pxConfig = {\n  ...\n  proxy: 'https://localhost:8008',\n  ...\n};\n```\n\n#### <a name=\"customCookieHeader\"></a>Custom Cookie Header\n\nWhen set, instead of extrating the PerimeterX Cookie from the `Cookie` header, this property specifies a header name that will contain the PerimeterX Cookie. \n\n**Default:** Empty\n\n```javascript\nconst pxConfig = {\n  ...\n  customCookieHeader: \"x-px-cookies\"\n  ...\n};\n```\n\n#### <a name=\"filterByUserAgent\"></a> Filter Traffic by User Agent\n\nAn array of user agents that are always filtered and not validated by the PerimeterX middleware.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  filterByUserAgent: ['testUserAgent/v1.0']\n  ...\n};\n```\n\n#### <a name=\"filterByIP\"></a> Filter Traffic by IP\n\nAn array of IP ranges / IP addresses that are always filtered and not validated by the PerimeterX middleware.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  filterByIP: ['192.168.10.0/24', '192.168.2.2']\n  ...\n};\n```\n\n#### <a name=\"filterByMethod\"></a> Filter Traffic by HTTP Method\n\nAn array of HTTP methods that are always filtered and not validated by the PerimeterX middleware.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  filterByMethod: ['options']\n  ...\n};\n```\n\n#### <a name=“bypassMonitorHeader”></a> Test Block Flow on Monitoring Mode\n\nAllows you to test an enforcer’s blocking flow while you are still in Monitor Mode.\n\nWhen the header name is set(eg. `x-px-block`) and the value is set to `1`, when there is a block response (for example from using a User-Agent header with the value of `PhantomJS/1.0`) the Monitor Mode is bypassed and full block mode is applied. If one of the conditions is missing you will stay in Monitor Mode. This is done per request.\nTo stay in Monitor Mode, set the header value to `0`.\n\nThe Header Name is configurable using the `BypassMonitorHeader` property.\n\n**Default:** Empty\n\n```javascript\nconst pxConfig = {\n  ...\n  bypassMonitorHeader: \"x-px-block\"\n  ...\n};\n```\n\n## <a name=\"advancedBlockingResponse\"></a> Advanced Blocking Response\n\nIn special cases, (such as XHR post requests) a full Captcha page render might not be an option. In such cases, using the Advanced Blocking Response returns a JSON object continaing all the information needed to render your own Captcha challenge implementation, be it a popup modal, a section on the page, etc. The Advanced Blocking Response occurs when a request contains the _Accept_ header with the value of `application/json`. A sample JSON response appears as follows:\n\n```javascript\n{\n    \"appId\": String,\n    \"jsClientSrc\": String,\n    \"firstPartyEnabled\": Boolean,\n    \"vid\": String,\n    \"uuid\": String,\n    \"hostUrl\": String,\n    \"blockScript\": String\n}\n```\n\nOnce you have the JSON response object, you can pass it to your implementation (with query strings or any other solution) and render the Captcha challenge.\n\nIn addition, you can add the `_pxOnCaptchaSuccess` callback function on the window object of your Captcha page to react according to the Captcha status. For example when using a modal, you can use this callback to close the modal once the Captcha is successfullt solved. <br/> An example of using the `_pxOnCaptchaSuccess` callback is as follows:\n\n```javascript\nwindow._pxOnCaptchaSuccess = function (isValid) {\n    if (isValid) {\n        alert('yay');\n    } else {\n        alert('nay');\n    }\n};\n```\n\nFor details on how to create a custom Captcha page, refer to the [documentation](https://docs.perimeterx.com/pxconsole/docs/customize-challenge-page)\n\n> If you wish to disable this behavior when the _Accept_ header has the value of `application/json`, set the following configuration:\n>\n> ```javascript\n> const pxConfig = {\n>   ...\n>   advancedBlockingResponse: false\n>   ...\n> };\n> ```\n\n## <a name=\"multipleAppSupport\"></a> Multiple App Support\n\nIf you use two different apps on the same node runtime, you can create two instances and use them on two routes:\n\n```javascript\n'use strict';\n\nconst express = require('express');\nconst perimeterx = require('perimeterx-node-express');\n\nconst server = express();\n\n/* the px-module and parser need to be initialized before any route usage */\nconst pxConfig1 = {\n    pxAppId: 'PX_APP_ID_1',\n    cookieSecretKey: 'PX_COOKIE_ENCRYPTION_KEY',\n    authToken: 'PX_TOKEN_1',\n};\nconst middlewareApp1 = perimeterx.new(pxConfig1).middleware;\nconst app1Router = express.Router();\napp1Router.use(middlewareApp1);\napp1Router.get('/hello', (req, res) => {\n    res.send('Hello from App1');\n});\nserver.use('/app1', app1Router);\n\nconst pxConfig2 = {\n    pxAppId: 'PX_APP_ID_2',\n    cookieSecretKey: 'PX_COOKIE_ENCRYPTION_KEY',\n    authToken: 'PX_TOKEN_2',\n};\nconst middlewareApp2 = perimeterx.new(pxConfig2).middleware;\nconst app2Router = express.Router();\napp2Router.use(middlewareApp2);\napp2Router.get('/app2', (req, res) => {\n    res.send('Hello from App2');\n});\nserver.use('/app2', app1Router);\n\nserver.listen(8081, () => {\n    console.log('server started');\n});\n```\n","gitHead":"a6f8d23709c58b37c313a2df40edd5989ba3c4c0","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"chennakarpx","email":"chen.nakar@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"7.5.4","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"14.15.5","dependencies":{"cookie-parser":"^1.4.1","perimeterx-node-core":"2.13.1-lusha"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^8.2.0","sinon":"^2.1.0","eslint":"^7.12.0","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_6.6.0-l_1639646253487_0.7991750179915462","host":"s3://npm-registry-packages"}},"7.0.3":{"name":"perimeterx-node-express","version":"7.0.3","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@7.0.3","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"ori.gold","email":"ori.gold@perimeterx.com"},{"name":"shaulpx","email":"shaul.badusa@perimeterx.com"},{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},{"name":"asafpx","email":"asaf.akler@perimeterx.com"},{"name":"chennakarpx","email":"chen.nakar@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"4fe9158523fe63d7213e022cd8c6b637f736380b","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-7.0.3.tgz","fileCount":15,"integrity":"sha512-BjckgeTbSOMR7NK34UuB6eC2Wv8Zs4W3z0nnrqMLuDvIzTwpiZqfBMNSDnzoRBoD1/aziqmzXQ2CAx0oGCO76w==","signatures":[{"sig":"MEUCID2IB5+vCY2y1tGMHDTGpNuvN8Uyg5oA7FpNZPzgXtyGAiEA5IuP9k+OtyAVJiqoJGjIykVI9OrQxQZGuECHapNl97c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":50350,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5sRfCRA9TVsSAnZWagAARjgP/0Gyr3QYlXY1UoDLJCq1\nJojrdtuwqgY0UuANSKj5z41fCmEFbPNqOA/YF/NTHgJx08V3aakqeWCwN5Zz\nlVqG7WQn1gobJik5sHFhy8orj4gFnDEdoYYN47HlKCrOkOILqJMonvf1BKJx\nFPX4iMhmrwusDpPBv7s4mQID/6X3qNleYBNgdLJ7dwhvLXxa1FwXUdOiZO6d\nEgzpot5LiH2T0vIC5q/AYtJ4cGW6shKB0Gtr7n3TD2gbSV4AK0pQPt1BBXxV\nV6RdS4mwLRWp/PDwybfbjwolK8txWMs4SoCA1RKJH06d72VH3w7JtzaPtrmX\n/3yjlHV2v0KmDnwAuBTYEsGgeJmnXhi4K8p3yB8i8sj8cZUcHkGqAmIwcZez\nUYgN+mih1N0r1P6mRTomE4Ls7PYHcydgGgyS/d03by6NWryKt7TN+GCdYvFS\nbW1e/VlP9Ga6pmkdPP9ULcDDvYc+n7+862/oCJw+vEWCLJ8bXZliPS6sqnq9\n+DJsBQZmDEujrT4QCgIpzWpuiZ6OiEKD2z6QSNMolBa+SECVsqGQVMPRDLet\nfbVBQhMpzRBnzDr+RPc1CemQ85rdTfmGDsjvgEN72e/J4s3nOrYbqA1nZfWq\n8yRjr++NRhfC33TVOZ3fvdMczGj1cWSUvta76odAa3JvwZtrJF/wDrVO/9sP\nRYlD\r\n=b5ak\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"a4c2e17dbe76a9f3948c7c1caa0158241be22f6b","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"7.20.6","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"16.5.0","dependencies":{"axios":"^0.21.1","cookie-parser":"^1.4.1","perimeterx-node-core":"^3.1.2"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^8.2.0","sinon":"^2.1.0","eslint":"^7.12.0","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_7.0.3_1642513503417_0.3899997489187095","host":"s3://npm-registry-packages"}},"7.1.0":{"name":"perimeterx-node-express","version":"7.1.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@7.1.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"ori.gold","email":"ori.gold@perimeterx.com"},{"name":"shaulpx","email":"shaul.badusa@perimeterx.com"},{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},{"name":"asafpx","email":"asaf.akler@perimeterx.com"},{"name":"chennakarpx","email":"chen.nakar@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"3b5921e3ed26a3dfa92a4821ecdcf3125c41526c","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-7.1.0.tgz","fileCount":15,"integrity":"sha512-c0DHHRBbbvrWtx8IL1ZuTZyQ4eXNnPLwclhAEfNHUPTjbinNpuLIruPTOgT0PR2Zkx7un5fNGSVYiWw7d1XFtA==","signatures":[{"sig":"MEYCIQD5pEAb/g3D84RhKHvjdIaA/l4UredEUqK9LtQd/XQxcgIhAPYKintT+sgTAaoVvZx5QSbA8l4N+I0ZQCzDTrhoxYBI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":58522,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh7rhUCRA9TVsSAnZWagAAYW8P/jh2JmnXIUbSYbF44JOf\nTK1wFGKJyT5Vr4k/paqKWIQNXnZU+O80M5tJcQaeMa2BLk4QVZWWSQnTYDUf\nWbfmfZTAhJNkWCWyVx7OlJJM5c7z8JuE/ffaS/vjRU9wXPO5VltblutJT6bi\nYhg36jp/Yks+NmYqYvvfXA4L6Vd0vEGcvQZ+kRVN4yfcTvlE+55L4LbrE6Z/\naaT83I7a2pSXbS/loH0/Ojyg3Ikovz9wI6EATjKyYRUIEF2eQrM7bp6gv8wo\ndOAgJ3BKhT4Ps8EC7uYGrQRP9C1uahrctczvELW0ltObVUQ6AzRC7qzJdEbP\nRyqLWLwCHO/nYZjz1lB5I4aBz3BcARN8sPwrJ+bnbZMsLiqiDK+n4m+wMrzO\nmdneS8YoP2/tyCIMikUn35etDqnoizj3DqZIOVtkfqdQ4ORJg6XrcNUjexg+\nvTjhbD11OMZ9a5rCITUnBxTYYxHiVTth88dnvUFlnjHJhW199i/SMrOTrFZX\nGWkxpFzTAteS5Gn2L0gaznwgWZnJWfAaGRQIJHuWcMfc/mj4/KxMN3uEv0o0\nCbJ7z7G2Os2RD6qD5IF5GfKBsUVW36H5H54wDWWF+T0GAj+H/v3Q+nacd5QI\niWWxKz7Okh5W72yKZtLeC4TD5n5MvX9q9j/tHEnyQdVDCfhbxLbNkFpHmGZQ\nZDab\r\n=oEkm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"0c02a549bbb8f5013a8ca7c9abd888510a9178a7","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"ori.gold","email":"ori.gold@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"8.1.0","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"16.13.0","dependencies":{"axios":"^0.21.1","cookie-parser":"^1.4.1","perimeterx-node-core":"^3.2.0"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^8.2.0","sinon":"^2.1.0","eslint":"^7.12.0","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_7.1.0_1643034708642_0.5624472084053032","host":"s3://npm-registry-packages"}},"7.1.1":{"name":"perimeterx-node-express","version":"7.1.1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@7.1.1","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"ori.gold","email":"ori.gold@perimeterx.com"},{"name":"shaulpx","email":"shaul.badusa@perimeterx.com"},{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},{"name":"asafpx","email":"asaf.akler@perimeterx.com"},{"name":"chennakarpx","email":"chen.nakar@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"76222cbe63d96c117632180bc8f9c36208fcadef","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-7.1.1.tgz","fileCount":15,"integrity":"sha512-cSIvZ1oph9ceB2YYnkJrKRO+1WwmwX12uZJyomRlO+ruqxG+eOiT8iZxdlfPfpYsH8SUVHFxyusVmCacXm0/tQ==","signatures":[{"sig":"MEUCIQDPFWlVRFHXYCjKoOEEp0c+9B3T4sWLiU+ptX+MnCOykwIgQoNt9ZqYQ03j8+6VfIcz1UBBd7h03S8RHG0xf/JfFzw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":58611,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiKfNKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpdiA/9Fto0v0r9iG0cntGaYY3CpZCms8hQKE4THcvQf9uTvr05TrF/\r\ns8fTucYJQ3Yb7Dkst1DgX6r8W0fM02CinEcb/VBuZAikNbDnmEI8wMAjXNOz\r\nktsXMMY/Wuh4smaDkwHDZvPBr2DL76LZyRjRAeoQThi3Ns3iXew0W2f4V8MU\r\nZEHDfxUOWfMMGuHm8ECrUnEarjR7VDBfK63X2vaGVfHii/Oa5ibKadycD/L2\r\nGt1ep6E7gSUns5g9KCz/31NQwMP9dAmTqc0KbqUj750SQM5CBicbjFKOfhow\r\nLQmvsA8J9pcHT0Gx46gcQ6QMxTwom/pSlvISa5dondevMgHlUF7RWj9eUiQ9\r\nzF0eQYYEoBbQ1gizOzbh0gSTCH6a5tdhIgIFb8Z5lAFe2NtZzdHGI9mHcM5l\r\nkaU+gOaej4wNh4JZ7TnVhVG5ZtHm3rU+9zVcpkMbq2TKRTSbRE43YPYXkCHI\r\nsxRNevjaxNU+NgwytrUcvnQHeX7+tEqloPCASEgfsKUS+GKaSjpGc6qxnpnC\r\nHLUuzQCOltZrPWbH8KbjxM5jkcxdNmrSb2cgcYOQLRJt7ZEL9gWmZBdr4tVl\r\njdbqgs0kCiaQJryqumt0T4X/d6+RjVakYg387AQ8vZF2pBScn1gxd5pBZRhK\r\n75+yPg2zXgVslCSjoXCOG6KQCcYjKc9PSHQ=\r\n=1NMW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"66f9764585e1e5dbc68de105b0652f633abaf6e9","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"asafpx","email":"asaf.akler@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"7.24.1","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"12.22.3","dependencies":{"axios":"^0.21.1","cookie-parser":"^1.4.1","perimeterx-node-core":"^3.2.0"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^8.2.0","sinon":"^2.1.0","eslint":"^7.12.0","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_7.1.1_1646916426724_0.2874244471023777","host":"s3://npm-registry-packages"}},"7.2.0":{"name":"perimeterx-node-express","version":"7.2.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@7.2.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"ori.gold","email":"ori.gold@perimeterx.com"},{"name":"shaulpx","email":"shaul.badusa@perimeterx.com"},{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},{"name":"asafpx","email":"asaf.akler@perimeterx.com"},{"name":"chennakarpx","email":"chen.nakar@perimeterx.com"},{"name":"chen.zimmer.perimeterx","email":"chen.zimmer@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"2fe05945d9c9de1f32def1415f043873ac389fde","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-7.2.0.tgz","fileCount":15,"integrity":"sha512-HSmIEgXrkyEq/u4LJdbe9Bdu2rWNtq8Sys11vgYI9l09ULZR/rkULOCMSM1jdmtu9j3DFR7zz/9peTOZ2mrN2Q==","signatures":[{"sig":"MEQCIErNkUiIu8CsO1gKllLjUpPZInhlVA8j7Wt+nu3IZgsyAiA4c0t8DJrAP21mSpn0lY8chJMM3BsOrB+Fs5vVzox59g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":58792,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiVFiuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmofBhAAk3DhW61xCDNMg+B7LyPnNVUtT5pBet2JPmfFIImtBI2Hr3g5\r\nS5gtupg9DnRU6ywDZFYirlMsONl12GFfSAs6rRpQrHR7cBx6ieWGSuVYX6px\r\nCvYQolXf30yXXAy/JzIRrRzbB8aPk+HQKC2buknA5W+3qpgP9d/6JSJNZt2j\r\nBNCYZgWyB8Bjo71CB3IIw9tn2yT8wiEqwNleocsNAEebzXDxVdBhXI6aDJoO\r\nKEmmIZTlHJxP7nPZVcmes5vj0/VzYFczAUplf+1lNt8+5h18BolnNEmWphn6\r\nbAlI9ph8zrDHrpfyQEng4O59WfFNv4/fSEjxX5onqZCNj/cdYvBW8AbGUkKc\r\n54TZI0QCO7VQSN5jyXQ8Xm1fkE5dWIZ0c7rM1o6NNauhQka0NjarOEj/P0FA\r\nWnj3lohf7fqF559GT5+I/KGC4MtgKd5gbLVd9LsT8VR67T4vSU0c6FQFPPLw\r\nVeiWBnbWDlrvwtJOyFG/KOXuo7pLMvQWMEiOQlxDUZL96Jqen5VNbesSNZo7\r\nJQbSvWxxtwkv0Bb/6Q8viGWytCZX/iEssaUQ+xqaf7XIaVSdcmZVk0CNmj0j\r\nUGgEEmK4EOD1588JfQHemqsEz14EXW7gMmnuIv/yROx7eZJNN2qhwM/92Msx\r\nkGkX+kAbiS+lGKMEcO3rkoGhK54SLYFHDPk=\r\n=y8pN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"43a5630676424f1af477ad372864aa48c3a16d3a","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"chen.zimmer.perimeterx","email":"chen.zimmer@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"8.5.0","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"16.14.1","dependencies":{"axios":"^0.21.1","cookie-parser":"^1.4.1","perimeterx-node-core":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^8.2.0","sinon":"^2.1.0","eslint":"^7.12.0","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_7.2.0_1649694894316_0.729433137414119","host":"s3://npm-registry-packages"}},"7.3.0":{"name":"perimeterx-node-express","version":"7.3.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@7.3.0","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"pxjohnny","email":"johnny@perimeterx.com"},{"name":"ilaipx","email":"ilai@perimeterx.com"},{"name":"ori.gold","email":"ori.gold@perimeterx.com"},{"name":"shaulpx","email":"shaul.badusa@perimeterx.com"},{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},{"name":"asafpx","email":"asaf.akler@perimeterx.com"},{"name":"chennakarpx","email":"chen.nakar@perimeterx.com"},{"name":"chen.zimmer.perimeterx","email":"chen.zimmer@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"53c2a0e702cb4dbbde5a84b87ea24297e2f16d1c","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-7.3.0.tgz","fileCount":15,"integrity":"sha512-HiOM2QK0EJ+F019GZdV9hGRp+tc6kd2MYK5r7HFE0YsZ1HRzyGPmfrhGcP1iInWy+9zJ12XFDDbvNLsl8yoP1Q==","signatures":[{"sig":"MEYCIQCRK+KMU/uhHKxTcTOzCbn/0dc269cXViccr+PToBJg+AIhAKrOvt44H43QGsRKjJ5XTJa6XvKzFQHTO1lDCXdqu617","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":58882,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJib9+6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqo1g/7Brnqctehq+StipPyJ+AY869F6hTr8gS9DbwmrNRa/gGbpNgD\r\n7LF9GLfN1wh6fUqfOCFHLnEFYb2lFNNcF+ybAhg/Ik2JmjIGjHGOwiFrR6Bg\r\n2Wtu+VXBlUcyiOdiq/DrM/4MGOniJceKfvF7OaWL6Y0DSl3fobs6tJv1qCBU\r\nt+99Dtk7OrGStULJPNFanA1xhb4SDwsYqApgio7ium3HeZbxzyqw2FZranS7\r\naByOhnpyLVaeFHLwB5NALX6f2RYVxNmlQDv6HTcuwVApvVm7S1vIvwiEpkVG\r\npTplZDOa/J1QB7BeqwlRTNXUuevj8CS8KumwpVguCoULn9tiXUItuaNxBqYb\r\nglmDxRx9HKXbxug8FB/a+BrguOLDndM+s/e1a2A0tDgp7IyT1XSvDOFelwg8\r\nOj8CUAZTrG98C8c+yI6wKC8X/gmJy3ila/agOZRK2kNg3tFbgOlozmpjtAsE\r\n6L6S5MKFs5lSZx+6nJ6hQ2ijA+0nu4obE++ewoUAA9MC4KQjquu1czjLzqRD\r\num0lk9PBgYejk/nrsgpDJKq3THWHqGsIukUTFfpH9JoHXqQ/0bURzHdwIj/V\r\nluhimRnj2eHKNbjOjmKKufYz04vH71hXWYUS5DaHvGQveaRIKTYY1gdnKr2v\r\nKk0MTna34I4a/wVYVQfPWAvhR4ib/0IFBCs=\r\n=2DVp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"7fa3d8d00acf59d9e554031e07aec0a4ee1f9195","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"chen.zimmer.perimeterx","email":"chen.zimmer@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"8.5.0","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"16.14.1","dependencies":{"axios":"^0.21.1","cookie-parser":"^1.4.1","perimeterx-node-core":"^3.4.0"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^8.2.0","sinon":"^2.1.0","eslint":"^7.12.0","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_7.3.0_1651498938491_0.7111257094065331","host":"s3://npm-registry-packages"}},"7.3.1":{"name":"perimeterx-node-express","version":"7.3.1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@7.3.1","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"ori.gold","email":"ori.gold@perimeterx.com"},{"name":"shaulpx","email":"shaul.badusa@perimeterx.com"},{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},{"name":"asafpx","email":"asaf.akler@perimeterx.com"},{"name":"chen.zimmer.perimeterx","email":"chen.zimmer@perimeterx.com"},{"name":"oren-yaar-px","email":"oren.yaar@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"230e8c4a1b8d35dd6377167f8822295872687849","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-7.3.1.tgz","fileCount":15,"integrity":"sha512-+un4vzrhuMaQpAzAdsPyaz9wKGimHhxlvfneW+rwY1G7L19fhioBW0O/A3T2OrEQaqIv5G3UQ14KQxwHmli2XA==","signatures":[{"sig":"MEUCIBBFd9BveEMmJAng2koYwMosyUTJ6zrGW7YDs9dI0nbwAiEAjzy0vslUR4CGzM91dzXeRI+DS3erGZyu6ukRVOoBVd0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":58977,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJihPO2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpJ4g/9E+/hiKYalxkRVUMSIs5FHa1pIfrijOwEf4HtSIkZmPdUIyEw\r\nkVBzQOpwatJcoxLKVhD8DHE61YosdnyS9qYjR7vd/u9AsYSb3sXMun1EF/a9\r\n1w1VGApnVY9T1RdMTovP+22G4aPG8YiCyTkCZ94r40l0fVXdYcqw8Ec3keo2\r\npoTpEqCnpvfbSDy1jyx5bgARS4i8TNhFUUzx1iB35r6VHYLAk6Fee8yJ2Zzl\r\nOu7IZ/V+7wDBhj3nD7yt2WJTUHZgSSCkLbxxb4QXeyIgmut8ygzCnpHqivh9\r\nCOa4+iDF93D5YypWhb5RJi5TFTwgesmeXRUYwvnuBGC9L/iwYTtJdKXsC+ST\r\n52C19LTEsKktUCrKYZM62SnHYyqfkPN8Wr9AFmQ1i4Lpn1fq6oDGTLI7h2G/\r\niv77UGTyUh8poBn+tiqJU3HiRXwOUefyKWrm63Gik9a42JQifeLvn02A+iEA\r\n5/3PbnrHpkbV0pfRX678+Fkxm2gmaoL6HisVtkg7MSzcTBZQ/mUKX4qjjXG6\r\nFCtjQ+eQDpvF/KoKD1NZTBVIhSJGkkKtAnz7qNy+wZDcJM2pEnlm/ExSLzz4\r\nDeaX+fJr817VcRYPU4VcuIFd7lcOjZVIGiDvXECwu946mQpE2ru1n/c6+1MC\r\n/3mCM+yVVqqoiQpJDTLhs/TLj6wEi6f0Mtk=\r\n=ykB7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"99e2cc0ff351e309131c68b1e09f424030ad6f4d","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"oren-yaar-px","email":"oren.yaar@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"8.5.0","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"16.14.2","dependencies":{"axios":"^0.21.1","cookie-parser":"^1.4.1","perimeterx-node-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^8.2.0","sinon":"^2.1.0","eslint":"^7.12.0","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_7.3.1_1652880310722_0.6218193533569996","host":"s3://npm-registry-packages"}},"7.3.2":{"name":"perimeterx-node-express","version":"7.3.2","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@7.3.2","maintainers":[{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"yaronpx","email":"yaron@perimeterx.com"},{"name":"nlevi1984","email":"noam.levi@perimeterx.com"},{"name":"ori.gold","email":"ori.gold@perimeterx.com"},{"name":"shaulpx","email":"shaul.badusa@perimeterx.com"},{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},{"name":"asafpx","email":"asaf.akler@perimeterx.com"},{"name":"chen.zimmer.perimeterx","email":"chen.zimmer@perimeterx.com"},{"name":"oren-yaar-px","email":"oren.yaar@perimeterx.com"},{"name":"eladpx","email":"elad.trubek@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"a5f4a893aa883e22b7a96afaafc5448327825918","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-7.3.2.tgz","fileCount":15,"integrity":"sha512-kEZpsDBtiugWiP8BhjlWqmbERqIFuVYwmDrxSreJ/zMBBX9x/P8s7ayAqh5vGhFWbZ/pOlUoVhwRwntDw05i8w==","signatures":[{"sig":"MEUCIQDwvQXrG/fqspPFcnwBwEy3EnFAd64OrF8N+HO8/yWv+gIgCk9eBKPap5uMNRueIN5+a+9GGCxRexiXhSO0fLbkt+s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":59057,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivYfQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpLtw/+KYo1pYXONLvIQjJO/sV6GT797hSnIX8qjJUUSkxvXeCCHJ99\r\nRiKat3fpW1fPHTZWbhijkcAAaRbiH+PLRfzSK6y8obotgclPqYIFJ3Wxuh39\r\nCVXflxoShkZuK6AfylENRsaPXiHSViNIvAmLtODFJnZIpmh4JHOpAeik/XRk\r\nbTi1UMkgOQ6np2RHjB6jUwtY3sFfDSZGDRNLxfuyjT0ouOH9mHrgDBOLpzX0\r\nqVrWvR9Zzpp4OyS2RitOs8I+YtMSOOr9Ewlfs9wsZvxPc8rFGNxq5PxZ0hJ0\r\nOU8xG4YhLY4AaMfVWBj9ImKd6yHKh9/hsvZur+7oKDtXxtcqjs1rUTBE7NVp\r\nj8pqgjUMC+A6fFnl0rYVXHLDY95oknBhXeBdOeFC91IGtttnp0z2vY8SsuWT\r\nEIQeZtd/Z0C/cT2H9BT9/cGlf1yTNqnWfuOaZ4y0WetB+Zx3NntaR/+8+xJa\r\nyORzdGNh/YH3ddUAbAFyYNMNIZytWme+mdq8zzJtPumrEglCXuIX8aNUwCzx\r\nWicblI5/Vpp+sWf//lAx/2Z7sD1zE2WGbM+XxT+/4UlvhHzIoDtCAA1jYR1Y\r\nuyjwXIQd34V9zTa/YQSkwxKhBRrHAT03DolcVDLlzfYWZTMbYPozxDg1rVgm\r\nestu16e8UeHJFi6E6Dh67s4JDJm+9OTIXLs=\r\n=7L88\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"c82425189edd3529a4231931fb399e7584049bf2","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"eladpx","email":"elad.trubek@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"8.5.1","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"17.6.0","dependencies":{"axios":"^0.21.1","cookie-parser":"^1.4.1","perimeterx-node-core":"^3.4.3"},"_hasShrinkwrap":false,"devDependencies":{"uuid":"^3.0.0","faker":"^3.1.0","mocha":"^8.2.0","sinon":"^2.1.0","eslint":"^7.12.0","moment":"^2.19.3","rewire":"^2.5.2","should":"^8.3.0","express":"4.16.2","superagent":"^3.8.3","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_7.3.2_1656588240320_0.351203397434684","host":"s3://npm-registry-packages"}},"7.4.0":{"name":"perimeterx-node-express","version":"7.4.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@7.4.0","maintainers":[{"name":"ori.gold","email":"ori.gold@perimeterx.com"},{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"shaulpx","email":"shaul.badusa@perimeterx.com"},{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},{"name":"asafpx","email":"asaf.akler@perimeterx.com"},{"name":"chen.zimmer.perimeterx","email":"chen.zimmer@perimeterx.com"},{"name":"oren-yaar-px","email":"oren.yaar@perimeterx.com"},{"name":"eladpx","email":"elad.trubek@perimeterx.com"},{"name":"guypx","email":"guy.eisenbach@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"ae77a57d17295ebf8915ecd87838f425b90469d9","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-7.4.0.tgz","fileCount":15,"integrity":"sha512-Sjf3WYjpphW2wQfmb6RcqtKKzIleYFMLgK+F/nXUiUc7qFwJ2BI4A9W37ukqA21ejVSNk4EducbtKZRYQ3vojA==","signatures":[{"sig":"MEYCIQD0+NDjZZLTEwnFKA6yX8HCSDqh1ZruTWmsd5mHur7j3AIhAMQHo9K4WheeUk3HMILtaS+m9SxhRaSFeDGm4agem4Mg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56140,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjyPZVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqKdxAAlRAHoeJwxQUU5pDNHUqAxik8aE2csHrhbJ/988Qqg+9LHG9I\r\nAcc93c6QRTQ+fnmr+119OL5uq4bNulgB8W8cokrhVwjuCLJ2AUDMnnpDyyg2\r\ngJjfMlk3cRoRfoF4FkD8Px7EY3lzZcqBtgGY/yY9CBd9RYZGLE3UExkOM3JK\r\nBP0z7KgEBYL8Nmz0ffK4n7eNP5fH5HFoG0IuQYFj87D8Lo49RWRI+aExnLc2\r\n3Uhsc6jH+RTViqak0IWv9sqxY0/wXKnyf8jicfXglj9RkU+EubGFo5uYNOdv\r\nlGzWk0YIGDbaN1e2OdYHvyskPtMd/+MEDGQGbJnSYwbDL8v/J/s3/njyhrls\r\n+CditV+2ZBvVhlSZpbDl2IWbvQo218VquH5TnGs0LBK3fWIkQb3OApAvHeJy\r\nYS05SZ4y1gov07Ul8fbvHHV1lwWhZCHqBNE6Svip14OHgBVIQ6rP0Q350PD/\r\nHIn2SzWu3AbrmPyHJGnBeeOUlx3ZOFMFVdrhOyM5mQw0zUycnEhRcMpAqwKi\r\nsVbLLGbg3TuW2BfGdUHLHmRXaYXgte2Ipx0vq12XPgVXF1sCqz5VCwWae/ic\r\nIzk7PvCJxAbs4YJAxsBYbwWGFVmqedgBoM/Xhc3XQ60oOERiAY6lc+YWsJ3h\r\nLLuqj9CZA9CHEXauaFPBBJnmIqrCqpdrDdw=\r\n=NdRE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"54123161363d6c59a1aaf2776b608c40b8c3a313","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"guypx","email":"guy.eisenbach@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"8.19.2","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"18.12.0","dependencies":{"axios":"^0.21.1","cookie-parser":"^1.4.1","perimeterx-node-core":"^3.7.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.6","mocha":"^10.0.0","sinon":"^14.0.0","eslint":"^7.12.0","express":"4.16.2","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_7.4.0_1674114645664_0.09421070593087455","host":"s3://npm-registry-packages"}},"7.5.0":{"name":"perimeterx-node-express","version":"7.5.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@7.5.0","maintainers":[{"name":"ori.gold","email":"ori.gold@perimeterx.com"},{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"shaulpx","email":"shaul.badusa@perimeterx.com"},{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},{"name":"asafpx","email":"asaf.akler@perimeterx.com"},{"name":"chen.zimmer.perimeterx","email":"chen.zimmer@perimeterx.com"},{"name":"oren-yaar-px","email":"oren.yaar@perimeterx.com"},{"name":"eladpx","email":"elad.trubek@perimeterx.com"},{"name":"guypx","email":"guy.eisenbach@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"2fca370f7c1ed53842f6ab1c1de33177d5180913","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-7.5.0.tgz","fileCount":15,"integrity":"sha512-d741I6DjvFWB2qXSy13ZOHshZccqWSjjBGbe5p9BZXRzWhavUYEz+XqM9WCpufgL2YV7yNG6tEImyBl6SsIqyA==","signatures":[{"sig":"MEUCIDTekMJpaVc1Vo0H1sSIGXi7mSmus4Z/1kChfJ/MIIGzAiEAgJks6iEmATUTAsCmq3C2lNUDqFR5S6cr+yYnXvdN5WQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":57573,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0n4nACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp+aw/+LiidbXzPD9ruLfCkoT3YIeFmWD2Ff2Q23BkFyP1UPycn4euc\r\nef6wOtIl2/2tsyyayOiiW0GxVdnkoBRpa8k9/NtTIsQu5ocEI2kEpYcN5M05\r\nRFIiNwG5eftM9+CUOSVbhklAVRvR1kJr1Ax8fWToHFlibl+kANCwXwgCJ8XI\r\nV09Qp6H/v8OCJTVvkNbXZaCsk0CucxJLccUTVKiZi0nPEJXd+FtJWObp6jvs\r\nlAXWsWNxltghpcZgXVPCD6X1Vhb2tWN/IXC5bOJW5WoccFRQkx8UGw4pSkS3\r\nNbeJL/K5Tt1BHsUbC+17FjlYAve5lBtoyu9etrkSTI7fVSNIxvVckdyCEafU\r\nN/TC/iwNhsg1BxyStKcnWU10AGR+2yDxxhV1RKo+xyGHld1gzdbEG6QVtice\r\nRSPIDvju9EsWlgOReATd4wNYuIoNeMGA44VwoqigEUFsvBwZLwsjrOM+Zsu5\r\n1SzLGcFKdUp9jMMZ+IIUzuanH/KYCK0IJO1wzzTcrEvI08Xj2H9vs/8vnyc9\r\nr/kl5pI2KB51bhDiFO2nHEhti25+CTOtWtB3fZ5qudknJaLPHrvHWtB/qzDg\r\nRQgdRu9JxHr4OZMSQuhnaIVYiDecn/YGEil8XCb1Hw7pKzlGlBFQZ8VcTHrS\r\nxGpUb6a6gpgI8S3mLS1toL/59stqzJpEiSc=\r\n=o/3j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"eba957f403aaae5078c3716b2ed92aa5c8284251","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"chen.zimmer.perimeterx","email":"chen.zimmer@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"8.5.0","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"16.14.1","dependencies":{"axios":"^0.21.1","cookie-parser":"^1.4.1","perimeterx-node-core":"^3.8.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.6","mocha":"^10.0.0","sinon":"^14.0.0","eslint":"^7.12.0","express":"4.16.2","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_7.5.0_1674739239290_0.41969162169794516","host":"s3://npm-registry-packages"}},"7.6.0":{"name":"perimeterx-node-express","version":"7.6.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@7.6.0","maintainers":[{"name":"ori.gold","email":"ori.gold@perimeterx.com"},{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"shaulpx","email":"shaul.badusa@perimeterx.com"},{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},{"name":"asafpx","email":"asaf.akler@perimeterx.com"},{"name":"chen.zimmer.perimeterx","email":"chen.zimmer@perimeterx.com"},{"name":"oren-yaar-px","email":"oren.yaar@perimeterx.com"},{"name":"eladpx","email":"elad.trubek@perimeterx.com"},{"name":"guypx","email":"guy.eisenbach@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"7ed4b4acba05b2d8ad568634d77102bb58cc97a7","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-7.6.0.tgz","fileCount":15,"integrity":"sha512-7uidgCdtlFtLcjIfKYeY2PmlXqWMAK4JBvJNLdeIsiGcR4bcT1cibvQ8YLhZjlECvrGkdtvC8wPzVZ5I3ro1Yg==","signatures":[{"sig":"MEUCIQCoXT8A6FvIjZ439NmtJERouFpuaryzYU5iIecLMY+/jQIgJ5z5NLztdbku/e/RIbIBRTM4UUKitczHUZfFNTam7VM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60082,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj15SOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoPYxAAnSfSX9XagqV3A1T2k7ZGLJO9SnhFCkHmeRa/HC/pQE+8B6PL\r\niFKWNg7NoZ9tOJudDkQcGyj7/QLypmfVwBd4mK93knrYBIBAIsrokQ5IKS/W\r\nl6JM4klUzvlg0GKYZSx2V6+CL+ch+aCAMvdyPzwyV0zTMcLsxctPfvuEw1iF\r\nowJp6lKf8Y19vqUwGYUIV9ux9ZEoyoSxRn5prri7WEVDTunaAakpl6bq9tGt\r\nsbuT55/9xSZkUOjSrgL/ruS/hGTVfoL0gODeal3GQjb6wkQhMVtEh2zwpsyb\r\n9BIaygPEPWM1FP078byz+qFI3cqrCafWXy443/hGop1vGpUIufp+L2NETbHR\r\nh/CUBnhZuASrw0FKU01rgzgPLiviG7Z0bUH49U991f+VtsgRv4Ntm27aEseH\r\niBLUHV1XLOfg8oiE9hRiYe69TOsAhZzjIRQRLpqQg5x5vi1f0F6x3Yr/xgwc\r\nsp8TVCtbQHlVpzYewjaVLosBfXGvqR43goFUkHzZkaIcpJf4s4ppume6Hh9s\r\nbZdOASQqGRbj5OyA2zabMhtmKwU2rDlKVYZm6062icZaZvEJ0SpW6TVMuqaD\r\nEq4hgtRwvEpYwRJURJh8tBA2GSI9NoCahaeSJ4MZwa6lKl0nyNnb5bIybXtk\r\ngZrB9utPnuav9WcT86YzPShl1RGQZ0VomiU=\r\n=ibIy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"d0f9c4496464c9108ac30e6663f72f560a221b00","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"chen.zimmer.perimeterx","email":"chen.zimmer@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"8.5.0","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"16.14.1","dependencies":{"axios":"^0.21.1","cookie-parser":"^1.4.1","perimeterx-node-core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.6","mocha":"^10.0.0","sinon":"^14.0.0","eslint":"^7.12.0","express":"4.16.2","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_7.6.0_1675072653962_0.7276106141780914","host":"s3://npm-registry-packages"}},"7.7.1":{"name":"perimeterx-node-express","version":"7.7.1","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@7.7.1","maintainers":[{"name":"ori.gold","email":"ori.gold@perimeterx.com"},{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"shaulpx","email":"shaul.badusa@perimeterx.com"},{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},{"name":"asafpx","email":"asaf.akler@perimeterx.com"},{"name":"chen.zimmer.perimeterx","email":"chen.zimmer@perimeterx.com"},{"name":"oren-yaar-px","email":"oren.yaar@perimeterx.com"},{"name":"eladpx","email":"elad.trubek@perimeterx.com"},{"name":"guypx","email":"guy.eisenbach@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"6841bf7375cb133327c3b35fea14e30b241873c1","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-7.7.1.tgz","fileCount":15,"integrity":"sha512-0VXksD5FzfUXAm5l/DxxDn+p45rEUsuIP1/fX5Q8v4bHS4ie26PcJzpYofMcZBm2hyGT6bwaZLc1ncQfbloKLg==","signatures":[{"sig":"MEUCICKPSicLMMvTHIlaMn/pxb0OsYTeQNHZ+1IGGgxKzy0QAiEAroQIHzPojCkC6wuYk5SVlbe25ZzeQJ9WXzARK96bRF4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60869,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkKXWFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrE3w/9EqbyaGa3yG1xC+5ACb0Id4wWU9RzrME43q+RsCYrAvEfmrpJ\r\naUdzeUL4iLuSci0ZrkPg8nEEhahLRutPFURlWeJvBX4Bts5Ivrochwq+YU0A\r\noF1pjjEqwJb7T7q6/rxorqUsdCA3XP63kDhBC5gMCl56FRdn1jaFqcxOb+dR\r\nGCj2YjmiFZGawtDJJv0IS4ippLSygQ/E18qp5ibodJDmUdKjRSuW/GCHRJvT\r\nQR4oherQrn+T9Pknv/0RHoY3cjFJW+nKUBY8QF76TA2qGOyjgTyrk4Dv4lot\r\nF2/Yvas4F37Lftc7GVDeK7Lg8jlSPMPhXjGXt3RRN5c2pY8V6ot/xcdWXwQH\r\nxCZNoow6Gdr61I3FqW3yYLnPJ7Usswf2CYtAoyLdNTOsVp9jcUEqThGMn2em\r\nytYtgewUawntX0HHzv+l55Z/bdvkTcJqdOV3KsdYO0zDFQaK9xMptAlh4JRp\r\nOOJW8SSXaIz8bHEbRnJdstNU58aHIL3n9c5m1t95/eb0+bY/pNP3LVCV6FTs\r\nNTgpL6lnTtY5+eQW1LLW+9+QUCOMgH8QAWlVAN2oipWA4No6r6MUKomPIPoL\r\n56UqEya5jg9/bYO9o39uzKtSBQ6CbMtKaJ0ECtqTqmJJaKNKcxAWEanAbE8D\r\nuh6fP6vDAD1SSL5r+bSw9YpM7JfcHXJlZws=\r\n=7UKc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"72e25a7adcb505f4126d8509b471521031463df6","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"chen.zimmer.perimeterx","email":"chen.zimmer@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"8.5.0","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"16.14.1","dependencies":{"axios":"^0.21.1","cookie-parser":"^1.4.1","perimeterx-node-core":"^3.10.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.6","mocha":"^10.0.0","sinon":"^14.0.0","eslint":"^7.12.0","express":"4.16.2","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_7.7.1_1680438661389_0.9652076437971546","host":"s3://npm-registry-packages"}},"7.8.0":{"name":"perimeterx-node-express","version":"7.8.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@7.8.0","maintainers":[{"name":"ori.gold","email":"ori.gold@perimeterx.com"},{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"shaulpx","email":"shaul.badusa@perimeterx.com"},{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},{"name":"asafpx","email":"asaf.akler@perimeterx.com"},{"name":"chen.zimmer.perimeterx","email":"chen.zimmer@perimeterx.com"},{"name":"oren-yaar-px","email":"oren.yaar@perimeterx.com"},{"name":"eladpx","email":"elad.trubek@perimeterx.com"},{"name":"guypx","email":"guy.eisenbach@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"d76786207a8be93c52270d52e8317e9b0db77c50","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-7.8.0.tgz","fileCount":15,"integrity":"sha512-Wx3Odtkm5h8l9gGwTlKVOpxtIIoOli3a6ZMl1DxOCJhxO68C5LnwxM46mMb2OPNf2WUDPFgQMkwc24Gk/iHNiA==","signatures":[{"sig":"MEQCIAfxjAQ6XmVKrP7J/8xiFS4ssFOHsA8UOxeOfHbqFehtAiASoueqD97FrWK+pDOZAovW/wH7kETDbDcYuwg3BDTkEA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61133},"main":"index.js","gitHead":"145befc3512a792ffd0fe6b2b95afbbf7ae39870","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"chen.zimmer.perimeterx","email":"chen.zimmer@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"8.5.0","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"16.14.1","dependencies":{"axios":"^0.21.1","cookie-parser":"^1.4.1","perimeterx-node-core":"^3.11.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.6","mocha":"^10.0.0","sinon":"^14.0.0","eslint":"^7.12.0","express":"4.16.2","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_7.8.0_1684242473359_0.7356846563939581","host":"s3://npm-registry-packages"}},"7.9.0":{"name":"perimeterx-node-express","version":"7.9.0","keywords":["perimeterx","nodejs","express","security","middleware"],"author":{"name":"Ben Diamant"},"license":"ISC","_id":"perimeterx-node-express@7.9.0","maintainers":[{"name":"ori.gold","email":"ori.gold@perimeterx.com"},{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"shaulpx","email":"shaul.badusa@perimeterx.com"},{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},{"name":"asafpx","email":"asaf.akler@perimeterx.com"},{"name":"chen.zimmer.perimeterx","email":"chen.zimmer@perimeterx.com"},{"name":"oren-yaar-px","email":"oren.yaar@perimeterx.com"},{"name":"eladpx","email":"elad.trubek@perimeterx.com"},{"name":"guypx","email":"guy.eisenbach@perimeterx.com"}],"homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"dist":{"shasum":"06e82610fad5c41e8e373b084d323811999732ed","tarball":"https://registry.npmjs.org/perimeterx-node-express/-/perimeterx-node-express-7.9.0.tgz","fileCount":34,"integrity":"sha512-IrHmpYOeoh9HLbTPRspmkAgiSrPkjEiNgpn6dPT+HNhF+qQ6g22WXI0qbtzAyb0jWaFEp6tWLmZi5GMf6a/wLQ==","signatures":[{"sig":"MEUCIQC/Jn2/2wb0JOZeJFxOj4WSj5IM0DOgq9znNyn/X5/YswIgea7uavM97FNd4ytkqwo6QFyWYuH4Uh8DTXPrkvzseBs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":101007},"main":"index.js","gitHead":"9d41d8222e050578d6a06d6025d1b81f28d60495","scripts":{"lint":"./node_modules/eslint/bin/eslint.js lib/","test":"mocha --exit","cover":"istanbul cover _mocha"},"_npmUser":{"name":"chen.zimmer.perimeterx","email":"chen.zimmer@perimeterx.com"},"deprecated":"This package is deprecated. Please refer to @humansecurity/node-express-enforcer instead.","repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"_npmVersion":"9.8.0","description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","directories":{"test":"test"},"_nodeVersion":"16.14.1","dependencies":{"axios":"^0.21.1","cookie-parser":"^1.4.1","perimeterx-node-core":"3.15.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.6","mocha":"^10.0.0","sinon":"^14.0.0","eslint":"^7.12.0","express":"4.16.2","eslint-config-perimeterx":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/perimeterx-node-express_7.9.0_1705529466652_0.015140663218706107","host":"s3://npm-registry-packages"}}},"time":{"created":"2016-05-12T08:25:04.662Z","modified":"2025-10-29T10:56:30.910Z","1.0.0":"2016-05-12T08:25:04.662Z","1.0.1":"2016-05-12T22:15:42.253Z","1.1.0":"2016-05-13T21:25:47.780Z","1.2.0":"2016-05-14T18:12:29.066Z","1.2.1":"2016-05-14T18:22:54.154Z","1.3.0":"2016-05-16T20:38:29.204Z","1.3.1":"2016-05-16T20:56:02.665Z","1.3.2":"2016-05-24T07:10:07.255Z","1.4.0":"2016-05-29T05:42:25.630Z","1.4.1":"2016-06-03T07:20:01.844Z","1.4.3":"2016-06-03T08:26:28.771Z","1.5.0":"2016-06-03T16:32:00.157Z","1.5.1":"2016-06-12T16:14:17.426Z","1.6.0":"2016-06-30T11:24:35.350Z","1.6.1":"2016-08-11T06:03:05.227Z","1.6.2":"2016-09-09T21:14:12.328Z","1.6.3":"2016-09-20T06:04:53.163Z","1.7.0":"2016-12-01T12:19:10.989Z","1.7.1":"2017-01-31T07:26:39.586Z","1.8.0":"2017-03-26T01:47:45.794Z","1.9.0":"2017-06-08T07:46:38.172Z","3.0.0":"2017-07-06T09:05:58.948Z","3.0.0-rc1":"2017-07-11T08:45:39.115Z","3.0.1":"2017-12-24T14:45:40.078Z","3.1.0":"2018-01-22T11:40:19.335Z","3.1.1":"2018-01-24T12:59:26.578Z","3.2.0":"2018-02-20T08:53:04.967Z","3.2.1":"2018-02-28T12:51:03.443Z","3.3.0":"2018-06-10T13:17:46.443Z","3.4.0":"2018-07-11T09:04:52.814Z","3.4.1":"2018-08-09T14:59:34.155Z","3.5.0":"2018-10-29T15:18:05.017Z","4.0.0":"2019-01-02T14:34:37.728Z","5.0.0":"2019-01-13T11:22:13.721Z","5.1.0":"2019-02-25T12:34:33.641Z","6.0.0":"2019-03-14T09:03:55.970Z","6.1.0":"2019-03-20T17:03:40.367Z","6.1.1":"2019-05-02T19:57:44.780Z","6.2.0":"2019-05-25T14:49:29.892Z","6.2.1":"2019-10-02T16:57:54.192Z","6.3.0":"2019-10-24T17:05:07.397Z","6.3.1":"2019-11-20T09:53:00.847Z","6.4.0":"2019-11-26T12:21:10.171Z","6.5.0":"2019-12-08T11:01:17.847Z","6.5.1":"2020-02-11T18:23:41.731Z","6.5.2":"2020-02-11T20:08:47.248Z","6.5.3":"2020-04-21T17:26:46.256Z","6.5.4":"2020-10-25T14:36:22.720Z","6.6.0":"2021-02-10T07:36:37.338Z","6.7.0":"2021-04-07T12:53:18.588Z","6.8.0":"2021-06-08T13:37:40.087Z","6.8.1":"2021-06-09T07:50:42.690Z","6.8.2":"2021-07-06T11:00:58.882Z","7.0.0":"2021-10-24T08:36:29.898Z","7.0.1":"2021-10-25T17:30:27.206Z","7.0.2":"2021-11-14T15:24:05.412Z","6.6.0-l":"2021-12-16T09:17:33.700Z","7.0.3":"2022-01-18T13:45:03.719Z","7.1.0":"2022-01-24T14:31:48.777Z","7.1.1":"2022-03-10T12:47:06.916Z","7.2.0":"2022-04-11T16:34:54.670Z","7.3.0":"2022-05-02T13:42:18.667Z","7.3.1":"2022-05-18T13:25:10.904Z","7.3.2":"2022-06-30T11:24:00.464Z","7.4.0":"2023-01-19T07:50:45.858Z","7.5.0":"2023-01-26T13:20:39.459Z","7.6.0":"2023-01-30T09:57:34.203Z","7.7.0":"2023-04-02T11:43:56.054Z","7.7.1":"2023-04-02T12:31:01.614Z","7.8.0":"2023-05-16T13:07:53.573Z","7.9.0":"2024-01-17T22:11:06.852Z"},"bugs":{"url":"https://github.com/PerimeterX/perimeterx-node-express/issues"},"author":{"name":"Ben Diamant"},"license":"ISC","homepage":"https://github.com/PerimeterX/perimeterx-node-express#readme","keywords":["perimeterx","nodejs","express","security","middleware"],"repository":{"url":"git+https://github.com/PerimeterX/perimeterx-node-express.git","type":"git"},"description":"PerimeterX Express.js middleware to monitor and block traffic according to PerimeterX risk score","maintainers":[{"name":"asafpx","email":"asaf.akler@perimeterx.com"},{"name":"bendpx","email":"ben@perimeterx.com"},{"name":"chen.zimmer.perimeterx","email":"chen.zimmer@perimeterx.com"},{"name":"eladpx","email":"elad.trubek@perimeterx.com"},{"name":"guypx","email":"guy.eisenbach@perimeterx.com"},{"name":"omerbacharpx","email":"omer.bachar@perimeterx.com"},{"name":"oren-yaar-px","email":"oren.yaar@perimeterx.com"},{"name":"ori.gold","email":"ori.gold@perimeterx.com"}],"readme":"[![Build Status](https://travis-ci.org/PerimeterX/perimeterx-node-express.svg?branch=master)](https://travis-ci.org/PerimeterX/perimeterx-node-express)\n[![Known Vulnerabilities](https://snyk.io/test/github/PerimeterX/perimeterx-node-express/badge.svg)](https://snyk.io/test/github/PerimeterX/perimeterx-node-express)\n\n![image](https://storage.googleapis.com/perimeterx-logos/primary_logo_red_cropped.png)\n\n# [PerimeterX](http://www.perimeterx.com) Express.js Middleware\n\n> Latest stable version: [v7.9.0](https://www.npmjs.com/package/perimeterx-node-express)\n\n## Table of Contents\n\n-   [Installation](#installation)\n-   [Upgrading](#upgrading)\n-   [Configuration](#configuration)\n    -   [Required Configuration](#requiredConfiguration)\n    -   [Optional Configuration](#optionalConfiguration)\n        - [Module Enabled](#moduleEnabled)\n        - [Module Mode](#moduleMode)\n        - [Blocking Score](#blockingScore)\n        - [Send Page Activities](#sendPageActivities)\n        - [Send Block Activities](#sendBlockActivities)\n        - [Logger Severity](#loggerSeverity)\n        - [Sensitive Routes](#sensitiveRoutes)\n        - [Enforced Specific Routes](#enforcedSpecificRoutes)\n        - [Monitored Specific Routes](#monitoredSpecificRoutes)\n        - [Filter By Route](#filterByRoute)\n        - [Sensitive Headers](#sensitiveHeaders)\n        - [IP Headers](#ipHeaders)\n        - [First Party Enabled](#firstPartyEnabled)\n        - [CD First Party Enabled](#CDFirstPartyEnabled)\n        - [Custom Request Handler](#customRequestHandler)\n        - [Additional Activity Handler](#additionalActivityHandler)\n        - [Enrich Custom Parameters](#enrichCustomParams)\n        - [CSS Ref](#cssRef)\n        - [JS Ref](#jsRef)\n        - [Custom Logo](#customLogo)\n        - [Secured PXHD cookie](#securedpxhd)\n        - [Proxy Support](#proxySupport)\n        - [Custom Cookie Header](#customCookieHeader)\n        - [Filter Traffic by User Agent](#filterByUserAgent)\n        - [Filter Traffic by IP](#filterByIP)\n        - [Filter Traffic by HTTP Method](#filterByMethod)\n        - [Test Block Flow on Monitoring Mode](#bypassMonitorHeader)\n        - [CSP Enabled](#cspEnabled)\n        - [CSP Policy Refresh Interval](#cspPolicyRefreshIntervalMinutes)\n        - [CSP Invalidate Policy Interval](#cspNoUpdatesMaxIntervalMinutes)\n        - [Login Credentials Extraction](#loginCredentialsExtraction)\n        - [JWT](#JWT)\n        - [CORS support](#px_cors_support)\n-   [Code Defender Middleware - cdMiddleware](#cdMiddleware)\n-   [Advanced Blocking Response](#advancedBlockingResponse)\n-   [Multiple App Support](#multipleAppSupport)\n-   [Additional Information](#additionalInformation)\n\n## <a name=\"installation\"></a> Installation\n\nPerimeterX Express.js middleware is installed via NPM:\n`$ npm install --save perimeterx-node-express`\n\n> Please note: As stated in [NodeJS's release schedule](https://github.com/nodejs/Release#release-schedule), NodeJS 6.x is reaching EOL. Thus, support for it will be dropped starting with version 5.0.0.\n\n## <a name=\"upgrading\"></a> Upgrading\n\nTo upgrade to the latest Enforcer version, run:\n\n`npm install -s perimeterx-node-express`\n\nFor more information, contact [PerimeterX Support](support@perimeterx.com).\n\n## <a name=\"configuration\"></a> Configuration\n\n### <a name=\"requiredConfiguration\"></a> Required Configuration\n\nTo use PerimeterX middleware on a specific route follow this example:\n\n```javascript\n'use strict';\n\nconst express = require('express');\nconst perimeterx = require('perimeterx-node-express');\n\nconst server = express();\n\n/* px-module and cookie parser need to be initiated before any route usage */\nconst pxConfig = {\n    px_app_id: 'PX_APP_ID',\n    px_cookie_secret: 'PX_COOKIE_ENCRYPTION_KEY',\n    px_auth_token: 'PX_TOKEN',\n};\nperimeterx.init(pxConfig);\n\n/*  block users with high bot scores using px-module for the route /helloWorld */\nserver.get('/helloWorld', perimeterx.middleware, (req, res) => {\n    res.send('Hello from PX');\n});\n\nserver.listen(8081, () => {\n    console.log('server started');\n});\n```\n\n-   The PerimeterX **Application ID / AppId** and PerimeterX **Token / Auth Token** can be found in the Portal, in <a href=\"https://console.perimeterx.com/botDefender/admin?page=applicationsmgmt\" onclick=\"window.open(this.href); return false;\">**Applications**</a>.\n\n-   The PerimeterX **Cookie Encryption Key** can be found in the portal, in <a href=\"https://console.perimeterx.com/botDefender/admin?page=policiesmgmt\" onclick=\"window.open(this.href); return false;\">**Policies**</a>.\n\n    The Policy from where the **Cookie Encryption Key** is taken must correspond with the Application from where the **Application ID / AppId** and PerimeterX **Token / Auth Token**\n\nSetting the PerimeterX middleware on all server's routes:\n\n> When configuring the PerimeterX middleware on all the server's routes, you will have a\n> score evaluation on each incoming request. The recommended pattern is to use\n> on top of page views routes.\n\n```javascript\n'use strict';\n\nconst express = require('express');\nconst perimeterx = require('perimeterx-node-express');\n\nconst server = express();\n\n/* the px-module and parser need to be initialized before any route usage */\nconst pxConfig = {\n    px_app_id: 'PX_APP_ID',\n    px_cookie_secret: 'PX_COOKIE_ENCRYPTION_KEY',\n    px_auth_token: 'PX_TOKEN',\n};\nperimeterx.init(pxConfig);\n\n/* block high scored users using px-module for all routes */\nserver.use(perimeterx.middleware);\n\nserver.get('/helloWorld', (req, res) => {\n    res.send('Hello from PX');\n});\n\nserver.listen(8081, () => {\n    console.log('server started');\n});\n```\n\n## <a name=\"upgrade\"></a> Upgrading\n\nTo upgrade to the latest Enforcer version, run:\n\n`npm install -s perimeterx-node-express`\n\nYour Enforcer version is now upgraded to the latest enforcer version.\n\nFor more information,contact [PerimeterX Support](support@perimeterx.com).\n\n### <a name=\"optionalConfiguration\"></a>Optional Configuration\n\nIn addition to the basic installation configuration [above](#requiredConfiguration), the following configurations options are available:\n\n#### <a name=\"moduleEnabled\"></a>Module Enabled\n\nA boolean flag to enable/disable the PerimeterX Enforcer.\n\n**Default:** true\n\n```js\nconst pxConfig = {\n  ...\n  px_module_enabled: false\n  ...\n};\n```\n\n#### <a name=\"moduleMode\"></a>Module Mode\n\nSets the working mode of the Enforcer.\n\nPossible values:\n\n-   `monitor` - Monitor Mode\n-   `active_blocking` - Blocking Mode\n\n**Default:** `monitor`\n\n```js\nconst pxConfig = {\n  ...\n  px_module_mode: \"monitor\"\n  ...\n};\n```\n\n#### <a name=\"blockingScore\"></a>Blocking Score\n\nSets the minimum blocking score of a request.\n\nPossible values:\n\n-   Any integer between 0 and 100.\n\n**Default:** 100\n\n```js\nconst pxConfig = {\n  ...\n  px_blocking_score: 100\n  ...\n};\n```\n\n#### <a name=\"sendPageActivities\"></a>Send Page Activities\n\nA boolean flag to enable/disable sending activities and metrics to PerimeterX with each request. <br/>\nEnabling this feature allows data to populate the PerimeterX Portal with valuable information, such as the number of requests blocked and additional API usage statistics.\n\n**Default:** true\n\n```js\nconst pxConfig = {\n  ...\n  px_send_async_activities_enabled: true\n  ...\n};\n```\n\n#### <a name=\"loggerSeverity\"></a>Logger Severity\n\nSets the logging verbosity level. The available options are:\n\n* `none` - no logs will be generated\n* `error` - logs only when severe errors occur, best for production environments\n* `debug` - logs more descriptive messages, helpful for analyzing and debugging the enforcer flow\n\n**Default:** error\n\n```js\nconst pxConfig = {\n  ...\n  px_logger_severity: 'debug'\n  ...\n};\n```\n\n#### <a name=\"sensitiveRoutes\"></a> Sensitive Routes\n\nAn array of route prefixes that trigger a server call to PerimeterX servers every time the page is viewed, regardless of viewing history.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  px_sensitive_routes: ['/login', '/user/checkout']\n  ...\n};\n```\n\n#### <a name=\"enforcedSpecificRoutes\"></a>Enforced Specific Routes\n\nAn array of route prefixes and/or regular expressions that are always validated by the PerimeterX Worker (as opposed to filtered routes).\n<br/>A regular expression can be defined using `new RegExp` or directly as an expression, and will be treated as is.\n<br/>A string value of a path will be treated as a prefix.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  px_enforced_routes: ['/home',/^\\/$/]\n  ...\n};\n```\n\n#### <a name=\"monitoredSpecificRoutes\"></a>Monitored Specific Routes\n\nAn array of route prefixes and/or regular expressions that are always set to be in [monitor mode](#moduleMode). This only takes effect when the module is enabled and in blocking mode.\n<br/>A regular expression can be defined using `new RegExp` or directly as an expression, and will be treated as is.\n<br/>A string value of a path will be treated as a prefix.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  px_monitored_routes: ['/home', new RegExp(/^\\/$/)]\n  ...\n};\n```\n\n#### <a name=\"filterByRoute\"></a> Filter By Route\n\nAn array of route prefixes and/or regular expressions that are always allowed and not validated by the PerimeterX Worker.\n<br/>A regular expression can be defined using `new RegExp` or directly as an expression, and will be treated as is.\n<br/>A string value of a path will be treated as a prefix.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  px_filter_by_route: ['/contact-us', /\\/user\\/.*\\/show/]\n  ...\n};\n```\n\n#### <a name=\"sensitiveHeaders\"></a>Sensitive Headers\n\nAn array of headers that are not sent to PerimeterX servers on API calls.\n\n**Default:** ['cookie', 'cookies']\n\n```js\nconst pxConfig = {\n  ...\n  px_sensitive_headers: ['cookie', 'cookies', 'x-sensitive-header']\n  ...\n};\n```\n\n#### <a name=\"ipHeaders\"></a>IP Headers\n\nAn array of trusted headers that specify an IP to be extracted.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  px_ip_headers: ['x-user-real-ip']\n  ...\n};\n```\n\n#### <a name=\"firstPartyEnabled\"></a>First Party Enabled\n\nA boolean flag to enable/disable first party mode.\n\n**Default:** true\n\n```js\nconst pxConfig = {\n  ...\n  px_first_party_enabled: false\n  ...\n};\n```\n\n#### <a name=\"CDFirstPartyEnabled\"></a>CD First Party Enabled\n\nA boolean flag to enable/disable Code Defender first party mode.\n\n**Default:** false\n\n```js\nconst pxConfig = {\n  ...\n  px_cd_first_party_enabled: false\n  ...\n};\n```\n\n#### <a name=\"customRequestHandler\"></a>Custom Request Handler\n\nA JavaScript function that adds a custom response handler to the request.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  px_custom_request_handler: function(pxCtx, pxconfig, req, cb) {\n    ...\n    cb({body: result, status: 200, statusDescription: \"OK\", header: {key: 'Content-Type', value:'application/json'}})\n  }\n  ...\n};\n```\n\n#### <a name=\"additionalActivityHandler\"></a>Additional Activity Handler\n\nA JavaScript function that allows interaction with the request data collected by PerimeterX before the data is returned to the PerimeterX servers. Does not alter the response.\n\n**Default:** Empty\n\n```javascript\nconst pxConfig = {\n  ...\n  px_additional_activity_handler: function(pxCtx, request) {\n    ...\n  }\n  ...\n};\n```\n\n#### <a name=\"enrichCustomParams\"></a>Enrich Custom Parameters\n\nWith the `px_enrich_custom_parameters` function you can add up to 10 custom parameters to be sent back to PerimeterX servers. When set, the function is called before seting the payload on every request to PerimetrX servers. The parameters should be passed according to the correct order (1-10).\n\n**Default:** Empty\n\n```javascript\nconst pxConfig = {\n  ...\n  px_enrich_custom_parameters: function(customParams, originalRequest) {\n    customParams[\"custom_param1\"] = \"yay, test value\";\n    return customParams;\n  }\n  ...\n};\n```\n\n#### <a name=\"cssRef\"></a>CSS Ref\n\nModifies a custom CSS by adding the CSSRef directive and providing a valid URL to the CSS.\n\n**Default:** Empty\n\n```javascript\nconst pxConfig = {\n  ...\n  px_css_ref: 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css'\n  ...\n};\n```\n\n#### <a name=\"jsRef\"></a>JS Ref\n\nAdds a custom JS file by adding JSRef directive and providing the JS file that is loaded with the block page.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  px_js_ref: 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js'\n  ...\n};\n```\n\n#### <a name=\"customLogo\"></a>Custom Logo\n\nThe logo is displayed at the top of the the block page.\nMax-height = 150px, Width = auto.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  px_custom_logo: 'https://s.perimeterx.net/logo.png',\n  ...\n};\n```\n\n#### <a name=\"securedpxhd\"></a>Secured PXHD cookie\n\nA boolean flag to enable/disable the `Secure` flag when baking a PXHD cookie.\n\n**Default:** false\n\n```js\nconst pxConfig = {\n  ...\n  px_pxhd_secure: true\n  ...\n};\n```\n\n#### <a name=\"proxySupport\"></a>Proxy Support\n\nAllows traffic to pass through a http proxy server.\n\n**Default:** Empty\n\n```javascript\nconst pxConfig = {\n  ...\n  px_proxy_url: 'https://localhost:8008',\n  ...\n};\n```\n\n#### <a name=\"customCookieHeader\"></a>Custom Cookie Header\n\nWhen set, instead of extrating the PerimeterX Cookie from the `Cookie` header, this property specifies a header name that will contain the PerimeterX Cookie.\n\n**Default:** Empty\n\n```javascript\nconst pxConfig = {\n  ...\n  px_custom_cookie_header: \"x-px-cookies\"\n  ...\n};\n```\n\n#### <a name=\"filterByUserAgent\"></a> Filter Traffic by User Agent\n\nAn array of user agent constants and/or regular expressions that are always filtered and not validated by the PerimeterX middleware.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  px_filter_by_user_agent: ['testUserAgent/v1.0', /test/]\n  ...\n};\n```\n\n#### <a name=\"filterByIP\"></a> Filter Traffic by IP\n\nAn array of IP ranges / IP addresses that are always filtered and not validated by the PerimeterX middleware.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  px_filter_by_ip: ['192.168.10.0/24', '192.168.2.2']\n  ...\n};\n```\n\n#### <a name=\"filterByMethod\"></a> Filter Traffic by HTTP Method\n\nAn array of HTTP methods that are always filtered and not validated by the PerimeterX middleware.\n\n**Default:** Empty\n\n```js\nconst pxConfig = {\n  ...\n  px_filter_by_http_method: ['options']\n  ...\n};\n```\n\n#### <a name=“bypassMonitorHeader”></a> Test Block Flow on Monitoring Mode\n\nAllows you to test an enforcer’s blocking flow while you are still in Monitor Mode.\n\nWhen the header name is set(eg. `x-px-block`) and the value is set to `1`, when there is a block response (for example from using a User-Agent header with the value of `PhantomJS/1.0`) the Monitor Mode is bypassed and full block mode is applied. If one of the conditions is missing you will stay in Monitor Mode. This is done per request.\nTo stay in Monitor Mode, set the header value to `0`.\n\nThe Header Name is configurable using the `px_bypass_monitor_header` property.\n\n**Default:** Empty\n\n```javascript\nconst pxConfig = {\n  ...\n  px_bypass_monitor_header: \"x-px-block\"\n  ...\n};\n```\n\n#### <a name=“cspEnabled”></a> CSP Enabled\n\nUsed in `cdMiddleware` - Code Defender's middleware. Enable enforcement of CSP header policy on responses retured to the client (only if active CSP policy exists in PerimeterX for the specific appId). \n\n**Default:** false\n\n```javascript\nconst pxConfig = {\n  ...\n  px_csp_enabled: false\n  ...\n};\n```\n\n#### <a name=“cspPolicyRefreshIntervalMinutes”></a> CSP Policy Refresh Interval\n\nUsed by `cdMiddleware` - Code Defender's middleware. Sets the interval, in minutes, to fetch and update the active CSP policy for the specific appId from PerimeterX. \n\n**Default:** 5\n\n```javascript\nconst pxConfig = {\n  ...\n  px_csp_policy_refresh_interval_minutes: 5\n  ...\n};\n```\n\n#### <a name=“cspNoUpdatesMaxIntervalMinutes”></a> CSP Invalidate Policy Interval\n\nUsed by `cdMiddleware` - Code Defender's middleware. Invalidates active CSP policy after specified number of minutes with no updates received from PerimeterX. \n\n**Default:** 60\n\n```javascript\nconst pxConfig = {\n  ...\n  px_csp_no_updates_max_interval_minutes: 60\n  ...\n};\n```\n\n#### <a name=\"loginCredentialsExtraction\"></a>Login Credentials Extraction\n\nThis feature extracts credentials (hashed username and password) from requests and sends them to PerimeterX as additional info in the risk api call. The feature can be toggled on and off, and may be set for any number of unique paths.\n\nIf credentials are found to be compromised, the header `px-compromised-credentials` will be added to the request with the value `1`. You may configure the name of this header with the `px_compromised_credentials_header` configuration.\n\n> Note: This feature requires access to the request body as a either an `object` or a `string` type.\n\n**Default Values**\n\npx_compromised_credentials_header: \"px-compromised-credentials\"\n\npx_login_credentials_extraction_enabled: false\n\npx_login_credentials_extraction: Empty\n\n```javascript\nconst pxConfig = {\n  ...\n  px_compromised_credentials_header: \"x-px-comp-creds\",\n  px_login_credentials_extraction_enabled: true,\n  px_login_credentials_extraction: [\n    {\n      path: \"/login\", // login path\n      method: \"post\", // supported values: post\n      sent_through: \"body\", // supported values: body, header, query-param\n      pass_field: \"password\", // name of the password field in the request\n      user_field: \"username\" // name of the username field in the request\n    },\n    ...\n  ],\n  ...\n};\n\n```\n\nIt is also possible to define a custom callback to extract the username and password. The function should accept the request object as\na parameter and return an object with the keys `user` and `pass`. If extraction is unsuccessful, the function should return `null`.\n\n```javascript\nconst pxConfig = {\n    ...\n    px_login_credentials_extraction_enabled: true,\n    px_login_credentials_extraction: [{\n        path: \"/login\", // login path, automatically added to sensitive routes\n        method: \"post\", // supported values: post\n        callback: (req) => {\n            // custom implementation resulting in variables username and password\n            if (username && password) {\n                return { \"user\": username, \"pass\": password };\n            } else {\n                return null;\n            }\n        }\n    }]\n};\n```\n\n#### <a name=\"JWT\"></a>JWT\n\nEnable the extraction of JWT fields from requests and adding them to the risk, page requested and block activities.\n\npx_jwt_cookie_name\n\nThe cookie name that should contain the JWT token.\n\n**Default:** \"\"\n\npx_jwt_cookie_user_id_field_name\n\nThe field name in the JWT object, extracted from the JWT cookie, that contains the user ID to be extracted\n\n**Default:** \"\"\n\npx_jwt_cookie_additional_field_names\n\nThe field names in the JWT object, extracted from the JWT cookie, that should be extracted in addition to the user ID.\n\n**Default:** []\n\npx_jwt_header_name\n\nThe header name that should contain the JWT token.\n\n**Default:** \"\"\n\npx_jwt_header_user_id_field_name\n\nThe field name in the JWT object, extracted from the JWT header, that contains the user ID to be extracted\n\n**Default:** \"\"\n\npx_jwt_header_additional_field_names\n\nThe field names in the JWT object, extracted from the JWT header, that should be extracted in addition to the user ID.\n\n**Default:** []\n\n```javascript\nconst pxConfig = {\n  ...\n    \"px_jwt_cookie_name\":  \"auth\",\n    \"px_jwt_cookie_user_id_field_name\": \"nameID\",\n    \"px_jwt_cookie_additional_field_names\": [\"exp\", \"iss\"],\n    \"px_jwt_header_name\":  \"authorization\",\n    \"px_jwt_header_user_id_field_name\": \"sub\",\n    \"px_jwt_header_additional_field_names\": [\"jti\"]\n  ...\n};\n```\n\n### <a name=\"additional-s2s-activity\"></a> Additional S2S Activity\n\nTo enhance detection on login credentials extraction endpoints, the following additional information is sent to PerimeterX\nvia an `additional_s2s` activity:\n\n* __Response Code__ - The numerical HTTP status code of the response. This is sent automatically.\n* __Login Success__ - A boolean indicating whether the login completed successfully. See the options listed below for how to provide this data.\n* __Raw Username__ - The original username used for the login attempt. In order to report this information, make sure the configuration `px_send_raw_username_on_additional_s2s_activity` is set to `true`.\n\nBy default, this `additional_s2s` activity is sent automatically. If it is preferable to send this activity manually,\nit's possible to disable automatic sending by configuring the value of `px_automatic_additional_s2s_activity_enabled` to `false`.\n\n**Default Value*: true\n\n```javascript\nconst pxConfig = {\n    ...\n    px_automatic_additional_s2s_activity_enabled: false\n    ...\n}\n```\n\nThe activity can then be sent manually by invoking the function `sendAdditionalS2SActivity()`. The function accepts three\narguments: the original HTTP request, the status code, and a boolean indicating the login successful status.\n\n```javascript\nconst perimeterx = require('perimeterx-node-express');\nconst pxConfig = {\n    px_app_id: '<APP_ID>',\n    // ...\n};\npxInstance = perimeterx.new(pxConfig);\n\napp.use(pxInstance.middleware);\n\napp.post('/login', (req, res) => {\n   // login flow resulting in boolean isLoginSuccessful\n    res.status(200).json({ successful: isLoginSuccessful });\n    pxInstance.sendAdditionalS2SActivity(req, res.statusCode, isLoginSuccessful);\n});\n```\n\n#### Login Success Reporting\n\nThere are a number of different possible ways to report the success or failure of the login attempt. If left empty, the\nlogin successful status will always be reported as `false`.\n\n**Default**: Empty\n\n```javascript\nconst pxConfig = {\n    ...\n    px_login_successful_reporting_method: 'status' // supported values: status, header, body, custom\n    ...\n}\n```\n\n__Status__\n\nProvide a status or array of statuses that represent a successful login. If a response's status code matches the provided\nvalue or one of the values in the provided array, the login successful status is set to `true`. Otherwise, it's set to `false`.\n\n> Note: To define a range of statuses, use the `custom` reporting method.\n\n**Default Values**\n\npx_login_successful_status: 200\n\n```javascript\nconst pxConfig = {\n    ...\n    px_login_successful_reporting_method: 'status',\n    px_login_successful_status: [200, 202] // number or array of numbers\n    ...\n}\n```\n\n__Header__\n\nProvide a header name and value. If the header exists on the response and matches the provided value, the login successful\nstatus is set to `true`. If the header is not found on the response, or if the header value does not match the value in the\nconfiguration, the login successful status is set to `false`.\n\n**Default Values**\n\npx_login_successful_header_name: x-px-login-successful\n\npx_login_successful_header_value: 1\n\n```javascript\nconst pxConfig = {\n    ...\n    px_login_successful_reporting_method: 'header',\n    px_login_successful_header_name: 'login-successful',\n    px_login_successful_header_value: 'true'\n    ...\n}\n```\n\n__Body__\n\nProvide a string or regular expression with which to parse the response body. If a match is found, the login successful\nstatus is set to `true`. If no match is found, the login successful status is set to `false`.\n\n**Default Values**\n\npx_login_successful_body_regex: Empty\n\n```javascript\nconst pxConfig = {\n    ...\n    px_login_successful_reporting_method: 'body',\n    px_login_successful_body_regex: 'You logged in successfully!' // string or RegExp\n    ...\n}\n```\n\n__Custom__\n\nProvide a custom callback that returns a boolean indicating if the login was successful.\n\n**Default Values**\npx_login_successful_custom_callback: null\n\n```javascript\nconst pxConfig = {\n    ...\n    px_login_successful_reporting_method: 'custom',\n    px_login_successful_custom_callback: (response) => {\n        return response && response.locals && response.locals.isLoginSuccessful;\n    }\n    ...\n}\n```\n\n#### Raw Username\n\nWhen enabled, the raw username used for logins on login credentials extraction endpoints will be reported to PerimeterX\nif (1) the credentials were identified as compromised, and (2) the login was successful as reported via the property above.\n\n**Default**: false\n\n```javascript\nconst pxConfig = {\n    ...\n    px_send_raw_username_on_additional_s2s_activity: true\n    ...\n}\n```\n\n#### <a name=\"px_cors_support\"></a>CORS Support\n\nEnable CORS support for the enforcer. This will allow the enforcer to filter out preflight requests and to add CORS headers to block responses.\nThis will ensure responses are not blocked by the browser.\nCORS support is enabled by default.\n\n`px_cors_support_enabled` - Enable CORS support for the enforcer.\n\n**Default:** `false`\n\n`px_cors_custom_preflight_handler` - Custom preflight handler. This function will be called for preflight requests and returns response that will return to the client.\n\n```js\n// Example\nconst pxConfig = { \n    ...\n    px_cors_custom_preflight_handler: function(request) {\n        const response = {\n            status: '204',\n        };\n    \n        response.headers = {\n            'Access-Control-Allow-Origin': request.headers['origin'] || '*',\n            'Access-Control-Allow-Methods': request.method,\n            'Access-Control-Allow-Headers': request.headers['access-control-request-headers'],\n            'Access-Control-Allow-Credentials': 'true',\n            'Access-Control-Max-Age': '86400',\n        };\n    \n        return response;\n    };\n}\n```\n\n`px_cors_preflight_request_filter_enabled` - Filter out preflight requests from validation flow.\n\n**Default:** false\n\nEnable CORS support for the enforcer:\n``` JS\nconst pxConfig = {\n  ...\n  px_cors_support_enabled: true,\n  px_cors_preflight_request_filter_enabled: true,\n  ...\n};\n```\n\nThe default CORS policy when blocking a request is as follows:\n``` JS\nAccess-Control-Allow-Origin: request origin\nAccess-Control-Allow-Credentials: true\n```\n\nThe default CORS policy can be overridden by setting the following properties:\n\n`px_cors_create_custom_block_response_headers`\n\nSynchronous function supplied by the customer which gets the original request and returns an array of custom headers to be added to the block response.\nReturn type should be an array of objects as follows:\n\n```js\n// Example\nconst pxConfig = {\n  ...\n      px_cors_create_custom_block_response_headers: function(request) { \n            return {\n                'Access-Control-Allow-Origin':  request.headers['origin'],\n                'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',\n                'Access-Control-Allow-Headers': 'Content-Type, Authorization',\n                'Access-Control-Allow-Credentials': 'true'\n            }\n        };\n  ...\n};\n```\n\n#### <a name=\"px_custom_is_sensitive_request\"></a>Custom Is Sensitive Request\nAllows writing your own logic to decide whether the request is sensitive.\nThe custom sensitive request function gets the request object as a parameter and should return true, otherwise, return false. Throwing an exception is equivalent to `false`.\n\n**Default**: Empty\n\n```javascript\nconst pxConfig = {\n    ...\n        px_custom_is_sensitive_request: function(req) {\n            return req.method === 'POST' && req.body && req.body.test;\n        }\n    ...\n```\n\n\n**Default:** `null`\n\n## <a name=\"cdMiddleware\"></a> Code Defender Middleware - cdMiddleware\n\nCode Defender's middleware to handle the enforcement of CSP headers on responses returned to the client.\nThe express module is in charge of communicating with PerimeterX to receive and maintain the latest CSP policy for the given appId.\nIt also maintains the policy state and invalidates the policy when communication with PerimeterX's Enforcer Data Provider is lost, base on the configuration values (`px_csp_no_updates_max_interval_minutes`, `px_csp_policy_refresh_interval_minutes`).\n\nIt then uses **PerimeterX Node Core** module to enforce the actual functionality adding the necessary CSP header to the response object.\n\nusage example:\n```javascript\nconst perimeterx = require('perimeterx-node-express');\n...\nconst pxInstance = perimeterx.new(pxConfig);\napp.use(pxInstance.cdMiddleware);\n...\n```\n\n### Adding Nonce value to CSP header\n\nThe PerimeterX Express module allows adding a Nonce value to the CSP header.\nTo do this, use the module's static function `addNonce`.\nAfter PerimeterX cdMiddleware has added the CSP header to the response, call the `addNonce` function,\npassing in the response object and a nonce value (string consisting of alphanumeric characters).\nIf a CSP header exists on the response object, the function will alter the header by adding the nonce value in the correct place.\nThe function does not return a value, but rather changes the original response.\n```javascript\nconst perimeterx = require('perimeterx-node-express');\n...\nperimeterx.addNonce(response, 'rAnd0mNon6e');\n...\n```\n> Please note: the nonce value must be unique for each HTTP response.\n> For further explanation, refer to the official documentation of [CSP nonce](https://content-security-policy.com/nonce/).\n\n\n## <a name=\"advancedBlockingResponse\"></a> Advanced Blocking Response\n\nIn special cases, (such as XHR post requests) a full Captcha page render might not be an option. In such cases, using the Advanced Blocking Response returns a JSON object continaing all the information needed to render your own Captcha challenge implementation, be it a popup modal, a section on the page, etc. The Advanced Blocking Response occurs when a request contains the _Accept_ header with the value of `application/json`. A sample JSON response appears as follows:\n\n```javascript\n{\n    \"appId\": String,\n    \"jsClientSrc\": String,\n    \"firstPartyEnabled\": Boolean,\n    \"vid\": String,\n    \"uuid\": String,\n    \"hostUrl\": String,\n    \"blockScript\": String\n}\n```\n\nOnce you have the JSON response object, you can pass it to your implementation (with query strings or any other solution) and render the Captcha challenge.\n\nIn addition, you can add the `_pxOnCaptchaSuccess` callback function on the window object of your Captcha page to react according to the Captcha status. For example when using a modal, you can use this callback to close the modal once the Captcha is successfullt solved. <br/> An example of using the `_pxOnCaptchaSuccess` callback is as follows:\n\n```javascript\nwindow._pxOnCaptchaSuccess = function (isValid) {\n    if (isValid) {\n        alert('yay');\n    } else {\n        alert('nay');\n    }\n};\n```\n\nFor details on how to create a custom Captcha page, refer to the [documentation](https://docs.perimeterx.com/pxconsole/docs/customize-challenge-page)\n\n> If you wish to disable this behavior when the _Accept_ header has the value of `application/json`, set the following configuration:\n>\n> ```javascript\n> const pxConfig = {\n>   ...\n>   px_advanced_blocking_response_enabled: false\n>   ...\n> };\n> ```\n\n## <a name=\"multipleAppSupport\"></a> Multiple App Support\n\nIf you use two different apps on the same node runtime, you can create two instances and use them on two routes:\n\n```javascript\n'use strict';\n\nconst express = require('express');\nconst perimeterx = require('perimeterx-node-express');\n\nconst server = express();\n\n/* the px-module and parser need to be initialized before any route usage */\nconst pxConfig1 = {\n    px_app_id: 'PX_APP_ID_1',\n    px_cookie_secret: 'PX_COOKIE_ENCRYPTION_KEY',\n    px_auth_token: 'PX_TOKEN_1',\n};\nconst middlewareApp1 = perimeterx.new(pxConfig1).middleware;\nconst app1Router = express.Router();\napp1Router.use(middlewareApp1);\napp1Router.get('/hello', (req, res) => {\n    res.send('Hello from App1');\n});\nserver.use('/app1', app1Router);\n\nconst pxConfig2 = {\n    px_app_id: 'PX_APP_ID_2',\n    px_cookie_secret: 'PX_COOKIE_ENCRYPTION_KEY',\n    px_auth_token: 'PX_TOKEN_2',\n};\nconst middlewareApp2 = perimeterx.new(pxConfig2).middleware;\nconst app2Router = express.Router();\napp2Router.use(middlewareApp2);\napp2Router.get('/app2', (req, res) => {\n    res.send('Hello from App2');\n});\nserver.use('/app2', app1Router);\n\nserver.listen(8081, () => {\n    console.log('server started');\n});\n``\n\n## <a name=“additionalInformation”></a> Additional Information\n\n### URI Delimiters\n\nPerimeterX processes URI paths with general- and sub-delimiters according to RFC 3986. General delimiters (e.g., `?`, `#`) are used to separate parts of the URI. Sub-delimiters (e.g., `$`, `&`) are not used to split the URI as they are considered valid characters in the URI path.\n\n## Thanks\n","readmeFilename":"README.md","users":{"bendpx":true}}