{"_id":"express-request-proxy","_rev":"277326","name":"express-request-proxy","description":"Intelligent http proxy Express middleware","dist-tags":{"latest":"2.2.2"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"time":{"modified":"2021-06-03T18:05:44.000Z","created":"2015-07-07T18:06:50.386Z","2.2.2":"2018-09-06T04:21:47.784Z","2.2.1":"2018-09-06T03:25:21.347Z","2.2.0":"2018-07-17T15:22:35.987Z","2.1.1":"2018-07-16T15:13:04.440Z","2.1.0":"2018-05-29T15:57:30.758Z","2.0.0":"2016-03-07T22:15:01.950Z","1.2.0":"2016-02-25T16:18:59.956Z","1.1.0":"2016-01-22T03:59:57.984Z","1.0.11":"2016-01-17T00:52:41.710Z","1.0.10":"2015-12-08T05:55:02.611Z","1.0.9":"2015-11-18T17:55:57.260Z","1.0.8":"2015-11-09T23:47:03.537Z","1.0.7":"2015-07-31T21:14:19.386Z","1.0.6":"2015-07-19T16:42:33.265Z","1.0.5":"2015-07-19T16:37:29.047Z","1.0.4":"2015-07-19T16:21:43.454Z","1.0.3":"2015-07-16T04:49:41.574Z","1.0.2":"2015-07-15T17:10:02.366Z","1.0.1":"2015-07-14T23:04:49.120Z","1.0.0":"2015-07-07T18:06:50.386Z"},"users":{"ivanoats":true,"hugojosefson":true,"itskdk":true,"dzhou777":true,"shakakira":true,"arielfr":true,"marcosc90":true,"danbluefoot":true,"rocket0191":true,"astr-o":true},"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"repository":{"type":"git","url":"git+https://github.com/dvonlehman/express-request-proxy.git"},"versions":{"2.2.2":{"name":"express-request-proxy","version":"2.2.2","description":"Intelligent http proxy Express middleware","main":"index.js","scripts":{"test":"mocha --reporter spec --bail --exit --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --exit --check-leaks test/","lint":"eslint --cache ./lib index.js"},"repository":{"type":"git","url":"git+https://github.com/dvonlehman/express-request-proxy.git"},"keywords":["express","middleware","request","api","proxy"],"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"license":"Apache-2.0","bugs":{"url":"https://github.com/dvonlehman/express-request-proxy/issues"},"homepage":"https://github.com/dvonlehman/express-request-proxy","dependencies":{"async":"^2.6.1","body-parser":"^1.18.3","camel-case":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","lru-cache":"^4.1.3","path-to-regexp":"^1.1.1","request":"^2.87.0","simple-errors":"^1.0.1","through2":"^2.0.3","type-is":"^1.6.16","url-join":"4.0.0"},"devDependencies":{"compression":"^1.7.2","coveralls":"^3.0.2","dash-assert":"^1.3.1","eslint":"^4.19.1","express":"^4.16.3","istanbul":"^0.4.5","memory-cache-stream":"^1.2.0","mocha":"^5.2.0","shortid":"^2.2.8","sinon":"^5.0.10","supertest":"^3.1.0"},"gitHead":"60ba10d2026072b4c89bf7dc9538e1bda1d5ac31","_id":"express-request-proxy@2.2.2","_npmVersion":"6.1.0","_nodeVersion":"8.10.0","_npmUser":{"name":"dvonlehman","email":"david.vonlehman@gmail.com"},"dist":{"shasum":"ebe8966e7ab47c97b59721f2714217a6389a2a76","size":13542,"noattachment":false,"key":"/express-request-proxy/-/express-request-proxy-2.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/express-request-proxy/download/express-request-proxy-2.2.2.tgz"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-request-proxy_2.2.2_1536207707667_0.8263447598135241"},"_hasShrinkwrap":false,"publish_time":1536207707784,"_cnpm_publish_time":1536207707784},"2.2.1":{"name":"express-request-proxy","version":"2.2.1","description":"Intelligent http proxy Express middleware","main":"index.js","scripts":{"test":"mocha --reporter spec --bail --exit --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --exit --check-leaks test/","lint":"eslint --cache ./lib index.js"},"repository":{"type":"git","url":"git+https://github.com/dvonlehman/express-request-proxy.git"},"keywords":["express","middleware","request","api","proxy"],"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"license":"Apache-2.0","bugs":{"url":"https://github.com/dvonlehman/express-request-proxy/issues"},"homepage":"https://github.com/dvonlehman/express-request-proxy","dependencies":{"async":"^2.6.1","body-parser":"^1.18.3","camel-case":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","lru-cache":"^4.1.3","path-to-regexp":"^1.1.1","request":"^2.87.0","simple-errors":"^1.0.1","through2":"^2.0.3","type-is":"^1.6.16","url-join":"4.0.0"},"devDependencies":{"compression":"^1.7.2","coveralls":"^3.0.2","dash-assert":"^1.3.1","eslint":"^4.19.1","express":"^4.16.3","istanbul":"^0.4.5","memory-cache-stream":"^1.2.0","mocha":"^5.2.0","shortid":"^2.2.8","sinon":"^5.0.10","supertest":"^3.1.0"},"gitHead":"1bbd5f30d607b404e9c7a8daee14ac0c705cc7ef","_id":"express-request-proxy@2.2.1","_npmVersion":"6.1.0","_nodeVersion":"8.10.0","_npmUser":{"name":"dvonlehman","email":"david.vonlehman@gmail.com"},"dist":{"shasum":"861d91934a6792e5f7b71521b2117f7559419832","size":13482,"noattachment":false,"key":"/express-request-proxy/-/express-request-proxy-2.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/express-request-proxy/download/express-request-proxy-2.2.1.tgz"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-request-proxy_2.2.1_1536204321231_0.9444074826137188"},"_hasShrinkwrap":false,"publish_time":1536204321347,"_cnpm_publish_time":1536204321347},"2.2.0":{"name":"express-request-proxy","version":"2.2.0","description":"Intelligent http proxy Express middleware","main":"index.js","scripts":{"test":"mocha --reporter spec --bail --exit --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --exit --check-leaks test/","lint":"eslint --cache ./lib index.js"},"repository":{"type":"git","url":"git+https://github.com/dvonlehman/express-request-proxy.git"},"keywords":["express","middleware","request","api","proxy"],"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"license":"Apache-2.0","bugs":{"url":"https://github.com/dvonlehman/express-request-proxy/issues"},"homepage":"https://github.com/dvonlehman/express-request-proxy","dependencies":{"async":"^2.6.1","body-parser":"^1.18.3","camel-case":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","lru-cache":"^4.1.3","path-to-regexp":"^1.1.1","request":"^2.87.0","simple-errors":"^1.0.1","through2":"^2.0.3","type-is":"^1.6.16","url-join":"4.0.0"},"devDependencies":{"compression":"^1.7.2","coveralls":"^3.0.2","dash-assert":"^1.3.1","eslint":"^4.19.1","express":"^4.16.3","istanbul":"^0.4.5","memory-cache-stream":"^1.2.0","mocha":"^5.2.0","shortid":"^2.2.8","sinon":"^5.0.10","supertest":"^3.1.0"},"gitHead":"e87fc14ab39c8eb020c496c3ffb75d1fa0be4150","_id":"express-request-proxy@2.2.0","_npmVersion":"6.1.0","_nodeVersion":"8.10.0","_npmUser":{"name":"dvonlehman","email":"david.vonlehman@gmail.com"},"dist":{"shasum":"9da15d1e85da8a4900026f428a1cf68af6483ca4","size":13476,"noattachment":false,"key":"/express-request-proxy/-/express-request-proxy-2.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/express-request-proxy/download/express-request-proxy-2.2.0.tgz"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-request-proxy_2.2.0_1531840955872_0.46963048440876665"},"_hasShrinkwrap":false,"publish_time":1531840955987,"_cnpm_publish_time":1531840955987},"2.1.1":{"name":"express-request-proxy","version":"2.1.1","description":"Intelligent http proxy Express middleware","main":"index.js","scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/","lint":"eslint --cache ./lib index.js"},"repository":{"type":"git","url":"git+https://github.com/dvonlehman/express-request-proxy.git"},"keywords":["express","middleware","request","api","proxy"],"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"license":"Apache-2.0","bugs":{"url":"https://github.com/dvonlehman/express-request-proxy/issues"},"homepage":"https://github.com/dvonlehman/express-request-proxy","dependencies":{"async":"^2.6.1","body-parser":"^1.18.3","camel-case":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","lru-cache":"^4.1.3","path-to-regexp":"^1.1.1","request":"^2.87.0","simple-errors":"^1.0.1","through2":"^2.0.3","type-is":"^1.6.16","url-join":"4.0.0"},"devDependencies":{"compression":"^1.7.2","dash-assert":"^1.3.1","eslint":"^4.19.1","express":"^4.16.3","istanbul":"^0.4.5","memory-cache-stream":"^1.2.0","mocha":"^5.2.0","shortid":"^2.2.8","sinon":"^5.0.10","supertest":"^3.1.0"},"gitHead":"15b1d663ece2d8126453c380e75c1af718ad6534","_id":"express-request-proxy@2.1.1","_npmVersion":"6.1.0","_nodeVersion":"8.10.0","_npmUser":{"name":"dvonlehman","email":"david.vonlehman@gmail.com"},"dist":{"shasum":"b5dda699e8fa1260674a4e85d70195abc32fdd99","size":12778,"noattachment":false,"key":"/express-request-proxy/-/express-request-proxy-2.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/express-request-proxy/download/express-request-proxy-2.1.1.tgz"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-request-proxy_2.1.1_1531753984296_0.07824030337767085"},"_hasShrinkwrap":false,"publish_time":1531753984440,"_cnpm_publish_time":1531753984440},"2.1.0":{"name":"express-request-proxy","version":"2.1.0","description":"Intelligent http proxy Express middleware","main":"index.js","scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/","lint":"eslint --cache ./lib index.js"},"repository":{"type":"git","url":"git+https://github.com/4front/express-request-proxy.git"},"keywords":["4front","express","middleware","request","api","proxy"],"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"license":"Apache-2.0","bugs":{"url":"https://github.com/4front/express-request-proxy/issues"},"homepage":"https://github.com/4front/express-request-proxy","dependencies":{"async":"^2.6.1","body-parser":"^1.18.3","camel-case":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","lru-cache":"^4.1.3","path-to-regexp":"^1.1.1","request":"^2.87.0","simple-errors":"^1.0.1","through2":"^2.0.3","type-is":"^1.6.16","url-join":"4.0.0"},"devDependencies":{"compression":"^1.7.2","dash-assert":"^1.3.1","eslint":"^4.19.1","eslint-config-4front":"^1.3.2","express":"^4.16.3","istanbul":"^0.4.5","memory-cache-stream":"^1.2.0","mocha":"^5.2.0","shortid":"^2.2.8","sinon":"^5.0.10","supertest":"^3.1.0"},"gitHead":"908eb76979ed5fe19569fa78b91b4e40685b9963","_id":"express-request-proxy@2.1.0","_npmVersion":"6.0.1","_nodeVersion":"8.9.3","_npmUser":{"name":"dvonlehman","email":"david.vonlehman@gmail.com"},"dist":{"shasum":"54fc47ef743699fe7320b7674da692a14714f656","size":13028,"noattachment":false,"key":"/express-request-proxy/-/express-request-proxy-2.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/express-request-proxy/download/express-request-proxy-2.1.0.tgz"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-request-proxy_2.1.0_1527609450653_0.3152392750138988"},"_hasShrinkwrap":false,"publish_time":1527609450758,"_cnpm_publish_time":1527609450758},"2.0.0":{"name":"express-request-proxy","version":"2.0.0","description":"Intelligent http proxy Express middleware","main":"index.js","scripts":{"lint":"eslint .","test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"repository":{"type":"git","url":"git+https://github.com/4front/express-request-proxy.git"},"keywords":["4front","express","middleware","request","api","proxy"],"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"license":"Apache-2.0","bugs":{"url":"https://github.com/4front/express-request-proxy/issues"},"homepage":"https://github.com/4front/express-request-proxy","dependencies":{"async":"^1.4.0","body-parser":"^1.12.0","camel-case":"^1.1.1","debug":"^2.1.1","lodash":"^4.6.1","lru-cache":"^4.0.0","path-to-regexp":"^1.1.1","request":"^2.53.0","simple-errors":"^1.0.0","through2":"^2.0.0","type-is":"^1.6.6","url-join":"0.0.1"},"devDependencies":{"compression":"^1.6.0","dash-assert":"^1.0.2","eslint":"^2.3.0","eslint-config-4front":"^1.1.3","express":"^4.11.1","istanbul":"^0.4.2","memory-cache-stream":"^1.0.4","mocha":"^2.4.5","shortid":"^2.1.3","sinon":"^1.15.4","supertest":"^1.0.1"},"gitHead":"f4b0750a46c2659d38d852bf5f04f5961143096f","_id":"express-request-proxy@2.0.0","_shasum":"01919aec61e89a0f824fa5e6e733b8e063c9d64d","_from":".","_npmVersion":"3.6.0","_nodeVersion":"5.7.0","_npmUser":{"name":"dvonlehman","email":"david.vonlehman@gmail.com"},"dist":{"shasum":"01919aec61e89a0f824fa5e6e733b8e063c9d64d","size":14889,"noattachment":false,"key":"/express-request-proxy/-/express-request-proxy-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/express-request-proxy/download/express-request-proxy-2.0.0.tgz"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/express-request-proxy-2.0.0.tgz_1457388899494_0.6089758093003184"},"directories":{},"publish_time":1457388901950,"_cnpm_publish_time":1457388901950,"_hasShrinkwrap":false},"1.2.0":{"name":"express-request-proxy","version":"1.2.0","description":"Intelligent http proxy Express middleware","main":"index.js","scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"repository":{"type":"git","url":"git+https://github.com/4front/express-request-proxy.git"},"keywords":["4front","express","middleware","request","api","proxy"],"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"license":"Apache-2.0","bugs":{"url":"https://github.com/4front/express-request-proxy/issues"},"homepage":"https://github.com/4front/express-request-proxy","dependencies":{"async":"^1.4.0","body-parser":"^1.12.0","camel-case":"^1.1.1","debug":"^2.1.1","lodash":"^3.0.1","lru-cache":"^2.5.0","path-to-regexp":"^1.1.1","request":"^2.53.0","simple-errors":"^1.0.0","through2":"^2.0.0","type-is":"^1.6.6","url-join":"0.0.1"},"devDependencies":{"compression":"^1.6.0","dash-assert":"^1.0.2","eslint":"^1.9.0","eslint-config-4front":"^1.0.1","express":"^4.11.1","istanbul":"^0.3.5","memory-cache-stream":"^1.0.4","mocha":"^2.1.0","shortid":"^2.1.3","sinon":"^1.15.4","supertest":"^1.0.1"},"gitHead":"facd740aa93c7833c9e83b9615a1c836d82de7a8","_id":"express-request-proxy@1.2.0","_shasum":"abb8466ef81fc685ceed614d607cb3dfc0329cbd","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.3","_npmUser":{"name":"dvonlehman","email":"david.vonlehman@gmail.com"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"dist":{"shasum":"abb8466ef81fc685ceed614d607cb3dfc0329cbd","size":12421,"noattachment":false,"key":"/express-request-proxy/-/express-request-proxy-1.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/express-request-proxy/download/express-request-proxy-1.2.0.tgz"},"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/express-request-proxy-1.2.0.tgz_1456417139213_0.9758688639849424"},"directories":{},"publish_time":1456417139956,"_cnpm_publish_time":1456417139956,"_hasShrinkwrap":false},"1.1.0":{"name":"express-request-proxy","version":"1.1.0","description":"Intelligent http proxy Express middleware","main":"index.js","scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"repository":{"type":"git","url":"git+https://github.com/4front/express-request-proxy.git"},"keywords":["4front","express","middleware","request","api","proxy"],"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"license":"Apache-2.0","bugs":{"url":"https://github.com/4front/express-request-proxy/issues"},"homepage":"https://github.com/4front/express-request-proxy","dependencies":{"async":"^1.4.0","body-parser":"^1.12.0","camel-case":"^1.1.1","debug":"^2.1.1","lodash":"^3.0.1","lru-cache":"^2.5.0","path-to-regexp":"^1.1.1","request":"^2.53.0","simple-errors":"^1.0.0","through2":"^2.0.0","type-is":"^1.6.6","url-join":"0.0.1"},"devDependencies":{"compression":"^1.6.0","dash-assert":"^1.0.2","eslint":"^1.9.0","eslint-config-4front":"^1.0.1","express":"^4.11.1","istanbul":"^0.3.5","memory-cache-stream":"^1.0.4","mocha":"^2.1.0","shortid":"^2.1.3","sinon":"^1.15.4","supertest":"^1.0.1"},"gitHead":"1e8882a951e950faec5ab71feec505fef0e1fd39","_id":"express-request-proxy@1.1.0","_shasum":"fec763bdbb2d63f1ead90343d23e9d1200bebbd3","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.3","_npmUser":{"name":"dvonlehman","email":"david.vonlehman@gmail.com"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"dist":{"shasum":"fec763bdbb2d63f1ead90343d23e9d1200bebbd3","size":12315,"noattachment":false,"key":"/express-request-proxy/-/express-request-proxy-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/express-request-proxy/download/express-request-proxy-1.1.0.tgz"},"directories":{},"publish_time":1453435197984,"_cnpm_publish_time":1453435197984,"_hasShrinkwrap":false},"1.0.11":{"name":"express-request-proxy","version":"1.0.11","description":"Intelligent http proxy Express middleware","main":"index.js","scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"repository":{"type":"git","url":"git+https://github.com/4front/express-request-proxy.git"},"keywords":["4front","express","middleware","request","api","proxy"],"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"license":"Apache-2.0","bugs":{"url":"https://github.com/4front/express-request-proxy/issues"},"homepage":"https://github.com/4front/express-request-proxy","dependencies":{"async":"^1.4.0","body-parser":"^1.12.0","camel-case":"^1.1.1","debug":"^2.1.1","lodash":"^3.0.1","lru-cache":"^2.5.0","path-to-regexp":"^1.1.1","request":"^2.53.0","simple-errors":"^1.0.0","through2":"^2.0.0","type-is":"^1.6.6","url-join":"0.0.1"},"devDependencies":{"compression":"^1.6.0","dash-assert":"^1.0.2","eslint":"^1.9.0","eslint-config-4front":"^1.0.1","express":"^4.11.1","istanbul":"^0.3.5","memory-cache-stream":"^1.0.4","mocha":"^2.1.0","shortid":"^2.1.3","sinon":"^1.15.4","supertest":"^1.0.1"},"gitHead":"7552c64c3eccaf9c80b122579d6cb2e09cf9d80d","_id":"express-request-proxy@1.0.11","_shasum":"e44033e1d812f2871cdbc704b94aa66fa8671ad6","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.3","_npmUser":{"name":"dvonlehman","email":"david.vonlehman@gmail.com"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"dist":{"shasum":"e44033e1d812f2871cdbc704b94aa66fa8671ad6","size":12264,"noattachment":false,"key":"/express-request-proxy/-/express-request-proxy-1.0.11.tgz","tarball":"http://registry.cnpm.dingdandao.com/express-request-proxy/download/express-request-proxy-1.0.11.tgz"},"directories":{},"publish_time":1452991961710,"_cnpm_publish_time":1452991961710,"_hasShrinkwrap":false},"1.0.10":{"name":"express-request-proxy","version":"1.0.10","description":"Intelligent http proxy Express middleware","main":"index.js","scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"repository":{"type":"git","url":"git+https://github.com/4front/express-request-proxy.git"},"keywords":["4front","express","middleware","request","api","proxy"],"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"license":"Apache-2.0","bugs":{"url":"https://github.com/4front/express-request-proxy/issues"},"homepage":"https://github.com/4front/express-request-proxy","dependencies":{"async":"^1.4.0","body-parser":"^1.12.0","camel-case":"^1.1.1","debug":"^2.1.1","lodash":"^3.0.1","lru-cache":"^2.5.0","path-to-regexp":"^1.1.1","request":"^2.53.0","simple-errors":"^1.0.0","through2":"^2.0.0","type-is":"^1.6.6","url-join":"0.0.1"},"devDependencies":{"compression":"^1.6.0","dash-assert":"^1.0.2","eslint":"^1.9.0","eslint-config-4front":"^1.0.1","express":"^4.11.1","istanbul":"^0.3.5","memory-cache-stream":"^1.0.4","mocha":"^2.1.0","shortid":"^2.1.3","sinon":"^1.15.4","supertest":"^1.0.1"},"gitHead":"b966708f1914c0da8093878aa63ba64542c4d4db","_id":"express-request-proxy@1.0.10","_shasum":"ca83d6013d86089ff8053b7fa3895c059705b1af","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"dvonlehman","email":"david.vonlehman@gmail.com"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"dist":{"shasum":"ca83d6013d86089ff8053b7fa3895c059705b1af","size":12180,"noattachment":false,"key":"/express-request-proxy/-/express-request-proxy-1.0.10.tgz","tarball":"http://registry.cnpm.dingdandao.com/express-request-proxy/download/express-request-proxy-1.0.10.tgz"},"directories":{},"publish_time":1449554102611,"_cnpm_publish_time":1449554102611,"_hasShrinkwrap":false},"1.0.9":{"name":"express-request-proxy","version":"1.0.9","description":"Intelligent http proxy Express middleware","main":"index.js","scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"repository":{"type":"git","url":"git+https://github.com/4front/express-request-proxy.git"},"keywords":["4front","express","middleware","request","api","proxy"],"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"license":"Apache-2.0","bugs":{"url":"https://github.com/4front/express-request-proxy/issues"},"homepage":"https://github.com/4front/express-request-proxy","dependencies":{"async":"^1.4.0","body-parser":"^1.12.0","camel-case":"^1.1.1","debug":"^2.1.1","lodash":"^3.0.1","lru-cache":"^2.5.0","path-to-regexp":"^1.1.1","request":"^2.53.0","simple-errors":"^1.0.0","through2":"^2.0.0","type-is":"^1.6.6","url-join":"0.0.1"},"devDependencies":{"compression":"^1.6.0","dash-assert":"^1.0.2","eslint":"^1.9.0","eslint-config-4front":"^1.0.1","express":"^4.11.1","istanbul":"^0.3.5","memory-cache-stream":"^1.0.4","mocha":"^2.1.0","shortid":"^2.1.3","sinon":"^1.15.4","supertest":"^1.0.1"},"gitHead":"c56138cfd51ef52d069681c5017cee49e74ed8f2","_id":"express-request-proxy@1.0.9","_shasum":"04b87cb810f0215fc90a47e715962ed1a091d072","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"dvonlehman","email":"david.vonlehman@gmail.com"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"dist":{"shasum":"04b87cb810f0215fc90a47e715962ed1a091d072","size":12182,"noattachment":false,"key":"/express-request-proxy/-/express-request-proxy-1.0.9.tgz","tarball":"http://registry.cnpm.dingdandao.com/express-request-proxy/download/express-request-proxy-1.0.9.tgz"},"directories":{},"publish_time":1447869357260,"_cnpm_publish_time":1447869357260,"_hasShrinkwrap":false},"1.0.8":{"name":"express-request-proxy","version":"1.0.8","description":"Intelligent http proxy Express middleware","main":"index.js","scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"repository":{"type":"git","url":"git+https://github.com/4front/express-request-proxy.git"},"keywords":["4front","express","middleware","request","api","proxy"],"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"license":"Apache-2.0","bugs":{"url":"https://github.com/4front/express-request-proxy/issues"},"homepage":"https://github.com/4front/express-request-proxy","dependencies":{"async":"^1.4.0","body-parser":"^1.12.0","camel-case":"^1.1.1","debug":"^2.1.1","lodash":"^3.0.1","lru-cache":"^2.5.0","path-to-regexp":"^1.1.1","request":"^2.53.0","simple-errors":"^1.0.0","through2":"^2.0.0","type-is":"^1.6.6","url-join":"0.0.1"},"devDependencies":{"compression":"^1.6.0","dash-assert":"^1.0.2","eslint":"^1.9.0","express":"^4.11.1","istanbul":"^0.3.5","memory-cache-stream":"^1.0.4","mocha":"^2.1.0","shortid":"^2.1.3","sinon":"^1.15.4","supertest":"^1.0.1"},"gitHead":"a009c8643e0b7ece7426400309af5a16a9cb0ac2","_id":"express-request-proxy@1.0.8","_shasum":"d6afaee80ed332f351bb2645e9864d02650e21f3","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.0","_npmUser":{"name":"dvonlehman","email":"david.vonlehman@gmail.com"},"dist":{"shasum":"d6afaee80ed332f351bb2645e9864d02650e21f3","size":14015,"noattachment":false,"key":"/express-request-proxy/-/express-request-proxy-1.0.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/express-request-proxy/download/express-request-proxy-1.0.8.tgz"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"directories":{},"publish_time":1447112823537,"_cnpm_publish_time":1447112823537,"_hasShrinkwrap":false},"1.0.7":{"name":"express-request-proxy","version":"1.0.7","description":"Intelligent http proxy Express middleware","main":"index.js","scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"repository":{"type":"git","url":"git+https://github.com/4front/express-request-proxy.git"},"keywords":["4front","express","middleware","request","api","proxy"],"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"licenses":[{"type":"Apache-2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"bugs":{"url":"https://github.com/4front/express-request-proxy/issues"},"homepage":"https://github.com/4front/express-request-proxy","dependencies":{"async":"^1.4.0","body-parser":"^1.12.0","camel-case":"^1.1.1","debug":"^2.1.1","lodash":"^3.0.1","lru-cache":"^2.5.0","path-to-regexp":"^1.1.1","request":"^2.53.0","simple-errors":"^1.0.0","through2":"^2.0.0","type-is":"^1.6.6","url-join":"0.0.1"},"devDependencies":{"dash-assert":"^1.0.2","express":"^4.11.1","istanbul":"^0.3.5","memory-cache-stream":"^1.0.4","mocha":"^2.1.0","shortid":"^2.1.3","sinon":"^1.15.4","supertest":"^1.0.1"},"gitHead":"bec2f80f3f44822d29e4e54ecc4bdf06955208ce","_id":"express-request-proxy@1.0.7","_shasum":"2de0d0d104439c23262b53a38ec630aa05c174ae","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"dvonlehman","email":"david.vonlehman@gmail.com"},"dist":{"shasum":"2de0d0d104439c23262b53a38ec630aa05c174ae","size":13381,"noattachment":false,"key":"/express-request-proxy/-/express-request-proxy-1.0.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/express-request-proxy/download/express-request-proxy-1.0.7.tgz"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"directories":{},"publish_time":1438377259386,"_cnpm_publish_time":1438377259386,"_hasShrinkwrap":false},"1.0.6":{"name":"express-request-proxy","version":"1.0.6","description":"Intelligent http proxy Express middleware","main":"index.js","scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"repository":{"type":"git","url":"git+https://github.com/4front/express-request-proxy.git"},"keywords":["4front","express","middleware","request","api","proxy"],"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"licenses":[{"type":"Apache-2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"bugs":{"url":"https://github.com/4front/express-request-proxy/issues"},"homepage":"https://github.com/4front/express-request-proxy","dependencies":{"async":"^0.9.0","body-parser":"^1.12.0","camel-case":"^1.1.1","debug":"^2.1.1","lodash":"^3.0.1","lru-cache":"^2.5.0","path-to-regexp":"^1.1.1","request":"^2.53.0","simple-errors":"^1.0.0","through2":"^0.6.3","url-join":"0.0.1"},"devDependencies":{"dash-assert":"^1.0.2","express":"^4.11.1","istanbul":"^0.3.5","memory-cache-stream":"^1.0.4","mocha":"^2.1.0","shortid":"^2.1.3","sinon":"^1.15.4","supertest":"^0.15.0"},"gitHead":"6106687a64126362a48424931c78012b7f2d9683","_id":"express-request-proxy@1.0.6","_shasum":"13dc18e5e549067f5a32af5b1f63b2c920b5880b","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.5","_npmUser":{"name":"dvonlehman","email":"david.vonlehman@gmail.com"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"dist":{"shasum":"13dc18e5e549067f5a32af5b1f63b2c920b5880b","size":11142,"noattachment":false,"key":"/express-request-proxy/-/express-request-proxy-1.0.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/express-request-proxy/download/express-request-proxy-1.0.6.tgz"},"directories":{},"publish_time":1437324153265,"_cnpm_publish_time":1437324153265,"_hasShrinkwrap":false},"1.0.5":{"name":"express-request-proxy","version":"1.0.5","description":"Intelligent http proxy Express middleware","main":"index.js","scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"repository":{"type":"git","url":"git+https://github.com/4front/express-request-proxy.git"},"keywords":["4front","express","middleware","request","api","proxy"],"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"licenses":[{"type":"Apache-2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"bugs":{"url":"https://github.com/4front/express-request-proxy/issues"},"homepage":"https://github.com/4front/express-request-proxy","dependencies":{"async":"^0.9.0","body-parser":"^1.12.0","camel-case":"^1.1.1","debug":"^2.1.1","lodash":"^3.0.1","lru-cache":"^2.5.0","path-to-regexp":"^1.1.1","request":"^2.53.0","simple-errors":"^1.0.0","through2":"^0.6.3","url-join":"0.0.1"},"devDependencies":{"dash-assert":"^1.0.2","express":"^4.11.1","istanbul":"^0.3.5","memory-cache-stream":"^1.0.4","mocha":"^2.1.0","shortid":"^2.1.3","sinon":"^1.15.4","supertest":"^0.15.0"},"gitHead":"55483ca10c38bdbe45734684d93d44a23861fdd0","_id":"express-request-proxy@1.0.5","_shasum":"6de36d588d3f00c690050316f66529f21c3ac8d0","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.5","_npmUser":{"name":"dvonlehman","email":"david.vonlehman@gmail.com"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"dist":{"shasum":"6de36d588d3f00c690050316f66529f21c3ac8d0","size":11151,"noattachment":false,"key":"/express-request-proxy/-/express-request-proxy-1.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/express-request-proxy/download/express-request-proxy-1.0.5.tgz"},"directories":{},"publish_time":1437323849047,"_cnpm_publish_time":1437323849047,"_hasShrinkwrap":false},"1.0.4":{"name":"express-request-proxy","version":"1.0.4","description":"Intelligent http proxy Express middleware","main":"index.js","scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"repository":{"type":"git","url":"git+https://github.com/4front/express-request-proxy.git"},"keywords":["4front","express","middleware","request","api","proxy"],"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"licenses":[{"type":"Apache-2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"bugs":{"url":"https://github.com/4front/express-request-proxy/issues"},"homepage":"https://github.com/4front/express-request-proxy","dependencies":{"async":"^0.9.0","body-parser":"^1.12.0","camel-case":"^1.1.1","debug":"^2.1.1","lodash":"^3.0.1","lru-cache":"^2.5.0","path-to-regexp":"^1.1.1","request":"^2.53.0","simple-errors":"^1.0.0","through2":"^0.6.3","url-join":"0.0.1"},"devDependencies":{"dash-assert":"^1.0.2","express":"^4.11.1","istanbul":"^0.3.5","memory-cache-stream":"^1.0.4","mocha":"^2.1.0","shortid":"^2.1.3","sinon":"^1.15.4","supertest":"^0.15.0"},"gitHead":"a4aea0d0cc1331b080a04441db6ae33cebd7c7c7","_id":"express-request-proxy@1.0.4","_shasum":"3800d79a4ff3f5236e1377d16566937a3ad3efad","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.5","_npmUser":{"name":"dvonlehman","email":"david.vonlehman@gmail.com"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"dist":{"shasum":"3800d79a4ff3f5236e1377d16566937a3ad3efad","size":11015,"noattachment":false,"key":"/express-request-proxy/-/express-request-proxy-1.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/express-request-proxy/download/express-request-proxy-1.0.4.tgz"},"directories":{},"publish_time":1437322903454,"_cnpm_publish_time":1437322903454,"_hasShrinkwrap":false},"1.0.3":{"name":"express-request-proxy","version":"1.0.3","description":"Intelligent http proxy Express middleware","main":"index.js","scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"repository":{"type":"git","url":"git+https://github.com/4front/express-request-proxy.git"},"keywords":["4front","express","middleware","request","api","proxy"],"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"licenses":[{"type":"Apache-2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"bugs":{"url":"https://github.com/4front/express-request-proxy/issues"},"homepage":"https://github.com/4front/express-request-proxy","dependencies":{"async":"^0.9.0","body-parser":"^1.12.0","camel-case":"^1.1.1","debug":"^2.1.1","lodash":"^3.0.1","lru-cache":"^2.5.0","path-to-regexp":"^1.1.1","request":"^2.53.0","simple-errors":"^1.0.0","through2":"^0.6.3","url-join":"0.0.1"},"devDependencies":{"dash-assert":"^1.0.2","express":"^4.11.1","istanbul":"^0.3.5","memory-cache-stream":"^1.0.4","mocha":"^2.1.0","shortid":"^2.1.3","sinon":"^1.15.4","supertest":"^0.15.0"},"gitHead":"827d4972d90d625c25c6e4e44ef565b821c57138","_id":"express-request-proxy@1.0.3","_shasum":"566424957027132cff7b5b8d96453fac2cd2a29a","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.5","_npmUser":{"name":"dvonlehman","email":"david.vonlehman@gmail.com"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"dist":{"shasum":"566424957027132cff7b5b8d96453fac2cd2a29a","size":11131,"noattachment":false,"key":"/express-request-proxy/-/express-request-proxy-1.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/express-request-proxy/download/express-request-proxy-1.0.3.tgz"},"directories":{},"publish_time":1437022181574,"_cnpm_publish_time":1437022181574,"_hasShrinkwrap":false},"1.0.2":{"name":"express-request-proxy","version":"1.0.2","description":"Intelligent http proxy Express middleware","main":"index.js","scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"repository":{"type":"git","url":"https://github.com/4front/express-request-proxy"},"keywords":["4front","express","middleware","request","api","proxy"],"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"licenses":[{"type":"Apache-2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"bugs":{"url":"https://github.com/4front/express-request-proxy/issues"},"homepage":"https://github.com/4front/express-request-proxy","dependencies":{"async":"^0.9.0","body-parser":"^1.12.0","camel-case":"^1.1.1","debug":"^2.1.1","lodash":"^3.0.1","lru-cache":"^2.5.0","path-to-regexp":"^1.1.1","request":"^2.53.0","simple-errors":"^1.0.0","through2":"^0.6.3","url-join":"0.0.1"},"devDependencies":{"dash-assert":"^1.0.2","express":"^4.11.1","istanbul":"^0.3.5","memory-cache-stream":"^1.0.4","mocha":"^2.1.0","shortid":"^2.1.3","sinon":"^1.15.4","supertest":"^0.15.0"},"gitHead":"fb19f95a95b1d44ef5c98d0f7238db63541d0114","_id":"express-request-proxy@1.0.2","_shasum":"2a9962f09fc55e7721d9c737f1a722b82cdab788","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"dvonlehman","email":"david.vonlehman@gmail.com"},"dist":{"shasum":"2a9962f09fc55e7721d9c737f1a722b82cdab788","size":13322,"noattachment":false,"key":"/express-request-proxy/-/express-request-proxy-1.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/express-request-proxy/download/express-request-proxy-1.0.2.tgz"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"directories":{},"publish_time":1436980202366,"_cnpm_publish_time":1436980202366,"_hasShrinkwrap":false},"1.0.1":{"name":"express-request-proxy","version":"1.0.1","description":"Intelligent http proxy Express middleware","main":"index.js","scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"repository":{"type":"git","url":"https://github.com/4front/express-request-proxy"},"keywords":["4front","express","middleware","request","api","proxy"],"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"licenses":[{"type":"Apache-2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"bugs":{"url":"https://github.com/4front/express-request-proxy/issues"},"homepage":"https://github.com/4front/express-request-proxy","dependencies":{"async":"^0.9.0","body-parser":"^1.12.0","camel-case":"^1.1.1","debug":"^2.1.1","lodash":"^3.0.1","lru-cache":"^2.5.0","path-to-regexp":"^1.1.1","request":"^2.53.0","simple-errors":"^1.0.0","through2":"^0.6.3","url-join":"0.0.1"},"devDependencies":{"dash-assert":"^1.0.2","express":"^4.11.1","istanbul":"^0.3.5","memory-cache-stream":"^1.0.4","mocha":"^2.1.0","shortid":"^2.1.3","sinon":"^1.15.4","supertest":"^0.15.0"},"gitHead":"cf9ee1e23af2b2d79a452a484aed6c618a7dda26","_id":"express-request-proxy@1.0.1","_shasum":"49b3eb2dae20b7648092e904c45ac7b3c2410596","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"dvonlehman","email":"david.vonlehman@gmail.com"},"dist":{"shasum":"49b3eb2dae20b7648092e904c45ac7b3c2410596","size":12742,"noattachment":false,"key":"/express-request-proxy/-/express-request-proxy-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/express-request-proxy/download/express-request-proxy-1.0.1.tgz"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"directories":{},"publish_time":1436915089120,"_cnpm_publish_time":1436915089120,"_hasShrinkwrap":false},"1.0.0":{"name":"express-request-proxy","version":"1.0.0","description":"Intelligent http proxy Express middleware","main":"index.js","scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"repository":{"type":"git","url":"https://github.com/4front/express-request-proxy"},"keywords":["4front","express","middleware","request","api","proxy"],"author":{"name":"David Von Lehman","url":"https://github.com/dvonlehman"},"licenses":[{"type":"Apache-2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"bugs":{"url":"https://github.com/4front/express-request-proxy/issues"},"homepage":"https://github.com/4front/express-request-proxy","dependencies":{"async":"^0.9.0","body-parser":"^1.12.0","camel-case":"^1.1.1","debug":"^2.1.1","lodash":"^3.0.1","lru-cache":"^2.5.0","path-to-regexp":"^1.1.1","request":"^2.53.0","simple-errors":"^1.0.0","through2":"^0.6.3","url-join":"0.0.1"},"devDependencies":{"dash-assert":"^1.0.2","express":"^4.11.1","istanbul":"^0.3.5","memory-cache-stream":"^1.0.4","mocha":"^2.1.0","shortid":"^2.1.3","sinon":"^1.15.4","supertest":"^0.15.0"},"gitHead":"814efc95baf3b2b1eb5322c00453457def9477ac","_id":"express-request-proxy@1.0.0","_shasum":"a210eaa54c5ab751c23f44c0adc6c68f99e19beb","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"dvonlehman","email":"david.vonlehman@gmail.com"},"dist":{"shasum":"a210eaa54c5ab751c23f44c0adc6c68f99e19beb","size":12595,"noattachment":false,"key":"/express-request-proxy/-/express-request-proxy-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/express-request-proxy/download/express-request-proxy-1.0.0.tgz"},"maintainers":[{"name":"dvonlehman","email":"david.vonlehman@gmail.com"}],"directories":{},"publish_time":1436292410386,"_cnpm_publish_time":1436292410386,"_hasShrinkwrap":false}},"readme":"# express-request-proxy\n\n[![NPM Version][npm-image]][npm-url]\n[![NPM Downloads][downloads-image]][downloads-url]\n[![Build Status][travis-image]][travis-url]\n[![Test Coverage][coveralls-image]][coveralls-url]\n\nHigh performance streaming http request reverse proxy for [Express](http://expressjs.com) based on the [request http client](https://www.npmjs.com/package/request). Supports caching, custom routes, server-side injection of sensitive keys, authentication, and response transformations.\n\n## Usage\n\n#### Server Code\n\n```js\nvar redis = require(\"redis\");\nvar requestProxy = require(\"express-request-proxy\");\n\nrequire(\"redis-streams\")(redis);\n\napp.get(\n  \"/api/:resource/:id\",\n  requestProxy({\n    cache: redis.createClient(),\n    cacheMaxAge: 60,\n    url: \"https://someapi.com/api/:resource/:id\",\n    query: {\n      secret_key: process.env.SOMEAPI_SECRET_KEY\n    },\n    headers: {\n      \"X-Custom-Header\": process.env.SOMEAPI_CUSTOM_HEADER\n    }\n  })\n);\n```\n\n#### Client Code\n\n```js\n$.ajax({\n  url: \"/api/widgets/\" + widgetId,\n  statusCode: {\n    200: function(data) {\n      console.log(data);\n    },\n    404: function() {\n      console.log(\"cannot find widget\");\n    }\n  }\n});\n```\n\n### Options\n\n**`url`**\n\nString representing the url of the remote endpoint to proxy to. Can contain named route parameters. Query parameters can be appended with the `query` option. This is the only required option.\n\n**`params`**\n\nAn object containing properties to substitute for named route parameters in the remote URL. Named parameters are declared using the same conventions as Express routes, i.e. `/pathname/:param1/:param2`. The path portion of the `url` is parsed using the [path-to-regexp](https://www.npmjs.com/package/path-to-regexp) module. Defaults to `{}`.\n\n**`query`**\n\nAn object of parameters to be appended to the querystring of the specified `url`. This is a good way to append sensitive parameters that are stored as environment variables on the server avoiding the need to expose them to the client. Any parameters specified here will override an identically named parameter in the `url` or on the incoming request to the proxy. Defaults to `{}`.\n\n**`headers`**\n\nAn object of HTTP headers to be appended to the request to the remote url. This is also a good way to inject sensitive keys stored in environment variables. See the [http basic auth](#http-basic-auth) section for example usage.\n\n**`cache`**\n\nCache object that conforms to the [node_redis](https://www.npmjs.com/package/redis) API. Can set to `false` at an endpoint level to explicitly disable caching for certain APIs. See [Cache section](#caching) below for more details.\n\n**`cacheMaxAge`**\n\nThe duration to cache the API response. If an API response is returned from the cache, a `max-age` http header will be included with the remaining TTL.\n\n**`ensureAuthenticated`**\n\nEnsure that there is a valid logged in user in order to invoke the proxy. See the [Ensure Authenticated](#ensure-authenticated) section below for details.\n\n**`userAgent`**\n\nThe user agent string passed as a header in the http call to the remote API. Defaults to `\"express-api-proxy\"`.\n\n**`cacheHttpHeader`**\n\nName of the http header returned in the proxy response with the value `\"hit\"` or `\"miss\"`. Defaults to `\"Express-Request-Proxy-Cache\"`.\n\n**`timeout`**\n\nThe number of milliseconds to wait for a server to send response headers before aborting the request. See [request/request](https://github.com/request/request#user-content-requestoptions-callback) for more information. Default value `5000`.\n\n#### HTTP Basic Auth\n\nFor http endpoints protected by [HTTP Basic authentication](http://en.wikipedia.org/wiki/Basic_access_authentication#Client_side), a username and password should be sent in the form `username:password` which is then base64 encoded.\n\n```js\nvar usernamePassword =\n  process.env.SOMEAPI_USERNAME + \":\" + process.env.SOMEAPI_PASSSWORD;\n\napp.post(\n  \"/api/:resource\",\n  requestProxy({\n    cache: redis.createClient(),\n    cacheMaxAge: 60,\n    url: \"https://someapi.com/api/:resource\",\n    headers: {\n      Authorization: \"Basic \" + new Buffer(usernamePassword).toString(\"base64\")\n    }\n  })\n);\n```\n\n#### Logged-In User Properties\n\nSometimes it's necessary to pass attributes of the current logged in user (on the server) into the request to the remote endpoint as headers, query params, etc. Rather than passing environment variables, simply specify the desired user properties.\n\n```js\napp.all(\"/api/protected/:resource\", function(req, res, next) {\n  var proxy = requestProxy({\n    url: \"http://remoteapi.com/api\",\n    query: {\n      access_token: req.user.accessToken\n    }\n  });\n  proxy(req, res, next);\n});\n```\n\nThis assumes that prior middleware has set the `req.user` property, which was perhaps stored in [session state](https://www.npmjs.com/package/express-session).\n\n### Caching\n\nFor remote endpoints whose responses do not change frequently, it is often desirable to cache responses at the proxy level. This avoids repeated network round-trip latency and can skirt rate limits imposed by the API provider.\n\nThe object provided to the `cache` option is expected to implement a subset of the [node_redis](https://github.com/mranney/node_redis) interface, specifically the [get](http://redis.io/commands/get), [set](http://redis.io/commands/set), [setex](http://redis.io/commands/setex), [exists](http://redis.io/commands/exists), [del](http://redis.io/commands/del), and [ttl](http://redis.io/commands/ttl) commands. The node_redis package can be used directly, other cache stores require a wrapper module that adapts to the redis interface.\n\nAs an optimization, two additional functions, `readStream` and `writeThrough` must be implemented on the cache object to allow direct piping of the API responses into and out of the cache. This avoids buffering the entire API response in memory. For node_redis, the [redis-streams](https://www.npmjs.com/package/redis-streams) package augments the `RedisClient` with these two functions. Simply add the following line to your module before the proxy middleware is executed:\n\n```js\nvar redis = require(\"redis\");\n\nrequire(\"redis-streams\")(redis);\n// After line above, calls to redis.createClient will return enhanced\n// object with readStream and writeThrough functions.\n\napp.get(\n  \"/proxy/:route\",\n  requestProxy({\n    cache: redis.createClient(),\n    cacheMaxAge: 300, // cache responses for 5 minutes\n    url: \"https://someapi.com/:route\"\n  })\n);\n```\n\nOnly `GET` requests are subject to caching, for all other methods the `cacheMaxAge` is ignored.\n\n#### Caching Headers\n\nIf an API response is served from the cache, the `max-age` header will be set to the remaining TTL of the cached object. The proxy cache trumps any HTTP headers such as `Last-Modified`, `Expires`, or `ETag`, so these get discarded. Effectively the proxy takes over the caching behavior from the origin for the duration that it exists there.\n\n### Ensure Authenticated\n\nIt's possible restrict proxy calls to authenticated users via the `ensureAuthenticated` option.\n\n```js\napp.all(\n  \"/proxy/protected\",\n  requestProxy({\n    url: \"https://someapi.com/sensitive\",\n    ensureAuthenticated: true\n  })\n);\n```\n\nThe proxy does not perform authentication itself, that task is delegated to other middleware that executes earlier in the request pipeline which sets the property `req.ext.isAuthenticated`. If `ensureAuthenticated` is `true` and `req.ext.isAuthenticated !== true`, a 401 (Unauthorized) HTTP response is returned before ever executing the remote request.\n\nNote that this is different than authentication that might be enforced by the remote API itself. That's handled by injecting headers or query params as discussed above.\n\n### Wildcard routes\n\nSometimes you want to configure one catch-all proxy route that will forward on all path segments starting from the `*`. The example below will proxy a request to `GET /api/widgets/12345` to `GET https://remoteapi.com/api/v1/widgets/12345` and `POST /api/users` to `POST https://remoteapi.com/api/v1/users`.\n\n```js\napp.all(\n  \"/api/*\",\n  requestProxy({\n    url: \"https://remoteapi.com/api/v1/*\",\n    query: {\n      apikey: \"xxx\"\n    }\n  })\n);\n```\n\n### Transforms\n\nThe proxy supports transforming the API response before piping it back to the caller. Transforms are functions which return a Node.js [transform stream](http://nodejs.org/api/stream.html#stream_class_stream_transform). The [through2](https://github.com/rvagg/through2) package provides a lightweight wrapper that makes transforms easier to implement.\n\nHere's a trivial transform function that simply appends some text\n\n```js\nmodule.exports = function(options) {\n  return {\n    name: \"appender\",\n    transform: function() {\n      return through2(\n        function(chunk, enc, cb) {\n          this.push(chunk);\n          cb();\n        },\n        function(cb) {\n          this.push(options.appendText);\n          cb();\n        }\n      );\n    }\n  };\n};\n```\n\nIf the transform needs to change the `Content-Type` of the response, a `contentType` property can be declared on the transform function that the proxy will recognize and set the header accordingly.\n\n```js\nmodule.exports = function() {\n  return {\n    name: 'appender',\n    contentType: 'application/json',\n    transform: function() {\n      return through2(...)\n    }\n  };\n}\n```\n\nSee the [markdown-transform](https://github.com/4front/markdown-transform) for a real world example. For transforming HTML responses, the [trumpet package](https://www.npmjs.com/package/trumpet), with it's streaming capabilities, is a natural fit.\n\nHere's how you could request a GitHub README.md as html:\n\n```js\nvar markdownTransform = require(\"markdown-transform\");\n\napp.get(\n  \"/:repoOwner/:repoName/readme\",\n  requestProxy({\n    url:\n      \"https://raw.githubusercontent.com/:repoOwner/:repoName/master/README.md\",\n    transforms: [markdownTransform({ highlight: true })]\n  })\n);\n```\n\n## License\n\nLicensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).\n\n[npm-image]: https://img.shields.io/npm/v/express-request-proxy.svg?style=flat\n[npm-url]: https://npmjs.org/package/express-request-proxy\n[travis-image]: https://img.shields.io/travis/dvonlehman/express-request-proxy.svg?style=flat\n[travis-url]: https://travis-ci.org/dvonlehman/express-request-proxy\n[coveralls-image]: https://img.shields.io/coveralls/dvonlehman/express-request-proxy.svg?style=flat\n[coveralls-url]: https://coveralls.io/r/dvonlehman/express-request-proxy?branch=master\n[downloads-image]: https://img.shields.io/npm/dm/express-request-proxy.svg?style=flat\n[downloads-url]: https://npmjs.org/package/express-request-proxy\n","_attachments":{},"homepage":"https://github.com/dvonlehman/express-request-proxy","bugs":{"url":"https://github.com/dvonlehman/express-request-proxy/issues"},"license":"Apache-2.0"}