{"_id":"unblocker","_rev":"34-b71ab194e3a459129429d487288c710d","name":"unblocker","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","dist-tags":{"latest":"2.3.1"},"versions":{"1.0.0-pre2":{"name":"unblocker","version":"1.0.0-pre2","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@1.0.0-pre2","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"9a71506e3bc625aafc68468afe4774801bc85570","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-1.0.0-pre2.tgz","integrity":"sha512-hWZH9+Jmyx292/6Q+SX1DCSuH8+0DXShivDRR5CXb0mL4Ag02rNaf9fpqWAqCEXzgPoddThgs329GP3V8g5rog==","signatures":[{"sig":"MEQCIAb6gmh5HI9DYKx3vPiIit6JhPBQ5v8KaemnAwvLVEYnAiA9w55D8rwDrA88h947j8/ajTTIJOwxsQXirkz80iEJPQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/unblocker.js","_from":".","_shasum":"9a71506e3bc625aafc68468afe4774801bc85570","engines":{"npm":"2.7.x","node":"0.12.x"},"gitHead":"7854049bc0640e95bba6b84e40bb7c05ff06d151","scripts":{"test":"npm run jshint && npm run test-spec","jshint":"jshint ./ --exclude node_modules/","beautify":"js-beautify --replace ./*.js ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*_spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"2.11.2","description":"Web proxy for evading internet censorship","directories":{},"_nodeVersion":"0.12.5","dependencies":{"tld":"0.0.2","mime":"^1.3.4","async":"^1.3.0","debug":"^2.2.0","cookie":"^0.1.3","lodash":"^3.10.0","through":"~2.3.4","iconv-lite":"^0.4.10","content-type":"^1.0.1","set-cookie-parser":"^1.0.1"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"devDependencies":{"tap":"^1.3.1","jshint":"^2.8.0","hyperquest":"^1.2.0","js-beautify":"^1.5.10","math-helpers":"~0.1.0","concat-stream":"^1.5.0"},"todoJshintConfig":{"strict":true,"camelcase":true}},"1.0.0":{"name":"unblocker","version":"1.0.0","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@1.0.0","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"878b98c93c17c566fbc44255105b9c5d5b574968","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-1.0.0.tgz","integrity":"sha512-kFbitgtYcbQ5ZBm2NQLvfBi5ovSVTt8q8apGzSPkB6y+g7kEs4BjlhuO6J7a1ijzd+rxXMA0tl3KJvboopLn0Q==","signatures":[{"sig":"MEUCIQCCR6YhIHs9Y3+kCWCkA8BbFn7242GJEMFuPx6xS3KD2QIgfq5B4R6uH7bw8otCY+/zz0aT20rWH2jJIgqcvUX9fCs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/unblocker.js","_from":".","_shasum":"878b98c93c17c566fbc44255105b9c5d5b574968","engines":{"npm":"2.7.x","node":"0.12.x"},"gitHead":"d1918ee81ade00189c9b19d7baede84bd4fed33a","scripts":{"test":"npm run jshint && npm run test-spec","jshint":"jshint ./lib ./test","beautify":"js-beautify --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*_spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"2.11.2","description":"Web proxy for evading internet censorship","directories":{},"_nodeVersion":"0.12.5","dependencies":{"tld":"0.0.2","mime":"^1.3.4","async":"^1.3.0","debug":"^2.2.0","cookie":"^0.1.3","lodash":"^3.10.0","through":"~2.3.4","iconv-lite":"^0.4.10","content-type":"^1.0.1","set-cookie-parser":"^1.0.1"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"devDependencies":{"tap":"^1.3.1","jshint":"^2.8.0","hyperquest":"^1.2.0","js-beautify":"^1.5.10","math-helpers":"~0.1.0","concat-stream":"^1.5.0"},"todoJshintConfig":{"strict":true,"camelcase":true}},"1.0.1":{"name":"unblocker","version":"1.0.1","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@1.0.1","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"9a4de2de771fbc140e4da6150703bbf3f8ef470f","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-1.0.1.tgz","integrity":"sha512-TU4B1/oFY5LNlO1r71ayvmv1UQ11auyyeEdiyDL9xQBPyGIag3z6rwgtRtPCkxwUTCv9W55mW/GjXUNGv+wQ0w==","signatures":[{"sig":"MEUCIBpR7iqjSo1XqY2q/TcWI1AaRS2QIRwid2CrGtZoU1/UAiEAnE8mrHbY6m7aEyO8ZNwtY8WsVD/jRDcvmj3VluRRzco=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/unblocker.js","_from":".","_shasum":"9a4de2de771fbc140e4da6150703bbf3f8ef470f","engines":{"npm":"2.7.x","node":"0.12.x"},"gitHead":"c9a21ffe6bff3e994e0d6801d47f9ceed8832b1a","scripts":{"test":"npm run jshint && npm run test-spec","jshint":"jshint ./lib ./test","beautify":"js-beautify --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*_spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"2.11.2","description":"Web proxy for evading internet censorship","directories":{},"_nodeVersion":"0.12.5","dependencies":{"tld":"0.0.2","mime":"^1.3.4","async":"^1.3.0","debug":"^2.2.0","cookie":"^0.1.3","lodash":"^3.10.0","through":"~2.3.4","iconv-lite":"^0.4.10","content-type":"^1.0.1","set-cookie-parser":"^1.0.1"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"devDependencies":{"tap":"^1.3.1","jshint":"^2.8.0","hyperquest":"^1.2.0","js-beautify":"^1.5.10","math-helpers":"~0.1.0","concat-stream":"^1.5.0"},"todoJshintConfig":{"strict":true,"camelcase":true}},"1.0.2":{"name":"unblocker","version":"1.0.2","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@1.0.2","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"fb21f315aa09a7aba95703bb898a67c14aee6778","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-1.0.2.tgz","integrity":"sha512-nAPWhCjU+mk9u8C5Qft+m54AUW416DxBoO6AV0hcM57WkqRh+WIHxeQuQN9deeWSaWYXBZOKYQd+1YNyn0D30A==","signatures":[{"sig":"MEYCIQDH4f+6M4rIMrh7Ey9uZe+Tdxnia3uun5qcjPdgrB1WfAIhAMM+Xy5qzq0zQW+EEWQ4EoaN3ZyPQ8atl1IYXXCWGIX3","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/unblocker.js","_from":".","_shasum":"fb21f315aa09a7aba95703bb898a67c14aee6778","engines":{"npm":"2.7.x","node":"0.12.x"},"gitHead":"6d0e29a6961201a0cfa0a08f5cfae7308552b855","scripts":{"test":"npm run jshint && npm run test-spec","jshint":"jshint ./lib ./test","beautify":"js-beautify --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*_spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"2.11.2","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"0.12.5","dependencies":{"tld":"0.0.2","mime":"^1.3.4","async":"^1.3.0","debug":"^2.2.0","cookie":"^0.1.3","lodash":"^3.10.0","through":"~2.3.4","iconv-lite":"^0.4.10","content-type":"^1.0.1","set-cookie-parser":"^1.0.1"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"devDependencies":{"tap":"^1.3.1","jshint":"^2.8.0","hyperquest":"^1.2.0","js-beautify":"^1.5.10","math-helpers":"~0.1.0","concat-stream":"^1.5.0"},"todoJshintConfig":{"strict":true,"camelcase":true}},"1.0.3":{"name":"unblocker","version":"1.0.3","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@1.0.3","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"b64be744c2975b9f1bca66d8c3ef166ccdabb700","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-1.0.3.tgz","integrity":"sha512-LcfrGtoX/Xr7aDUzq0zpI7cN6VU/y4zHG8+1es2evEMvRjA6YWgoWmCz0YU7uYd8gIJnPB6dkTT8Pxvs9s1wyg==","signatures":[{"sig":"MEUCIQCOS+I7KoEGlB0k5IegFUfkm6FQQ0xgXixWUxTJ6IDVxgIgIvuqbz48tGVzQmExlv3o+Z+fl7Yc9nKCvK2r+2n7qE4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/unblocker.js","_from":".","_shasum":"b64be744c2975b9f1bca66d8c3ef166ccdabb700","engines":{"npm":"2.7.x","node":"0.12.x"},"gitHead":"b5c992706270da3aab3de4af37fa469504720fa5","scripts":{"test":"npm run jshint && npm run test-spec","jshint":"jshint ./lib ./test","beautify":"js-beautify --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*_spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"2.11.2","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"0.12.5","dependencies":{"tld":"0.0.2","mime":"^1.3.4","async":"^1.3.0","debug":"^2.2.0","cookie":"^0.1.3","lodash":"^3.10.0","through":"~2.3.4","iconv-lite":"^0.4.10","content-type":"^1.0.1","set-cookie-parser":"^1.0.1"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"devDependencies":{"tap":"^1.3.1","jshint":"^2.8.0","hyperquest":"^1.2.0","js-beautify":"^1.5.10","math-helpers":"~0.1.0","concat-stream":"^1.5.0"},"todoJshintConfig":{"strict":true,"camelcase":true}},"1.0.4":{"name":"unblocker","version":"1.0.4","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@1.0.4","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"ae33b471d37e8ca011017c833a1e45c1e6528e56","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-1.0.4.tgz","integrity":"sha512-kCHwpFDM3ZWvw5zRiBnTOp8k/6r7YOXsXFF/8C0qXs8Hby8Fxq5CW4xOzA+GevkoKgzXz9/10HiRfgLY2Ss0Ig==","signatures":[{"sig":"MEUCIB4WB5Mtq7V3Up35t3y4xXUvBpH650hZ9+qQFTweWbufAiEA0w5k/6WuaLb2VYVi8auWkFacyhjaEp8X3cdoADoGBS0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/unblocker.js","_from":".","_shasum":"ae33b471d37e8ca011017c833a1e45c1e6528e56","engines":{"npm":"2.7.x","node":"0.12.x"},"gitHead":"ad350f6dbe3b9ecde471d5e742f2397fbe67cf29","scripts":{"test":"npm run jshint && npm run test-spec","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*_spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"2.11.2","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"0.12.5","dependencies":{"tld":"0.0.2","mime":"^1.3.4","async":"^1.3.0","debug":"^2.2.0","cookie":"^0.1.3","lodash":"^3.10.0","through":"~2.3.4","iconv-lite":"^0.4.10","content-type":"^1.0.1","set-cookie-parser":"^1.0.1"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"devDependencies":{"tap":"^1.3.1","jshint":"^2.8.0","hyperquest":"^1.2.0","js-beautify":"^1.5.10","math-helpers":"~0.1.0","concat-stream":"^1.5.0"},"todoJshintConfig":{"strict":true,"camelcase":true}},"1.0.5":{"name":"unblocker","version":"1.0.5","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@1.0.5","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"c2d1509deffdab076796c4b62c36f31c1128faea","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-1.0.5.tgz","integrity":"sha512-7q6gd2F9CWcelbnAd0lQAyNOzOsGsI7VmscGRrMYDuK2DyIz5bx8bclZuhDKR7YQJK+bUvz8kzWW3HKoP1peyA==","signatures":[{"sig":"MEYCIQCT5sGUJsNhjlQXu/WFawp9EZi11A2NifroQYg4QCLCZAIhANBmcEiA4TQy7i8zeM+h+oQuAkpJkSEQ+1zuxThLlJ0g","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/unblocker.js","_from":".","_shasum":"c2d1509deffdab076796c4b62c36f31c1128faea","gitHead":"b244a7a3d7e865693b4d6ac913f2dea523299c13","scripts":{"test":"npm run jshint && npm run test-spec","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*_spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"2.11.2","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"0.12.5","dependencies":{"tld":"0.0.2","mime":"^1.3.4","async":"^1.3.0","debug":"^2.2.0","cookie":"^0.1.3","lodash":"^3.10.0","through":"~2.3.4","iconv-lite":"^0.4.10","content-type":"^1.0.1","set-cookie-parser":"^1.0.1"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"devDependencies":{"tap":"^1.3.1","jshint":"^2.8.0","hyperquest":"^1.2.0","js-beautify":"^1.5.10","math-helpers":"~0.1.0","concat-stream":"^1.5.0"},"todoJshintConfig":{"strict":true,"camelcase":true}},"1.0.6":{"name":"unblocker","version":"1.0.6","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@1.0.6","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"2b200176797720fe45ec50fad1df90a873ad964b","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-1.0.6.tgz","integrity":"sha512-vr/Guo79dWy3bgfzRiKxRGgMqRWOVPHs7WIDBY4PPe5lNI73m29yXGfge5SNTxsSeCV4q3SR1uoeeRKPBejykQ==","signatures":[{"sig":"MEUCIBes5CB1yOEJCuC0zkYEh9eukvsK75VQAKnkLY4tFD91AiEA/GMUeYuOnp5KmazeAv/zFDqbXw7GvRy8btASW2nLC+k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/unblocker.js","_from":".","_shasum":"2b200176797720fe45ec50fad1df90a873ad964b","gitHead":"fd3d85e02f55e20293de11c43fd044e16bf42f92","scripts":{"test":"npm run jshint && npm run test-spec","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*_spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"2.11.3","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"0.12.7","dependencies":{"tld":"0.0.2","mime":"^1.3.4","async":"^1.3.0","debug":"^2.2.0","cookie":"^0.1.3","lodash":"^3.10.0","through":"~2.3.4","iconv-lite":"^0.4.10","content-type":"^1.0.1","set-cookie-parser":"^1.0.1"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"devDependencies":{"tap":"^1.3.1","jshint":"^2.8.0","hyperquest":"^1.2.0","js-beautify":"^1.5.10","math-helpers":"~0.1.0","concat-stream":"^1.5.0"},"todoJshintConfig":{"strict":true,"camelcase":true}},"1.0.8":{"name":"unblocker","version":"1.0.8","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@1.0.8","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"8fdfa3353d55b2b4c26feccc9546cad89f3bc6a5","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-1.0.8.tgz","integrity":"sha512-jWvdfu0fh6RraQgaPHJwk5WlYBxYGSSI/n7RtayhJiyCvIpM/LqE6PJF0QciS12ckDSGtRx+pXHRdxFJAKW9wQ==","signatures":[{"sig":"MEUCIFte6iivTjx029ef5dJ5P7N75pdn7YhaULa0s9hpYzyBAiEAyhePBpVxf6TH3kK9DXZ4QZtzY4ifR/sttjmMND0eXv0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/unblocker.js","_from":".","_shasum":"8fdfa3353d55b2b4c26feccc9546cad89f3bc6a5","engines":{"node":">=0.12"},"gitHead":"845d9d0d166a579ba1248c4c521fe4e9169f8526","scripts":{"test":"npm run jshint && npm run test-spec","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*_spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"2.14.7","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"4.2.1","dependencies":{"tld":"0.0.2","mime":"^1.3.4","async":"^1.4.2","debug":"^2.2.0","cookie":"^0.2.2","lodash":"^3.10.1","through":"~2.3.8","iconv-lite":"^0.4.13","content-type":"^1.0.1","set-cookie-parser":"^1.0.1"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"devDependencies":{"tap":"^2.1.1","jshint":"^2.8.0","hyperquest":"^1.2.0","js-beautify":"^1.5.10","math-helpers":"~0.1.0","concat-stream":"^1.5.1"},"todoJshintConfig":{"strict":true,"camelcase":true}},"1.0.9":{"name":"unblocker","version":"1.0.9","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@1.0.9","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"5e3da01cb73a143e358e17d82779ffc754f808d7","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-1.0.9.tgz","integrity":"sha512-hHfZK4lc35VKEBs+DHLWtnZyLU7g3dBN+9sAGBw3xr3Blm8yrC6Sm8Ju8we7XUJUB4gpaEFM+/zC8ePtKmg+VA==","signatures":[{"sig":"MEUCIGBEMzsTg2zuxDLK4DWsfOnRYsN0cEwRPCkVqct65BnkAiEAgTnBg+kxNlmrX/DQfGX8td4Y2GpmGoEu09SRkJihukY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/unblocker.js","_from":".","_shasum":"5e3da01cb73a143e358e17d82779ffc754f808d7","engines":{"node":">=0.12"},"gitHead":"ebab3ca3566aed6969fc0f9fc30d92b6423e5308","scripts":{"test":"npm run jshint && npm run test-spec","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*_spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"2.14.9","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"0.12.9","dependencies":{"tld":"0.0.2","mime":"^1.3.4","async":"^1.5.2","debug":"^2.2.0","cookie":"^0.2.3","lodash":"^4.3.0","through":"~2.3.8","iconv-lite":"^0.4.13","content-type":"^1.0.1","set-cookie-parser":"^1.0.2"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"devDependencies":{"tap":"^5.4.2","jshint":"^2.9.1","hyperquest":"^1.2.0","js-beautify":"^1.6.2","math-helpers":"~0.1.0","concat-stream":"^1.5.1"},"todoJshintConfig":{"strict":true,"camelcase":true},"_npmOperationalInternal":{"tmp":"tmp/unblocker-1.0.9.tgz_1454970782272_0.1921641230583191","host":"packages-5-east.internal.npmjs.com"}},"1.0.10":{"name":"unblocker","version":"1.0.10","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@1.0.10","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"94555344b5c3fa43cdd8a51852b703d6ed7f84a8","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-1.0.10.tgz","integrity":"sha512-iQLP3CqXNcear1QZzgx23NMwTpmpsgzDqaxdmKLQy6KrxfeHSCBYONQez726NW9KkaqqE5SvpV0JxWoExNNn9g==","signatures":[{"sig":"MEUCIQDt9tFEPkW2iBHUCTAmBK/j8f+NGwFMZqxWE02DcrjHBwIgeJyeWYtyICM2F9yjjCFyn14JREqZWpmG+SaTqxpVnDc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/unblocker.js","_from":".","_shasum":"94555344b5c3fa43cdd8a51852b703d6ed7f84a8","engines":{"node":">=0.12"},"gitHead":"d7567ef24468215be83b1a3c02bf46202b1900c6","scripts":{"test":"npm run jshint && npm run test-spec","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*_spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"2.14.12","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"4.2.6","dependencies":{"tld":"0.0.2","mime":"^1.3.4","async":"^1.5.2","debug":"^2.2.0","cookie":"^0.2.3","lodash":"^4.4.0","through":"~2.3.8","iconv-lite":"^0.4.13","content-type":"^1.0.1","set-cookie-parser":"^1.0.2"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"devDependencies":{"tap":"^5.4.2","jshint":"^2.9.1","hyperquest":"^1.2.0","js-beautify":"^1.6.2","math-helpers":"~0.1.0","concat-stream":"^1.5.1"},"todoJshintConfig":{"strict":true,"camelcase":true},"_npmOperationalInternal":{"tmp":"tmp/unblocker-1.0.10.tgz_1456051026666_0.37235823133960366","host":"packages-9-west.internal.npmjs.com"}},"1.0.11":{"name":"unblocker","version":"1.0.11","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@1.0.11","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"62c567a8ea8cc3216c8b98e1ed79f962a77c45e1","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-1.0.11.tgz","integrity":"sha512-pjvpUb/Pw01AgqTaTrbqSw9fQGDU5kSSiaWmI4ZszCnbQh2gN5iVIoW8rG2oQx0jpi6srzSAVdOaFZYu8V39Cw==","signatures":[{"sig":"MEUCIQDZBkzvYxChtmI0oQJavnHhXo4B1yYk5XoMxPE0CPy0hAIgK+jGAMPQqGbWHZFucW/F5hy+niGSENHL76CTGx5WAdQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/unblocker.js","_from":".","_shasum":"62c567a8ea8cc3216c8b98e1ed79f962a77c45e1","engines":{"node":">=0.12"},"gitHead":"a818cc9cc609e8aead81a7711d3cbe2cadc90b5d","scripts":{"test":"npm run jshint && npm run test-spec","watch":"nodemon --watch ./ --ignore ./examples --ext js,html,xhtml,json --exec npm run test","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"2.14.9","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"0.12.10","dependencies":{"tld":"0.0.2","mime":"^1.3.4","async":"^1.5.2","debug":"^2.2.0","cookie":"^0.2.3","lodash":"^4.4.0","through":"~2.3.8","iconv-lite":"^0.4.13","content-type":"^1.0.1","set-cookie-parser":"^1.0.2"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"devDependencies":{"tap":"^5.4.2","jshint":"^2.9.1","nodemon":"^1.9.0","hyperquest":"^1.2.0","js-beautify":"^1.6.2","math-helpers":"~0.1.0","concat-stream":"^1.5.1"},"todoJshintConfig":{"strict":true,"camelcase":true},"_npmOperationalInternal":{"tmp":"tmp/unblocker-1.0.11.tgz_1456160141100_0.33628557971678674","host":"packages-9-west.internal.npmjs.com"}},"1.0.12":{"name":"unblocker","version":"1.0.12","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@1.0.12","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"dedb00d7c74bf78697233954c6008ec7d54b2d70","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-1.0.12.tgz","integrity":"sha512-7+CKUAmTJuCYcB1BG8UrRqJm1x3AmOpcQfRRtvKVGbifWa73fYJDOeZs9C62V9+VSadzr2STyuXJxFB4kjsqzw==","signatures":[{"sig":"MEUCIGWbzCIJ7jQK3cmgKTuhHJDa64c5/jRSMe8uWEB4q7U+AiEA2lZNyLKcRLkBSIV9eDEqnSRsgfaFgpIvdVU3FFedAF8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/unblocker.js","_from":".","_shasum":"dedb00d7c74bf78697233954c6008ec7d54b2d70","engines":{"node":">=0.12"},"gitHead":"3dd5bb0a6821966cd7ac4a0a09e45c605474c702","scripts":{"test":"npm run jshint && npm run test-spec","watch":"nodemon --watch ./ --ignore ./examples --ext js,html,xhtml,json --exec npm run test","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"2.14.12","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"4.2.6","dependencies":{"tld":"0.0.2","mime":"^1.3.4","async":"^1.5.2","debug":"^2.2.0","cookie":"^0.2.3","lodash":"^4.4.0","iconv-lite":"^0.4.13","content-type":"^1.0.1","set-cookie-parser":"^1.0.2"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"devDependencies":{"tap":"^5.4.2","jshint":"^2.9.1","nodemon":"^1.9.0","hyperquest":"^1.2.0","js-beautify":"^1.6.2","math-helpers":"~0.1.0","concat-stream":"^1.5.1"},"todoJshintConfig":{"strict":true,"camelcase":true},"_npmOperationalInternal":{"tmp":"tmp/unblocker-1.0.12.tgz_1456171106937_0.774605261394754","host":"packages-9-west.internal.npmjs.com"}},"1.1.0":{"name":"unblocker","version":"1.1.0","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@1.1.0","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"ea76e2266b2475ac587750c1db2f3e357f0f871c","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-1.1.0.tgz","integrity":"sha512-tbjCGuo0nbK+gy4y4sKpm6SeOMBrfS8GriEyGZ7xi1g9/hyB6QCEqMJKro+vLwphjqscfVdRSI+Kb5jY7YuxQA==","signatures":[{"sig":"MEUCIQCg9izBgCHG6FjqO4G4EOUL1PIpnl2ELBL/6YilNszNbwIgfL70hxcoySX91BTCL/pIOSKQiploh30HoU2LwRNouDI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/unblocker.js","_from":".","_shasum":"ea76e2266b2475ac587750c1db2f3e357f0f871c","engines":{"node":">=4.3"},"gitHead":"d7a5781a3c2183c323e6a8f51caaacac20f9dc42","scripts":{"test":"npm run jshint && npm run test-spec","watch":"nodemon --watch ./ --ignore ./examples --ext js,html,xhtml,json --exec npm run test","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"3.6.0","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"5.6.0","dependencies":{"tld":"0.0.2","mime":"^1.3.4","async":"^1.5.2","debug":"^2.2.0","cookie":"^0.2.3","lodash":"^4.4.0","iconv-lite":"^0.4.13","content-type":"^1.0.1","set-cookie-parser":"^1.0.2"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"devDependencies":{"tap":"^5.4.2","jshint":"^2.9.1","nodemon":"^1.9.0","hyperquest":"^1.2.0","js-beautify":"^1.6.2","math-helpers":"~0.1.0","concat-stream":"^1.5.1"},"todoJshintConfig":{"strict":true,"camelcase":true},"_npmOperationalInternal":{"tmp":"tmp/unblocker-1.1.0.tgz_1456171742070_0.7855850069317967","host":"packages-5-east.internal.npmjs.com"}},"1.1.1":{"name":"unblocker","version":"1.1.1","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@1.1.1","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"1d4877923fdae53a48b39d134bc983a5fd7061af","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-1.1.1.tgz","integrity":"sha512-EzG3dQadXMrtQSGajE3KNSoSdUCyUJZ7yaek2R4UhiFQqUB/XULJnmiyHGmv0PLuGeqquVc8Yi//rY1jP++WIw==","signatures":[{"sig":"MEQCIHhIzIpI5q6ahFuMrtSPNyPo8kjXkVU0aS4zGr+tNYm2AiAeyAJ1gYK8DkqG14vYy04ZaqEh+vU/JFHMPSyAxs07xg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/unblocker.js","_from":".","_shasum":"1d4877923fdae53a48b39d134bc983a5fd7061af","engines":{"node":">=4.3"},"gitHead":"e45203f4c26d3c3fde7321cfb73bf1007e557a65","scripts":{"test":"npm run jshint && npm run test-spec","watch":"nodemon --watch ./ --ignore ./examples --ext js,html,xhtml,json --exec npm run test","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"3.6.0","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"5.6.0","dependencies":{"tld":"0.0.2","mime":"^1.3.4","async":"^1.5.2","debug":"^2.2.0","cookie":"^0.2.3","lodash":"^4.4.0","iconv-lite":"^0.4.13","content-type":"^1.0.1","set-cookie-parser":"^1.0.2"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"devDependencies":{"tap":"^5.4.2","jshint":"^2.9.1","nodemon":"^1.9.0","hyperquest":"^1.3.0","js-beautify":"^1.6.2","math-helpers":"~0.1.0","concat-stream":"^1.5.1"},"todoJshintConfig":{"strict":true,"camelcase":true},"_npmOperationalInternal":{"tmp":"tmp/unblocker-1.1.1.tgz_1456775634844_0.03655014350079","host":"packages-5-east.internal.npmjs.com"}},"1.1.2":{"name":"unblocker","version":"1.1.2","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@1.1.2","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"de1e5c7711703442f1831715f3634a84cb1eda92","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-1.1.2.tgz","integrity":"sha512-ccP+QCZEkeD+06qlTm+880mB6hYEv7KL8tbli6UJasKbnX6slHRDPI8nLlTHmmgxaDUNm8TKFOstD2ZxBQIPJw==","signatures":[{"sig":"MEYCIQDZQfx0kQ4mLiIi21bEup0KXE+ksiuB1li2k9M8N379tQIhALhNo3N4r8+KxIe4ZaVQiqx3PJ+SXV/m3oyxyL5/M0Ze","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/unblocker.js","_from":".","_shasum":"de1e5c7711703442f1831715f3634a84cb1eda92","engines":{"node":">=4.3"},"gitHead":"47ce820097fe13d0836a2a082cc6aa62d9efc235","scripts":{"test":"npm run jshint && npm run test-spec","watch":"nodemon --watch ./ --ignore ./examples --ext js,html,xhtml,json --exec npm run test","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"2.14.12","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"4.3.2","dependencies":{"tld":"0.0.2","mime":"^1.3.4","async":"^1.5.2","debug":"^2.2.0","cookie":"^0.2.3","lodash":"^4.4.0","iconv-lite":"^0.4.13","content-type":"^1.0.1","set-cookie-parser":"^1.0.2"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"devDependencies":{"tap":"^5.4.2","jshint":"^2.9.1","nodemon":"^1.9.0","hyperquest":"^1.3.0","js-beautify":"^1.6.2","math-helpers":"~0.1.0","concat-stream":"^1.5.1"},"todoJshintConfig":{"strict":true,"camelcase":true},"_npmOperationalInternal":{"tmp":"tmp/unblocker-1.1.2.tgz_1469135296661_0.8236353986430913","host":"packages-12-west.internal.npmjs.com"}},"1.1.3":{"name":"unblocker","version":"1.1.3","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@1.1.3","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"9bc31efff7227453c557401fd511151fd05ef8a7","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-1.1.3.tgz","integrity":"sha512-4Wnix4v9AG5ISZMGm0FjZHlZXu26GCGvqIxV/GwKil6N/MosS0HYo5wI8UzYQJ/1m5Y9VduyzJiigEIKBlGlSg==","signatures":[{"sig":"MEUCIQCTsx9UnSv8GunvT6iyfcMk41K3NG5GdxCH767li0ZstQIgV23RhtUBBEgludHU0cgNzJ8ickcwTtlJZXihEsBR5O0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/unblocker.js","_from":".","_shasum":"9bc31efff7227453c557401fd511151fd05ef8a7","engines":{"node":">=4.3"},"gitHead":"abaf03d178524543982e6ef1d2bd969e0e1111cf","scripts":{"test":"npm run jshint && npm run test-spec","watch":"nodemon --watch ./ --ignore ./examples --ext js,html,xhtml,json --exec npm run test","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"2.14.12","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"4.3.2","dependencies":{"tld":"0.0.2","mime":"^1.3.4","async":"^2.0.0","debug":"^2.2.0","cookie":"^0.3.1","lodash":"^4.4.0","iconv-lite":"^0.4.13","content-type":"^1.0.1","set-cookie-parser":"^1.0.2"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"devDependencies":{"tap":"^6.1.1","jshint":"^2.9.1","nodemon":"^1.9.0","hyperquest":"^2.0.0","js-beautify":"^1.6.2","math-helpers":"~0.1.0","concat-stream":"^1.5.1"},"todoJshintConfig":{"strict":true,"camelcase":true},"_npmOperationalInternal":{"tmp":"tmp/unblocker-1.1.3.tgz_1469135307775_0.9039124439004809","host":"packages-16-east.internal.npmjs.com"}},"1.1.4":{"name":"unblocker","version":"1.1.4","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@1.1.4","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"4ff87d7abba62d8e7595f69888c195d44b7a93bf","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-1.1.4.tgz","integrity":"sha512-CXk2y42spln1s+N3uiCL1jWgus55G7p1zCfRMcOTtPPhQ+fu79NYfY4jizsfkFGNSa/X5Y/2ZmLsQKyNMtXUGg==","signatures":[{"sig":"MEYCIQD5qZzkg8HFoQJccej4zII8VVOBtku3ym5ZiORDuo3r5wIhALCfxs1ifymnLO8PaueGReqCqpC0gj4fdcjZY1gc/kUk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/unblocker.js","_from":".","_shasum":"4ff87d7abba62d8e7595f69888c195d44b7a93bf","engines":{"node":">=4.3"},"gitHead":"25a58452cec6a917c67720eb1978f01ca2c0e541","scripts":{"test":"npm run jshint && npm run test-spec","watch":"nodemon --watch ./ --ignore ./examples --ext js,html,xhtml,json --exec npm run test","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"2.14.12","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"4.3.2","dependencies":{"tld":"0.0.2","mime":"^1.3.4","async":"^2.0.0","debug":"^2.2.0","cookie":"^0.3.1","lodash":"^4.4.0","iconv-lite":"^0.4.13","content-type":"^1.0.1","set-cookie-parser":"^1.0.2"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"devDependencies":{"tap":"^6.1.1","jshint":"^2.9.1","nodemon":"^1.9.0","hyperquest":"^2.0.0","js-beautify":"^1.6.2","math-helpers":"~0.1.0","concat-stream":"^1.5.1"},"todoJshintConfig":{"strict":true,"camelcase":true},"_npmOperationalInternal":{"tmp":"tmp/unblocker-1.1.4.tgz_1469195518611_0.1657742839306593","host":"packages-12-west.internal.npmjs.com"}},"1.2.0":{"name":"unblocker","version":"1.2.0","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@1.2.0","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"56d45d05410d8e625d32ec49c5ba5be901d54caa","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-1.2.0.tgz","integrity":"sha512-KzvIsMuHfmpzo/hOcAhQ8xzil9L0jgMDkIwIz0T+gpWxgO+dXRyKjb7moo/TC5WOL2oa7RulUdVhrKwy6r8B0g==","signatures":[{"sig":"MEQCIA1Z0Lt8ouyNsIXtWHednj88ELgquPIZV224cOoCix1zAiAzDONL+jNNzWX1wxf430z5ARNb469+Xt+0CtW7fiUs7g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/unblocker.js","_from":".","_shasum":"56d45d05410d8e625d32ec49c5ba5be901d54caa","engines":{"node":">=4.3"},"gitHead":"74643c39e8b7c8aedc6d181a473b5e240d292a4f","scripts":{"test":"npm run jshint && npm run test-spec","watch":"nodemon --watch ./ --ignore ./examples --ext js,html,xhtml,json --exec npm run test","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"4.2.0","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"7.10.0","dependencies":{"tld":"0.0.2","mime":"^1.3.4","async":"^2.0.0","debug":"^2.2.0","cookie":"^0.3.1","lodash":"^4.4.0","iconv-lite":"^0.4.13","content-type":"^1.0.1","set-cookie-parser":"^1.0.2"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"devDependencies":{"tap":"^10.0.0","jshint":"^2.9.1","nodemon":"^1.9.0","hyperquest":"^2.0.0","js-beautify":"^1.6.2","math-helpers":"~0.1.0","concat-stream":"^1.5.1"},"todoJshintConfig":{"strict":true,"camelcase":true},"_npmOperationalInternal":{"tmp":"tmp/unblocker-1.2.0.tgz_1494870716697_0.501640590140596","host":"packages-18-east.internal.npmjs.com"}},"2.0.0":{"name":"unblocker","version":"2.0.0","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@2.0.0","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"76f58741dddc05f2a3b07964575354ecfd8ceb00","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-2.0.0.tgz","fileCount":58,"integrity":"sha512-yrLbw/K4IyIX8q0sl9vYIFpzmcRzxU6KNRLqfPMGMyrKIkx8Oq7MDfDTQ+ikIrnVSfb4ZCLSMDBy68IMSRklRw==","signatures":[{"sig":"MEUCIQDDM3LBVOuvGRs+uJJSpchT42iIfYygeFf9MLfHnLEJpAIgMpo6kd15HPo4wchatjTEy5T9G2YCooGN+s7MjV7oBVQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":383407,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbqQzFCRA9TVsSAnZWagAAJw4P/3iMnIKqXa+lfFJs5NVE\n6qUAGma2TuIV8kpUkwyGSqHxlmBIULfcNDrMQnsXYiDesUsBOmAF0mjL7KD3\nJ6kSTwoLgU3pQwQlci+TmjgRdAHQ463HRq7KUPfNbhkiSD/W8y1oRghiqNYf\n7hBJWwM2RDely2fJFbi45MHswTmocxCER2KLnNDME3w/N6uYTZd72xx1Fnk2\nbTVFL9XgizEn8FqgTjaqXm7LxxgkQly5sZW7QORKNpwYFe6orZeSy7+U/O/T\n5LGhz06p0yo6v75XaA6cEeIR9cvpktDE/lqMj6og/3+OF29MeOHQEm51TkLY\nnAL2u/AG622pnl6GR4fUMnSs10PCnxPvP7l+aV1d6C09nNFGtuIz+3TVxr4G\nDWT9RUi1WTl7gd4Fg7BUsV/EfjT6Yk99zCEltLUYKpqVoRWjlxKR9f7xBwNF\nAXGuSPrZ3gP04VhOi6UWQXb/3BUgEkJj1FK4Ast7gDefq6Ofx0KZVoiRnX1A\nAJn5HV3SCJNGXvDdI1HrSdR9QLo536QtJJOBA4tN1krLWOytay92rmk66qpw\nEm/J3D2Ks3OCwBy4P0IyAOGbLTVv2hzuFH7Awl+4/uzoWvmjFLwUIqcrsEaL\n6YEJmhehZbz4kQpNkX2N6hB6XkxuBmmcAY3ptyetjxCT3lesGflu9X/QHOYa\nCU1Q\r\n=hI9S\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/unblocker.js","_from":".","_shasum":"76f58741dddc05f2a3b07964575354ecfd8ceb00","engines":{"node":">=6"},"gitHead":"3e4f8121fb88089136893b7318fa342db691e07d","scripts":{"test":"npm run jshint && npm run test-spec","watch":"nodemon --watch ./ --ignore ./examples --ext js,html,xhtml,json --exec npm run test","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"2.14.12","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"4.3.2","dependencies":{"tld":"0.0.2","mime":"^2.3.1","async":"^2.0.0","debug":"^4.0.1","cookie":"^0.3.1","lodash":"^4.17.11","iconv-lite":"^0.4.13","content-type":"^1.0.1","set-cookie-parser":"^2.2.1"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"_hasShrinkwrap":false,"devDependencies":{"tap":"^12.0.1","jshint":"^2.9.1","nodemon":"^1.9.0","hyperquest":"^2.0.0","js-beautify":"^1.6.2","math-helpers":"~0.1.0","concat-stream":"^1.5.1"},"todoJshintConfig":{"strict":true,"camelcase":true},"_npmOperationalInternal":{"tmp":"tmp/unblocker_2.0.0_1537805508470_0.7262108935437706","host":"s3://npm-registry-packages"}},"2.0.5":{"name":"unblocker","version":"2.0.5","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@2.0.5","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"a3ec2cdcc20b9ac962be5d0da14ff34f3ab6adeb","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-2.0.5.tgz","fileCount":58,"integrity":"sha512-dzt6dcfzC7W8MZ04nxsAKwF4uJBaYPLpZyab0pXdwTDVrJrxwU79PWO2ayxl9cavVAW4a7jJW7TSySDWibVmHA==","signatures":[{"sig":"MEQCIG4FrUuhFDO02hsnEBWLaJaaC6d7iVCZm+/FYwa7AXr0AiBZGk2YZstvZBOxYzJIR6r2uzrvp/sHH1PGDNap+XjwsA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":207715,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeTrVsCRA9TVsSAnZWagAAxnAP/0WfwD6mvC+oUh7ofLXz\ncnWTWyxlJgj/Jw5c7sOowBhGdp8XvbN8t72Nuo2wH79xWPLFGs48hULZP+bn\n3j2lGxxKT+zgSxzrGDkLrnOrsA+srr455RyLmRWNSXSaVZt6Z6Z0X+0kweE7\ndc1oho/12P19xuxtsGKX07pIa2H5eeUDLSpmjtSRndIR7P69Ux45vPb5THnx\nIwCVqgYo3mvkO73IIOapH4HBOAItOT3gCcdBMmUtd2htilXpYmm8bfnqmgG+\nb4WVR+RxyjC9tvBhZYjWWeRZg0OC8OKOZrimWTIQogZWQ+xMvBCyMJIfkjov\nC+EJGUpCV6OOoUyUgC/2Uz6aj1jFgksSz0wk8kLJP9pgN5jtC1iitU3QEbk0\n284f6WebT77540tNGPGziKSnqnX8iUq68JzBdsZM0/CVTct1pCe2K1d5wHia\nUreezMfha1csOZcWIR6807G6GcVNol6Ok6gP5qDSYFkYt/CnJXekBgc0rOZZ\nqf0TCAf4ieQDHx2wy+mu92EUT+nxJ6a6utSOoWxsZYAD/rxBRMThylk/Ip5U\n2SHPzLmGLmWd7plFyXBRUReJvnUZicCuDxsmMYhh0uqxHNg6yPz8R5M07AgJ\nOAxGbNZ6qep4tAQ4mExsT2Iy+EOeiZfWYfDebBwb9W0YF0dY6sLUscMHXN7Y\n9ItM\r\n=RWuv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/unblocker.js","engines":{"node":">=6"},"gitHead":"ff052462b12b0a6d95e793a5ab1decc6a108a564","scripts":{"test":"npm run jshint && npm run test-spec","watch":"nodemon --watch ./ --ignore ./examples --ext js,html,xhtml,json --exec npm run test","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"6.13.7","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"13.9.0","dependencies":{"tld":"0.0.2","mime":"^2.4.4","async":"^3.1.0","debug":"^4.1.1","cookie":"^0.4.0","lodash":"^4.17.15","iconv-lite":"^0.5.0","content-type":"^1.0.4","set-cookie-parser":"^2.4.1"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"_hasShrinkwrap":false,"devDependencies":{"tap":"^14.10.5","jshint":"^2.10.3","nodemon":"^2.0.2","hyperquest":"^2.1.3","js-beautify":"^1.10.2","math-helpers":"~0.1.0","concat-stream":"^2.0.0"},"todoJshintConfig":{"strict":true,"camelcase":true},"_npmOperationalInternal":{"tmp":"tmp/unblocker_2.0.5_1582216556157_0.37190093243458056","host":"s3://npm-registry-packages"}},"2.0.6":{"name":"unblocker","version":"2.0.6","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@2.0.6","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"f2f49138c882ec48be89f94db4416699f1b1f3cc","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-2.0.6.tgz","fileCount":65,"integrity":"sha512-sQuwOqO3s+knzK/W6AOJBQD7m/2AhSfO0qA8+6MQccdmNUZqEEx9fZRtbecr4EYybRk5MFs0RhQFz2rnYh6p1A==","signatures":[{"sig":"MEUCIAxGiZzzSVegwwLV6K0F3eHj1hjd/LdwDLhhIHlSOhPrAiEAoCqjDm1suLFtPFv5o5ZKfgJA/+4U0NyKn3aSrA+vIsU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":246295,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvwhiCRA9TVsSAnZWagAAB/8P/RPt6RFAGYBKX1vloOrS\nIx8tkN/g1IHnR71RTYZTusPyiur+HexQP6skWt5P/oy1aSVnx6JjiV7R1Gue\nqMoUPLR4/tGvgYgXm6xZ+KJ14+ycg5u5Jm8FM3EusvtFNCStaehGr+eqNBnJ\n2TmymU8NmSBpoBPoOu4WaAMkwx1ZhZ7U5YIcrVb9O+3Tk1vLcTz4u+Wtt1IY\nuoAHnVBbIezCyljOmTGvf9E48lc2mCPdLRRKEFcOP+8IxDJvXHa0qz/a44X7\nSFiQm6sbzrSEqWBvtIf9dsEFQrWTv0tcGspp/ny80TW361FpqnBq4XYqzBDK\ng6m4g3Gi6/Vz9sdLsBgg+Y3wOqhJbdUcoi6sf+/JjSEtC1XNbwRKuzihtiEY\nKjuKZkCXynpHeWeCLI55BBeh2ijwuSXoAqitHSWLrpo+kudbefj1RcCscARh\ns6iQzm0aR+XXL6I+/8uCJrTAjAV3T0Q7AcGgpO7CSrOq1fXRg2Px/QSZojwj\nnsF9gWrtyaJZHG0Ps1MyhV3USEN9gosTW6S610XWqMKcDZtYzzb8+Q8VvjWR\nlzY2qmhyevVwH4riK6Oeyuhv023bRddj8w6+ZsfimplisqKIclTduQAxPFIe\nm3/+6gRyR2t0CrLxX8Hnqa8bcPJU4RUSnu7g9q+Qx05Yc3kMPA5FXh9/8YSK\nMxZr\r\n=8pe9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/unblocker.js","engines":{"node":">=6"},"gitHead":"1d96d6e632a0e5d8c55e22762a2393802534ae4d","scripts":{"test":"npm run jshint && npm run test-spec","watch":"nodemon --watch ./ --ignore ./examples --ext js,html,xhtml,json --exec npm run test","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"7.0.14","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"15.3.0","dependencies":{"tld":"0.0.2","mime":"^2.4.4","async":"^3.1.0","debug":"^4.1.1","cookie":"^0.4.0","lodash":"^4.17.15","iconv-lite":"^0.6.2","content-type":"^1.0.4","set-cookie-parser":"^2.4.1"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"_hasShrinkwrap":false,"devDependencies":{"tap":"^14.10.7","jshint":"^2.10.3","nodemon":"^2.0.2","hyperquest":"^2.1.3","js-beautify":"^1.10.2","math-helpers":"~0.1.0","concat-stream":"^2.0.0"},"todoJshintConfig":{"strict":true,"camelcase":true},"_npmOperationalInternal":{"tmp":"tmp/unblocker_2.0.6_1606355042206_0.19812243940129082","host":"s3://npm-registry-packages"}},"2.0.7":{"name":"unblocker","version":"2.0.7","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@2.0.7","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"e542cf79615b8250c5fb53e758193d5e56a81c26","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-2.0.7.tgz","fileCount":65,"integrity":"sha512-K6siF9LDiiex2BUhaU9uEmNONAH3GWxtJA6xABOEssimcH29rPR2AB5s0khFGf+2XAObKJX8C3oEbfm74ZyYzw==","signatures":[{"sig":"MEUCIHnCVTQvNTU8ToREXwYQvTHy8cEpmOKJGiTFtgp4HY+uAiEA6IE8XcEvJi5u1lp+gBlfxP+63d5drHQUM0L4MAwlnWc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":247245,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCH5lCRA9TVsSAnZWagAA3oIP/1Hm7if8hQj5Gpy6W+31\nSmiP06sPtNHhbbsadiBRHLzjlYUdkTLzku2Ppyad4CzWgAZWo3yIV5n5gRnh\nWXwlMxiiI87CMEH9kyCRzyV00Pf23GB/ee+E8ENAyUWKQI6px6B+0ughUaBv\ntyf7u4wvXrRlcJkthSU2iW5POFlRLN741TXpEYqa+f/wDgvOjOXl56igGID8\n2b6NMbC/2A/tlCo7qwzu2R63fQpHMbAojbxn3V/2ByiLoph3osq1lNNf6wx8\nQgofVoOat6jTFzKV/6+ylHEMVdaUIz6rCFNVw64RGQ+ce6Mz0+OdJoCPPjLo\nbTTurSZMzcCar3T4uUt+yshLmleO3K8/zldUtDPFG2Kc9v1teXaZ8+fv8RD1\neXwwwSij5Mgyivx16wzbqcYU60E6JEPUTrVJxdHBbJ05JZW7re2I3HPH1Tol\nDkI1qOeYu0bFpygdmfW+jQouG2qOIrf4qMv65gP8YDXSwEdVGDNFPUiVNruX\nyG7jPPX4FlpmeqB9b3m+shkzutxazEAUYyg/GT/JmVqlLNt2co0qDCRs2bpc\nJuZLNVGwUAYwFkvjg6TfBEQu4itvFHMVLEikgnVATzL4odOw24T3MTRzx4+Z\nbaF5OIOQQe+6wT4o46BgQDYh9yNzWwVGmzlTHAw5TB7vWLwPn6oZ7ib/K9Qd\nNOSy\r\n=oSGq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/unblocker.js","engines":{"node":">=6"},"gitHead":"f541ea39f61cbdd49a8d9570975de0dd29fa19ca","scripts":{"test":"npm run jshint && npm run test-spec","watch":"nodemon --watch ./ --ignore ./examples --ext js,html,xhtml,json --exec npm run test","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"7.4.0","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"15.6.0","dependencies":{"tld":"0.0.2","mime":"^2.4.4","async":"^3.1.0","debug":"^4.1.1","cookie":"^0.4.0","lodash":"^4.17.15","iconv-lite":"^0.6.2","content-type":"^1.0.4","set-cookie-parser":"^2.4.1"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"_hasShrinkwrap":false,"devDependencies":{"tap":"^14.10.7","jshint":"^2.10.3","nodemon":"^2.0.2","hyperquest":"^2.1.3","js-beautify":"^1.10.2","math-helpers":"~0.1.0","concat-stream":"^2.0.0"},"todoJshintConfig":{"strict":true,"camelcase":true},"_npmOperationalInternal":{"tmp":"tmp/unblocker_2.0.7_1611169381060_0.1832158259848482","host":"s3://npm-registry-packages"}},"2.0.8":{"name":"unblocker","version":"2.0.8","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@2.0.8","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"d1321495d73675dfb81a791ffea2033119434c92","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-2.0.8.tgz","fileCount":65,"integrity":"sha512-34BB7ZLNxKlE3T5hXHBl53Y67yaEmQ2iDFyZhOdjJu1RxCnKNc/YWdpyzxlVa2q5enNZ1KNlbeRnBhwohtLT7w==","signatures":[{"sig":"MEYCIQCnhg+vtqqUVD6mF8PbtAaKsuxqz+e+xgNwCdu+wEwwfwIhANaygq3gmCGJLbBgge2VF7cSl8B7a6B3ZQ9uH3vbUPEL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":247440,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCJZDCRA9TVsSAnZWagAAA+sQAI15O4k7xz7oTOROcMVj\n2dRZdbNOopj9HYS+QeUVRH46NcCQQkn8hrsVm6WXLwGuqkpuJxLLuKz2o/kl\nGzJml4eaBtcBlGBQb30BVBCutfW2aR8wLSLdVyZwDX/jvnR/r13g78+jHtyr\nkQFiobcN/OvuE41XRS1sMw8ZuFohlIXk6oLeOIejb1oTKa1OdhGLg0umzyzd\n1cMeDHFtuq/gHspQIldKf5O/b22DAZkyTHZbocbLCJhfJoJukchgdv2afVTe\n/aD1acWDHucHxzGkCm0mR1tlDzJrp707N8C3zBa7uvXUPGn9Z+BQSLS/p7ZO\nGM1kYw/YpgpWz2a4A7zhmcbR+pyxAEnE+N7djetydtz5xAM6RhD0p15E/Zjc\nNEYGJngGbQ94kgXm0imX7SM05fyMj9kg5sJgkOMpK5oXxtOUavumH3VTmdVX\nuB381zUurnEvNzrvWp8liyczhqdyS3Ml9ZH0SeWCWlMDwrHREvpqBSJAgq+m\nGgEUC5QazEOpKKk/Qgoz4//KbmNsSpW0JsdB6ZFmq9wBPkqe+uvGUs52xpa+\nqIbQkWu47iUnbDMeFH1CDiN7ueXNCbQNPt0pB3I7dVE81I+11jHqwrJeWLi2\nZKQF6itoPm+SZJ3YeA4QhEFTWhJyWb9X7wtPjpY4b0qTmRWTMyy88XlDVMWz\nuEKh\r\n=YKs5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/unblocker.js","engines":{"node":">=6"},"gitHead":"a894c0861af26489d2467c94fbc500770f57464f","scripts":{"test":"npm run jshint && npm run test-spec","watch":"nodemon --watch ./ --ignore ./examples --ext js,html,xhtml,json --exec npm run test","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"7.4.0","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"15.6.0","dependencies":{"tld":"0.0.2","mime":"^2.4.4","async":"^3.1.0","debug":"^4.1.1","cookie":"^0.4.0","lodash":"^4.17.15","iconv-lite":"^0.6.2","content-type":"^1.0.4","set-cookie-parser":"^2.4.1"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"_hasShrinkwrap":false,"devDependencies":{"tap":"^14.10.7","jshint":"^2.10.3","nodemon":"^2.0.2","hyperquest":"^2.1.3","js-beautify":"^1.10.2","math-helpers":"~0.1.0","concat-stream":"^2.0.0"},"todoJshintConfig":{"strict":true,"camelcase":true},"_npmOperationalInternal":{"tmp":"tmp/unblocker_2.0.8_1611175490845_0.31721691103869265","host":"s3://npm-registry-packages"}},"2.0.9":{"name":"unblocker","version":"2.0.9","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@2.0.9","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"bda68d5dcea9dfe45d7862a14a503f48178a9682","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-2.0.9.tgz","fileCount":65,"integrity":"sha512-5USQFGf0FlbpeqaeWhmfHT5+HwJTjeWbDaNLpi/juSfSu+FEJ7/monQ1gHX1TT6YHQAfx9VYd/69ZHTK6AaXxg==","signatures":[{"sig":"MEYCIQCRQnZWKZJS40yTpmvMB5q7z6Dfd5jNPNEAaU0eipKPlwIhAJXG/+KFkxtf4gJiYiA1flQI4MP6ejOeUkBt4r0SqapF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":247755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHY6ECRA9TVsSAnZWagAAJUkQAJgGDRHJE0YSEHDCEq5V\nYLcDngkPhrm48H/VcGZpx/yXAJrigLIlJeOz40/PflOqk8xvBYmpF3PrOClm\n+ShHrRLUWmAdvzF12IAouBuZz16b1CkFOqNpzFhHt35Pp0XBUxOyqIAl2m5E\n/lsBhkIHXTFLPET61ljiEkgRfZgwU6xnivUUQMfONy6x2ca60kxDoLY6P3AI\ngNvXC7tTPXlHZtPvxm0IWOqXfJxx0RSRF1rUA2DoKFXdDmu3408R+5W/6L02\nMKMLQZ2wWl6ML3ZqG92Y6icF5ZE3TO6bCMMhPKvnYlUwhLWOgZncshFcALNN\nwrGXXoUPfNwEGJ4AYlTarZKz+nWEdBIdyqDQmwbUJlxJnUKpZ2eeF4cYNj/+\nC3hM01EMpN3tj6MsR4idQcVWFaL3BwHNm6M6SomJj7cEnTolmglAXYnhZgzb\n/21ztRceajxplHfk7F6mVw5mppKtj9lAQnCA582YxzqgRNGzSuILf0dhsDCE\n0E+LVOxqaZRVTkJiWjZI46qfArO7uF2F72Qjsw0O/LVzTlPvH6RraWv82Zdx\n4u/FaOeUiTh8H+HhUM4NCiVBUlrUOkgwozBCJKzmCxsv1UrXrrZdWFwH4U6t\nRmJGDHO34JyMv5Ni1w1LOOs270aXr/qZwjI2jnE0r3O0ozjTa2B1+rFHzsgO\nfUPP\r\n=RRPe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/unblocker.js","engines":{"node":">=6"},"gitHead":"24f9445e676bb05f6f636d3ed28239d87be646d5","scripts":{"test":"npm run jshint && npm run test-spec","watch":"nodemon --watch ./ --ignore ./examples --ext js,html,xhtml,json --exec npm run test","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"7.5.1","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"15.8.0","dependencies":{"tld":"0.0.2","mime":"^2.4.4","async":"^3.1.0","debug":"^4.1.1","cookie":"^0.4.0","lodash":"^4.17.15","iconv-lite":"^0.6.2","content-type":"^1.0.4","set-cookie-parser":"^2.4.1"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"_hasShrinkwrap":false,"devDependencies":{"tap":"^14.10.7","jshint":"^2.10.3","nodemon":"^2.0.2","hyperquest":"^2.1.3","js-beautify":"^1.10.2","math-helpers":"~0.1.0","concat-stream":"^2.0.0"},"todoJshintConfig":{"strict":true,"camelcase":true},"_npmOperationalInternal":{"tmp":"tmp/unblocker_2.0.9_1612549763799_0.052915944601223064","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"unblocker","version":"2.1.0","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@2.1.0","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"55fa4ec9596303c089ecab4f5435ddc9c60b2ead","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-2.1.0.tgz","fileCount":69,"integrity":"sha512-eBYJX5kaiIUZzMFbsv1JYXV7SYfLGQ5z05+2y/7B1+rk3OgXlpnhnRk4b4e45n190VgGxdLqPhu5KdqrkaM3Gg==","signatures":[{"sig":"MEYCIQCeGAY+KG/o+RjkU4RcaMNFjIwiksqh9LNOTINmgv+SnQIhAO9L22eigrHmEOv3dI9FMayZOmyQXSDHuCju6Z5EH69B","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":255447,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQBQxCRA9TVsSAnZWagAAMAkP/3BO/geNWEDUM59Iyj+N\n5vp6sTbezM7fRbHKo0mdd8XuOfkFdZYyj9uHrCquH7OkaxMf9dvl6nKwSung\necJnY2QQDkixVLm6xRnfV/CCWxlxo38WaI2z/8DTZa/uVSOMqKY7BWMBMDwa\nxdTAHx4gECw1jlckr6dLmxNiQRV3BlukeBzPOYpixwU6Zg9RXMRxaLjDsTZM\nbBW2aktRQ8jZxhrMKmAarsGBArvjNKezwo3NdV500aZji/zGIyzWbI8DBBH6\nWRwjJe9jsx82LRurl1dXv+KQwQdNJNpxIS2OFkfZMKNBqh59/ngJUFDCN42S\nzU+9zUxKKEWo1tOUfaG7HM/T/Nu4wx+ICZZjwDXnjL60L/InKltKWxIu7j7l\n5df9I3YpS+cbkpwNfx3ayfqLThuDeZpnivfW6IZTWbS7nxqAn0nC3xRg/NlB\nLwPgnuhcimT3hBk0ViIQXpSQkyDQW+JIktGr7b1/rMzKGxdoa0r4zg0B8jeg\nGVDDYHT9ezp5BuDJr1KZdVYxVig2u3aLj0o4nZorKOpC2CS5j20ZcJ8RNO33\nv/SNf2qmcfSqtOSNmQSr1/o8VK/UqEXk6/nfyeUyphG9RmCdrPavCraY3796\ngeTSN2KSKCq4SkRbUIjEWiZuonIMWAUMUXyO2a/dcv2mBjaEdOs1YLCu2wb4\n8CMI\r\n=RDhP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/unblocker.js","engines":{"node":">=6"},"gitHead":"4904b5ee1ba72b313d77abca7eae8c1606d25137","scripts":{"test":"npm run jshint && npm run test-spec","watch":"nodemon --watch ./ --ignore ./examples --ext js,html,xhtml,json --exec npm run test","jshint":"jshint ./lib ./test","beautify":"js-beautify --end-with-newline --replace ./lib/*.js ./test/*.js","test-perf":"node test/performance.js","test-spec":"tap test/*spec.js","pre-commit":"npm run beautify && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"7.6.0","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"15.11.0","dependencies":{"tld":"0.0.2","mime":"^2.4.4","async":"^3.1.0","debug":"^4.1.1","cookie":"^0.4.0","lodash":"^4.17.15","iconv-lite":"^0.6.2","content-type":"^1.0.4","set-cookie-parser":"^2.4.1"},"jshintConfig":{"node":true,"devel":true,"undef":true,"newcap":true,"unused":true,"browser":false},"_hasShrinkwrap":false,"devDependencies":{"tap":"^14.10.7","jshint":"^2.10.3","nodemon":"^2.0.2","hyperquest":"^2.1.3","js-beautify":"^1.10.2","math-helpers":"~0.1.0","concat-stream":"^2.0.0"},"todoJshintConfig":{"strict":true,"camelcase":true},"_npmOperationalInternal":{"tmp":"tmp/unblocker_2.1.0_1614812209420_0.47409234535287736","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"unblocker","version":"2.2.0","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@2.2.0","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"9b4a20e6ed24e4078fdbebb7e0b668d8b452984b","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-2.2.0.tgz","fileCount":45,"integrity":"sha512-SYqzrJOP21yAF1vKHoSY6jztwcs0bGwX32PzVFdDtTcCh14BqHJtXpClETig5TqCBrh3Z66ozT8FENSxUMix5w==","signatures":[{"sig":"MEUCIE3eBnSKniCakgrAgaNo5oxP1UofZU5dVEuSgXdgLSDnAiEA/w9YvpcwJ8xSnDRgkTgAEFl+2/9d3wjCJ7PNzsSMnPE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113069,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgX9J/CRA9TVsSAnZWagAAoRIP/2FTViMKXLAwelQ3WyUu\nxvHQRQNxwgf0gVv4FSd+N7AgfH2ACZgX+lQglwSbBOhZy51ki/4/fHn9GKy4\npmUqjwrKR9I1tCEsbpMo3Df6S8UqCoC8Dt1z2o2J3ljuICbyhaMghq69DdKf\nwqnSVWBBPxhT8vVC876Iszst1ExLJ1Z6GHUDSRYSDejZIH9Nz2zK5CRnNqlP\nZxnKknHHKoBaXCDa38hgEOjnz1WD27T7gCmSCIY4M++bagY6BfqQKSkgllyd\nATgO1aaXX1bvKba+KV+AoUhL4VbyKR2ZWlV7FjXG4CI7fRC7cqskKmFj/Pw4\nhRpqBrCNvtr9thbDLwAWSA1/QuZf7MQsBAEXJqBwu52RfUgsNSkYJdA6tKnB\nZoNTs6T+2u6N/8UBluk5okz+qi8u5SgY6K+wZME2i1cd9aeVYDNETefH5s/B\nbEjwJlhH5GCzCgUXWfomnysw1WB5VJtO0HeJ0Qz3V5OF5RIrvfCdq60EOteS\nzR7dyxagsG8q25mYR/0oe7AniV98Ts4X5wr7n0tHqtx6aRBkxdsgwtYzO6C8\n1EQ8Ce9ahVXFywB/2qsMRNWSZG4COkMkMqyMfG0YSwYp/t2syIuGXqiSp0rS\nZDIhPxaOFYfCblQ1KxiTmbrUQ8aiOemhg6to+1lWhhopj3C6RwMu846TsneL\njVqV\r\n=CnWp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/unblocker.js","engines":{"node":">=6"},"gitHead":"dfef03b0bd1aaefc459d9bb35bcacbbbbf6d2195","scripts":{"test":"eslint . && npm run test-spec","watch":"nodemon --watch ./ --ignore ./examples --ext js,html,xhtml,json --exec npm run test","autofix":"eslint . --fix","test-perf":"node test/performance.js","test-spec":"tap test/*spec.js","pre-commit":"npm run autofix && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"7.6.3","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"15.12.0","dependencies":{"tld":"0.0.2","mime":"^2.4.4","send":"^0.17.1","async":"^3.1.0","debug":"^4.1.1","cookie":"^0.4.0","lodash":"^4.17.15","express":"^4.17.1","iconv-lite":"^0.6.2","content-type":"^1.0.4","set-cookie-parser":"^2.4.1"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^7.4.4","tap":"^14.10.7","eslint":"^7.21.0","nodemon":"^2.0.2","prettier":"2.2.1","hyperquest":"^2.1.3","math-helpers":"~0.1.0","concat-stream":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^8.1.0","eslint-plugin-prettier":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unblocker_2.2.0_1616892542495_0.7283317212361282","host":"s3://npm-registry-packages"}},"2.3.0":{"name":"unblocker","version":"2.3.0","author":{"name":"Nathan Friedly - http://nfriedly.com"},"license":"AGPL-3.0","_id":"unblocker@2.3.0","maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"dist":{"shasum":"61473fc176f1d519780e66746d685498c92dd2b7","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-2.3.0.tgz","fileCount":45,"integrity":"sha512-KKXEHl/IbesSJ4itcRQAk0csO6Pzm3UPbjZJWHwK7OeE8FDSxJLHC9NTBpYh4uCOhHlc2i4F6s4Bq3CIY6mnTg==","signatures":[{"sig":"MEYCIQDG1kufmI4Kvk5QwzlIV0m18JnxHY2lbfx8hf+Mk1ZlUgIhAMaiRmzqwbxUxrMjZZdyXP8NM4l2NYlf9eMQppP6CZLP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":117840,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYkTQCRA9TVsSAnZWagAAeIYP/19TPOPG1l61S0zdCdF9\nt4jCNE3UzfQCs6jcIeZzsBogOgm/EPww2y9Z52ZLYyLuRt//JcYRFvTeDRLz\n6optJFFpxKzZto2DC+jXFKvUxQvAbCDFl3Y+e2OG12LVI7uIZ9/Yk7s7txN6\nPtJMYNGRGMqKlC7bKNnbgaY0R38iYVKHhdgo0Y/bRtNfrBtSxP7w4JYo3KDr\nGWK0O0QPouNafM4wmz/PArbtvrHwbXQJqHoOrfgffD0LLbzNYI97z4LahaLI\nRYag4kIkj4uRKbrknosQGCYDKWdxe+6x0MtntujwQ954OGQEyUR3mXbdoIPc\nQilM5qUCn1iBDIa+tXqbkV9q5AEbUWJlgFcT/4OKxHaSS5tbAdr8PEdJNmKZ\nSnN53lVbfOTT1MTtsFckgtSXHNpi0/ekkGOr9K5KEdxraqPSOZApMyPF9wTd\nFhwNqBj//nywNWO03nLxy2eZCpHuPZV8MdZ9blXmg8TDRBSHqR4X9vQekTLX\nlWJCiTRrcOd5Zzslo18GkZLkDFgXiiteq/i5+O0X+U67ib/52QO+5pdruQKO\nOiHiZtP7k1951Rmp0M6zQ4xYSufsqPqd7x9W06mls3VSgf9+t8sEv6dKjCp1\nsh5eKaPh2DCxyr436CCfbkPoBWAlsSmJjZjiPBcLDWyOk0yUX5AwexP9eRVp\nsVKS\r\n=sL/g\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/unblocker.js","engines":{"node":">=6"},"gitHead":"5a06aa33f187de1cfa988146d5a12da462b3dc19","scripts":{"test":"eslint . && npm run test-spec","watch":"nodemon --watch ./ --ignore ./examples --ext js,html,xhtml,json --exec npm run test","autofix":"eslint . --fix","test-perf":"node test/performance.js","test-spec":"tap test/*spec.js","pre-commit":"npm run autofix && npm test"},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"repository":{"url":"git://github.com/nfriedly/node-unblocker.git","type":"git"},"_npmVersion":"7.6.3","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","directories":{},"_nodeVersion":"15.12.0","dependencies":{"tld":"0.0.2","mime":"^2.4.4","send":"^0.17.1","async":"^3.1.0","debug":"^4.1.1","cookie":"^0.4.0","lodash":"^4.17.15","express":"^4.17.1","iconv-lite":"^0.6.2","content-type":"^1.0.4","set-cookie-parser":"^2.4.1"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^7.4.4","tap":"^14.10.7","eslint":"^7.21.0","nodemon":"^2.0.2","prettier":"2.2.1","hyperquest":"^2.1.3","math-helpers":"~0.1.0","concat-stream":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^8.1.0","eslint-plugin-prettier":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unblocker_2.3.0_1617052880198_0.23344525813245864","host":"s3://npm-registry-packages"}},"2.3.1":{"name":"unblocker","description":"Web proxy for evading internet censorship & general-purpose library for rewriting remote websites.","author":{"name":"Nathan Friedly - http://nfriedly.com"},"version":"2.3.1","repository":{"type":"git","url":"git://github.com/nfriedly/node-unblocker.git"},"engines":{"node":">=16.17"},"dependencies":{"async":"^3.2.5","content-type":"^1.0.5","cookie":"^0.6.0","debug":"^4.3.5","express":"^4.19.2","iconv-lite":"^0.6.3","lodash":"^4.17.21","mime":"^4.0.3","send":"^0.18.0","set-cookie-parser":"^2.6.0","tld":"0.0.2"},"devDependencies":{"concat-stream":"^2.0.0","eslint":"^8.53.0","eslint-config-prettier":"^9.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","hyperquest":"^2.1.3","math-helpers":"~0.1.0","nodemon":"^3.1.3","prettier":"2.2.1","tap":"^19.2.3","ws":"^8.17.0"},"scripts":{"watch":"nodemon --watch ./ --ignore ./examples --ext js,html,xhtml,json --exec npm run test","test":"npm run lint && npm run test-spec","pre-commit":"npm run autofix && npm test","lint":"eslint .","autofix":"eslint . --fix","test-spec":"tap --allow-incomplete-coverage test/*spec.js","test-perf":"node test/performance.js"},"license":"AGPL-3.0","main":"lib/unblocker.js","_id":"unblocker@2.3.1","gitHead":"01a4e2dec829b3e7464a97ac2ad4a6a23d928f40","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"homepage":"https://github.com/nfriedly/node-unblocker#readme","_nodeVersion":"20.14.0","_npmVersion":"10.7.0","dist":{"integrity":"sha512-RYkqHzvf+c3FYd6Wffqxoia7Q3cefDt+/+sKnXhFyrk14Vi71BlyWVuCuR4Y/Lb0Gv6XvQWE+s6hTN9V0y/6FQ==","shasum":"5a643ad50c0e45a677e4346e88703f438a0780a0","tarball":"https://registry.npmjs.org/unblocker/-/unblocker-2.3.1.tgz","fileCount":44,"unpackedSize":117902,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIACkQtNdJ7Akme1SB8KDrU6hlVkkDLOuxzaloDOKgDKdAiEAttkf6OwKFkvxrwCDzK6tsy2cToQ74a9bM0RC67uWQ5w="}]},"_npmUser":{"name":"nfriedly","email":"nathan@nfriedly.com"},"directories":{},"maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unblocker_2.3.1_1718056588105_0.5164436695806522"},"_hasShrinkwrap":false}},"time":{"created":"2015-07-02T22:28:07.841Z","modified":"2024-06-10T21:56:28.445Z","1.0.0-pre2":"2015-07-02T22:28:07.841Z","1.0.0":"2015-07-02T22:52:02.210Z","1.0.1":"2015-07-03T02:56:20.331Z","1.0.2":"2015-07-03T15:58:50.436Z","1.0.3":"2015-07-03T19:54:36.586Z","1.0.4":"2015-07-04T21:06:59.251Z","1.0.5":"2015-07-04T22:44:18.433Z","1.0.6":"2015-07-22T12:49:13.172Z","1.0.8":"2015-10-21T13:15:22.389Z","1.0.9":"2016-02-08T22:33:03.626Z","1.0.10":"2016-02-21T10:37:11.257Z","1.0.11":"2016-02-22T16:55:46.627Z","1.0.12":"2016-02-22T19:58:31.984Z","1.1.0":"2016-02-22T20:09:05.880Z","1.1.1":"2016-02-29T19:53:56.646Z","1.1.2":"2016-07-21T21:08:18.794Z","1.1.3":"2016-07-21T21:08:29.572Z","1.1.4":"2016-07-22T13:52:00.622Z","1.2.0":"2017-05-15T17:51:57.781Z","2.0.0":"2018-09-24T16:11:48.669Z","2.0.5":"2020-02-20T16:35:56.354Z","2.0.6":"2020-11-26T01:44:02.335Z","2.0.7":"2021-01-20T19:03:01.234Z","2.0.8":"2021-01-20T20:44:51.032Z","2.0.9":"2021-02-05T18:29:24.117Z","2.1.0":"2021-03-03T22:56:49.578Z","2.2.0":"2021-03-28T00:49:02.658Z","2.3.0":"2021-03-29T21:21:20.367Z","2.3.1":"2024-06-10T21:56:28.276Z"},"maintainers":[{"name":"nfriedly","email":"nathan@nfriedly.com"}],"author":{"name":"Nathan Friedly - http://nfriedly.com"},"repository":{"type":"git","url":"git://github.com/nfriedly/node-unblocker.git"},"license":"AGPL-3.0","homepage":"https://github.com/nfriedly/node-unblocker#readme","bugs":{"url":"https://github.com/nfriedly/node-unblocker/issues"},"readme":"# unblocker\n\nUnblocker was originally a web proxy for evading internet censorship, similar to CGIproxy / PHProxy / Glype but\nwritten in node.js. It's since morphed into a general-purpose library for proxying and rewriting remote webpages.\n\nAll data is processed and relayed to the client on the fly without unnecessary buffering, making unblocker one of the\nfastest web proxies available.\n\n[![Node.js CI](https://github.com/nfriedly/node-unblocker/actions/workflows/node.js.yml/badge.svg)](https://github.com/nfriedly/node-unblocker/actions/workflows/node.js.yml)\n[![npm-version](https://img.shields.io/npm/v/unblocker.svg)](https://www.npmjs.com/package/unblocker)\n\n### The magic part\n\nThe script uses \"pretty\" urls which, besides looking pretty, allow links with relative paths\nto just work without modification. (E.g. `<a href=\"path/to/file2.html\"></a>`)\n\nIn addition to this, links that are relative to the root (E.g. `<a href=\"/path/to/file2.html\"></a>`)\ncan be handled without modification by checking the referrer and 307 redirecting them to the proper\nlocation in the referring site. (Although the proxy does attempt to rewrite these links to avoid the redirect.)\n\nCookies are proxied by adjusting their path to include the proxy's URL, and a bit of extra work is done to ensure they\nremain intact when switching protocols or subdomains.\n\n### Limitations\n\nAlthough the proxy works well for standard login forms and even most AJAX content, OAuth login forms and anything that uses\n[postMessage](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) (Google, Facebook, etc.) are not\nlikely to work out of the box. This is not an insurmountable issue, but it's not one that I expect to have fixed in the\nnear term.\n\nMore advanced websites, such as Roblox, Discord, YouTube*, Instagram, etc. do not currently work. At the moment, there is no timeframe for when these might be supported.\n\n* There is an example that detects YouTube video pages and [replaces them with a custom page that just streams the video](examples/youtube/).\n\nPatches are welcome, including both general-purpose improvements to go into the main library, and site-specific\nfixes to go in the examples folder.\n\n## Running the website on your computer\n\nSee https://github.com/nfriedly/nodeunblocker.com\n\n## Using unblocker as a library in your software\n\n    npm install --save unblocker\n\nUnblocker exports an [express](http://expressjs.com/)-compatible API, so using in an express application is trivial:\n\n    var express = require('express')\n    var Unblocker = require('unblocker');\n    var app = express();\n    var unblocker = new Unblocker({prefix: '/proxy/'});\n\n    // this must be one of the first app.use() calls and must not be on a subdirectory to work properly\n    app.use(unblocker);\n\n    app.get('/', function(req, res) {\n        //...\n    });\n\n    // the upgrade handler allows unblocker to proxy websockets\n    app.listen(process.env.PORT || 8080).on('upgrade', unblocker.onUpgrade);\n\nSee [examples/simple/server.js](examples/express/server.js) for a complete example.\n\nUsage without express is similarly easy, see [examples/simple/server.js](examples/simple/server.js) for an example.\n\n### Configuration\n\nUnblocker supports the following configuration options, defaults are shown:\n\n```js\n{\n    prefix: '/proxy/',  // Path that the proxied URLs begin with. '/' is not recommended due to a few edge cases.\n    host: null, // Host used in redirects (e.g `example.com` or `localhost:8080`). Default behavior is to determine this from the request headers.\n    requestMiddleware: [], // Array of functions that perform extra processing on client requests before they are sent to the remote server. API is detailed below.\n    responseMiddleware: [], // Array of functions that perform extra processing on remote responses before they are sent back to the client. API is detailed below.\n    standardMiddleware: true, // Allows you to disable all built-in middleware if you need to perform advanced customization of requests or responses.\n    clientScripts: true, // Injects JavaScript to force things like WebSockets and XMLHttpRequest to go through the proxy.\n    processContentTypes: [ // All  built-in middleware that modifies the content of responses limits itself to these content-types.\n        'text/html',\n        'application/xml+xhtml',\n        'application/xhtml+xml',\n        'text/css'\n    ],\n    httpAgent: null, //override agent used to request http response from server. see https://nodejs.org/api/http.html#http_class_http_agent\n    httpsAgent: null //override agent used to request https response from server. see https://nodejs.org/api/https.html#https_class_https_agent\n}\n```\n\nSetting `process.env.NODE_ENV='production'` will enable more aggressive caching on the client scripts and potentially other optimizations in the future.\n\n#### Custom Middleware\n\nUnblocker \"middleware\" are small functions that allow you to inspect and modify requests and responses. The majority of Unblocker's internal logic is implimented as middleware, and it's possible to write custom middleware to augment or replace the built-in middleware.\n\nCustom middleware should be a function that accepts a single `data` argument and runs synchronously.\n\nTo process request and response data, create a [Transform Stream](https://nodejs.org/api/stream.html#stream_class_stream_transform) to perform the processing in chunks and pipe through this stream. (Example below.)\n\nTo respond directly to a request, add a function to `config.requestMiddleware` that handles the `clientResponse` (a standard [http.ServerResponse](https://nodejs.org/api/http.html#http_class_http_serverresponse) when used directly, or a [Express Response](http://expressjs.com/en/4x/api.html#res) when used with Express. Once a response is sent, no further middleware will be executed for that request. (Example below.)\n\n##### requestMiddleware\n\nData example:\n```js\n{\n    url: 'http://example.com/',\n    clientRequest: {request},\n    clientResponse: {response},\n    headers: {\n        //...\n    },\n    stream: {ReadableStream of data for PUT/POST requests, empty stream for other types}\n}\n```\n\nrequestMiddleware may inspect the headers, url, etc. It can modify headers, pipe PUT/POST data through a transform stream, or respond to the request directly.\nIf you're using express, the request and response objects will have all of the usual express goodies. For example:\n\n```js\nfunction validateRequest(data) {\n    if (!data.url.match(/^https?:\\/\\/en.wikipedia.org\\//)) {\n        data.clientResponse.status(403).send('Wikipedia only.');\n    }\n}\nvar config = {\n    requestMiddleware: [\n        validateRequest\n    ]\n}\n```\n\nIf any piece of middleware sends a response, no further middleware is run.\n\nAfter all requestMiddleware has run, the request is forwarded to the remote server with the (potentially modified) url/headers/stream/etc.\n\n##### responseMiddleware\n\nresponseMiddleware receives the same `data` object as the requestMiddleware, but the `headers` and `stream` fields are replaced with those of the remote server's response, and several new fields are added for the remote request and response:\n\nData example:\n```js\n{\n    url: 'http://example.com/',\n    clientRequest: {request},\n    clientResponse: {response},\n    remoteRequest {request},\n    remoteResponse: {response},\n    contentType: 'text/html',\n    headers: {\n        //...\n    },\n    stream: {ReadableStream of response data}\n}\n```\n\nFor modifying content, create a new stream and then pipe `data.stream` to it and replace `data.stream` with it:\n\n```js\nvar Transform = require('stream').Transform;\n\nfunction injectScript(data) {\n    if (data.contentType == 'text/html') {\n\n        // https://nodejs.org/api/stream.html#stream_transform\n        var myStream = new Transform({\n            decodeStrings: false,\n            function(chunk, encoding, next) {\n                chunk = chunk.toString.replace('</body>', '<script src=\"/my/script.js\"></script></body>');\n                this.push(chunk);\n                next();\n                }\n        });\n\n        data.stream = data.stream.pipe(myStream);\n    }\n}\n\nvar config = {\n    responseMiddleware: [\n        injectScript\n    ]\n}\n```\n\nSee `examples/nodeunblocker.com/app.js` for another example of adding a bit of middleware. Also, see any of the built-in middleware in the `lib/` folder.\n\n\n##### Built-in Middleware\n\nMost of the internal functionality of the proxy is also implemented as middleware:\n\n* **host**: Corrects the `host` header in outgoing responses\n* **referer**: Corrects the `referer` header in outgoing requests\n* **cookies**:\n    Fixes the `Path` attribute of set-cookie headers to limit cookies to their \"path\" on the proxy (e.g. `Path=/proxy/http://example.com/`).\n    Also injects redirects to copy cookies from between protocols and subdomains on a given domain.\n* **hsts**: Removes [Strict-Transport-Security](https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security) headers because they can leak to other sites and can break the proxy.\n* **hpkp**: Removes [Public-Key-Pinning](https://en.wikipedia.org/wiki/HTTP_Public_Key_Pinning) headers because they can leak to other sites and can break the proxy.\n* **csp**: Removes [Content-Security-Policy](https://en.wikipedia.org/wiki/Content_Security_Policy) headers because they can leak to other sites and can break the proxy.\n* **redirects**: Rewrites urls in 3xx redirects to ensure they go through the proxy\n* **decompress**: Decompresses `Content-Encoding: gzip|deflate` responses and also tweaks request headers to ask for either gzip-only or no compression at all. (It will attempt to decompress `deflate` content, but there are some issues, so it does not advertise support for `deflate`.)\n* **charsets**: Converts the charset of responses to UTF-8 for safe string processing in node.js. Determines charset from headers or meta tags and rewrites all headers and meta tags in outgoing response.\n* **urlPrefixer**: Rewrites URLS of links/images/css/etc. to ensure they go through the proxy\n* **metaRobots**: Injects a ROBOTS: NOINDEX, NOFOLLOW meta tag to prevent search engines from crawling the entire web through the proxy.\n* **contentLength**: Deletes the content-length header on responses if the body was modified.\n\nSetting the `standardMiddleware` configuration option to `false` disables all built-in middleware, allowing you to selectively enable, configure, and re-order the built-in middleware.\n\nThis configuration would mimic the defaults:\n\n```js\n\nvar Unblocker = require('unblocker');\n\nvar config = {\n    prefix: '/proxy/',\n    host: null,\n    requestMiddleware: [],\n    responseMiddleware: [],\n    standardMiddleware: false,  // disables all built-in middleware\n    processContentTypes: [\n        'text/html',\n        'application/xml+xhtml',\n        'application/xhtml+xml'\n    ]\n}\n\nvar host = Unblocker.host(config);\nvar referer = Unblocker.referer(config);\nvar cookies = Unblocker.cookies(config);\nvar hsts = Unblocker.hsts(config);\nvar hpkp = Unblocker.hpkp(config);\nvar csp = Unblocker.csp(config);\nvar redirects = Unblocker.redirects(config);\nvar decompress = Unblocker.decompress(config);\nvar charsets = Unblocker.charsets(config);\nvar urlPrefixer = Unblocker.urlPrefixer(config);\nvar metaRobots = Unblocker.metaRobots(config);\nvar contentLength = Unblocker.contentLength(config);\n\nconfig.requestMiddleware = [\n    host,\n    referer,\n    decompress.handleRequest,\n    cookies.handleRequest\n    // custom requestMiddleware here\n];\n\nconfig.responseMiddleware = [\n    hsts,\n    hpkp,\n    csp,\n    redirects,\n    decompress.handleResponse,\n    charsets,\n    urlPrefixer,\n    cookies.handleResponse,\n    metaRobots,\n    // custom responseMiddleware here\n    contentLength\n];\n\nvar unblocker = new Unblocker(config);\napp.use(unblocker);\n\n// ...\n\n// the upgrade handler allows unblocker to proxy websockets\napp.listen(process.env.PORT || 8080).on('upgrade', unblocker.onUpgrade);\n```\n\n## Debugging\n\nUnblocker is fully instrumented with [debug](https://www.npmjs.com/package/debug).\nEnable debugging via environment variables:\n\n    DEBUG=unblocker:* node mycoolapp.js\n\nThere is also a middleware debugger that adds extra debugging middleware before and after each existing middleware\nfunction to report on changes. It's included with the default DEBUG activation and may also be selectively enabled:\n\n\n    DEBUG=unblocker:middleware node mycoolapp.js\n\n... or disabled:\n\n    DEBUG=*,-unblocker:middleware node mycoolapp.js\n\n## Troubleshooting\n\nIf you're using Nginx as a reverse proxy, you probably need to disable `merge_slashes` to avoid endless redirects and/or other issues:\n\n    merge_slashes off;\n\n\n## Todo\n\n* Consider adding compress middleware to compress text-like responses\n* Un-prefix urls in GET / POST data\n* Inject js to proxy postMessage data and fix origins\n* More examples\n* Even more tests\n\n## AGPL-3.0 License\nThis project is released under the terms of the [GNU Affero General Public License version 3](https://www.gnu.org/licenses/agpl-3.0.html).\n\nAll source code is copyright [Nathan Friedly](http://nfriedly.com/).\n\nCommercial licensing and support are also available, contact Nathan Friedly (nathan@nfriedly.com) for details.\n\n## Contributors\n* [Nathan Friedly](http://nfriedly.com)\n* [Arturo Filastò](https://github.com/hellais)\n* [tfMen](https://github.com/tfMen)\n* [Emil Hemdal](https://github.com/emilhem)\n","readmeFilename":"readme.md","users":{"emilhem":true,"janjan123":true}}