{"_id":"csrf","_rev":"76-04ca8d048ffdbda15ff3b2b730abdf2b","name":"csrf","dist-tags":{"latest":"3.1.0"},"versions":{"0.0.1":{"name":"csrf","version":"0.0.1","keywords":["middleware","ipwhitelist","ip whilelist","csrf"],"author":{"name":"Michael Schonfeld","email":"michael@dwolla.com"},"_id":"csrf@0.0.1","maintainers":[{"name":"dwolla","email":"michael@dwolla.com"}],"dist":{"shasum":"f1eaebd39972dc57829068e8d8921af0371e2b02","tarball":"https://registry.npmjs.org/csrf/-/csrf-0.0.1.tgz","integrity":"sha512-B7Epsy9WHaaY2eMz4lN80m09mkAGSOByzYWhF4YqQ1RyuqpQmo7vje/dVGKXt2vvVdElJ/GhgigRhjgToCLvag==","signatures":[{"sig":"MEUCICzSFATzVl4IbAJ/vNXuZBzZBGu+w2g8K6dZv7lHJrtTAiEA57ofTLxtCLs0yfz5mXOUU+C7c7Kaqf5iruhWw9yz8dQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"engines":{"node":"*"},"_npmUser":{"name":"dwolla","email":"michael@dwolla.com"},"repository":{"url":"git://github.com/dwolla/node-csrf.git","type":"git"},"_npmVersion":"1.1.16","description":"Light-weight CSRF protection middleware with IP whitelisting","directories":{},"_nodeVersion":"v0.6.18","dependencies":{"connect":"1.x","underscore":"1.3.3"},"_defaultsLoaded":true,"devDependencies":{},"_engineSupported":true,"optionalDependencies":{}},"0.0.2":{"name":"csrf","version":"0.0.2","keywords":["middleware","ipwhitelist","ip whilelist","csrf"],"author":{"name":"Michael Schonfeld","email":"michael@dwolla.com"},"license":"BSD","_id":"csrf@0.0.2","maintainers":[{"name":"dwolla","email":"michael@dwolla.com"}],"contributors":[{"url":"http://wookiehangover.com","name":"Sam Breed","email":"sam@quickleft.com"}],"dist":{"shasum":"64be34b7b17fed9f9bba6888e29c68e87b820506","tarball":"https://registry.npmjs.org/csrf/-/csrf-0.0.2.tgz","integrity":"sha512-MBIGdU2S/FUMbExF+LncOMEGLwosc6d6X5tYHQ3y16cdJP5kKjYLJZW4/v09rHM2D+q9NboEFnmDKPi5BAADqQ==","signatures":[{"sig":"MEQCIEI22WZkwelrpSz48V+mU2/OqZSLGX4qSpUe6MyTGWdRAiAvvnl3I+9Ll6itsDbu3JT/yv7CKHXUm072OA5HcIAv3w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","engines":{"node":"*"},"scripts":{"test":"mocha"},"_npmUser":{"name":"dwolla","email":"michael@dwolla.com"},"repository":{"url":"git://github.com/dwolla/node-csrf.git","type":"git"},"_npmVersion":"1.1.16","description":"Light-weight CSRF protection middleware with IP whitelisting","directories":{},"_nodeVersion":"v0.6.18","dependencies":{"underscore":"1.3.3"},"_defaultsLoaded":true,"devDependencies":{"mocha":"~1.4.2"},"_engineSupported":true,"optionalDependencies":{}},"0.0.3":{"name":"csrf","version":"0.0.3","keywords":["middleware","ipwhitelist","ip whilelist","csrf"],"author":{"name":"Michael Schonfeld","email":"michael@dwolla.com"},"license":"BSD","_id":"csrf@0.0.3","maintainers":[{"name":"dwolla","email":"michael@dwolla.com"}],"contributors":[{"url":"http://wookiehangover.com","name":"Sam Breed","email":"sam@quickleft.com"}],"dist":{"shasum":"1bf10ade4bd4ff2db3a7bda2c28c4fc8c30a212e","tarball":"https://registry.npmjs.org/csrf/-/csrf-0.0.3.tgz","integrity":"sha512-xUHJjtIc30GNvtsFSSfQWxc+mCbu4HBwH7ADymcMG53x/ns+LlatxdgGVs0AqvjcBce600pqWORyMO4Z0EANiw==","signatures":[{"sig":"MEQCIGSYA9qnSkQO801FyxICc1sodFO7P2KMKyLHyYPLDy//AiBn+KXaCuw5KrIWecBIRvrSHxmdQ2C0vFhWUYpR2qwlwQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","engines":{"node":"*"},"scripts":{"test":"mocha"},"_npmUser":{"name":"dwolla","email":"michael@dwolla.com"},"repository":{"url":"git://github.com/dwolla/node-csrf.git","type":"git"},"_npmVersion":"1.1.16","description":"Light-weight CSRF protection middleware with IP whitelisting","directories":{},"_nodeVersion":"v0.6.18","dependencies":{"crypto":"0.0.3","underscore":"1.3.3"},"_defaultsLoaded":true,"devDependencies":{"mocha":"~1.4.2"},"_engineSupported":true,"optionalDependencies":{}},"2.0.1":{"name":"csrf","version":"2.0.1","keywords":["csrf","tokens"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"csrf@2.0.1","maintainers":[{"name":"dwolla","email":"michael@dwolla.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"}],"homepage":"https://github.com/pillarjs/csrf","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"dist":{"shasum":"d673a2efb4db7d0e6805dadd838c57e30ae0ee73","tarball":"https://registry.npmjs.org/csrf/-/csrf-2.0.1.tgz","integrity":"sha512-xp2dQNEmQLBb/fEDolpDpCsnDk01ysB0+R79MHkqen5mpmOT4sg/6OgP6aKO2UHoYoyGz7k/yDEZ4/V3656j2A==","signatures":[{"sig":"MEQCIG+I+BzhK5QZOsxrAA1aFfRd38IAYtdk+DvOX+MLaTybAiAXbcMjvj1V+PBmFeZsl/Wqcb0irUBZYa2VVqMyUfYa+w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_shasum":"d673a2efb4db7d0e6805dadd838c57e30ae0ee73","gitHead":"d23024ade7607942a2236ec0ae5903396f610db0","scripts":{"test":"mocha --reporter spec","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot"},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"repository":{"url":"https://github.com/pillarjs/csrf","type":"git"},"_npmVersion":"1.4.21","description":"primary logic behind csrf tokens","directories":{},"dependencies":{"rndm":"~1.0.0","scmp":"0.0.3","uid-safe":"~1.0.1","base64-url":"1.0.0"},"devDependencies":{"mocha":"1","bluebird":"2","istanbul":"0"}},"2.0.2":{"name":"csrf","version":"2.0.2","keywords":["csrf","tokens"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"csrf@2.0.2","maintainers":[{"name":"dwolla","email":"michael@dwolla.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"dougwilson","email":"doug@somethingdoug.com"}],"homepage":"https://github.com/pillarjs/csrf","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"dist":{"shasum":"d8d3f1f83705b0acc5ed8995b4eadf4a921959f5","tarball":"https://registry.npmjs.org/csrf/-/csrf-2.0.2.tgz","integrity":"sha512-yXMwZAVpk/9sEkpVIbzQMSSPuDHeYOfWyZgpCgjHUAdpdWMliFoq66UXY5ryo0uENuSXohArPDCFEPpo7+oU8g==","signatures":[{"sig":"MEUCIQChm+OrckoCTqigoKKNAdv1cJci0d+rLYUU+f6F43cKzgIgFi7eUYM0x9hIn/Ao/UuoBH5eHRVWG0wzCxvjBuQc8JE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["LICENSE","HISTORY.md","README.md","index.js"],"_shasum":"d8d3f1f83705b0acc5ed8995b4eadf4a921959f5","engines":{"node":">= 0.8"},"gitHead":"ab8563d0d7abb004f086a0830d5466b30cd44f39","scripts":{"test":"mocha --reporter spec","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot"},"_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"repository":{"url":"https://github.com/pillarjs/csrf","type":"git"},"_npmVersion":"1.4.21","description":"primary logic behind csrf tokens","directories":{},"dependencies":{"rndm":"~1.0.0","scmp":"1.0.0","uid-safe":"~1.0.1","base64-url":"1.0.0"},"devDependencies":{"mocha":"~2.0.1","bluebird":"2","istanbul":"0"}},"2.0.3":{"name":"csrf","version":"2.0.3","keywords":["csrf","tokens"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"csrf@2.0.3","maintainers":[{"name":"dwolla","email":"michael@dwolla.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"dougwilson","email":"doug@somethingdoug.com"}],"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"homepage":"https://github.com/pillarjs/csrf","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"dist":{"shasum":"d41a86b72976396be7d6f470a77167ae913fb64d","tarball":"https://registry.npmjs.org/csrf/-/csrf-2.0.3.tgz","integrity":"sha512-X+JoXV8yVnVpP8QRTRNtwL2DnWxPf9/FwVQxV/unDq6n49azo5oBOqqG/46BvoZ9Dy8Od9QyhXa5kE+ShjhZ5Q==","signatures":[{"sig":"MEQCIHyTWfPO+SwzQCmo0QEsVHp6FaUABL2RtOaNwKzpK91wAiB91Rtru4uiao+tbfuH5CTHMF81fH1ziNGkudhBTo2mGQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["LICENSE","HISTORY.md","README.md","index.js"],"_shasum":"d41a86b72976396be7d6f470a77167ae913fb64d","engines":{"node":">= 0.8"},"gitHead":"947966e5947c0529d3518e7fdd913bcc20617f25","scripts":{"test":"mocha --reporter spec","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot"},"_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"repository":{"url":"https://github.com/pillarjs/csrf","type":"git"},"_npmVersion":"1.4.28","description":"primary logic behind csrf tokens","directories":{},"dependencies":{"rndm":"~1.1.0","scmp":"1.0.0","uid-safe":"~1.0.1","base64-url":"1.1.0"},"devDependencies":{"mocha":"~2.1.0","bluebird":"~2.5.3","istanbul":"0.3.5"}},"2.0.4":{"name":"csrf","version":"2.0.4","keywords":["csrf","tokens"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"csrf@2.0.4","maintainers":[{"name":"dwolla","email":"michael@dwolla.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"dougwilson","email":"doug@somethingdoug.com"}],"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"homepage":"https://github.com/pillarjs/csrf","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"dist":{"shasum":"4366ddea0e08924aa324b4c7cf5649e413891f46","tarball":"https://registry.npmjs.org/csrf/-/csrf-2.0.4.tgz","integrity":"sha512-eYsvpluMwVhkxElVkYVERA4liP39tDv0o9Lkg9ZjWaX8ddLY4zUbeWbpkSg5wRSvsp/TY7JsW7V1oMlVF5+BTA==","signatures":[{"sig":"MEQCIAqxnaBKnpL2usD7tG6L7xkUv9PDAd5Wfh59/sJ04elSAiBNaWFp+bBjM7M/5R36Zvf4eN1xeGRzYQFiLCuAhUSFhA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["LICENSE","HISTORY.md","README.md","index.js"],"_shasum":"4366ddea0e08924aa324b4c7cf5649e413891f46","engines":{"node":">= 0.8"},"gitHead":"1fe601b8cbcfab68a6ac5d8c7c59d8ffb91b383f","scripts":{"test":"mocha --reporter spec","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot"},"_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"repository":{"url":"https://github.com/pillarjs/csrf","type":"git"},"_npmVersion":"1.4.28","description":"primary logic behind csrf tokens","directories":{},"dependencies":{"rndm":"~1.1.0","scmp":"1.0.0","uid-safe":"~1.0.2","base64-url":"1.1.0"},"devDependencies":{"mocha":"~2.1.0","bluebird":"~2.6.2","istanbul":"0.3.5"}},"2.0.5":{"name":"csrf","version":"2.0.5","keywords":["csrf","tokens"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"csrf@2.0.5","maintainers":[{"name":"dwolla","email":"michael@dwolla.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"dougwilson","email":"doug@somethingdoug.com"}],"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"homepage":"https://github.com/pillarjs/csrf","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"dist":{"shasum":"ffac90cf55269036d447008b47d2ef33929c0225","tarball":"https://registry.npmjs.org/csrf/-/csrf-2.0.5.tgz","integrity":"sha512-dFXhImoSKakNyvQQZl1yz6P5wz50YJu69CHMZqgu3ge5O5WfuS/LrURrMz/Ebnoeq70riQjVv4AVGmVetslt6Q==","signatures":[{"sig":"MEQCIDVg+EK9+onrTQgQZ4LhRt2r87/61jbts3UT4BYjbaVmAiAUbCQTocFlzrCDI8rxgHRlE2zJHD+KSkrUem/cOAcnHw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["LICENSE","HISTORY.md","README.md","index.js"],"_shasum":"ffac90cf55269036d447008b47d2ef33929c0225","engines":{"node":">= 0.8"},"gitHead":"7b8ae40060e832400c7c0ba762cb27609c15384c","scripts":{"test":"mocha --reporter spec","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot"},"_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"repository":{"url":"https://github.com/pillarjs/csrf","type":"git"},"_npmVersion":"1.4.28","description":"primary logic behind csrf tokens","directories":{},"dependencies":{"rndm":"~1.1.0","scmp":"1.0.0","uid-safe":"~1.0.3","base64-url":"1.2.0"},"devDependencies":{"mocha":"~2.1.0","bluebird":"~2.9.4","istanbul":"0.3.5"}},"2.0.6":{"name":"csrf","version":"2.0.6","keywords":["csrf","tokens"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"csrf@2.0.6","maintainers":[{"name":"dwolla","email":"michael@dwolla.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"dougwilson","email":"doug@somethingdoug.com"}],"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"homepage":"https://github.com/pillarjs/csrf","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"dist":{"shasum":"a90a9d88fc7411423cb0c5c13e901a8cc588132e","tarball":"https://registry.npmjs.org/csrf/-/csrf-2.0.6.tgz","integrity":"sha512-4ewdXG16+uMpq4HCCP/kENlXWaVZOMkVQkzZRjmQKUy4LufT4tnapewzXzLxnR9oMFxTPPuLfUcHm2gTdZOZqA==","signatures":[{"sig":"MEUCIG3kSDVhmICGgKuO9xXKQYT5ehx/LW7FVPo1fsYOVtKOAiEA1z+omjcNXM/qio2DlpcZSBjcvqYUaySI8lLF2+WFp1c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["LICENSE","HISTORY.md","README.md","index.js"],"_shasum":"a90a9d88fc7411423cb0c5c13e901a8cc588132e","engines":{"node":">= 0.8"},"gitHead":"b2f30cefab349bad642f9f8fa0e65f3a157d545b","scripts":{"test":"mocha --reporter spec","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot"},"_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"repository":{"url":"https://github.com/pillarjs/csrf","type":"git"},"_npmVersion":"1.4.28","description":"primary logic behind csrf tokens","directories":{},"dependencies":{"rndm":"~1.1.0","scmp":"1.0.0","uid-safe":"~1.1.0","base64-url":"1.2.1"},"devDependencies":{"mocha":"~2.1.0","bluebird":"~2.9.4","istanbul":"0.3.5"}},"2.0.7":{"name":"csrf","version":"2.0.7","keywords":["csrf","tokens"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"csrf@2.0.7","maintainers":[{"name":"dwolla","email":"michael@dwolla.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"dougwilson","email":"doug@somethingdoug.com"}],"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"homepage":"https://github.com/pillarjs/csrf","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"dist":{"shasum":"d04f52e0f6a28a7e2cfe1e01dd5ebc251b3d4201","tarball":"https://registry.npmjs.org/csrf/-/csrf-2.0.7.tgz","integrity":"sha512-AA22oKr4/2k9QxCLXOS/10NcGudOsxj6oRTa6HjW3spZbJJgKaODdOo1AnZSuz1fSdVNmf4ddXPLsBX+PDeLNA==","signatures":[{"sig":"MEUCIQDeIrQpMF6OYiPFyqiq8UvoH2/IxusbxqagJxQbTSCq0gIgXdXGRYKEUwM3/IMgZ6shO8lzWc97BDdTxdI4PRDovJM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["LICENSE","HISTORY.md","README.md","index.js"],"_shasum":"d04f52e0f6a28a7e2cfe1e01dd5ebc251b3d4201","engines":{"node":">= 0.8"},"gitHead":"78ec701a00c7141609bae02c05b36fcbbc1b105a","scripts":{"test":"mocha --reporter spec","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot"},"_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"repository":{"url":"https://github.com/pillarjs/csrf","type":"git"},"_npmVersion":"1.4.28","description":"primary logic behind csrf tokens","directories":{},"dependencies":{"rndm":"~1.1.0","scmp":"1.0.0","uid-safe":"~1.1.0","base64-url":"1.2.1"},"devDependencies":{"mocha":"~2.2.4","bluebird":"2.9.23","istanbul":"0.3.9"}},"3.0.0":{"name":"csrf","version":"3.0.0","keywords":["csrf","tokens"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"csrf@3.0.0","maintainers":[{"name":"dwolla","email":"michael@dwolla.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"dougwilson","email":"doug@somethingdoug.com"}],"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"homepage":"https://github.com/pillarjs/csrf","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"dist":{"shasum":"4a4d34d3c1f8bef9d9b4c596a27efd60d932d83a","tarball":"https://registry.npmjs.org/csrf/-/csrf-3.0.0.tgz","integrity":"sha512-7ZKW8BvPTC/Kp9qUtY3vLy9KHR1YukZFx3ZOeBxhtRKTyXHrSzubolLSqz12y2dqLWvg8jPruD3UkeZhqxt9lg==","signatures":[{"sig":"MEUCIC8c31eiBbff3IFbhBVLCpqWug+/uNe8zq06ka9rWa5sAiEAweTyC/rDUM8Ggx+kJotl5oOv8sQ4erGy7aQgc+jXjGk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["LICENSE","HISTORY.md","README.md","index.js"],"_shasum":"4a4d34d3c1f8bef9d9b4c596a27efd60d932d83a","engines":{"node":">= 0.8"},"gitHead":"fa5f9877abb2991dfaf34ab9d7eb75a0fc9aabf8","scripts":{"test":"mocha --trace-deprecation --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --trace-deprecation --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --trace-deprecation --reporter spec --check-leaks test/"},"_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"repository":{"url":"https://github.com/pillarjs/csrf","type":"git"},"_npmVersion":"1.4.28","description":"primary logic behind csrf tokens","directories":{},"dependencies":{"rndm":"~1.1.0","scmp":"1.0.0","uid-safe":"~2.0.0","base64-url":"1.2.1"},"devDependencies":{"mocha":"~2.2.4","bluebird":"2.9.25","istanbul":"0.3.9"}},"3.0.1":{"name":"csrf","version":"3.0.1","keywords":["csrf","tokens"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"csrf@3.0.1","maintainers":[{"name":"dwolla","email":"michael@dwolla.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"dougwilson","email":"doug@somethingdoug.com"}],"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"homepage":"https://github.com/pillarjs/csrf#readme","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"dist":{"shasum":"985b218d7e2e558ed3d980fa38f694ba682784c2","tarball":"https://registry.npmjs.org/csrf/-/csrf-3.0.1.tgz","integrity":"sha512-6zmjIBrSPksipK/EvUHLazdw+8UBWmtrpIYxl8b6U+qFKU+QdUQfJn1ok0c0IcM+X+MdZy3sJzYus4tfWAGRoA==","signatures":[{"sig":"MEUCIGWmgg5L8XIAxmSwuxahDK6z0y/SFJugaLbd15bTL6F2AiEAmRMMKOUIRahtm95/yCbY/GAStqAiFKYH9bz8sckYtkk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["LICENSE","HISTORY.md","README.md","index.js"],"_shasum":"985b218d7e2e558ed3d980fa38f694ba682784c2","engines":{"node":">= 0.8"},"gitHead":"bfea15ded4793e25d6b65ef51f9e797aca408d3e","scripts":{"test":"mocha --trace-deprecation --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --trace-deprecation --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --trace-deprecation --reporter spec --check-leaks test/"},"_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"repository":{"url":"git+https://github.com/pillarjs/csrf.git","type":"git"},"_npmVersion":"2.14.7","description":"primary logic behind csrf tokens","directories":{},"_nodeVersion":"4.2.3","dependencies":{"rndm":"1.2.0","scmp":"1.0.0","uid-safe":"2.1.0","base64-url":"1.2.1"},"devDependencies":{"mocha":"2.4.4","bluebird":"3.1.5","istanbul":"0.4.2"}},"3.0.2":{"name":"csrf","version":"3.0.2","keywords":["csrf","tokens"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"csrf@3.0.2","maintainers":[{"name":"dougwilson","email":"doug@somethingdoug.com"},{"name":"dwolla","email":"api@dwolla.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"}],"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"homepage":"https://github.com/pillarjs/csrf#readme","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"dist":{"shasum":"3a48b3185406ad22d56bec52a6658526836d9fba","tarball":"https://registry.npmjs.org/csrf/-/csrf-3.0.2.tgz","integrity":"sha512-50rEwkzJaEqEfAhTNBfkNTY3u9zNJUhoxap+pdaZgUNZ82d8bWPL6CHb/0+zOxNu7GdZpdd97wOlh7XnSvwukQ==","signatures":[{"sig":"MEUCIQD0OmEiG+/GyeR20ikCf5nGjda/3+HEm4KlA7eMCUPPrQIgCobcg4ll2qSoXHWvQgwKm6RFyQCgvPWUCXxj4HIxGYo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["LICENSE","HISTORY.md","README.md","index.js"],"_shasum":"3a48b3185406ad22d56bec52a6658526836d9fba","engines":{"node":">= 0.8"},"gitHead":"e9b4449463b64e7b8ca80bf8b418feb22ec42e68","scripts":{"lint":"eslint **/*.js","test":"mocha --trace-deprecation --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --trace-deprecation --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --trace-deprecation --reporter spec --check-leaks test/"},"_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"repository":{"url":"git+https://github.com/pillarjs/csrf.git","type":"git"},"_npmVersion":"2.15.1","description":"primary logic behind csrf tokens","directories":{},"_nodeVersion":"4.4.3","dependencies":{"rndm":"1.2.0","tsscmp":"1.0.2","uid-safe":"2.1.1","base64-url":"1.2.2"},"devDependencies":{"mocha":"2.4.5","eslint":"2.10.2","bluebird":"3.4.0","istanbul":"0.4.3","eslint-plugin-promise":"1.1.0","eslint-config-standard":"5.3.1","eslint-plugin-standard":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/csrf-3.0.2.tgz_1463975761913_0.7939549928996712","host":"packages-16-east.internal.npmjs.com"}},"3.0.3":{"name":"csrf","version":"3.0.3","keywords":["csrf","tokens"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"csrf@3.0.3","maintainers":[{"name":"dougwilson","email":"doug@somethingdoug.com"},{"name":"dwolla","email":"api@dwolla.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"}],"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"homepage":"https://github.com/pillarjs/csrf","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"dist":{"shasum":"69d13220de95762808bb120f7533a994fc4293b5","tarball":"https://registry.npmjs.org/csrf/-/csrf-3.0.3.tgz","integrity":"sha512-dmTIiti7V/77HAIw3xCyVPTawyzC2tTpy8ISwolufoSjXSO3FGsU5A2pgC64KcUkJ+XLk7MiXwwP9LNhkIIb+A==","signatures":[{"sig":"MEQCIF64RhyD0ew8dMejLkIfX0/Xp0JGzmPOGamzbb5RtT4tAiB7XUpO3D3l/Uzh8rCzlGuU/hiJt9qIW9XJ8f1ZyQD6Yg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["LICENSE","HISTORY.md","README.md","index.js"],"_shasum":"69d13220de95762808bb120f7533a994fc4293b5","engines":{"node":">= 0.8"},"gitHead":"dbf7629bbff7ae14dfa7fab1b439e01b5ba3b629","scripts":{"lint":"eslint **/*.js","test":"mocha --trace-deprecation --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --trace-deprecation --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --trace-deprecation --reporter spec --check-leaks test/"},"_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"repository":{"url":"https://github.com/pillarjs/csrf","type":"git"},"_npmVersion":"1.4.28","description":"primary logic behind csrf tokens","directories":{},"dependencies":{"rndm":"1.2.0","tsscmp":"1.0.5","uid-safe":"2.1.1","base64-url":"1.2.2"},"devDependencies":{"mocha":"2.5.3","eslint":"2.10.2","bluebird":"3.4.0","istanbul":"0.4.3","eslint-plugin-promise":"1.3.0","eslint-config-standard":"5.3.1","eslint-plugin-standard":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/csrf-3.0.3.tgz_1464315403837_0.44625049154274166","host":"packages-12-west.internal.npmjs.com"}},"3.0.4":{"name":"csrf","version":"3.0.4","keywords":["csrf","tokens"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"csrf@3.0.4","maintainers":[{"name":"dougwilson","email":"doug@somethingdoug.com"},{"name":"dwolla","email":"api@dwolla.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"}],"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"homepage":"https://github.com/pillarjs/csrf","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"dist":{"shasum":"ba01423e5b5bea7b655e38b0bdd1323954cbdaa5","tarball":"https://registry.npmjs.org/csrf/-/csrf-3.0.4.tgz","integrity":"sha512-iFpfu09Ha7NfrTsMH8lKIJpAxq+jYNCXo/CB3GlFm/kPcFjxndzXABlsBwfvVl4H7f3rQV/p4Eo3EE4kaB/FLw==","signatures":[{"sig":"MEUCICZ77uq+w5h2eYC506MxC8Ci4ZDTzlgTIEgiVmxAnp2kAiEAgdTwvFM5N+K3t45tKoj/1YjT9EIDc3LYeGZfM6AT9Mk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["LICENSE","HISTORY.md","README.md","index.js"],"_shasum":"ba01423e5b5bea7b655e38b0bdd1323954cbdaa5","engines":{"node":">= 0.8"},"gitHead":"185b4d252b9889cd812ed2c81c6ae85fea979492","scripts":{"lint":"eslint .","test":"mocha --trace-deprecation --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --trace-deprecation --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --trace-deprecation --reporter spec --check-leaks test/"},"_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"repository":{"url":"https://github.com/pillarjs/csrf","type":"git"},"_npmVersion":"1.4.28","description":"primary logic behind csrf tokens","directories":{},"dependencies":{"rndm":"1.2.0","tsscmp":"1.0.5","uid-safe":"2.1.3","base64-url":"1.3.3"},"devDependencies":{"mocha":"2.5.3","eslint":"3.10.0","bluebird":"3.4.6","istanbul":"0.4.5","eslint-plugin-promise":"3.3.2","eslint-config-standard":"6.2.1","eslint-plugin-standard":"2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/csrf-3.0.4.tgz_1479101634373_0.8387872481252998","host":"packages-18-east.internal.npmjs.com"}},"3.0.5":{"name":"csrf","version":"3.0.5","keywords":["csrf","tokens"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"csrf@3.0.5","maintainers":[{"name":"dougwilson","email":"doug@somethingdoug.com"},{"name":"dwolla","email":"api@dwolla.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"}],"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"homepage":"https://github.com/pillarjs/csrf#readme","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"dist":{"shasum":"3c3aa86f395dd39f86d68fcf1734a2380f466112","tarball":"https://registry.npmjs.org/csrf/-/csrf-3.0.5.tgz","integrity":"sha512-bDD48zAbXMB7DsNovMygj6VJN5ADvg/bLvDWb3kgDIqhUR4tyboDQnuVFzDC6ZmGn49Lp/wvOrVpw2Avnv8Agg==","signatures":[{"sig":"MEQCIFwkPj4oKChEOiw1L6HtDGqOpKVqDrTo1bRXV7HD24E/AiAukDoNK6+o1jMEehTKP973fqdM2rXGpGEM6JWP3STtNw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["LICENSE","HISTORY.md","README.md","index.js"],"_shasum":"3c3aa86f395dd39f86d68fcf1734a2380f466112","engines":{"node":">= 0.8"},"gitHead":"5f86d97521a533bc39b494e45f688311f8a861f9","scripts":{"lint":"eslint --plugin markdown --ext js,md .","test":"mocha --trace-deprecation --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --trace-deprecation --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --trace-deprecation --reporter spec --check-leaks test/"},"_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"repository":{"url":"git+https://github.com/pillarjs/csrf.git","type":"git"},"_npmVersion":"2.15.11","description":"primary logic behind csrf tokens","directories":{},"_nodeVersion":"4.7.3","dependencies":{"rndm":"1.2.0","tsscmp":"1.0.5","uid-safe":"2.1.4","base64-url":"1.3.3"},"devDependencies":{"mocha":"2.5.3","eslint":"3.17.1","bluebird":"3.5.0","istanbul":"0.4.5","eslint-plugin-promise":"3.5.0","eslint-config-standard":"7.0.1","eslint-plugin-markdown":"1.0.0-beta.4","eslint-plugin-standard":"2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/csrf-3.0.5.tgz_1488953561866_0.4164331709034741","host":"packages-12-west.internal.npmjs.com"}},"3.0.6":{"name":"csrf","version":"3.0.6","keywords":["csrf","tokens"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"csrf@3.0.6","maintainers":[{"name":"dougwilson","email":"doug@somethingdoug.com"},{"name":"dwolla","email":"api@dwolla.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"}],"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"homepage":"https://github.com/pillarjs/csrf#readme","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"dist":{"shasum":"b61120ddceeafc91e76ed5313bb5c0b2667b710a","tarball":"https://registry.npmjs.org/csrf/-/csrf-3.0.6.tgz","integrity":"sha512-3q1ocniLMgk9nHHEt/I/JsN9IfiGjgp6MHgYNT7+CPmQvi5DF6qzenXnZSH6f9Qaa+4DhmUDJa8SgFZ+OFf9Qg==","signatures":[{"sig":"MEYCIQDepoYlMhgnV8oBQD+q97RKTAjTBu2NpBZ8F8rnjyKJIAIhANxfnPyE0081DjVqw37weAHLwyr2g5OuaSuThFkLQQPp","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["LICENSE","HISTORY.md","README.md","index.js"],"_shasum":"b61120ddceeafc91e76ed5313bb5c0b2667b710a","engines":{"node":">= 0.8"},"gitHead":"018ec746e8ce5dea10dda78a2480a0a9e756f1a8","scripts":{"lint":"eslint --plugin markdown --ext js,md .","test":"mocha --trace-deprecation --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --trace-deprecation --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --trace-deprecation --reporter spec --check-leaks test/"},"_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"repository":{"url":"git+https://github.com/pillarjs/csrf.git","type":"git"},"_npmVersion":"2.15.11","description":"primary logic behind csrf tokens","directories":{},"_nodeVersion":"4.7.3","dependencies":{"rndm":"1.2.0","tsscmp":"1.0.5","uid-safe":"2.1.4"},"devDependencies":{"mocha":"2.5.3","eslint":"3.17.1","bluebird":"3.5.0","istanbul":"0.4.5","eslint-plugin-promise":"3.5.0","eslint-config-standard":"7.0.1","eslint-plugin-markdown":"1.0.0-beta.4","eslint-plugin-standard":"2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/csrf-3.0.6.tgz_1489549463230_0.9222420507576317","host":"packages-18-east.internal.npmjs.com"}},"3.1.0":{"name":"csrf","version":"3.1.0","keywords":["csrf","tokens"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"csrf@3.1.0","maintainers":[{"name":"dougwilson","email":"doug@somethingdoug.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"}],"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"homepage":"https://github.com/pillarjs/csrf#readme","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"dist":{"shasum":"ec75e9656d004d674b8ef5ba47b41fbfd6cb9c30","tarball":"https://registry.npmjs.org/csrf/-/csrf-3.1.0.tgz","fileCount":6,"integrity":"sha512-uTqEnCvWRk042asU6JtapDTcJeeailFy4ydOQS28bj1hcLnYRiqi8SsD2jS412AY1I/4qdOwWZun774iqywf9w==","signatures":[{"sig":"MEUCIQDESFLXJK5Pu2chvllY+IGdf4nzZkDialC4hM5snFTxSQIgArc55Padqj2B6orUxoHB3UTgoDRzc2PVvql3+49f7gE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12846,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcrWSWCRA9TVsSAnZWagAA0zYQAI5EUAMqX+ppE89Mbz1e\n+QSIYvg5a74qcWlJuN662WjQAYIClIj/hY/emMvIF6IEL5Wh6JClVl/RSbUX\niTozWLd7T76h9wCjXBmV5a3r/dw/wP/MceyhcGi8M8hfmG+G+aWPlLqIahVg\nmHQn8iaFwDybOixM5RdijycGQYT6yAW+BEXVpjaEP08FKv5D4zYRGLbnxkgk\n1pqyFW4PF8nN3ufn0cTbdTDPq/G3T6vOAaBCTIhBvEiawkA2Pda6kfLF6gWo\nxTn89G1aRZcZrXmyWU8IahUQFiYCd91kiNRGcP5CARRKG3uIOFKR5ES4OOZm\ntoCAXRvx7/f7zIervGNcYfP37cS3Db8kaWOLYTKatI86plOxOiag8ehsLEna\nksabvVmtIGkHBIU6LCFUXw9NMR9AVd0ep+J4xH/yc7VNkw5i6BY7tGYqGCKr\ntsgnHMYxIeNfAfytHCyipNkSV7+uVWmeXFrQiHtvgtvp65Mtis7vp0PmcYVv\ne9rKPMtTYFtc4mnueyTcoR8WVs8vjJWeRgx8xQT4Ei2BH0KrKrKTuRms/uTD\n6pMjB9lngeaY2QdMk/y/EMuQ4LGBpHrp+vd6jxasF5GytU2ATMNEx8hitjIC\nlUS3zfvayktnd64S6of5cCnlp4GmAXOBVdtXiAFOxA8+9zBD/oqDUVcNFbIf\nffca\r\n=kkko\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 0.8"},"gitHead":"775fb78ebc9ab5fda902c8cc27f8d16eb7066e8f","scripts":{"lint":"eslint --plugin markdown --ext js,md .","test":"mocha --trace-deprecation --reporter spec --bail --check-leaks test/","bench":"node benchmark/index.js","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --trace-deprecation --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --trace-deprecation --reporter spec --check-leaks test/"},"_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"repository":{"url":"git+https://github.com/pillarjs/csrf.git","type":"git"},"_npmVersion":"6.4.1","description":"primary logic behind csrf tokens","directories":{},"_nodeVersion":"8.15.1","dependencies":{"rndm":"1.2.0","tsscmp":"1.0.6","uid-safe":"2.1.5"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"6.1.2","eslint":"5.16.0","bluebird":"3.5.4","istanbul":"0.4.5","benchmark":"2.1.4","beautify-benchmark":"0.2.4","eslint-plugin-node":"8.0.1","eslint-plugin-import":"2.16.0","eslint-plugin-promise":"4.1.1","eslint-config-standard":"12.0.0","eslint-plugin-markdown":"1.0.0","eslint-plugin-standard":"4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/csrf_3.1.0_1554867349903_0.5078802104791564","host":"s3://npm-registry-packages"}}},"time":{"created":"2012-08-27T05:34:37.713Z","modified":"2025-05-14T14:56:31.423Z","0.0.1":"2012-08-27T05:34:37.966Z","0.0.2":"2012-09-11T15:06:46.055Z","0.0.3":"2012-09-11T15:21:58.916Z","2.0.1":"2014-08-22T08:32:35.601Z","2.0.2":"2014-11-09T18:30:13.984Z","2.0.3":"2014-12-30T21:12:56.790Z","2.0.4":"2015-01-09T01:54:59.314Z","2.0.5":"2015-02-01T06:17:22.027Z","2.0.6":"2015-02-14T06:19:23.146Z","2.0.7":"2015-05-04T00:43:00.708Z","3.0.0":"2015-05-10T02:31:25.372Z","3.0.1":"2016-01-28T22:54:53.553Z","3.0.2":"2016-05-23T03:56:03.022Z","3.0.3":"2016-05-27T02:16:46.077Z","3.0.4":"2016-11-14T05:33:54.900Z","3.0.5":"2017-03-08T06:12:43.760Z","3.0.6":"2017-03-15T03:44:23.851Z","3.1.0":"2019-04-10T03:35:50.103Z"},"bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","homepage":"https://github.com/pillarjs/csrf#readme","keywords":["csrf","tokens"],"repository":{"url":"git+https://github.com/pillarjs/csrf.git","type":"git"},"description":"primary logic behind csrf tokens","contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"maintainers":[{"email":"ulisesgascondev@gmail.com","name":"ulisesgascon"},{"email":"doug@somethingdoug.com","name":"dougwilson"},{"email":"jonathanrichardong@gmail.com","name":"jongleberry"}],"readme":"# CSRF\n\n[![NPM Version][npm-version-image]][npm-url]\n[![NPM Downloads][npm-downloads-image]][npm-url]\n[![Node.js Version][node-image]][node-url]\n[![Build Status][travis-image]][travis-url]\n[![Test Coverage][coveralls-image]][coveralls-url]\n\nLogic behind CSRF token creation and verification.\n\nRead [Understanding-CSRF](https://github.com/pillarjs/understanding-csrf)\nfor more information on CSRF. Use this module to create custom CSRF middleware.\n\nLooking for a CSRF framework for your favorite framework that uses this\nmodule?\n\n  * Express/connect: [csurf](https://www.npmjs.com/package/csurf) or\n    [alt-xsrf](https://www.npmjs.com/package/alt-xsrf)\n  * Koa: [koa-csrf](https://www.npmjs.com/package/koa-csrf) or\n    [koa-atomic-session](https://www.npmjs.com/package/koa-atomic-session)\n\n### Install\n\n```sh\n$ npm install csrf\n```\n\n### TypeScript\n\nThis module includes a [TypeScript](https://www.typescriptlang.org/)\ndeclaration file to enable auto complete in compatible editors and type\ninformation for TypeScript projects.\n\n## API\n\n<!-- eslint-disable no-unused-vars -->\n\n```js\nvar Tokens = require('csrf')\n```\n\n### new Tokens([options])\n\nCreate a new token generation/verification instance. The `options` argument is\noptional and will just use all defaults if missing.\n\n#### Options\n\nTokens accepts these properties in the options object.\n\n##### saltLength\n\nThe length of the internal salt to use, in characters. Internally, the salt\nis a base 62 string. Defaults to `8` characters.\n\n##### secretLength\n\nThe length of the secret to generate, in bytes. Note that the secret is\npassed around base-64 encoded and that this length refers to the underlying\nbytes, not the length of the base-64 string. Defaults to `18` bytes.\n\n#### tokens.create(secret)\n\nCreate a new CSRF token attached to the given `secret`. The `secret` is a\nstring, typically generated from the `tokens.secret()` or `tokens.secretSync()`\nmethods. This token is what you should add into HTML `<form>` blocks and\nexpect the user's browser to provide back.\n\n<!-- eslint-disable no-undef, no-unused-vars -->\n\n```js\nvar secret = tokens.secretSync()\nvar token = tokens.create(secret)\n```\n\n#### tokens.secret(callback)\n\nAsynchronously create a new `secret`, which is a string. The secret is to\nbe kept on the server, typically stored in a server-side session for the\nuser. The secret should be at least per user.\n\n<!-- eslint-disable no-undef -->\n\n```js\ntokens.secret(function (err, secret) {\n  if (err) throw err\n  // do something with the secret\n})\n```\n\n#### tokens.secret()\n\nAsynchronously create a new `secret` and return a `Promise`. Please see\n`tokens.secret(callback)` documentation for full details.\n\n**Note**: To use promises in Node.js _prior to 0.12_, promises must be\n\"polyfilled\" using `global.Promise = require('bluebird')`.\n\n<!-- eslint-disable no-undef -->\n\n```js\ntokens.secret().then(function (secret) {\n  // do something with the secret\n})\n```\n\n#### tokens.secretSync()\n\nA synchronous version of `tokens.secret(callback)`. Please see\n`tokens.secret(callback)` documentation for full details.\n\n<!-- eslint-disable no-undef, no-unused-vars -->\n\n```js\nvar secret = tokens.secretSync()\n```\n\n#### tokens.verify(secret, token)\n\nCheck whether a CSRF token is valid for the given `secret`, returning\na Boolean.\n\n<!-- eslint-disable no-undef -->\n\n```js\nif (!tokens.verify(secret, token)) {\n  throw new Error('invalid token!')\n}\n```\n\n## License\n\n[MIT](LICENSE)\n\n[coveralls-image]: https://badgen.net/coveralls/c/github/pillarjs/csrf/master\n[coveralls-url]: https://coveralls.io/r/pillarjs/csrf?branch=master\n[node-image]: https://badgen.net/npm/node/csrf\n[node-url]: https://nodejs.org/en/download\n[npm-downloads-image]: https://badgen.net/npm/dm/csrf\n[npm-url]: https://npmjs.org/package/csrf\n[npm-version-image]: https://badgen.net/npm/v/csrf\n[travis-image]: https://badgen.net/travis/pillarjs/csrf/master\n[travis-url]: https://travis-ci.org/pillarjs/csrf\n","readmeFilename":"README.md","users":{"cxm":true,"hain":true,"siyi":true,"wzbg":true,"csbun":true,"madeo":true,"ooade":true,"itskdk":true,"joakin":true,"rexpan":true,"alfeo92":true,"milfromoz":true,"shujianbu":true,"tjfwalker":true,"ashish.npm":true,"ghkddbguse":true,"jamesbedont":true,"jonatasnona":true,"nisimjoseph":true,"wangnan0610":true,"hugojosefson":true,"jabedhasan21":true,"jamescostian":true,"nickeltobias":true,"pretendentas":true,"tobiasnickel":true}}