{"_id":"express-extras","_rev":"25-51cb0ca0543ac3d758d3a604a8cd2e78","name":"express-extras","description":"ExpressJS Helpers","dist-tags":{"latest":"0.3.1"},"versions":{"0.1.0":{"name":"express-extras","version":"0.1.0","description":"ExpressJS Helpers","author":{"name":"Dav Glass","email":"davglass@gmail.com"},"bugs":{"web":"http://github.com/davglass/express-extras/issues"},"os":["darwin","linux"],"engines":{"node":">=0.1.199"},"directories":{"lib":"lib"},"main":"./lib/express-extras","dependencies":{"express":">=1.0.0rc4","connect":">=0.2.4"},"licenses":[{"type":"BSD","url":"http://github.com/davglass/express-extras/blob/master/LICENSE"}],"repository":{"type":"git","url":"http://github.com/davglass/express-extras.git"},"_id":"express-extras@0.1.0","_nodeSupported":true,"_npmVersion":"0.2.7-2","_npmUser":{"name":"davglass","email":"davglass@gmail.com"},"_nodeVersion":"v0.3.1-pre","dist":{"tarball":"https://registry.npmjs.org/express-extras/-/express-extras-0.1.0.tgz","shasum":"c0647cffa4c2b160f181591d713d67ca2585601c","integrity":"sha512-dPLAkHW70t498lwIXfOHIPN5wLW4JXRFFOfZDjONo4F9Fih6oArwVcsSQ6ssNEDddgm7bM/Spv7p1ENheWFdYg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD664JbF8lHl9Xim2S67dHgJLA8GutH/3lQYQHehW2c7gIhAKHUfPwqdF2nclH3L+BTEmCpcjk3SOe9T9pAmHeDwDIz"}]}},"0.1.1":{"name":"express-extras","version":"0.1.1","description":"ExpressJS Helpers","author":{"name":"Dav Glass","email":"davglass@gmail.com"},"bugs":{"url":"https://github.com/davglass/express-extras/issues"},"os":["darwin","linux"],"engines":{"node":">=0.4.0"},"main":"./lib/express-extras","dependencies":{"express":"*"},"licenses":[{"type":"BSD","url":"http://github.com/davglass/express-extras/blob/master/LICENSE"}],"repository":{"type":"git","url":"git://github.com/davglass/express-extras.git"},"_npmUser":{"name":"davglass","email":"davglass@gmail.com"},"_id":"express-extras@0.1.1","devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.6.2","_defaultsLoaded":true,"dist":{"shasum":"e82e528d22665e6ce5650d1ae8924780d3962154","tarball":"https://registry.npmjs.org/express-extras/-/express-extras-0.1.1.tgz","integrity":"sha512-MzwDbRI6ABV+ussQK26ODgiL9ZNzs18RjQiaMAuA68Q50LMotCEF3QxlBmfZCQ0TzSI+PXnEtDG7hr5nV04FiA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID46H7OgkCcXGxavh6BpE/hfEpS2w8BnWjmrmBntTi28AiAnZcKaUZ9ts2nwtJJcpryZgEzeUTeGKgOGvAYxf+uUNg=="}]},"maintainers":[{"name":"davglass","email":"davglass@gmail.com"}],"directories":{}},"0.1.2":{"name":"express-extras","version":"0.1.2","description":"ExpressJS Helpers","author":{"name":"Dav Glass","email":"davglass@gmail.com"},"bugs":{"url":"https://github.com/davglass/express-extras/issues"},"engines":{"node":">=0.4.0"},"main":"./lib/express-extras","dependencies":{"express":"*"},"devDependencies":{"yui-lint":"~0.1.1","jshint":"~0.9.0","istanbul":"~0.1.8","vows":"*"},"scripts":{"pretest":"jshint --config ./node_modules/yui-lint/jshint.json ./lib/","test":"istanbul cover --print both vows -- --spec ./tests/*.js"},"licenses":[{"type":"BSD","url":"http://github.com/davglass/express-extras/blob/master/LICENSE"}],"repository":{"type":"git","url":"http://github.com/davglass/express-extras.git"},"_id":"express-extras@0.1.2","dist":{"shasum":"e6edd61a699d0fe614d6f9086e829a230a7432b3","tarball":"https://registry.npmjs.org/express-extras/-/express-extras-0.1.2.tgz","integrity":"sha512-9M0syBeAPS9DYhCcqep3H9Np4W57ia1VTY6QsKlU37yFydE2zmOwLjBktKYybHIKORmL7NbOJ39GndsMriWEsg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCtvmuUtj6wvqtB1H+uHAqOTcG07ZFn6seCvqxx6mMBWAIhAL6p/cGvppaYmc8CzjxStQVWHMuadN1T2Joxi+/aaKuo"}]},"_npmVersion":"1.2.0","_npmUser":{"name":"davglass","email":"davglass@gmail.com"},"maintainers":[{"name":"davglass","email":"davglass@gmail.com"}],"directories":{}},"0.1.3":{"name":"express-extras","version":"0.1.3","description":"ExpressJS Helpers","author":{"name":"Dav Glass","email":"davglass@gmail.com"},"bugs":{"url":"https://github.com/davglass/express-extras/issues"},"engines":{"node":">=0.4.0"},"main":"./lib/express-extras","dependencies":{"express":"*"},"devDependencies":{"yui-lint":"~0.1.1","jshint":"~0.9.0","istanbul":"~0.1.8","vows":"*"},"scripts":{"pretest":"jshint --config ./node_modules/yui-lint/jshint.json ./lib/","test":"istanbul cover --print both vows -- --spec ./tests/*.js"},"licenses":[{"type":"BSD","url":"http://github.com/davglass/express-extras/blob/master/LICENSE"}],"repository":{"type":"git","url":"http://github.com/davglass/express-extras.git"},"_id":"express-extras@0.1.3","dist":{"shasum":"a89ff6e2e149ea961d353e0dcb361fbaee841b78","tarball":"https://registry.npmjs.org/express-extras/-/express-extras-0.1.3.tgz","integrity":"sha512-GQYWFKfvr8EJ0UsUf3SvkCNfBVxk9HvBNE9tsFWon20rmyhJ2sK+RySZa6wkiuij6y5B2W8OkCC0GaqDdMRlHg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCiu+XMF7mWzdD4vjGgRMccNBIcZBTgC6R8yK2ajflPGgIgLUWo2q0k+Hopi6Tzrj0E5UXj2Ne41Bk1D28ZrvvZE5Q="}]},"_from":".","_npmVersion":"1.2.17","_npmUser":{"name":"davglass","email":"davglass@gmail.com"},"maintainers":[{"name":"davglass","email":"davglass@gmail.com"}],"directories":{}},"0.1.4":{"name":"express-extras","version":"0.1.4","description":"ExpressJS Helpers","author":{"name":"Dav Glass","email":"davglass@gmail.com"},"bugs":{"url":"https://github.com/davglass/express-extras/issues"},"engines":{"node":">=0.4.0"},"main":"./lib/express-extras","dependencies":{"express":"*"},"devDependencies":{"yui-lint":"~0.1.1","jshint":"~0.9.0","istanbul":"~0.1.8","vows":"*"},"scripts":{"pretest":"jshint --config ./node_modules/yui-lint/jshint.json ./lib/","test":"istanbul cover --print both vows -- --spec ./tests/*.js"},"licenses":[{"type":"BSD","url":"http://github.com/davglass/express-extras/blob/master/LICENSE"}],"repository":{"type":"git","url":"http://github.com/davglass/express-extras.git"},"homepage":"https://github.com/davglass/express-extras","_id":"express-extras@0.1.4","dist":{"shasum":"126085b85d7f56626f62d3a553d64467d9f724dd","tarball":"https://registry.npmjs.org/express-extras/-/express-extras-0.1.4.tgz","integrity":"sha512-4xWi6h9io8gtcesM3Sw6xlJFyubf9//hek04bWYYlW/tY0Oljcvdzjtf/e5lC2rYBZCclCizkzg0QYAtvdn3oA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDr8Qx8lJqn4lki8A78luCnG+QNsS3C5hDVY+pvLZks3gIgIEZkJd3d+GxHPhAdREFf9hHXGgOVZluyr027PCw11rs="}]},"_from":".","_npmVersion":"1.3.24","_npmUser":{"name":"davglass","email":"davglass@gmail.com"},"maintainers":[{"name":"davglass","email":"davglass@gmail.com"}]},"0.2.0":{"name":"express-extras","version":"0.2.0","description":"ExpressJS Helpers","author":{"name":"Dav Glass","email":"davglass@gmail.com"},"bugs":{"url":"https://github.com/davglass/express-extras/issues"},"engines":{"node":">=0.4.0"},"main":"./lib/express-extras","dependencies":{"express":"*"},"devDependencies":{"istanbul":"^0.2.7","jshint":"~0.9.0","vows":"*","yui-lint":"~0.1.1"},"scripts":{"pretest":"jshint --config ./node_modules/yui-lint/jshint.json ./lib/","test":"istanbul cover --print both vows -- --spec ./tests/*.js"},"licenses":[{"type":"BSD","url":"http://github.com/davglass/express-extras/blob/master/LICENSE"}],"repository":{"type":"git","url":"http://github.com/davglass/express-extras.git"},"homepage":"https://github.com/davglass/express-extras","_id":"express-extras@0.2.0","dist":{"shasum":"647d4eb40478592e775647d500db8505c15919d8","tarball":"https://registry.npmjs.org/express-extras/-/express-extras-0.2.0.tgz","integrity":"sha512-x+Voj/mCmDsWXczEG9c67kqsJ8zmNNg8PbHJZot6aGnx1IqPsyBBZ+Ez9AIp7vrVc/wIL4EKzC10S14o54WrTg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCzVWmcFx619c3zocZveKUF40krWIJSqe5pq9r4wTb6NwIgbzzx18Hy/OppJB7lUZGC35bbowSJdZh5LT/p9Fz4EVs="}]},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"davglass","email":"davglass@gmail.com"},"maintainers":[{"name":"davglass","email":"davglass@gmail.com"}]},"0.3.0":{"name":"express-extras","version":"0.3.0","description":"ExpressJS Helpers","author":{"name":"Dav Glass","email":"davglass@gmail.com"},"bugs":{"url":"https://github.com/davglass/express-extras/issues"},"engines":{"node":">=0.4.0"},"main":"./lib/express-extras","dependencies":{"express":"*"},"devDependencies":{"istanbul":"^0.2.7","jshint":"~0.9.0","vows":"*","yui-lint":"~0.1.1"},"scripts":{"pretest":"jshint --config ./node_modules/yui-lint/jshint.json ./lib/","test":"istanbul cover --print both vows -- --spec ./tests/*.js"},"licenses":[{"type":"BSD","url":"http://github.com/davglass/express-extras/blob/master/LICENSE"}],"repository":{"type":"git","url":"http://github.com/davglass/express-extras.git"},"gitHead":"98c55fb91abe81375dad5dd54f744029ff9400d1","homepage":"https://github.com/davglass/express-extras","_id":"express-extras@0.3.0","_shasum":"f3ffc36190f148c3ddcbf8f1d486bc3ada377dcb","_from":".","_npmVersion":"2.1.0","_nodeVersion":"0.10.32","_npmUser":{"name":"davglass","email":"davglass@gmail.com"},"maintainers":[{"name":"davglass","email":"davglass@gmail.com"}],"dist":{"shasum":"f3ffc36190f148c3ddcbf8f1d486bc3ada377dcb","tarball":"https://registry.npmjs.org/express-extras/-/express-extras-0.3.0.tgz","integrity":"sha512-W8vh+xjMy3v38F4TysdnNVq4CX1PsnqmQCcZCruAY1SSUCYEjRaYkEDio8TXq+T58CowM6dTVy2dTEre0DGAXQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjzokSn3IlPMUGbg5fV7j0wJRLbpGI7fi6HysEaJzopwIhALz17p2WBP7YCNse7UkUn08rYu6qAiEDMHv7oe3xsKXt"}]}},"0.3.1":{"name":"express-extras","version":"0.3.1","description":"ExpressJS Helpers","author":{"name":"Dav Glass","email":"davglass@gmail.com"},"bugs":{"url":"https://github.com/davglass/express-extras/issues"},"engines":{"node":">=0.4.0"},"main":"./lib/express-extras","dependencies":{"express":"*"},"devDependencies":{"istanbul":"^0.2.7","jshint":"~0.9.0","vows":"*","yui-lint":"~0.1.1"},"scripts":{"pretest":"jshint --config ./node_modules/yui-lint/jshint.json ./lib/","test":"istanbul cover --print both vows -- --spec ./tests/*.js"},"license":"BSD-3-Clause","repository":{"type":"git","url":"git+ssh://git@github.com/davglass/express-extras.git"},"gitHead":"1ddda7c4b3c66baacc2f2f398f9b4d6f7b349143","homepage":"https://github.com/davglass/express-extras#readme","_id":"express-extras@0.3.1","_shasum":"8a2de3627eefe672944120b57d23a3512e3c54bd","_from":".","_npmVersion":"2.10.1","_nodeVersion":"0.12.4","_npmUser":{"name":"davglass","email":"davglass@gmail.com"},"maintainers":[{"name":"davglass","email":"davglass@gmail.com"}],"dist":{"shasum":"8a2de3627eefe672944120b57d23a3512e3c54bd","tarball":"https://registry.npmjs.org/express-extras/-/express-extras-0.3.1.tgz","integrity":"sha512-D0xKRkihS5EOn33+FrVH/8fuTTANOeaaM7FBD3j0sa+gGURowFDoRR4Zayf60Cxnv7rzdrFZfOdIAUVSGMcRzg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBGN0WylTGB9c6oWXqE5dRepb222RcVcH4/rKZUfGI/IAiEA7pLZd5twEFI0YnHlmXOKp86mq8aoYw3eJUpq34m0DhU="}]}}},"maintainers":[{"name":"davglass","email":"davglass@gmail.com"}],"author":{"name":"Dav Glass","email":"davglass@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/davglass/express-extras.git"},"time":{"0.1.1":"2011-12-13T19:52:15.897Z","modified":"2022-06-17T22:17:13.005Z","created":"2011-12-13T19:52:15.897Z","0.1.0":"2011-12-13T19:52:15.897Z","0.1.2":"2013-01-15T20:05:26.419Z","0.1.3":"2013-04-17T21:56:49.790Z","0.1.4":"2014-01-23T17:44:15.435Z","0.2.0":"2014-04-04T00:25:04.514Z","0.3.0":"2014-10-14T20:54:49.182Z","0.3.1":"2015-06-03T13:32:50.205Z"},"readme":"ExpressJS Extras Package\n========================\n\nThis package contains extra middleware options for ExpressJS.\n\nCurrently it only contains 2, but I will be adding to them as I need them ;)\n\nInstallation\n------------\n\n`npm install express-extras`\n\nextras.fixIP\n------------\n\nThis middleware module attempts to normalize `req.socket.remoteAddress` and `headers['x-forwarded-for']` into `req.ip`\nwhen working with a proxy (like nginx).\n\n\n    var extras = require('express-extras');\n    app.configure(function() {\n\n        app.use(extras.fixIP());\n        //Or\n        app.use(extras.fixIP([\n            'x-forwarded-for',\n            'forwarded-for',\n            'x-cluster-ip'\n        ]));\n\n    });\n\n\nextras.throttle\n---------------\n\nAttempts to throttle requests based on the number of times a given resource is accessed.\nOnce the throttle is reached, a 403 is served to them for the `holdTime` (default 10 seconds)\n127.0.0.1 is automatically whitelisted (for development, monit, nagios, etc..)\nProbably should be used with/after extras.fixIP so that the users real IP is sent to the throttle.\n\n\n    var extras = require('express-extras');\n    app.configure(function() {\n\n        Use the defaults..\n        app.use(extras.throttle());\n\n        //Or supply a config object\n        //The default config shown..\n        app.use(extras.throttle({\n          urlCount: 5,\n          urlSec: 1,\n          holdTime: 10,\n          whitelist: {\n              '127.0.0.1': true\n          },\n          errorCode: 403,\n          errorHtml: '<html><title>403 Forbidden</title><body><h1>403 Forbidden</h1><p>Client denied by server configuration.</p></body></html>'\n        }));\n\n    });\n\n\nBuild Status\n------------\n\n[![Build Status](https://secure.travis-ci.org/davglass/express-extras.png?branch=master)](http://travis-ci.org/davglass/express-extras)\n\n\n","readmeFilename":"README.md","homepage":"https://github.com/davglass/express-extras#readme","bugs":{"url":"https://github.com/davglass/express-extras/issues"},"users":{"j3kz":true},"license":"BSD-3-Clause"}