{"_id":"revalidate","_rev":"17-91bb832169e8c89375dd1073f567e276","name":"revalidate","description":"Elegant and composable validations","dist-tags":{"latest":"1.2.0"},"versions":{"0.0.1":{"name":"revalidate","version":"0.0.1","description":"Composable form value validations","main":"lib/index.js","files":["src","lib"],"scripts":{"build":"babel src --out-dir lib","clean":"rm -rf lib","dev":"nodemon --exec 'clear; npm test' -w src -w test","prepublish":"npm run clean && npm run build","test":"ava"},"repository":{"type":"git","url":"git+https://github.com/jfairbank/revalidate.git"},"keywords":["functional","validation","validate","form"],"author":{"name":"Jeremy Fairbank","email":"elpapapollo@gmail.com","url":"http://jeremyfairbank.com"},"license":"MIT","bugs":{"url":"https://github.com/jfairbank/revalidate/issues"},"homepage":"https://github.com/jfairbank/revalidate#readme","devDependencies":{"ava":"^0.12.0","babel-cli":"^6.6.4","babel-core":"^6.6.4","babel-eslint":"^5.0.0","babel-plugin-transform-do-expressions":"^6.5.0","babel-preset-es2015":"^6.6.0","eslint":"^2.2.0","lodash.range":"^3.1.3","lodash.repeat":"^4.0.0","nodemon":"^1.9.1"},"dependencies":{"invariant":"^2.2.0","lodash.findindex":"^4.2.0","lodash.isplainobject":"^4.0.3"},"babel":{"presets":["es2015"],"plugins":["transform-do-expressions"]},"ava":{"require":"babel-core/register"},"gitHead":"af0a76e825381eca4c40647e3ab341db3c71fcbb","_id":"revalidate@0.0.1","_shasum":"985267f11d2cca3a32d188118357b80ff770b04a","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.5.0","_npmUser":{"name":"elpapapollo","email":"elpapapollo@gmail.com"},"maintainers":[{"name":"elpapapollo","email":"elpapapollo@gmail.com"}],"dist":{"shasum":"985267f11d2cca3a32d188118357b80ff770b04a","tarball":"https://registry.npmjs.org/revalidate/-/revalidate-0.0.1.tgz","integrity":"sha512-EJM8dRhVYejpwy/UUSfEkfOS3nBJaXqcqGKcHDZGZqA1MVQaK9Pv0S/pvuVuF5BV6hvhZ1BwgB2kiUPBB97AZg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUQBikH23ceJL9KMAs1iZhG1XfmDHcEq4wU1lVyyAOzAIgM6eTHpnATswlWDf+sLTUxZ07RP5SP1x7nohvieIYodw="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/revalidate-0.0.1.tgz_1457136350022_0.4832914744038135"},"directories":{}},"0.1.0":{"name":"revalidate","version":"0.1.0","description":"Composable form value validations","main":"lib/index.js","files":["src","lib"],"scripts":{"build":"babel src --out-dir lib","clean":"rm -rf lib","dev":"nodemon --exec 'clear; npm test' -w src -w test","prepublish":"npm run clean && npm run build","test":"ava"},"repository":{"type":"git","url":"git+https://github.com/jfairbank/revalidate.git"},"keywords":["functional","validation","validate","form"],"author":{"name":"Jeremy Fairbank","email":"elpapapollo@gmail.com","url":"http://jeremyfairbank.com"},"license":"MIT","bugs":{"url":"https://github.com/jfairbank/revalidate/issues"},"homepage":"https://github.com/jfairbank/revalidate#readme","devDependencies":{"ava":"^0.12.0","babel-cli":"^6.6.4","babel-core":"^6.6.4","babel-eslint":"^5.0.0","babel-plugin-transform-do-expressions":"^6.5.0","babel-preset-es2015":"^6.6.0","eslint":"^2.2.0","lodash.range":"^3.1.3","lodash.repeat":"^4.0.0","nodemon":"^1.9.1"},"dependencies":{"invariant":"^2.2.0","lodash.findindex":"^4.2.0","lodash.isplainobject":"^4.0.3","lodash.omit":"^4.1.0","object-assign":"^4.0.1"},"babel":{"presets":["es2015"],"plugins":["transform-do-expressions"]},"ava":{"require":"babel-core/register"},"gitHead":"f0d2d1da792e57e80250f6b6768640daee620d6f","_id":"revalidate@0.1.0","_shasum":"35024d0cb0928953cc176878a57b9d199912fb1a","_from":".","_npmVersion":"3.8.1","_nodeVersion":"5.5.0","_npmUser":{"name":"elpapapollo","email":"elpapapollo@gmail.com"},"maintainers":[{"name":"elpapapollo","email":"elpapapollo@gmail.com"}],"dist":{"shasum":"35024d0cb0928953cc176878a57b9d199912fb1a","tarball":"https://registry.npmjs.org/revalidate/-/revalidate-0.1.0.tgz","integrity":"sha512-GGKt4L8/JJvpf4No49XW/CmUkyhl2HalLucA76wRKZVoC/M14meHyfzHLg4koNM/fc1ia7YYT4xL1FFrSnnA1Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDr5HLUio26xVTthYkxuSTaAyqL1JaeaAr5aesZEOn0SAIhAPsdKv/Qd5/bhV8N26IocZzY5VdkG1lb4udQ+ZM6fKws"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/revalidate-0.1.0.tgz_1457727992921_0.16672639013268054"},"directories":{}},"0.2.0":{"name":"revalidate","version":"0.2.0","description":"Composable form value validations","main":"lib/index.js","files":["src","lib"],"scripts":{"build":"babel src --out-dir lib","clean":"rm -rf lib","dev":"nodemon --exec 'clear; npm test' -w src -w test","lint":"eslint {src,test}","prepublish":"npm run clean && npm run build","test":"ava","test:watch":"ava -w"},"repository":{"type":"git","url":"git+https://github.com/jfairbank/revalidate.git"},"keywords":["functional","validation","validate","form"],"author":{"name":"Jeremy Fairbank","email":"elpapapollo@gmail.com","url":"http://jeremyfairbank.com"},"license":"MIT","bugs":{"url":"https://github.com/jfairbank/revalidate/issues"},"homepage":"https://github.com/jfairbank/revalidate#readme","devDependencies":{"ava":"^0.14.0","babel-cli":"^6.9.0","babel-core":"^6.9.0","babel-eslint":"^6.0.4","babel-plugin-check-es2015-constants":"^6.8.0","babel-plugin-transform-es2015-arrow-functions":"^6.8.0","babel-plugin-transform-es2015-block-scoping":"^6.9.0","babel-plugin-transform-es2015-computed-properties":"^6.8.0","babel-plugin-transform-es2015-destructuring":"^6.9.0","babel-plugin-transform-es2015-modules-commonjs":"^6.8.0","babel-plugin-transform-es2015-parameters":"^6.9.0","babel-plugin-transform-es2015-shorthand-properties":"^6.8.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.8.0","babel-plugin-transform-runtime":"^6.9.0","eslint":"^2.10.2","eslint-config-airbnb-base":"^3.0.1","eslint-import-resolver-node":"^0.2.0","eslint-plugin-import":"^1.8.0","lodash.range":"^3.1.5","lodash.repeat":"^4.0.3","nodemon":"^1.9.2"},"dependencies":{"babel-runtime":"^6.9.0","invariant":"^2.2.1","lodash.findindex":"^4.4.0","lodash.get":"^4.3.0","lodash.isplainobject":"^4.0.4","lodash.omit":"^4.3.0"},"babel":{"plugins":["check-es2015-constants","transform-es2015-arrow-functions","transform-es2015-block-scoping",["transform-es2015-computed-properties",{"loose":true}],["transform-es2015-destructuring",{"loose":true}],["transform-es2015-modules-commonjs",{"loose":true}],"transform-es2015-parameters","transform-es2015-shorthand-properties","transform-es2015-template-literals","transform-object-rest-spread",["transform-runtime",{"polyfill":false,"regenerator":false}]]},"eslintConfig":{"parser":"babel-eslint","extends":["airbnb-base","plugin:import/errors","plugin:import/warnings"],"settings":{"import/resolver":"node"},"rules":{"consistent-return":0,"no-param-reassign":["error",{"props":false}],"no-unused-vars":["error",{"args":"after-used","argsIgnorePattern":"^_"}],"quote-props":["error","consistent"],"prefer-rest-params":0}},"ava":{"require":"babel-core/register"},"gitHead":"ce6db209288d57fa881c11156d44b91423e46bec","_id":"revalidate@0.2.0","_shasum":"8afb846175f8eaf97dcd7fc0c6fc77febb6ca661","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"elpapapollo","email":"elpapapollo@gmail.com"},"maintainers":[{"name":"elpapapollo","email":"elpapapollo@gmail.com"}],"dist":{"shasum":"8afb846175f8eaf97dcd7fc0c6fc77febb6ca661","tarball":"https://registry.npmjs.org/revalidate/-/revalidate-0.2.0.tgz","integrity":"sha512-mKnrxQ56e0cGUeFinpy3lZHDoSqFJc/fkk78/DSRcoxRbQmzV5O1h35SYY/VpTjdc9fpoy7Ym4xvTDlF8vwpxQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5pOkCAiAD6/Ayi1J5o2xNuYDLFxosEhPOeeEkolGOPgIhAP7JZ9zWvgVV/bBsQqfCldb0QhPk1UVBP4LbO7WcDMcn"}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/revalidate-0.2.0.tgz_1464223725673_0.851913669379428"},"directories":{}},"0.2.1":{"name":"revalidate","version":"0.2.1","description":"Composable form value validations","main":"lib/index.js","files":["src","lib"],"scripts":{"build":"babel src --out-dir lib","clean":"rm -rf lib","dev":"nodemon --exec 'clear; npm test' -w src -w test","lint":"eslint {src,test}","prepublish":"npm run clean && npm run build","test":"ava","test:watch":"ava -w"},"repository":{"type":"git","url":"git+https://github.com/jfairbank/revalidate.git"},"keywords":["functional","validation","validate","form"],"author":{"name":"Jeremy Fairbank","email":"elpapapollo@gmail.com","url":"http://jeremyfairbank.com"},"license":"MIT","bugs":{"url":"https://github.com/jfairbank/revalidate/issues"},"homepage":"https://github.com/jfairbank/revalidate#readme","devDependencies":{"ava":"^0.14.0","babel-cli":"^6.9.0","babel-core":"^6.9.0","babel-eslint":"^6.0.4","babel-plugin-check-es2015-constants":"^6.8.0","babel-plugin-transform-es2015-arrow-functions":"^6.8.0","babel-plugin-transform-es2015-block-scoping":"^6.9.0","babel-plugin-transform-es2015-computed-properties":"^6.8.0","babel-plugin-transform-es2015-destructuring":"^6.9.0","babel-plugin-transform-es2015-modules-commonjs":"^6.8.0","babel-plugin-transform-es2015-parameters":"^6.9.0","babel-plugin-transform-es2015-shorthand-properties":"^6.8.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.8.0","babel-plugin-transform-runtime":"^6.9.0","eslint":"^2.10.2","eslint-config-airbnb-base":"^3.0.1","eslint-import-resolver-node":"^0.2.0","eslint-plugin-import":"^1.8.0","lodash.range":"^3.1.5","lodash.repeat":"^4.0.3","nodemon":"^1.9.2"},"dependencies":{"babel-runtime":"^6.9.0","invariant":"^2.2.1","lodash.findindex":"^4.4.0","lodash.get":"^4.3.0","lodash.isplainobject":"^4.0.4","lodash.omit":"^4.3.0"},"babel":{"plugins":["check-es2015-constants","transform-es2015-arrow-functions","transform-es2015-block-scoping",["transform-es2015-computed-properties",{"loose":true}],["transform-es2015-destructuring",{"loose":true}],["transform-es2015-modules-commonjs",{"loose":true}],"transform-es2015-parameters","transform-es2015-shorthand-properties","transform-es2015-template-literals","transform-object-rest-spread",["transform-runtime",{"polyfill":false,"regenerator":false}]]},"eslintConfig":{"parser":"babel-eslint","extends":["airbnb-base","plugin:import/errors","plugin:import/warnings"],"settings":{"import/resolver":"node"},"rules":{"consistent-return":0,"no-param-reassign":["error",{"props":false}],"no-unused-vars":["error",{"args":"after-used","argsIgnorePattern":"^_"}],"quote-props":["error","consistent"],"prefer-rest-params":0}},"ava":{"require":"babel-core/register"},"gitHead":"783cf671acd385a49d013c201bb837d186635dba","_id":"revalidate@0.2.1","_shasum":"4ede4263231c227d376dc273e3056d0ebff20720","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"elpapapollo","email":"elpapapollo@gmail.com"},"maintainers":[{"name":"elpapapollo","email":"elpapapollo@gmail.com"}],"dist":{"shasum":"4ede4263231c227d376dc273e3056d0ebff20720","tarball":"https://registry.npmjs.org/revalidate/-/revalidate-0.2.1.tgz","integrity":"sha512-P2Wn0zN481Ef1eUJUMnVgR7AtrNlzvaiqmnypMcUJD2zouzL5Q7UuffCJPV5/wvjdApmP08ilBtvtXfw5jU8pA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFboHl6TWAfXWa1FC4VAloi2zrANJubzQRJh1cq5Rl/kAiEAlS3bKkjkKT3cWAuRtAbUjmh2W7joF5Ew5U0j3rvPAlY="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/revalidate-0.2.1.tgz_1464223980268_0.6034800705965608"},"directories":{}},"0.3.0":{"name":"revalidate","version":"0.3.0","description":"Composable form value validations","main":"lib/index.js","files":["src","lib"],"scripts":{"build":"babel src --out-dir lib","clean":"rm -rf lib","dev":"nodemon --exec 'clear; npm test' -w src -w test","lint":"eslint {src,test}","prepublish":"npm run clean && npm run build","test":"ava","test:watch":"ava -w"},"repository":{"type":"git","url":"git+https://github.com/jfairbank/revalidate.git"},"keywords":["functional","validation","validate","form"],"author":{"name":"Jeremy Fairbank","email":"elpapapollo@gmail.com","url":"http://jeremyfairbank.com"},"license":"MIT","bugs":{"url":"https://github.com/jfairbank/revalidate/issues"},"homepage":"https://github.com/jfairbank/revalidate#readme","devDependencies":{"ava":"^0.16.0","babel-cli":"^6.9.0","babel-core":"^6.9.0","babel-eslint":"^6.0.4","babel-plugin-check-es2015-constants":"^6.8.0","babel-plugin-transform-es2015-arrow-functions":"^6.8.0","babel-plugin-transform-es2015-block-scoping":"^6.9.0","babel-plugin-transform-es2015-computed-properties":"^6.8.0","babel-plugin-transform-es2015-destructuring":"^6.9.0","babel-plugin-transform-es2015-modules-commonjs":"^6.8.0","babel-plugin-transform-es2015-parameters":"^6.9.0","babel-plugin-transform-es2015-shorthand-properties":"^6.8.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-export-extensions":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.8.0","babel-plugin-transform-runtime":"^6.9.0","eslint":"^3.2.2","eslint-config-airbnb-base":"^5.0.1","eslint-import-resolver-node":"^0.2.0","eslint-plugin-import":"^1.12.0","lodash.range":"^3.1.5","lodash.repeat":"^4.0.3","nodemon":"^1.9.2"},"dependencies":{"babel-runtime":"^6.9.0","invariant":"^2.2.1","lodash.findindex":"^4.4.0","lodash.get":"^4.3.0","lodash.isplainobject":"^4.0.4","lodash.omit":"^4.3.0"},"babel":{"plugins":["check-es2015-constants","transform-es2015-arrow-functions","transform-es2015-block-scoping",["transform-es2015-computed-properties",{"loose":true}],["transform-es2015-destructuring",{"loose":true}],["transform-es2015-modules-commonjs",{"loose":true}],"transform-es2015-parameters","transform-es2015-shorthand-properties","transform-es2015-template-literals","transform-object-rest-spread",["transform-runtime",{"polyfill":false,"regenerator":false}],"transform-export-extensions"]},"eslintConfig":{"parser":"babel-eslint","extends":["airbnb-base","plugin:import/errors","plugin:import/warnings"],"settings":{"import/resolver":"node"},"rules":{"consistent-return":0,"no-param-reassign":["error",{"props":false}],"no-unused-vars":["error",{"args":"after-used","argsIgnorePattern":"^_"}],"quote-props":["error","consistent"],"prefer-rest-params":0,"import/no-extraneous-dependencies":["error",{"devDependencies":true}]}},"ava":{"require":"babel-core/register","source":["**/*.js","!**/*.swp"]},"gitHead":"308353e7d963af014d49440a15854dbf336e3151","_id":"revalidate@0.3.0","_shasum":"8dbf047d400851742bae443edf96985315ceae40","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"elpapapollo","email":"elpapapollo@gmail.com"},"maintainers":[{"name":"elpapapollo","email":"elpapapollo@gmail.com"}],"dist":{"shasum":"8dbf047d400851742bae443edf96985315ceae40","tarball":"https://registry.npmjs.org/revalidate/-/revalidate-0.3.0.tgz","integrity":"sha512-GKnHLAawVJPlz/PeDXOgZa5PmPF/4vKVma0RQ6Z1jI6QCl19M+FksPYImnoCdd/pxKLyADZFdNTBcMkCnT82Tg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCX2Z7iXAjnlUZvbmEZdpJ3Yc8CAbL9uRrduZyfLfEECAIhAPzPr/p6zQxcBysAHvQBcktnLFULI/Bs/bjFG6g4L4UE"}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/revalidate-0.3.0.tgz_1470515916898_0.8282831946853548"},"directories":{}},"0.4.0":{"name":"revalidate","version":"0.4.0","description":"Elegant and composable validations","main":"lib/index.js","files":["src","lib","assertions.js"],"scripts":{"build":"babel src --out-dir lib","clean":"rm -rf lib","dev":"nodemon --exec 'clear; npm test' -w src -w test","lint":"eslint {src,test}","prepublish":"npm run clean && npm run build","test":"ava","test:watch":"ava -w"},"repository":{"type":"git","url":"git+https://github.com/jfairbank/revalidate.git"},"keywords":["functional","validation","validate","form"],"author":{"name":"Jeremy Fairbank","email":"elpapapollo@gmail.com","url":"http://jeremyfairbank.com"},"license":"MIT","bugs":{"url":"https://github.com/jfairbank/revalidate/issues"},"homepage":"https://github.com/jfairbank/revalidate#readme","devDependencies":{"ava":"^0.16.0","babel-cli":"^6.9.0","babel-core":"^6.9.0","babel-eslint":"^6.0.4","babel-plugin-check-es2015-constants":"^6.8.0","babel-plugin-transform-es2015-arrow-functions":"^6.8.0","babel-plugin-transform-es2015-block-scoping":"^6.9.0","babel-plugin-transform-es2015-computed-properties":"^6.8.0","babel-plugin-transform-es2015-destructuring":"^6.9.0","babel-plugin-transform-es2015-modules-commonjs":"^6.8.0","babel-plugin-transform-es2015-parameters":"^6.9.0","babel-plugin-transform-es2015-shorthand-properties":"^6.8.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-export-extensions":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.8.0","babel-plugin-transform-runtime":"^6.9.0","babel-register":"^6.11.6","babel-runtime":"^6.11.6","eslint":"^3.2.2","eslint-config-airbnb-base":"^5.0.1","eslint-import-resolver-node":"^0.2.0","eslint-plugin-import":"^1.12.0","nodemon":"^1.9.2"},"dependencies":{"invariant":"^2.2.1","lodash":"^4.15.0","object-assign":"^4.1.0"},"babel":{"plugins":["check-es2015-constants","transform-es2015-arrow-functions","transform-es2015-block-scoping",["transform-es2015-computed-properties",{"loose":true}],["transform-es2015-destructuring",{"loose":true}],["transform-es2015-modules-commonjs",{"loose":true}],"transform-es2015-parameters","transform-es2015-shorthand-properties","transform-es2015-template-literals","transform-object-rest-spread",["transform-runtime",{"polyfill":false,"regenerator":false}],"transform-export-extensions"]},"eslintConfig":{"parser":"babel-eslint","extends":["airbnb-base","plugin:import/errors","plugin:import/warnings"],"settings":{"import/resolver":"node"},"rules":{"consistent-return":0,"no-param-reassign":["error",{"props":false}],"no-unused-vars":["error",{"args":"after-used","argsIgnorePattern":"^_"}],"quote-props":["error","consistent"],"prefer-rest-params":0,"import/no-extraneous-dependencies":["error",{"devDependencies":true}]}},"ava":{"require":"babel-register","source":["**/*.js","!**/*.swp"]},"gitHead":"2cec0da98c86f73585edcb7edbcfe3764a0c552b","_id":"revalidate@0.4.0","_shasum":"ac62d86bd6e703bcc3322556956206f90989831e","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"elpapapollo","email":"elpapapollo@gmail.com"},"maintainers":[{"name":"elpapapollo","email":"elpapapollo@gmail.com"}],"dist":{"shasum":"ac62d86bd6e703bcc3322556956206f90989831e","tarball":"https://registry.npmjs.org/revalidate/-/revalidate-0.4.0.tgz","integrity":"sha512-zdO/AjCmGe3wMyguyqHf/HbTxMhOGA7qtkUUqARisacCFuPZA+oY4V7zeMkVWPECpk71vMsbAK9DDs1uhx1J4w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKSHiPOHTnU++GSZ0LQeLxxiQcKVlloVjAF/mwHPyFNQIgDKrcykHI9n3pRmOKv+RE5gicJRWjoQ0fNNLNjnUbD7Q="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/revalidate-0.4.0.tgz_1471457310937_0.9018490999005735"},"directories":{}},"0.4.1":{"name":"revalidate","version":"0.4.1","description":"Elegant and composable validations","main":"lib/index.js","files":["src","lib","assertions.js"],"scripts":{"build":"babel src --out-dir lib","clean":"rimraf lib","lint":"eslint src/ test/","prepublish":"npm run clean && npm run build","test":"ava","watch:test":"ava -w"},"repository":{"type":"git","url":"git+https://github.com/jfairbank/revalidate.git"},"keywords":["functional","validation","validate","form"],"author":{"name":"Jeremy Fairbank","email":"elpapapollo@gmail.com","url":"http://jeremyfairbank.com"},"license":"MIT","bugs":{"url":"https://github.com/jfairbank/revalidate/issues"},"homepage":"https://github.com/jfairbank/revalidate#readme","devDependencies":{"ava":"^0.16.0","babel-cli":"^6.9.0","babel-core":"^6.9.0","babel-eslint":"^7.0.0","babel-plugin-check-es2015-constants":"^6.8.0","babel-plugin-transform-es2015-arrow-functions":"^6.8.0","babel-plugin-transform-es2015-block-scoping":"^6.9.0","babel-plugin-transform-es2015-computed-properties":"^6.8.0","babel-plugin-transform-es2015-destructuring":"^6.9.0","babel-plugin-transform-es2015-modules-commonjs":"^6.8.0","babel-plugin-transform-es2015-parameters":"^6.9.0","babel-plugin-transform-es2015-shorthand-properties":"^6.8.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-export-extensions":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.8.0","babel-plugin-transform-runtime":"^6.9.0","babel-register":"^6.11.6","babel-runtime":"^6.11.6","eslint":"^3.2.2","eslint-config-airbnb-base":"^8.0.0","eslint-import-resolver-node":"^0.2.0","eslint-plugin-import":"^1.12.0","rimraf":"^2.5.4"},"dependencies":{"invariant":"^2.2.1","lodash":"^4.15.0","object-assign":"^4.1.0"},"babel":{"plugins":["check-es2015-constants","transform-es2015-arrow-functions","transform-es2015-block-scoping",["transform-es2015-computed-properties",{"loose":true}],["transform-es2015-destructuring",{"loose":true}],["transform-es2015-modules-commonjs",{"loose":true}],"transform-es2015-parameters","transform-es2015-shorthand-properties","transform-es2015-template-literals","transform-object-rest-spread",["transform-runtime",{"polyfill":false,"regenerator":false}],"transform-export-extensions"]},"eslintConfig":{"parser":"babel-eslint","extends":["airbnb-base","plugin:import/errors","plugin:import/warnings"],"settings":{"import/resolver":"node"},"rules":{"arrow-parens":0,"consistent-return":0,"no-param-reassign":["error",{"props":false}],"no-plusplus":0,"no-unused-vars":["error",{"args":"after-used","argsIgnorePattern":"^_"}],"quote-props":["error","consistent"],"prefer-rest-params":0,"import/no-extraneous-dependencies":["error",{"devDependencies":true}]}},"ava":{"require":"babel-register","source":["**/*.js","!**/*.swp"]},"gitHead":"3608bd7ef652b8590e0085f41ef526cdeae775eb","_id":"revalidate@0.4.1","_shasum":"f3b49526047613fe4e8413b596c3b2d800d663c3","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"elpapapollo","email":"elpapapollo@gmail.com"},"maintainers":[{"name":"elpapapollo","email":"elpapapollo@gmail.com"}],"dist":{"shasum":"f3b49526047613fe4e8413b596c3b2d800d663c3","tarball":"https://registry.npmjs.org/revalidate/-/revalidate-0.4.1.tgz","integrity":"sha512-xviohaYPyh4UdnbKaBBHvOR5EyRcPxdKS+9IqFLmNsQePAJCwKQyOcqIZLuxymaGej7b3MhvaNgc19oUneP5eQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQv/uiwvoTeDGIZe9W/eaVZwTyX+kKQiacFw7azlYTsgIhAIlB9eldfAsG37HsYp2gjs6ee1o/smUg1D11FktvUh5o"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/revalidate-0.4.1.tgz_1475098823376_0.0056885844096541405"},"directories":{}},"1.0.0":{"name":"revalidate","version":"1.0.0","description":"Elegant and composable validations","main":"lib/index.js","files":["src","lib","assertions.js","immutable.js"],"scripts":{"build":"babel src --out-dir lib","check":"npm run lint && npm run typecheck && npm test","clean":"rimraf lib","lint":"eslint src __tests__","prepublish":"npm run clean && npm run build","test":"jest","typecheck":"flow","watch:test":"jest --watch","docs:clean":"rimraf _book","docs:prepare":"gitbook install","docs:build":"npm run docs:prepare && gitbook build","docs:watch":"npm run docs:prepare && gitbook serve","docs:publish":"npm run docs:clean && npm run docs:build && cp CNAME _book && cd _book && git init && git commit --allow-empty -m 'update book' && git checkout -b gh-pages && touch .nojekyll && git add . && git commit -am 'update book' && git push git@github.com:jfairbank/revalidate gh-pages --force"},"repository":{"type":"git","url":"git+https://github.com/jfairbank/revalidate.git"},"keywords":["functional","validation","validate","form"],"author":{"name":"Jeremy Fairbank","email":"elpapapollo@gmail.com","url":"http://jeremyfairbank.com"},"license":"MIT","bugs":{"url":"https://github.com/jfairbank/revalidate/issues"},"homepage":"https://github.com/jfairbank/revalidate#readme","devDependencies":{"babel-cli":"^6.9.0","babel-core":"^6.9.0","babel-eslint":"^7.0.0","babel-jest":"^16.0.0","babel-plugin-check-es2015-constants":"^6.8.0","babel-plugin-transform-es2015-arrow-functions":"^6.8.0","babel-plugin-transform-es2015-block-scoping":"^6.9.0","babel-plugin-transform-es2015-computed-properties":"^6.8.0","babel-plugin-transform-es2015-destructuring":"^6.9.0","babel-plugin-transform-es2015-modules-commonjs":"^6.8.0","babel-plugin-transform-es2015-parameters":"^6.9.0","babel-plugin-transform-es2015-shorthand-properties":"^6.8.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-export-extensions":"^6.8.0","babel-plugin-transform-flow-strip-types":"^6.14.0","babel-plugin-transform-object-rest-spread":"^6.8.0","babel-plugin-transform-runtime":"^6.9.0","babel-register":"^6.11.6","babel-runtime":"^6.11.6","eslint":"^3.8.0","eslint-config-airbnb-base":"^9.0.0","eslint-import-resolver-node":"^0.2.0","eslint-plugin-flowtype":"^2.20.0","eslint-plugin-import":"^2.0.1","flow-bin":"^0.33.0","gitbook-cli":"^2.3.0","gitbook-plugin-advanced-emoji":"^0.2.1","immutable":"^3.8.1","jest":"^16.0.1","rimraf":"^2.5.4"},"dependencies":{"lodash":"^4.15.0","object-assign":"^4.1.0"},"jest":{"collectCoverage":true,"collectCoverageFrom":["src/**/*.js"],"coverageReporters":["json","lcov","text-summary"],"testRegex":"__tests__/.*\\.test\\.js$"},"gitHead":"fb321bf46a4d771a3f954e86f63d82bc0af96039","_id":"revalidate@1.0.0","_shasum":"a7cb04a14e4627f0c9c9d0331ef2fb88e39e4a00","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.8.0","_npmUser":{"name":"elpapapollo","email":"elpapapollo@gmail.com"},"maintainers":[{"name":"elpapapollo","email":"elpapapollo@gmail.com"}],"dist":{"shasum":"a7cb04a14e4627f0c9c9d0331ef2fb88e39e4a00","tarball":"https://registry.npmjs.org/revalidate/-/revalidate-1.0.0.tgz","integrity":"sha512-cysZFcUgnQwfsaC+KbkxrYHMHWUcJsCdEzE3Liq8XMm18ifORim0hU2a+znwmquwsxb4gnQKODR7YSwZKYShmw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0ytOxWQwej1mmvpe50aBp9huhstLjQDCYE1UTVdmOEgIhANj9KxV60IzTP4Kx2EuQecw40TU5sHGenA9R/evo2VJq"}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/revalidate-1.0.0.tgz_1476754818516_0.5382281332276762"},"directories":{}},"1.1.0":{"name":"revalidate","version":"1.1.0","description":"Elegant and composable validations","main":"lib/index.js","files":["src","lib","assertions.js","immutable.js"],"scripts":{"build":"babel src --out-dir lib","check":"npm run lint && npm run typecheck && npm test","clean":"rimraf lib","lint":"eslint src __tests__","prepublish":"npm run clean && npm run build","test":"jest","typecheck":"flow","watch:test":"jest --watch","docs:clean":"rimraf _book","docs:prepare":"gitbook install","docs:build":"npm run docs:prepare && gitbook build","docs:watch":"npm run docs:prepare && gitbook serve","docs:publish":"npm run docs:clean && npm run docs:build && cp CNAME _book && cd _book && git init && git commit --allow-empty -m 'update book' && git checkout -b gh-pages && touch .nojekyll && git add . && git commit -am 'update book' && git push git@github.com:jfairbank/revalidate gh-pages --force"},"repository":{"type":"git","url":"git+https://github.com/jfairbank/revalidate.git"},"keywords":["functional","validation","validate","form"],"author":{"name":"Jeremy Fairbank","email":"elpapapollo@gmail.com","url":"http://jeremyfairbank.com"},"license":"MIT","bugs":{"url":"https://github.com/jfairbank/revalidate/issues"},"homepage":"https://github.com/jfairbank/revalidate#readme","devDependencies":{"babel-cli":"^6.9.0","babel-core":"^6.9.0","babel-eslint":"^7.0.0","babel-jest":"^17.0.0","babel-plugin-check-es2015-constants":"^6.8.0","babel-plugin-transform-es2015-arrow-functions":"^6.8.0","babel-plugin-transform-es2015-block-scoping":"^6.9.0","babel-plugin-transform-es2015-computed-properties":"^6.8.0","babel-plugin-transform-es2015-destructuring":"^6.9.0","babel-plugin-transform-es2015-modules-commonjs":"^6.8.0","babel-plugin-transform-es2015-parameters":"^6.9.0","babel-plugin-transform-es2015-shorthand-properties":"^6.8.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-export-extensions":"^6.8.0","babel-plugin-transform-flow-strip-types":"^6.14.0","babel-plugin-transform-object-rest-spread":"^6.20.1","babel-plugin-transform-runtime":"^6.9.0","babel-register":"^6.11.6","babel-runtime":"^6.11.6","eslint":"^3.9.1","eslint-config-airbnb-base":"^11.0.0","eslint-import-resolver-node":"^0.2.0","eslint-plugin-flowtype":"^2.20.0","eslint-plugin-import":"^2.1.0","flow-bin":"^0.36.0","gitbook-cli":"^2.3.0","immutable":"^3.8.1","jest":"^17.0.0","rimraf":"^2.5.4"},"dependencies":{"lodash":"^4.15.0","object-assign":"^4.1.0"},"jest":{"collectCoverage":true,"collectCoverageFrom":["src/**/*.js"],"coverageReporters":["json","lcov","text-summary"],"testRegex":"__tests__/.*\\.test\\.js$"},"gitHead":"cf1539806ba4a1481880e903ce03221cf4dd63a3","_id":"revalidate@1.1.0","_shasum":"2270ae63e9e8caa180b560aee6a92ace687053d3","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"elpapapollo","email":"elpapapollo@gmail.com"},"maintainers":[{"name":"elpapapollo","email":"elpapapollo@gmail.com"}],"dist":{"shasum":"2270ae63e9e8caa180b560aee6a92ace687053d3","tarball":"https://registry.npmjs.org/revalidate/-/revalidate-1.1.0.tgz","integrity":"sha512-dOFGVZuY7Y228zqyA7Z7NtYAKd+apnxjWutMsJC0XVfAQC4i8oz9Ven0hlrmTdyEqCwSkbR+cY52hvPH3oFmjA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/2KmGehI/gZA62hVOIr1x68/K8JSGKn7XNxFM1mHuzAIgEsNJP0iOwYaYzEH9U1dM3YYBjeYZfJTXVxU97J0TWiE="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/revalidate-1.1.0.tgz_1483566807043_0.6115126670338213"},"directories":{}},"1.2.0":{"name":"revalidate","version":"1.2.0","description":"Elegant and composable validations","main":"lib/index.js","files":["src","lib","assertions.js","immutable.js"],"scripts":{"build":"babel src --out-dir lib","check":"npm run lint && npm run typecheck && npm test","clean":"rimraf lib","lint":"eslint src __tests__","prepublish":"npm run clean && npm run build","test":"jest","typecheck":"flow","watch:test":"jest --watch","docs:clean":"rimraf _book","docs:prepare":"gitbook install","docs:build":"npm run docs:prepare && gitbook build","docs:watch":"npm run docs:prepare && gitbook serve","docs:publish":"npm run docs:clean && npm run docs:build && cp CNAME _book && cd _book && git init && git commit --allow-empty -m 'update book' && git checkout -b gh-pages && touch .nojekyll && git add . && git commit -am 'update book' && git push git@github.com:jfairbank/revalidate gh-pages --force"},"repository":{"type":"git","url":"git+https://github.com/jfairbank/revalidate.git"},"keywords":["functional","validation","validate","form"],"author":{"name":"Jeremy Fairbank","email":"elpapapollo@gmail.com","url":"http://jeremyfairbank.com"},"license":"MIT","bugs":{"url":"https://github.com/jfairbank/revalidate/issues"},"homepage":"https://github.com/jfairbank/revalidate#readme","devDependencies":{"babel-cli":"^6.9.0","babel-core":"^6.9.0","babel-eslint":"^7.0.0","babel-jest":"^17.0.0","babel-plugin-check-es2015-constants":"^6.8.0","babel-plugin-transform-es2015-arrow-functions":"^6.8.0","babel-plugin-transform-es2015-block-scoping":"^6.9.0","babel-plugin-transform-es2015-computed-properties":"^6.8.0","babel-plugin-transform-es2015-destructuring":"^6.9.0","babel-plugin-transform-es2015-modules-commonjs":"^6.8.0","babel-plugin-transform-es2015-parameters":"^6.9.0","babel-plugin-transform-es2015-shorthand-properties":"^6.8.0","babel-plugin-transform-es2015-spread":"^6.22.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-export-extensions":"^6.8.0","babel-plugin-transform-flow-strip-types":"^6.14.0","babel-plugin-transform-object-rest-spread":"^6.20.1","babel-plugin-transform-runtime":"^6.9.0","babel-register":"^6.11.6","babel-runtime":"^6.11.6","eslint":"^3.9.1","eslint-config-airbnb-base":"^11.0.0","eslint-import-resolver-node":"^0.2.0","eslint-plugin-flowtype":"^2.20.0","eslint-plugin-import":"^2.1.0","flow-bin":"^0.36.0","gitbook-cli":"^2.3.0","immutable":"^3.8.1","jest":"^17.0.0","rimraf":"^2.5.4"},"dependencies":{"lodash":"^4.15.0","object-assign":"^4.1.0"},"jest":{"collectCoverage":true,"collectCoverageFrom":["src/**/*.js"],"coverageReporters":["json","lcov","text-summary"],"testRegex":"__tests__/.*\\.test\\.js$"},"gitHead":"fb3917da39890492be20938228dbf99e27ae32e3","_id":"revalidate@1.2.0","_npmVersion":"5.0.0","_nodeVersion":"8.0.0","_npmUser":{"name":"elpapapollo","email":"elpapapollo@gmail.com"},"maintainers":[{"name":"elpapapollo","email":"elpapapollo@gmail.com"}],"dist":{"integrity":"sha512-lzixPtHjSwjmn9gT3udLn/ItO7lrUfNABcLRfcUv0WX4LJ4s/WGJD1ahbJu5skczZtiV1yJQr2NslOSi8I+CiA==","shasum":"dffdd52a92e0158de79a5a85ce01b65815f55c5d","tarball":"https://registry.npmjs.org/revalidate/-/revalidate-1.2.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE4jZ6yOUbwiAuFXwJ0sNKi9vRa5nseqUu/mjwMRkLoFAiBre5wnoc1cpSK0cyu3pOGWYgDDY74u6BAKO7vmquZOCQ=="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/revalidate-1.2.0.tgz_1502474383337_0.3550900442060083"},"directories":{}}},"readme":"# <img src=\"https://raw.githubusercontent.com/jfairbank/revalidate/master/logo/logo.png\" width=\"350\" alt=\"revalidate\">\n\n[![npm](https://img.shields.io/npm/v/revalidate.svg?style=flat-square)](https://www.npmjs.com/package/revalidate)\n[![Travis branch](https://img.shields.io/travis/jfairbank/revalidate/master.svg?style=flat-square)](https://travis-ci.org/jfairbank/revalidate)\n[![Codecov](https://img.shields.io/codecov/c/github/jfairbank/revalidate.svg?style=flat-square)](https://codecov.io/gh/jfairbank/revalidate)\n\n#### Elegant and composable validations.\n\nRevalidate is a library for creating and composing together small validation\nfunctions to create complex, robust validations. There is no need for awkward\nconfiguration rules to define validations. Just use functions.\n\nAll right. No more upselling. Just look at an example :heart:.\n\n```js\n// ES2015\nimport {\n  createValidator,\n  composeValidators,\n  combineValidators,\n  isRequired,\n  isAlphabetic,\n  isNumeric\n} from 'revalidate';\n\n// Or ES5\nvar r = require('revalidate');\nvar createValidator = r.createValidator;\nvar composeValidators = r.composeValidators;\nvar combineValidators = r.combineValidators;\nvar isRequired = r.isRequired;\nvar isAlphabetic = r.isAlphabetic;\nvar isNumeric = r.isNumeric;\n\n// Usage\nconst dogValidator = combineValidators({\n  name: composeValidators(\n    isRequired,\n    isAlphabetic\n  )('Name'),\n\n  age: isNumeric('Age')\n});\n\ndogValidator({}); // { name: 'Name is required' }\n\ndogValidator({ name: '123', age: 'abc' });\n// { name: 'Name must be alphabetic', age: 'Age must be numeric' }\n\ndogValidator({ name: 'Tucker', age: '10' }); // {}\n```\n\n## Install\n\nInstall with yarn or npm.\n\n```\nyarn add revalidate\n```\n\n```\nnpm install --save revalidate\n```\n\n## Getting Started\n\n#### [Docs](http://revalidate.jeremyfairbank.com)\n\nRevalidate has a host of options along with helper functions for building\nvalidations and some common validation functions right out of the box. To learn\nmore, check out the docs at [revalidate.jeremyfairbank.com](http://revalidate.jeremyfairbank.com).\n\n## Redux Form\n\nJust one more example! You might have heard about revalidate through Redux Form.\nRevalidate was originally conceived as a library for writing validation\nfunctions for Redux Form. Revalidate is still a great companion to Redux Form!\nHere is the simple synchronous form validation from Redux Form's\n[docs](http://redux-form.com/6.1.1/examples/syncValidation) rewritten to use\nrevalidate:\n\n```js\nimport React from 'react'\nimport { Field, reduxForm } from 'redux-form'\n\nimport {\n  createValidator,\n  composeValidators,\n  combineValidators,\n  isRequired,\n  hasLengthLessThan,\n  isNumeric\n} from 'revalidate'\n\nconst isValidEmail = createValidator(\n  message => value => {\n    if (value && !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(value)) {\n      return message\n    }\n  },\n  'Invalid email address'\n)\n\nconst isGreaterThan = (n) => createValidator(\n  message => value => {\n    if (value && Number(value) <= n) {\n      return message\n    }\n  },\n  field => `${field} must be greater than ${n}`\n)\n\nconst customIsRequired = isRequired({ message: 'Required' })\n\nconst validate = combineValidators({\n  username: composeValidators(\n    customIsRequired,\n\n    hasLengthLessThan(16)({\n      message: 'Must be 15 characters or less'\n    })\n  )(),\n\n  email: composeValidators(\n    customIsRequired,\n    isValidEmail\n  )(),\n\n  age: composeValidators(\n    customIsRequired,\n\n    isNumeric({\n      message: 'Must be a number'\n    }),\n\n    isGreaterThan(17)({\n      message: 'Sorry, you must be at least 18 years old'\n    })\n  )()\n})\n\nconst warn = values => {\n  const warnings = {}\n  if (values.age < 19) {\n    warnings.age = 'Hmm, you seem a bit young...'\n  }\n  return warnings\n}\n\nconst renderField = ({ input, label, type, meta: { touched, error, warning } }) => (\n  <div>\n    <label>{label}</label>\n    <div>\n      <input {...input} placeholder={label} type={type}/>\n      {touched && ((error && <span>{error}</span>) || (warning && <span>{warning}</span>))}\n    </div>\n  </div>\n)\n\nconst SyncValidationForm = (props) => {\n  const { handleSubmit, pristine, reset, submitting } = props\n  return (\n    <form onSubmit={handleSubmit}>\n      <Field name=\"username\" type=\"text\" component={renderField} label=\"Username\"/>\n      <Field name=\"email\" type=\"email\" component={renderField} label=\"Email\"/>\n      <Field name=\"age\" type=\"number\" component={renderField} label=\"Age\"/>\n      <div>\n        <button type=\"submit\" disabled={submitting}>Submit</button>\n        <button type=\"button\" disabled={pristine || submitting} onClick={reset}>\n          Clear Values\n        </button>\n      </div>\n    </form>\n  )\n}\n\nexport default reduxForm({\n  form: 'syncValidation',  // a unique identifier for this form\n  validate,                // <--- validation function given to redux-form\n  warn                     // <--- warning function given to redux-form\n})(SyncValidationForm)\n```\n","maintainers":[{"name":"elpapapollo","email":"elpapapollo@gmail.com"}],"time":{"modified":"2022-06-26T12:48:32.247Z","created":"2016-03-05T00:05:53.334Z","0.0.1":"2016-03-05T00:05:53.334Z","0.1.0":"2016-03-11T20:26:35.661Z","0.2.0":"2016-05-26T00:48:47.205Z","0.2.1":"2016-05-26T00:53:01.814Z","0.3.0":"2016-08-06T20:38:38.929Z","0.4.0":"2016-08-17T18:08:32.703Z","0.4.1":"2016-09-28T21:40:25.269Z","1.0.0":"2016-10-18T01:40:20.593Z","1.1.0":"2017-01-04T21:53:27.833Z","1.2.0":"2017-08-11T17:59:44.259Z"},"homepage":"https://github.com/jfairbank/revalidate#readme","keywords":["functional","validation","validate","form"],"repository":{"type":"git","url":"git+https://github.com/jfairbank/revalidate.git"},"author":{"name":"Jeremy Fairbank","email":"elpapapollo@gmail.com","url":"http://jeremyfairbank.com"},"bugs":{"url":"https://github.com/jfairbank/revalidate/issues"},"license":"MIT","readmeFilename":"README.md","users":{"rahulraghavankklm":true,"abukurov":true}}