{"_id":"express-negotiator","_rev":"64-6f2900a0efe3445cc005462998de97b9","name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","dist-tags":{"latest":"1.1.0"},"versions":{"0.0.1":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","express","localization","l10n","internationalization","i18n","locale","content-type","content type","extension","mime"],"version":"0.0.1","engines":{"node":"*"},"dependencies":{"memoizer":"=0.0.4","mime":"=1.2.7","passerror":"=0.0.1","seq":"=0.3.5","underscore":"=1.3.3"},"devDependencies":{"express":"=2.5.11","vows":"=0.6.1"},"main":"lib/index.js","_id":"express-negotiator@0.0.1","dist":{"shasum":"1bf747b8c1f53d294d1e4f9ad87949465e68e282","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.0.1.tgz","integrity":"sha512-UAbXd7SyZhY5WJYX7qedUo/iyfxwgHymU4zs2PnbFP3h/mZVYmTjlM1GjF3Ba/NpvF/6Q5lajj6rPOEGkELQBw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID/zJqhiGwsB4OG8pRSMSVSZeB+tpzwZETSPuLVWzui3AiBkB1lTL4JyFB6uC47yR/qaxa0NTyESTl42ncLeSyZfgA=="}]},"_npmVersion":"1.1.63","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"}],"directories":{}},"0.1.0":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.1.0","engines":{"node":"*"},"dependencies":{"memoizeasync":"=0.0.1","memoizesync":"=0.0.1","mime":"=1.2.7","passerror":"=0.0.1","seq":"=0.3.5","underscore":"=1.3.3"},"devDependencies":{"expect.js":"=0.2.0","express":"=2.5.11","mocha":"=1.7.4"},"main":"lib/expressNegotiator.js","_id":"express-negotiator@0.1.0","dist":{"shasum":"7ab7d2fc498b0d52ecbefa3ac9d610b63ebba5cb","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.1.0.tgz","integrity":"sha512-mQSjFoEz3B05F3xk3C71hRJBDR3VGW9nOSKzTgXcOwkXrmXKpvwmptYex1HrQ8KB7YyInBDXP/QhV8G57xcOqA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCy5Z39o6Ou6VmK1r6VPVTQhg/Hzj3ptzqQZq+MKsygbgIhANKcERgDhKD3W53YnJgFfbxmSmHdxVlKf0zXbY8k+ril"}]},"_npmVersion":"1.1.59","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"}],"directories":{}},"0.2.0":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.2.0","engines":{"node":"*"},"dependencies":{"bowser-papandreou":"=0.2.0-patch2","memoizeasync":"=0.0.1","memoizesync":"=0.0.1","mime":"=1.2.7","passerror":"=0.0.1","seq":"=0.3.5","underscore":"=1.3.3"},"devDependencies":{"expect.js":"=0.2.0","express":"=2.5.11","mocha":"=1.7.4"},"main":"lib/expressNegotiator.js","_id":"express-negotiator@0.2.0","dist":{"shasum":"2977d9fffb40b9a6f928b283b02182e5f69b7079","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.2.0.tgz","integrity":"sha512-qYKDlVT5Xcfo7bdJ7jlUshUJ1+9Dz963OF9uGS2LkwQ/eQH99vB/2xQ4nzzVbRMj7lNoSKbf9Bz/LxUZxaTvHw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKtWD9Ur3ERb1OkQVztIoi4zTA8Kx0dPS4EtfHyMUdzwIgX62rdulrfTsp1uy6TiF+q31wJ6RX8ZJZmPMujeVU3Ic="}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"}],"directories":{}},"0.2.1":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.2.1","engines":{"node":"*"},"dependencies":{"bowser-papandreou":"=0.2.0-patch2","memoizeasync":"=0.0.1","memoizesync":"=0.0.1","mime":"=1.2.7","passerror":"=0.0.1","seq":"=0.3.5","underscore":"=1.3.3"},"devDependencies":{"expect.js":"=0.2.0","express":"=2.5.11","mocha":"=1.7.4"},"main":"lib/expressNegotiator.js","_id":"express-negotiator@0.2.1","dist":{"shasum":"26228384a3df5919b8013c3d7a26a9676dadf4db","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.2.1.tgz","integrity":"sha512-E6HQ3EuT4N6gM20jLJznMTNVkbaDSxdf/6yib5hO8AYvAcLMVr9D8zcB26MW1gtGQV1JEjtLkhYD+pSxV37uWw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDuKMbKHizsihBmT4lTucZgGfqSMNMGCNp0eAjBOvzQKAiB2FfDPrBgZX5AJQ7V+UeUMs4uFkEWR4Cuke1gwMt1cDQ=="}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"}],"directories":{}},"0.2.2":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.2.2","engines":{"node":"*"},"dependencies":{"bowser-papandreou":"=0.2.0-patch3","memoizeasync":"=0.0.1","memoizesync":"=0.0.1","mime":"=1.2.7","passerror":"=0.0.1","seq":"=0.3.5","underscore":"=1.3.3"},"devDependencies":{"expect.js":"=0.2.0","express":"=2.5.11","mocha":"=1.7.4"},"main":"lib/expressNegotiator.js","_id":"express-negotiator@0.2.2","dist":{"shasum":"264df63037a6e72909b5132d9d95374608661071","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.2.2.tgz","integrity":"sha512-mkKbaD63Y9NJjx3Sp9O8LAvFCnlSL9ghRaM/yxx14UHux78brgvUntr+LxLHPqAX17RQJr6u8pEfDfRutlUZKg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICkqZsAC/D86Q3PqBb5ZuhMD53bWlejVQOF8x/aTjX8yAiEAtViU3+wpNPGdIbYRLjP1sp+JaWa9zmpydyZ+uks0pfE="}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"}],"directories":{}},"0.2.3":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.2.3","engines":{"node":"*"},"dependencies":{"bowser-papandreou":"=0.2.0-patch3","memoizeasync":"=0.0.1","memoizesync":"=0.0.1","mime":"=1.2.7","passerror":"=0.0.1","seq":"=0.3.5","underscore":"=1.3.3"},"devDependencies":{"expect.js":"=0.2.0","express":"=2.5.11","mocha":"=1.7.4"},"main":"lib/expressNegotiator.js","_id":"express-negotiator@0.2.3","dist":{"shasum":"3773ad19e5eb7edfa95df61b3c15a7b25a6a2271","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.2.3.tgz","integrity":"sha512-soKRHb2kE8qF+OuOxNjGsturcsmTSh7SBhxfo04hjC3gm1858pq8eXzs3cm4K1ePO+zkuQ0K9CVP6GZgd8U9KA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICciWQtPoiAKfxojaVfWMh+71xddkLLzKcgT4oyE2+WGAiEAurkyAkqLlrcOa6CiZDiT3iAiiEEWNjV/sPu6wGhWAR0="}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"}],"directories":{}},"0.2.4":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.2.4","engines":{"node":"*"},"dependencies":{"mario":"=1.0.0","memoizeasync":"=0.0.1","memoizesync":"=0.0.1","mime":"=1.2.7","passerror":"=0.0.1","seq":"=0.3.5","underscore":"=1.3.3"},"devDependencies":{"expect.js":"=0.2.0","express":"=2.5.11","mocha":"=1.7.4"},"main":"lib/expressNegotiator.js","_id":"express-negotiator@0.2.4","dist":{"shasum":"113f0ab65ce717e24c539f2c1e5faa92fe6b4a38","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.2.4.tgz","integrity":"sha512-gKTdLvKfO1Cl0Tv98c18NwNnV5aJeebaXO5SPet46+MPz+mcRcMUyXEWfYnGKQpDVBIqr/mdfos1q0SIAwcNUw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVLCxUw6hQU69EPZO4giHtrtF1wZEPVF0PtrP9pfuLjgIhAP7hPcihHYlt4TyaI/+NdQ9lBbu/DvbPf0lGrOAkOJw8"}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"}],"directories":{}},"0.2.5":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.2.5","engines":{"node":"*"},"dependencies":{"async":"=0.2.8","mario":"=1.0.0","memoizeasync":"=0.0.1","memoizesync":"=0.0.1","mime":"=1.2.7","passerror":"=0.0.1","underscore":"=1.3.3"},"devDependencies":{"expect.js":"=0.2.0","express":"=2.5.11","mocha":"=1.7.4"},"main":"lib/expressNegotiator.js","_id":"express-negotiator@0.2.5","dist":{"shasum":"8953ee4814bb491008e7c2d818af5839ed9a3885","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.2.5.tgz","integrity":"sha512-Pi5hvGivu2aS/F4Km5PO2OI1B3nBlzuHXiGL7WnB4iWZQfU4O2otSwcz3uk2WFKxrJZ18HLsasLx/SIn8hnhFQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA5ACmR2w4JZ1UJ0kQURUyAWAbS3hWQLOeT4tX2CqvcIAiEAgA96rxkwhawDqzTceIxTSNcHY3tswDC08SrVIjy85n4="}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"}],"directories":{}},"0.2.6":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.2.6","engines":{"node":"*"},"dependencies":{"async":"=0.2.8","mario":"=1.0.0","memoizeasync":"=0.0.1","memoizesync":"=0.0.1","mime":"=1.2.7","passerror":"=0.0.1","underscore":"=1.3.3"},"devDependencies":{"expect.js":"=0.2.0","express":"=2.5.11","mocha":"=1.7.4"},"main":"lib/expressNegotiator.js","_id":"express-negotiator@0.2.6","dist":{"shasum":"a62eb816f6b542c9964f015a13674e6068c05bfc","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.2.6.tgz","integrity":"sha512-G73yZXOkcK3R0QW28UQs4pHjimvQQJMjIdbluxOfHD60ovTk7Op+Z8iB/Rx/Gh6KOgZC88BxbTbYHAEs5wc8aQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDgSsb4FcWlAG9VZGvV/eLc9o6KodUVhiIMhYPI0yP7+wIgV3YIHg2w8AXmP42/udTr8TOKmbwkPs0zqvKE4Pcp7TQ="}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"}],"directories":{}},"0.2.7":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.2.7","engines":{"node":"*"},"dependencies":{"async":"=0.2.8","mario":"=1.4.0","memoizeasync":"=0.0.1","memoizesync":"=0.0.1","mime":"=1.2.7","passerror":"=0.0.1","underscore":"=1.3.3"},"devDependencies":{"expect.js":"=0.2.0","express":"=2.5.11","mocha":"=1.7.4"},"main":"lib/expressNegotiator.js","_id":"express-negotiator@0.2.7","dist":{"shasum":"0b64b3a288957f0e3eafbc5f8f414a30da1d1b12","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.2.7.tgz","integrity":"sha512-8eiNn+rf6IOmNDZriuuCteKATpvWM5SBrUqrFvGhMlM4YEJXpIbIqJWYwjb0vGTUuuuK0VUBcZdeJOz4ZbawNg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCne1Nd3pcHebfv6RrhIKAjGFw/grIz2TyUW6u0jORkgwIgJKeojdvPb+Lz3TwcIdWVtr/iqpfaRmtIGG5qs3wbing="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"}],"directories":{}},"0.2.8":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.2.8","engines":{"node":"*"},"dependencies":{"async":"=0.2.8","mario":"=1.4.1","memoizeasync":"=0.0.1","memoizesync":"=0.0.1","mime":"=1.2.7","passerror":"=0.0.1","underscore":"=1.3.3"},"devDependencies":{"expect.js":"=0.2.0","express":"=2.5.11","mocha":"=1.7.4"},"main":"lib/expressNegotiator.js","_id":"express-negotiator@0.2.8","dist":{"shasum":"53c16a37868760a393322c759d4326467be4b13a","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.2.8.tgz","integrity":"sha512-lNgwKkKhBt9mguqX2jukFfEqwHenEjTkqIWaSDspV9xRutih+z1mB5GZ82NBb70IoUR8e3r+rPCrgVNsJAmcJQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBS3IlXsD+F+eon6nJvkVTmHaWW+Z3KtCTW2VQe6EzBmAiAOuEIcyJLUQIYXWnZWeJimWIm1oVpkYJnMKbmw012eSQ=="}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"}],"directories":{}},"0.3.0":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.3.0","engines":{"node":"*"},"dependencies":{"async":"=0.2.8","mario":"=1.4.1","memoizeasync":"=0.0.1","memoizesync":"=0.0.1","mime":"=1.2.7","passerror":"=0.0.1","underscore":"=1.3.3"},"devDependencies":{"expect.js":"=0.2.0","express":"=2.5.11","mocha":"=1.7.4"},"main":"lib/expressNegotiator.js","_id":"express-negotiator@0.3.0","dist":{"shasum":"83c0a6e8c9de0af64a2ef204298bc1eeee29d127","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.3.0.tgz","integrity":"sha512-GWrf1XglDyhLLop5nRn4Ry3acLredc7gwIvgf/eIToHRnOuw9GMgXUiLQeH70utD4Eq5S9xocerMRnLxhP7lEw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCeC8AbIRYPGzXkyBGO67kxpIBZzX0h8ouVbNNwS9lhiQIgORnFXk3nNCqAF440T3vykuF5Yz2HQCycTyPYozYQi+g="}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"}],"directories":{}},"0.3.1":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.3.1","engines":{"node":"*"},"dependencies":{"async":"=0.2.8","mario":"=1.4.1","memoizeasync":"=0.0.1","memoizesync":"=0.0.1","mime":"=1.2.7","passerror":"=0.0.1","underscore":"=1.3.3"},"devDependencies":{"expect.js":"=0.2.0","express":"=2.5.11","mocha":"=1.7.4"},"main":"lib/expressNegotiator.js","_id":"express-negotiator@0.3.1","dist":{"shasum":"ec62d16a37c9ef6a1b74fffe0cfc505f7f544057","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.3.1.tgz","integrity":"sha512-AbOm0LQSx1lvLgdLfnHA9yav2CKADgFhlME94KilxqIOlO9VJAfGnIsz4ecMa9Wrv+14TVtaRZgcoGQezrkqfA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5wkNATj0wg0VNiUwcstYFRUMyZYUQUWdQ3c2kfoQR3AIhAOGGCsGISbUNLeHbYHmBHos7040APF/VkHOwbTHj8gTx"}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"}],"directories":{}},"0.4.0":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.4.0","engines":{"node":"*"},"dependencies":{"async":"=0.2.8","mario":"=1.4.1","memoizeasync":"=0.3.0","memoizesync":"=0.2.0","mime":"=1.2.7","passerror":"=0.0.1","underscore":"=1.3.3"},"devDependencies":{"express":"=2.5.11","mocha":"=1.13.0","unexpected":"=1.0.1"},"main":"lib/expressNegotiator.js","_id":"express-negotiator@0.4.0","dist":{"shasum":"cd6ca436bb1d470b71132159029c3deaaf5fc2e1","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.4.0.tgz","integrity":"sha512-MqI6U3SYhLVPMqgKEBr0v3l+ddDG2JIhgfEIG++0BIoRHeJ3nbhjRojiUJ0LPhdVQzZj2Ps/8ywlCboCKFkYYA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDB0JH5XIjOV4tEE/uhLsb6FK4PndYkutT3SD0bVmSVgAIhANIMMuYQokQjeMm37orlPipAuDKoKBgY2Y/ZzaLm1AIB"}]},"_from":".","_npmVersion":"1.2.10","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"}],"directories":{}},"0.4.1":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.4.1","engines":{"node":"*"},"dependencies":{"async":"=0.2.8","mario":"=1.4.1","memoizeasync":"=0.3.0","memoizesync":"=0.2.0","mime":"=1.2.7","passerror":"=0.0.1","underscore":"=1.3.3"},"devDependencies":{"express":"=2.5.11","mocha":"=1.13.0","unexpected":"=1.0.1"},"main":"lib/expressNegotiator.js","_id":"express-negotiator@0.4.1","dist":{"shasum":"6332d2e6134af4c6efd713cafe4639d7ae6f8067","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.4.1.tgz","integrity":"sha512-A372NhE3Ier7ShqPEobTyiLu/L9ePKWxlJuq7QlbOsxWpMB9li0Hi2DMWY9ERyDdRcVG4y3BysbprY/5vW58pg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFeiQnXznm/Zam3htGhkpFv3mLEM+jAOTzQZV49YcZ53AiEAjcf1OeHeREIl0KqV7FCK66+NLu079QHLrjd3yDn3kLI="}]},"_from":".","_npmVersion":"1.2.10","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"}],"directories":{}},"0.4.2":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.4.2","engines":{"node":"*"},"dependencies":{"async":"=0.2.8","mario":"=1.4.1","memoizeasync":"=0.3.0","memoizesync":"=0.2.0","mime":"=1.2.7","passerror":"=0.0.1","underscore":"=1.3.3"},"devDependencies":{"express":"=2.5.11","mocha":"=1.13.0","unexpected":"=1.0.1"},"main":"lib/expressNegotiator.js","scripts":{"test":"mocha -R spec","travis":"npm test"},"_id":"express-negotiator@0.4.2","dist":{"shasum":"e6739fb8a43a27d33e8e1d835ff67a196260824c","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.4.2.tgz","integrity":"sha512-taSONmaIDX1EAYX/+nTegvrDFfAdTVuo3EBvLn3yDmGYPJEhA0qcTTKUDqsjAtvI13ydGYGZHTO0TQN9CT19pg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDY2mG0r/vb9i3AmyE6ODj6OVekSGRyFBhFuY4EozRQjQIhALKFJQ6YXNoRJhmMu+lJ3H0oEjBghJpojRPq/hehpznc"}]},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"}],"directories":{}},"0.4.3":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.4.3","engines":{"node":"*"},"dependencies":{"async":"=0.2.8","mario":"=1.4.1","memoizeasync":"=0.3.0","memoizesync":"=0.2.0","mime":"=1.2.7","passerror":"=0.0.1","underscore":"=1.3.3"},"devDependencies":{"express":"=2.5.11","mocha":"=1.13.0","unexpected":"=1.0.1"},"main":"lib/expressNegotiator.js","scripts":{"test":"mocha -R spec","travis":"npm test"},"_id":"express-negotiator@0.4.3","dist":{"shasum":"c712d2774c86683b458a954967c6f9bc4fa75de8","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.4.3.tgz","integrity":"sha512-t5LdMTSojQ3+GTtLk2CSgrhfi+QiP93r189MmTQ2UYDvvr7wGBiM4MvmQEdL0S7zcBWWU6klHTomQ8vjEHRqNQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCH1xjTfa9KgB0Kq6A9bOsDTeyPqOBJsTAwGIrwyFXkdoCIQDups5rWHlHSC7rXAxn7x9PHXPeOy2qDoLr/ahg/P3MCQ=="}]},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"}],"directories":{}},"0.4.4":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.4.4","engines":{"node":"*"},"dependencies":{"async":"=0.2.8","mario":"=1.4.1","memoizeasync":"=0.3.0","memoizesync":"=0.2.0","mime":"=1.2.7","passerror":"=0.0.1","underscore":"=1.3.3"},"devDependencies":{"express":"=2.5.11","mocha":"=1.13.0","unexpected":"=1.0.1"},"main":"lib/expressNegotiator.js","scripts":{"test":"mocha -R spec","travis":"npm test"},"_id":"express-negotiator@0.4.4","dist":{"shasum":"402f50e6e7f3843081f6eb9fd1d26de2b22ca0bf","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.4.4.tgz","integrity":"sha512-/BwKxx9wZRJPUUyNfh8WrVKpMMGqLiyigED9rmeaw9nF+gAkTyWrZEz+5dG2GanI8IqTQfmOFXlHf8D/kT67Kw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBtachGUztdtQrsZ5yU56dHQnHX3EQwEiUU0Lpe6x7nLAiEA9xFryL/3JTnjlbVnYiMYuMxKJbjalDqtW/gdqB+Y0s4="}]},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"}],"directories":{}},"0.4.5":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.4.5","engines":{"node":"*"},"dependencies":{"async":"=0.2.8","mario":"=1.4.1","memoizeasync":"=0.3.0","memoizesync":"=0.2.0","mime":"=1.2.7","passerror":"=0.0.1","underscore":"=1.3.3"},"devDependencies":{"express":"=2.5.11","mocha":"=1.13.0","unexpected":"=1.0.1"},"main":"lib/expressNegotiator.js","scripts":{"test":"mocha -R spec","travis":"npm test"},"_id":"express-negotiator@0.4.5","dist":{"shasum":"ef334c09862ecdc973872ef4e0f7ec655f083a40","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.4.5.tgz","integrity":"sha512-xTxwQ/EzC022n/v8+8//9I0loIdZ8TSTihO8w9VpJXWOStkt3+JEtlx97WPIzWg5qOqumbrWGqZrGK1e4S56+g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBIkNer6RpYt0SRZcHVc3qgmby3ujA0YpRY9peTJ5A2TAiEAnT/WS2OJ14d2xD/JfnlRgSBtLWIntfEcByQaBASfaog="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"maartenwinter","email":"maarten@mwinter.nl"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"},{"name":"maartenwinter","email":"maarten@mwinter.nl"}],"directories":{}},"0.4.6":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.4.6","engines":{"node":"*"},"dependencies":{"async":"=0.2.8","mario":"=1.4.1","memoizeasync":"=0.3.0","memoizesync":"=0.2.0","mime":"=1.2.7","passerror":"=0.0.1","underscore":"=1.3.3"},"devDependencies":{"express":"=2.5.11","mocha":"=1.13.0","unexpected":"=1.0.1"},"main":"lib/expressNegotiator.js","scripts":{"test":"mocha -R spec","travis":"npm test"},"_id":"express-negotiator@0.4.6","dist":{"shasum":"bf6c1f610bb7948584ceba3ccaec197096111685","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.4.6.tgz","integrity":"sha512-0QVuyDsaGW2KLlshhwJ0StoywGyOitXu+wxrKQlLQzedW4Q5Y4Ne52/ccL5Mjc0AlK7uRjNfzQEpC6154i3RsQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEIMjeuVx1uEYDTNAq3ojplPXD47U58spLsmYABHH+UvAiAPnZJfpFAKaebQc5ouD3CHsuy6LFybbgrexBwfy2EuHA=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"maartenwinter","email":"maarten@mwinter.nl"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"},{"name":"maartenwinter","email":"maarten@mwinter.nl"}],"directories":{}},"0.4.7":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.4.7","engines":{"node":"*"},"dependencies":{"async":"=0.2.8","mario":"=1.4.1","memoizeasync":"=0.3.0","memoizesync":"=0.2.0","mime":"=1.2.7","passerror":"=0.0.1","underscore":"=1.3.3"},"devDependencies":{"express":"=2.5.11","mocha":"=1.13.0","unexpected":"=1.0.1"},"main":"lib/expressNegotiator.js","scripts":{"test":"mocha -R spec","travis":"npm test"},"gitHead":"7cbcfc914876b922fe1b31232677c27c6da8f522","_id":"express-negotiator@0.4.7","_shasum":"9a1d7b937b94e093f658fbad2561ee763ddf867d","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"maintainers":[{"name":"papandreou","email":"andreas@one.com"},{"name":"maartenwinter","email":"maarten@mwinter.nl"}],"dist":{"shasum":"9a1d7b937b94e093f658fbad2561ee763ddf867d","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.4.7.tgz","integrity":"sha512-KHwhbN2tToc/1NlQecAO4qUh8+usRMfKfvIJZcGQlb96y1ebK7pwkToqoljKtyHdxKo96QLOvkPih0MkxiR8iA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICdrywgYOwHlqcC+fm1Al5MJVGPt9+rEsURCwupw6VlWAiEA4Smp0cXZgA4n5u9kON5FxFxFUTUWeiKxYZTrwT/mGqI="}]},"directories":{}},"0.4.8":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.4.8","engines":{"node":"*"},"dependencies":{"async":"=0.2.8","mario":"=1.4.1","memoizeasync":"=0.3.0","memoizesync":"=0.2.0","mime":"=1.2.7","passerror":"=0.0.1","underscore":"=1.3.3"},"devDependencies":{"express":"=2.5.11","mocha":"=1.13.0","unexpected":"=1.0.1"},"main":"lib/expressNegotiator.js","scripts":{"test":"mocha -R spec","travis":"npm test"},"gitHead":"7ec70bfb3eaee77f62b3e29e46833aeadcbc3f81","_id":"express-negotiator@0.4.8","_shasum":"7ca40af602508065bd6bef604423037e7ede4b5e","_from":".","_npmVersion":"2.14.2","_nodeVersion":"0.10.40","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"dist":{"shasum":"7ca40af602508065bd6bef604423037e7ede4b5e","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.4.8.tgz","integrity":"sha512-a8OGb5Qdl38jNIsKOUs1uXPc+2zBFFeK5ZTFxOb/yPtS8/tJ2P0L6NFAetml5z4Fs8pD/4ErXcXnARniDwT1jw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfPGWV/WxPCaHrFvEOaS0ZbaiC+qgviWZT1tl+icQ10gIgYyQE/7WakN9J3Gb8+5OncTEKHuEC31kA0tcNdwkZr9U="}]},"maintainers":[{"name":"papandreou","email":"andreas@one.com"},{"name":"maartenwinter","email":"maarten@mwinter.nl"}],"directories":{}},"0.5.0":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"0.5.0","engines":{"node":"*"},"dependencies":{"async":"0.2.8","mario":"1.4.1","memoizeasync":"0.9.0","memoizesync":"0.5.0","mime":"1.2.7","passerror":"0.0.1","underscore":"1.3.3"},"devDependencies":{"express":"2.5.11","mocha":"1.13.0","unexpected":"1.0.1"},"main":"lib/expressNegotiator.js","scripts":{"test":"mocha -R spec","travis":"npm test"},"gitHead":"95e94a0eb40c996aafba3191d1d55b17f9fa1bc2","_id":"express-negotiator@0.5.0","_shasum":"d1b8a0b0e86c9477945852bbb77899c04818e36a","_from":".","_npmVersion":"2.14.19","_nodeVersion":"0.10.42","_npmUser":{"name":"papandreou","email":"andreas@one.com"},"dist":{"shasum":"d1b8a0b0e86c9477945852bbb77899c04818e36a","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-0.5.0.tgz","integrity":"sha512-19kU/3jS2tNtnBrti4z/JDvEhGK4I1sndjcDwIJcr1PZKTmgKvW7mCwEdpA5c2yMovFyNzll/9QaaFiyBgTZ8g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyW7kZql9Dy22MWzu1l1Oj0DTI/j11+gnKYEJB6sK4ywIgAt/Vk2zhoyqsOPumASszIdW8KMLLIVtfwE4Z9oVAbe0="}]},"maintainers":[{"name":"papandreou","email":"andreas@one.com"},{"name":"maartenwinter","email":"maarten@mwinter.nl"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/express-negotiator-0.5.0.tgz_1461920858166_0.36700824927538633"},"directories":{}},"1.0.0":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"1.0.0","engines":{"node":"*"},"dependencies":{"async":"0.2.8","mario":"1.8.0","memoizeasync":"0.9.0","memoizesync":"0.5.0","mime":"1.2.7","passerror":"0.0.1","underscore":"1.3.3"},"devDependencies":{"express":"2.5.11","mocha":"1.13.0","unexpected":"^10.26.3"},"main":"lib/expressNegotiator.js","scripts":{"test":"mocha -R spec","travis":"npm test"},"gitHead":"e3ed2f7959d45a18b58a256610fef8e51f108d46","_id":"express-negotiator@1.0.0","_shasum":"08f37ddbd887938b4ee169d6fa4c38227d940202","_from":".","_npmVersion":"4.3.0","_nodeVersion":"6.3.0","_npmUser":{"name":"moubi","email":"miroslavnikolov@ymail.com"},"dist":{"shasum":"08f37ddbd887938b4ee169d6fa4c38227d940202","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-1.0.0.tgz","integrity":"sha512-hjfTk7JFy1yNMl/ziwFw31CdvapgqebmM4xQusS9TkdPk4KfFOQHjTDSo5NZplWdxWvkF3oG2fe9cv0/5xBAjw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDQJqRa7Zn1WyU5J8sf+tz/6QjbYj4tsL8fLd/5VQP5UAiEAzFpmlkDAwBJ1elg6WyotSZoTE8r7oblBjBvry78TyOY="}]},"maintainers":[{"email":"miroslavnikolov@ymail.com","name":"moubi"},{"email":"gustavnikolaj@gmail.com","name":"gustavnikolaj"},{"email":"mail@mwinter.nl","name":"maartenwinter"},{"email":"andreas@one.com","name":"papandreou"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-negotiator-1.0.0.tgz_1509978297808_0.5539295976050198"},"directories":{}},"1.1.0":{"name":"express-negotiator","description":"Express/connect middleware that does HTTP content negotiation for static files","author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"version":"1.1.0","engines":{"node":"*"},"dependencies":{"async":"0.2.8","mario":"1.8.0","memoizeasync":"0.9.0","memoizesync":"0.5.0","mime":"1.2.7","passerror":"0.0.1","underscore":"^1.13.6"},"devDependencies":{"express":"2.5.11","mocha":"^10.2.0","unexpected":"^10.26.3"},"main":"lib/expressNegotiator.js","scripts":{"test":"mocha -R spec","travis":"npm test"},"gitHead":"b29581ce68ba3ac11b34e497ddbb4267a65cab54","_id":"express-negotiator@1.1.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-aA+GvF1qz+XPJ8k/u/P115oiKwakZJCoodudZFccs9u4AjQHwD15SBsWVvyAlhR+LFIjHTbrk5AMtoRmwpWHUQ==","shasum":"5c87f343b15c3e5be20b540b4079ff659026fe30","tarball":"https://registry.npmjs.org/express-negotiator/-/express-negotiator-1.1.0.tgz","fileCount":42,"unpackedSize":41672,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFSvRqOnCko3PBWpq28/nQCKsabw0zWmZfP+FEcXeK1oAiBDV27xaY700OZFbNrPkkaYEEtIOQCS5Vw6bJ5VQAeXhw=="}]},"_npmUser":{"name":"prashantrathi","email":"prashant.8579@gmail.com"},"directories":{},"maintainers":[{"name":"papandreou","email":"andreaslindpetersen@gmail.com"},{"name":"maartenwinter","email":"mail@mwinter.nl"},{"name":"gustavnikolaj","email":"gustavnikolaj@gmail.com"},{"name":"moubi","email":"miroslavnikolov@ymail.com"},{"name":"prashantrathi","email":"prashant.8579@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-negotiator_1.1.0_1705400712247_0.1860446087660741"},"_hasShrinkwrap":false}},"readme":"express-negotiator\n==================\n\nExpress/connect middleware for doing content negotiation with static\nfiles on disc. Heavily inspired by Apache's <a\nhref=\"http://httpd.apache.org/docs/2.2/mod/mod_negotiation.html\">mod_negotiation</a>.\n\nNegotiator rewrites `req.url` to the negotiated file name based on\nthese factors (in descending order of importance):\n\n* Whether `req.url` matches a file name on disc exactly\n* The `locale` GET parameter\n* The value of a locale cookie (optional, specified by `options.cookieName`)\n* The `Accept-Language` and `Accept` headers\n\n... and of course the availability of suitable files on disc. If no\nacceptable match is found, `req.url` is left untouched.\n\nLike `mod_negotiation`, `express-negotiator` interprets the extensions\nof the files on disc as an unordered set. A file called `foo.html.fr`\nwould be treated the same as one called `foo.fr.html` except when the\nrequest url specifies an exact match.\n\nThe negotiator middleware is intended to run right before `static`\npointed at the same directory as `options.root`.\n\nIf `options.cookieName` is specified, the `cookieParser` middleware\nmust also be in the middleware chain.\n\n\nConditional requests\n====================\n\nWhen the url is rewritten, negotiator sets the ETag header to the same\nvalue as the `static` middleware would\n(`\"<size>-<modificationTime>\"`), but with the negotiated Content-Type\nand locale id bits suffixed. This prevents false positive 304\nresponses with `If-None-Match` when the same client (or reverse proxy)\nrequests the same url later with different headers (eg. after a locale\ncookie change). That would happen if the files happened to have the\nsame size and modification times.\n\nAlso, the `If-Modified-Since` header is removed since that would cause\nthe `static` middleware to reply `304 Not Modified` in similar\nsituations. ETags are a superior concept anyway.\n\nInstallation\n============\n\nMake sure you have <a href=\"http://nodejs.org/\">node.js</a> and <a\nhref=\"http://npmjs.org/\">npm</a> installed, then run:\n\n```\n$ npm install express-negotiator\n```\n\nExample usage\n=============\n\n```javascript\nvar express = require('express'),\n    negotiator = require('express-negotiator'),\n    root = '/path/to/static/files',\n    app = express.createServer();\n\napp\n    .use(express.cookieParser())\n    .use(negotiator({root: root, cookieName: 'mycookie'}))\n    .use(express.static(root))\n    .listen(1337);\n```\n\nIf the root dir contains the files `index.en.html`, `index.da.html`,\nand `foo.png` these example requests would be rewritten as follows:\n\n```\nGET / HTTP/1.1\nAccept: text/html\nAccept-Language: en\n\n=> /index.en.html\nResponse ETag: \"<size>-<modificationTime>-text/html-en\"\n```\n\n```\nGET /?locale=da HTTP/1.1\nAccept: text/html\nAccept-Language: en\n\n=> /index.da.html\nResponse ETag: \"<size>-<modificationTime>-text/html-da\"\n```\n\n```\nGET /index HTTP/1.1\nCookie: mycookie=da\nAccept: text/html\nAccept-Language: en\n\n=> /index.da.html\nResponse ETag: \"<size>-<modificationTime>-text/html-da\"\n```\n\n```\nGET /foo HTTP/1.1\nAccept: image/*\n\n=> /foo.png\nResponse ETag: \"<size>-<modificationTime>-image/png\"\n```\n\nSee the test suite for more examples.\n\nLicense\n=======\n\nexpress-negotiator is licensed under a standard 3-clause BSD license\n-- see the `LICENSE` file for details.\n","maintainers":[{"name":"papandreou","email":"andreaslindpetersen@gmail.com"},{"name":"maartenwinter","email":"mail@mwinter.nl"},{"name":"gustavnikolaj","email":"gustavnikolaj@gmail.com"},{"name":"moubi","email":"miroslavnikolov@ymail.com"},{"name":"prashantrathi","email":"prashant.8579@gmail.com"}],"time":{"modified":"2024-01-16T10:25:12.527Z","created":"2012-11-04T22:32:50.266Z","0.0.1":"2012-11-04T22:32:52.448Z","0.1.0":"2013-01-10T13:06:56.701Z","0.2.0":"2013-04-09T11:04:19.554Z","0.2.1":"2013-04-09T12:17:32.948Z","0.2.2":"2013-04-09T12:38:03.370Z","0.2.3":"2013-04-09T12:49:52.073Z","0.2.4":"2013-04-10T13:25:34.987Z","0.2.5":"2013-05-01T11:26:28.061Z","0.2.6":"2013-05-01T12:48:59.657Z","0.2.7":"2013-06-26T06:59:09.959Z","0.2.8":"2013-07-01T09:21:27.817Z","0.3.0":"2013-07-18T11:28:03.358Z","0.3.1":"2013-08-01T15:55:23.634Z","0.4.0":"2013-09-19T10:02:10.618Z","0.4.1":"2013-09-19T12:17:39.518Z","0.4.2":"2014-04-03T06:50:23.324Z","0.4.3":"2014-04-03T07:43:22.299Z","0.4.4":"2014-04-09T09:20:00.640Z","0.4.5":"2014-05-15T13:18:37.399Z","0.4.6":"2014-05-30T08:35:53.507Z","0.4.7":"2015-05-21T08:09:14.377Z","0.4.8":"2015-12-16T16:12:48.388Z","0.5.0":"2016-04-29T09:07:39.216Z","1.0.0":"2017-11-06T14:24:57.890Z","1.1.0":"2024-01-16T10:25:12.373Z"},"author":{"name":"Andreas Lind Petersen","email":"andreas@one.com"},"keywords":["http","content negotiation","connect","accept","accept-language","cookie","express","localization","l10n","internationalization","i18n","locale","content-type","content type","html","static","extension","mime"],"readmeFilename":"README.md","users":{"snowdream":true}}