{"_id":"csrf","_rev":"72096","name":"csrf","description":"primary logic behind csrf tokens","dist-tags":{"latest":"3.1.0"},"maintainers":[{"name":"dougwilson","email":""},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"ulisesgascon","email":""}],"time":{"modified":"2021-06-03T10:23:40.000Z","created":"2012-08-27T05:34:37.966Z","3.1.0":"2019-04-10T03:35:50.103Z","3.0.6":"2017-03-15T03:44:23.851Z","3.0.5":"2017-03-08T06:12:43.760Z","3.0.4":"2016-11-14T05:33:54.900Z","3.0.3":"2016-05-27T02:16:46.077Z","3.0.2":"2016-05-23T03:56:03.022Z","3.0.1":"2016-01-28T22:54:53.553Z","3.0.0":"2015-05-10T02:31:25.372Z","2.0.7":"2015-05-04T00:43:00.708Z","2.0.6":"2015-02-14T06:19:23.146Z","2.0.5":"2015-02-01T06:17:22.027Z","2.0.4":"2015-01-09T01:54:59.314Z","2.0.3":"2014-12-30T21:12:56.790Z","2.0.2":"2014-11-09T18:30:13.984Z","2.0.1":"2014-08-22T08:32:35.601Z","0.0.3":"2012-09-11T15:21:58.916Z","0.0.2":"2012-09-11T15:06:46.055Z","0.0.1":"2012-08-27T05:34:37.966Z"},"users":{"joakin":true,"jamescostian":true,"jonatasnona":true,"csbun":true,"tobiasnickel":true,"hugojosefson":true,"milfromoz":true,"itskdk":true,"nickeltobias":true,"ghkddbguse":true,"wzbg":true,"hain":true,"pretendentas":true,"wangnan0610":true,"siyi":true,"jabedhasan21":true,"nisimjoseph":true,"xlyang":true,"alfeo92":true,"rexpan":true,"tjfwalker":true,"jamesbedont":true,"shujianbu":true,"cxm":true,"madeo":true,"ooade":true},"author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"repository":{"type":"git","url":"git+https://github.com/pillarjs/csrf.git"},"versions":{"3.1.0":{"name":"csrf","description":"primary logic behind csrf tokens","version":"3.1.0","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/pillarjs/csrf.git"},"dependencies":{"rndm":"1.2.0","tsscmp":"1.0.6","uid-safe":"2.1.5"},"devDependencies":{"beautify-benchmark":"0.2.4","benchmark":"2.1.4","bluebird":"3.5.4","eslint":"5.16.0","eslint-config-standard":"12.0.0","eslint-plugin-import":"2.16.0","eslint-plugin-markdown":"1.0.0","eslint-plugin-node":"8.0.1","eslint-plugin-promise":"4.1.1","eslint-plugin-standard":"4.0.0","istanbul":"0.4.5","mocha":"6.1.2"},"engines":{"node":">= 0.8"},"scripts":{"bench":"node benchmark/index.js","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/"},"keywords":["csrf","tokens"],"gitHead":"775fb78ebc9ab5fda902c8cc27f8d16eb7066e8f","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"homepage":"https://github.com/pillarjs/csrf#readme","_id":"csrf@3.1.0","_npmVersion":"6.4.1","_nodeVersion":"8.15.1","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"dist":{"shasum":"ec75e9656d004d674b8ef5ba47b41fbfd6cb9c30","size":4800,"noattachment":false,"key":"/csrf/-/csrf-3.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/csrf/download/csrf-3.1.0.tgz"},"maintainers":[{"name":"dougwilson","email":""},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"ulisesgascon","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/csrf_3.1.0_1554867349903_0.5078802104791564"},"_hasShrinkwrap":false,"publish_time":1554867350103,"_cnpm_publish_time":1554867350103},"3.0.6":{"name":"csrf","description":"primary logic behind csrf tokens","version":"3.0.6","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/pillarjs/csrf.git"},"dependencies":{"rndm":"1.2.0","tsscmp":"1.0.5","uid-safe":"2.1.4"},"devDependencies":{"bluebird":"3.5.0","eslint":"3.17.1","eslint-config-standard":"7.0.1","eslint-plugin-markdown":"1.0.0-beta.4","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"2.1.1","istanbul":"0.4.5","mocha":"2.5.3"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8"},"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/"},"keywords":["csrf","tokens"],"gitHead":"018ec746e8ce5dea10dda78a2480a0a9e756f1a8","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"homepage":"https://github.com/pillarjs/csrf#readme","_id":"csrf@3.0.6","_shasum":"b61120ddceeafc91e76ed5313bb5c0b2667b710a","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.7.3","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"dist":{"shasum":"b61120ddceeafc91e76ed5313bb5c0b2667b710a","size":4335,"noattachment":false,"key":"/csrf/-/csrf-3.0.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/csrf/download/csrf-3.0.6.tgz"},"maintainers":[{"name":"dougwilson","email":""},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"ulisesgascon","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/csrf-3.0.6.tgz_1489549463230_0.9222420507576317"},"directories":{},"publish_time":1489549463851,"_cnpm_publish_time":1489549463851,"_hasShrinkwrap":false},"3.0.5":{"name":"csrf","description":"primary logic behind csrf tokens","version":"3.0.5","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/pillarjs/csrf.git"},"dependencies":{"base64-url":"1.3.3","rndm":"1.2.0","tsscmp":"1.0.5","uid-safe":"2.1.4"},"devDependencies":{"bluebird":"3.5.0","eslint":"3.17.1","eslint-config-standard":"7.0.1","eslint-plugin-markdown":"1.0.0-beta.4","eslint-plugin-promise":"3.5.0","eslint-plugin-standard":"2.1.1","istanbul":"0.4.5","mocha":"2.5.3"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8"},"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/"},"keywords":["csrf","tokens"],"gitHead":"5f86d97521a533bc39b494e45f688311f8a861f9","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"homepage":"https://github.com/pillarjs/csrf#readme","_id":"csrf@3.0.5","_shasum":"3c3aa86f395dd39f86d68fcf1734a2380f466112","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.7.3","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"dist":{"shasum":"3c3aa86f395dd39f86d68fcf1734a2380f466112","size":4214,"noattachment":false,"key":"/csrf/-/csrf-3.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/csrf/download/csrf-3.0.5.tgz"},"maintainers":[{"name":"dougwilson","email":""},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"ulisesgascon","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/csrf-3.0.5.tgz_1488953561866_0.4164331709034741"},"directories":{},"publish_time":1488953563760,"_cnpm_publish_time":1488953563760,"_hasShrinkwrap":false},"3.0.4":{"name":"csrf","description":"primary logic behind csrf tokens","version":"3.0.4","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/pillarjs/csrf"},"dependencies":{"base64-url":"1.3.3","rndm":"1.2.0","tsscmp":"1.0.5","uid-safe":"2.1.3"},"devDependencies":{"bluebird":"3.4.6","eslint":"3.10.0","eslint-config-standard":"6.2.1","eslint-plugin-promise":"3.3.2","eslint-plugin-standard":"2.0.1","istanbul":"0.4.5","mocha":"2.5.3"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8"},"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/"},"keywords":["csrf","tokens"],"gitHead":"185b4d252b9889cd812ed2c81c6ae85fea979492","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"homepage":"https://github.com/pillarjs/csrf","_id":"csrf@3.0.4","_shasum":"ba01423e5b5bea7b655e38b0bdd1323954cbdaa5","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"ba01423e5b5bea7b655e38b0bdd1323954cbdaa5","size":4127,"noattachment":false,"key":"/csrf/-/csrf-3.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/csrf/download/csrf-3.0.4.tgz"},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/csrf-3.0.4.tgz_1479101634373_0.8387872481252998"},"directories":{},"publish_time":1479101634900,"_cnpm_publish_time":1479101634900,"_hasShrinkwrap":false},"3.0.3":{"name":"csrf","description":"primary logic behind csrf tokens","version":"3.0.3","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/pillarjs/csrf"},"dependencies":{"base64-url":"1.2.2","rndm":"1.2.0","tsscmp":"1.0.5","uid-safe":"2.1.1"},"devDependencies":{"bluebird":"3.4.0","eslint":"2.10.2","eslint-config-standard":"5.3.1","eslint-plugin-promise":"1.3.0","eslint-plugin-standard":"1.3.2","istanbul":"0.4.3","mocha":"2.5.3"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8"},"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/"},"keywords":["csrf","tokens"],"gitHead":"dbf7629bbff7ae14dfa7fab1b439e01b5ba3b629","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"homepage":"https://github.com/pillarjs/csrf","_id":"csrf@3.0.3","_shasum":"69d13220de95762808bb120f7533a994fc4293b5","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"69d13220de95762808bb120f7533a994fc4293b5","size":4112,"noattachment":false,"key":"/csrf/-/csrf-3.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/csrf/download/csrf-3.0.3.tgz"},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/csrf-3.0.3.tgz_1464315403837_0.44625049154274166"},"directories":{},"publish_time":1464315406077,"_cnpm_publish_time":1464315406077,"_hasShrinkwrap":false},"3.0.2":{"name":"csrf","description":"primary logic behind csrf tokens","version":"3.0.2","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/pillarjs/csrf.git"},"dependencies":{"base64-url":"1.2.2","rndm":"1.2.0","tsscmp":"1.0.2","uid-safe":"2.1.1"},"devDependencies":{"bluebird":"3.4.0","eslint":"2.10.2","eslint-config-standard":"5.3.1","eslint-plugin-promise":"1.1.0","eslint-plugin-standard":"1.3.2","istanbul":"0.4.3","mocha":"2.4.5"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8"},"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/"},"keywords":["csrf","tokens"],"gitHead":"e9b4449463b64e7b8ca80bf8b418feb22ec42e68","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"homepage":"https://github.com/pillarjs/csrf#readme","_id":"csrf@3.0.2","_shasum":"3a48b3185406ad22d56bec52a6658526836d9fba","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.3","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"dist":{"shasum":"3a48b3185406ad22d56bec52a6658526836d9fba","size":4100,"noattachment":false,"key":"/csrf/-/csrf-3.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/csrf/download/csrf-3.0.2.tgz"},"maintainers":[{"name":"dougwilson","email":""},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"ulisesgascon","email":""}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/csrf-3.0.2.tgz_1463975761913_0.7939549928996712"},"directories":{},"publish_time":1463975763022,"_cnpm_publish_time":1463975763022,"_hasShrinkwrap":false},"3.0.1":{"name":"csrf","description":"primary logic behind csrf tokens","version":"3.0.1","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/pillarjs/csrf.git"},"dependencies":{"base64-url":"1.2.1","rndm":"1.2.0","scmp":"1.0.0","uid-safe":"2.1.0"},"devDependencies":{"bluebird":"3.1.5","istanbul":"0.4.2","mocha":"2.4.4"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8"},"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/"},"keywords":["csrf","tokens"],"gitHead":"bfea15ded4793e25d6b65ef51f9e797aca408d3e","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"homepage":"https://github.com/pillarjs/csrf#readme","_id":"csrf@3.0.1","_shasum":"985b218d7e2e558ed3d980fa38f694ba682784c2","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.3","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"dist":{"shasum":"985b218d7e2e558ed3d980fa38f694ba682784c2","size":3974,"noattachment":false,"key":"/csrf/-/csrf-3.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/csrf/download/csrf-3.0.1.tgz"},"maintainers":[{"name":"dougwilson","email":""},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"ulisesgascon","email":""}],"directories":{},"publish_time":1454021693553,"_cnpm_publish_time":1454021693553,"_hasShrinkwrap":false},"3.0.0":{"name":"csrf","description":"primary logic behind csrf tokens","version":"3.0.0","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/pillarjs/csrf"},"dependencies":{"base64-url":"1.2.1","rndm":"~1.1.0","scmp":"1.0.0","uid-safe":"~2.0.0"},"devDependencies":{"bluebird":"2.9.25","istanbul":"0.3.9","mocha":"~2.2.4"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8"},"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/"},"keywords":["csrf","tokens"],"gitHead":"fa5f9877abb2991dfaf34ab9d7eb75a0fc9aabf8","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"homepage":"https://github.com/pillarjs/csrf","_id":"csrf@3.0.0","_shasum":"4a4d34d3c1f8bef9d9b4c596a27efd60d932d83a","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"4a4d34d3c1f8bef9d9b4c596a27efd60d932d83a","size":3953,"noattachment":false,"key":"/csrf/-/csrf-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/csrf/download/csrf-3.0.0.tgz"},"directories":{},"publish_time":1431225085372,"_cnpm_publish_time":1431225085372,"_hasShrinkwrap":false},"2.0.7":{"name":"csrf","description":"primary logic behind csrf tokens","version":"2.0.7","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/pillarjs/csrf"},"dependencies":{"base64-url":"1.2.1","rndm":"~1.1.0","scmp":"1.0.0","uid-safe":"~1.1.0"},"devDependencies":{"bluebird":"2.9.23","istanbul":"0.3.9","mocha":"~2.2.4"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8"},"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"},"keywords":["csrf","tokens"],"gitHead":"78ec701a00c7141609bae02c05b36fcbbc1b105a","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"homepage":"https://github.com/pillarjs/csrf","_id":"csrf@2.0.7","_shasum":"d04f52e0f6a28a7e2cfe1e01dd5ebc251b3d4201","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"d04f52e0f6a28a7e2cfe1e01dd5ebc251b3d4201","size":3172,"noattachment":false,"key":"/csrf/-/csrf-2.0.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/csrf/download/csrf-2.0.7.tgz"},"directories":{},"publish_time":1430700180708,"_cnpm_publish_time":1430700180708,"_hasShrinkwrap":false},"2.0.6":{"name":"csrf","description":"primary logic behind csrf tokens","version":"2.0.6","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/pillarjs/csrf"},"dependencies":{"base64-url":"1.2.1","rndm":"~1.1.0","scmp":"1.0.0","uid-safe":"~1.1.0"},"devDependencies":{"bluebird":"~2.9.4","istanbul":"0.3.5","mocha":"~2.1.0"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8"},"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"},"keywords":["csrf","tokens"],"gitHead":"b2f30cefab349bad642f9f8fa0e65f3a157d545b","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"homepage":"https://github.com/pillarjs/csrf","_id":"csrf@2.0.6","_shasum":"a90a9d88fc7411423cb0c5c13e901a8cc588132e","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"a90a9d88fc7411423cb0c5c13e901a8cc588132e","size":3111,"noattachment":false,"key":"/csrf/-/csrf-2.0.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/csrf/download/csrf-2.0.6.tgz"},"directories":{},"publish_time":1423894763146,"_cnpm_publish_time":1423894763146,"_hasShrinkwrap":false},"2.0.5":{"name":"csrf","description":"primary logic behind csrf tokens","version":"2.0.5","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/pillarjs/csrf"},"dependencies":{"base64-url":"1.2.0","rndm":"~1.1.0","scmp":"1.0.0","uid-safe":"~1.0.3"},"devDependencies":{"bluebird":"~2.9.4","istanbul":"0.3.5","mocha":"~2.1.0"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8"},"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"},"keywords":["csrf","tokens"],"gitHead":"7b8ae40060e832400c7c0ba762cb27609c15384c","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"homepage":"https://github.com/pillarjs/csrf","_id":"csrf@2.0.5","_shasum":"ffac90cf55269036d447008b47d2ef33929c0225","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"ffac90cf55269036d447008b47d2ef33929c0225","size":3074,"noattachment":false,"key":"/csrf/-/csrf-2.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/csrf/download/csrf-2.0.5.tgz"},"directories":{},"publish_time":1422771442027,"_cnpm_publish_time":1422771442027,"_hasShrinkwrap":false},"2.0.4":{"name":"csrf","description":"primary logic behind csrf tokens","version":"2.0.4","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/pillarjs/csrf"},"dependencies":{"base64-url":"1.1.0","rndm":"~1.1.0","scmp":"1.0.0","uid-safe":"~1.0.2"},"devDependencies":{"bluebird":"~2.6.2","istanbul":"0.3.5","mocha":"~2.1.0"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8"},"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"},"keywords":["csrf","tokens"],"gitHead":"1fe601b8cbcfab68a6ac5d8c7c59d8ffb91b383f","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"homepage":"https://github.com/pillarjs/csrf","_id":"csrf@2.0.4","_shasum":"4366ddea0e08924aa324b4c7cf5649e413891f46","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"4366ddea0e08924aa324b4c7cf5649e413891f46","size":3032,"noattachment":false,"key":"/csrf/-/csrf-2.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/csrf/download/csrf-2.0.4.tgz"},"directories":{},"publish_time":1420768499314,"_cnpm_publish_time":1420768499314,"_hasShrinkwrap":false},"2.0.3":{"name":"csrf","description":"primary logic behind csrf tokens","version":"2.0.3","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/pillarjs/csrf"},"dependencies":{"base64-url":"1.1.0","rndm":"~1.1.0","scmp":"1.0.0","uid-safe":"~1.0.1"},"devDependencies":{"bluebird":"~2.5.3","istanbul":"0.3.5","mocha":"~2.1.0"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8"},"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"},"keywords":["csrf","tokens"],"gitHead":"947966e5947c0529d3518e7fdd913bcc20617f25","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"homepage":"https://github.com/pillarjs/csrf","_id":"csrf@2.0.3","_shasum":"d41a86b72976396be7d6f470a77167ae913fb64d","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"d41a86b72976396be7d6f470a77167ae913fb64d","size":2995,"noattachment":false,"key":"/csrf/-/csrf-2.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/csrf/download/csrf-2.0.3.tgz"},"directories":{},"publish_time":1419973976790,"_cnpm_publish_time":1419973976790,"_hasShrinkwrap":false},"2.0.2":{"name":"csrf","description":"primary logic behind csrf tokens","version":"2.0.2","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/pillarjs/csrf"},"dependencies":{"rndm":"~1.0.0","scmp":"1.0.0","uid-safe":"~1.0.1","base64-url":"1.0.0"},"devDependencies":{"istanbul":"0","bluebird":"2","mocha":"~2.0.1"},"files":["LICENSE","HISTORY.md","README.md","index.js"],"engines":{"node":">= 0.8"},"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"},"keywords":["csrf","tokens"],"gitHead":"ab8563d0d7abb004f086a0830d5466b30cd44f39","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"homepage":"https://github.com/pillarjs/csrf","_id":"csrf@2.0.2","_shasum":"d8d3f1f83705b0acc5ed8995b4eadf4a921959f5","_from":".","_npmVersion":"1.4.21","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"d8d3f1f83705b0acc5ed8995b4eadf4a921959f5","size":2869,"noattachment":false,"key":"/csrf/-/csrf-2.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/csrf/download/csrf-2.0.2.tgz"},"directories":{},"publish_time":1415557813984,"_cnpm_publish_time":1415557813984,"_hasShrinkwrap":false},"2.0.1":{"name":"csrf","description":"primary logic behind csrf tokens","version":"2.0.1","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/pillarjs/csrf"},"dependencies":{"rndm":"~1.0.0","scmp":"0.0.3","uid-safe":"~1.0.1","base64-url":"1.0.0"},"devDependencies":{"istanbul":"0","bluebird":"2","mocha":"1"},"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"},"keywords":["csrf","tokens"],"files":["index.js"],"gitHead":"d23024ade7607942a2236ec0ae5903396f610db0","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"homepage":"https://github.com/pillarjs/csrf","_id":"csrf@2.0.1","_shasum":"d673a2efb4db7d0e6805dadd838c57e30ae0ee73","_from":".","_npmVersion":"1.4.21","_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"maintainers":[{"name":"dougwilson","email":""},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"ulisesgascon","email":""}],"dist":{"shasum":"d673a2efb4db7d0e6805dadd838c57e30ae0ee73","size":2069,"noattachment":false,"key":"/csrf/-/csrf-2.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/csrf/download/csrf-2.0.1.tgz"},"directories":{},"publish_time":1408696355601,"_cnpm_publish_time":1408696355601,"_hasShrinkwrap":false},"0.0.3":{"name":"csrf","description":"Light-weight CSRF protection middleware with IP whitelisting","version":"0.0.3","author":{"name":"Michael Schonfeld","email":"michael@dwolla.com"},"contributors":[{"name":"Sam Breed","email":"sam@quickleft.com","url":"http://wookiehangover.com"}],"dependencies":{"underscore":"1.3.3","crypto":"0.0.3"},"devDependencies":{"mocha":"~1.4.2"},"keywords":["middleware","ipwhitelist","ip whilelist","csrf"],"repository":{"type":"git","url":"git://github.com/dwolla/node-csrf.git"},"main":"index.js","scripts":{"test":"mocha"},"license":"BSD","_npmUser":{"name":"dwolla","email":"michael@dwolla.com"},"_id":"csrf@0.0.3","optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.16","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"1bf10ade4bd4ff2db3a7bda2c28c4fc8c30a212e","size":3758,"noattachment":false,"key":"/csrf/-/csrf-0.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/csrf/download/csrf-0.0.3.tgz"},"maintainers":[{"name":"dougwilson","email":""},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"ulisesgascon","email":""}],"directories":{},"publish_time":1347376918916,"_cnpm_publish_time":1347376918916,"_hasShrinkwrap":false},"0.0.2":{"name":"csrf","description":"Light-weight CSRF protection middleware with IP whitelisting","version":"0.0.2","author":{"name":"Michael Schonfeld","email":"michael@dwolla.com"},"contributors":[{"name":"Sam Breed","email":"sam@quickleft.com","url":"http://wookiehangover.com"}],"dependencies":{"underscore":"1.3.3"},"devDependencies":{"mocha":"~1.4.2"},"keywords":["middleware","ipwhitelist","ip whilelist","csrf"],"repository":{"type":"git","url":"git://github.com/dwolla/node-csrf.git"},"main":"index.js","scripts":{"test":"mocha"},"license":"BSD","_npmUser":{"name":"dwolla","email":"michael@dwolla.com"},"_id":"csrf@0.0.2","optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.16","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"64be34b7b17fed9f9bba6888e29c68e87b820506","size":3732,"noattachment":false,"key":"/csrf/-/csrf-0.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/csrf/download/csrf-0.0.2.tgz"},"maintainers":[{"name":"dougwilson","email":""},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"ulisesgascon","email":""}],"directories":{},"publish_time":1347376006055,"_cnpm_publish_time":1347376006055,"_hasShrinkwrap":false},"0.0.1":{"name":"csrf","description":"Light-weight CSRF protection middleware with IP whitelisting","version":"0.0.1","author":{"name":"Michael Schonfeld","email":"michael@dwolla.com"},"dependencies":{"connect":"1.x","underscore":"1.3.3"},"keywords":["middleware","ipwhitelist","ip whilelist","csrf"],"repository":{"type":"git","url":"git://github.com/dwolla/node-csrf.git"},"_npmUser":{"name":"dwolla","email":"michael@dwolla.com"},"_id":"csrf@0.0.1","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.16","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"f1eaebd39972dc57829068e8d8921af0371e2b02","size":2287,"noattachment":false,"key":"/csrf/-/csrf-0.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/csrf/download/csrf-0.0.1.tgz"},"maintainers":[{"name":"dougwilson","email":""},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"ulisesgascon","email":""}],"directories":{},"publish_time":1346045677966,"_cnpm_publish_time":1346045677966,"_hasShrinkwrap":false}},"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","_attachments":{},"homepage":"https://github.com/pillarjs/csrf#readme","bugs":{"url":"https://github.com/pillarjs/csrf/issues"},"license":"MIT"}