{"_id":"validator.js","_rev":"94-42d984a12163523b9dd572778dcb3ebb","name":"validator.js","description":"Powerful object and string validation in Javascript.","dist-tags":{"latest":"2.0.4"},"versions":{"0.0.1":{"name":"validator.js","version":"0.0.1","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./validator","devDependencies":{"mocha":"*","expect.js":"*"},"_id":"validator.js@0.0.1","dist":{"shasum":"eefa1f5c664b8f11743c28d3a9397bb9d757f3ec","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.0.1.tgz","integrity":"sha512-0gXEFbu4BYTPHt0F3sVD8KdP42imfIVTwG3btopOc1wfxWChlgRNp7faymvnI3n9Wk1SsNA6cPtCDJoRvdZhHw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBcpmquEg8BJff0NJzi+Pv5tepaXoJNsJTQ6YiBXcoPsAiAsYujj6w3hn3ZsI05hg+mAjidAetxaXCtphkepgDYVGQ=="}]},"_from":"./","_npmVersion":"1.2.18","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.0.2":{"name":"validator.js","version":"0.0.2","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./validator","devDependencies":{"mocha":"*","expect.js":"*"},"_id":"validator.js@0.0.2","dist":{"shasum":"072fcf52eaa29e0f0da95bf97d5badd2c30c8d9a","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.0.2.tgz","integrity":"sha512-s9+e2OS4P21CuVzxC99yQ7CHw+WJPbXZCrwMWnqeJ28ORpohlKCGOL6RMGzf5nzwNj8u9+3x3jCTivu54I9KAQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICaYEoV6PMnW5fC12tCTX8le8u5hzs0yV72W7wyIkr0zAiBNfzHBN4/2XOtkyx5iENvc3K4dOndXKwL+6SAjDTodbg=="}]},"_from":"./","_npmVersion":"1.2.18","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.0.3":{"name":"validator.js","version":"0.0.3","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./validator","devDependencies":{"mocha":"*","expect.js":"*"},"_id":"validator.js@0.0.3","dist":{"shasum":"11df5cfe820b33604cec72c9b70d2706a808b13d","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.0.3.tgz","integrity":"sha512-vkl9Os8WH/zxcs8U0PYnZq4lGY0FnwDB8n+p3PF/2fXOUCOCQ2rGzJy3Jez1PHuL+pBKu+mlLWRCOpxfNyk0XA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGBticrgGdeNq1bI7xNAj3KSLc10ri99vZgC0QDkDMjRAiBSH+8bb1K90lDyW8yBfGUpOamCzch23jXIIMyF6br2dQ=="}]},"_from":"./","_npmVersion":"1.2.18","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.1.0":{"name":"validator.js","version":"0.1.0","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./validator","devDependencies":{"mocha":"*","expect.js":"*"},"_id":"validator.js@0.1.0","dist":{"shasum":"a02752f874fc086528480628a7b197965bb2116c","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.1.0.tgz","integrity":"sha512-Ke+nlAzNC7jSMCX05DX/WTWvE63YYzxagXDQa/KWpCji6nSeQV2G0QbBBCSKeAMDeT5VhU7n3deif4m/0z4ayw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCF1MD+ILeog7IrEBTWT1W4pNW6nKImAkEMGzWf9wxqPQIgCmiXP+e5bnKHNpQd0W5o3ARYA66DTI4WsXhwx1HnS24="}]},"_from":"./","_npmVersion":"1.2.18","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.2.0":{"name":"validator.js","version":"0.2.0","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./validator","devDependencies":{"mocha":"*","expect.js":"*"},"_id":"validator.js@0.2.0","dist":{"shasum":"77b1739983632ae0a9fa38647f16364a8f6ec7fe","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.2.0.tgz","integrity":"sha512-tLOStWwHJjVWRfIElQh3Yk095OYmP9xDznCMgUaTC33vlp8M7AcjAZrATs+mfjwpH+YxsE5Q0prwxdK9toFcKw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICd6wHwKMxkeXULiHO5J335A0S1d8vWrn2hq2k+9ZQ1hAiEAwsCYPsJV4dTpPpbxf5vkvqUlenTi29GfZw7VicBr08g="}]},"_from":"./","_npmVersion":"1.2.18","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.2.1":{"name":"validator.js","version":"0.2.1","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./validator","devDependencies":{"mocha":"*","expect.js":"*"},"_id":"validator.js@0.2.1","dist":{"shasum":"76ecba6e80165a15f16ec3b36b316ce60f687c83","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.2.1.tgz","integrity":"sha512-mWXC3k/OmKYUSARJ1F5HrNjxRswseVMx1y/G4PTU2ysW2E4ZsRZysxdoGobyxal5dbNBk/cSFL1BZu7zbd4fyQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAWOhvCEfoJmO6BiwbNZZVpCjiXq2yNX1r8PZZwNkCgQIgbPanMqNbQZfwNdCfFGSqW70MEWMlp3pSHuayNYMnymY="}]},"_from":"./","_npmVersion":"1.2.18","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.2.2":{"name":"validator.js","version":"0.2.2","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./validator","devDependencies":{"mocha":"*","expect.js":"*"},"_id":"validator.js@0.2.2","dist":{"shasum":"41991fc7ca6067b2c7554a42f0ff2145035e314b","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.2.2.tgz","integrity":"sha512-ajlQq2QlgMfQfRsM7ibiDzWwqhuaio3uzp/a/Nj2Pd0eOR5nnFV2hZG8R3muiNkw6Fg1aDuoW5VGzNI2Ohcnmg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjf5bQIxAgyu0ITDUmzkgnhIBLP1DSC1xyi2DPUXSrWgIhAOsYtzYa4bJCtZ4MrQe5e08dipWfaliyHmZ/2M57/mJg"}]},"_from":"./","_npmVersion":"1.2.18","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.2.3":{"name":"validator.js","version":"0.2.3","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./validator","devDependencies":{"mocha":"*","expect.js":"*"},"_id":"validator.js@0.2.3","dist":{"shasum":"a735ce629769bde2f8048ad6bb1b8d230aa49007","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.2.3.tgz","integrity":"sha512-/M0D6CG7rEKZiZt9pMBth187OlMdrb8Gc+Yg/6f6pgTQCULJ/Wfg00eeQ5F0aZFBtSVPM6Bm5ZGead4JPoqggw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCiyn2pEr0NQt1loPXR+0qSnXYr8pPM/iQJxDeJRShuKwIgcds2R0rRRdYL95buF7HmoCnDe6FbJFQoMq8Jk1FHMBE="}]},"_from":"./","_npmVersion":"1.2.18","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.3.0":{"name":"validator.js","version":"0.3.0","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./validator","devDependencies":{"mocha":"*","expect.js":"*"},"_id":"validator.js@0.3.0","dist":{"shasum":"bc53886bbc746412cf40ef4dddcf787a4cd42dc1","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.3.0.tgz","integrity":"sha512-4XEhFUlqEPBkSQtH9JD+EezAjahppMprjXK33f6v8RN6E80iOSuUxFCE9HdJBy2SYl36Zz2w+Bt0xn3u+hX16A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCV/ekDS+yAGOFhugrLX0iqcLVFoxcKQGhfBirOPRN4tAIhAKW1Fz0qowJyeLuxOSxZwCvmuFSD/KHxFJWA4BIdTVrs"}]},"_from":"./","_npmVersion":"1.2.18","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.3.1":{"name":"validator.js","version":"0.3.1","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./validator","devDependencies":{"mocha":"*","expect.js":"*"},"_id":"validator.js@0.3.1","dist":{"shasum":"1cf192f9f383ea0448d63db6768b1b6f5537fb49","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.3.1.tgz","integrity":"sha512-sEGAcXBJJIrM2wi6f0fCnBQLYGgaxVL1gx0fzI2bvEFH+oDl70OOtobSMB/SBbaMqYiNax/aTJJU4LfEh92yuw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDU5wRVXM0LIfGMsmUee2JpSdjqGcEARf1DKcfXEcL3FAiBWPsBL63YMeEb/ox53EUp8MCX+rKBJIOWSnn9B6Tkx1Q=="}]},"_from":"./","_npmVersion":"1.2.18","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.4.0":{"name":"validator.js","version":"0.4.0","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./validator","devDependencies":{"mocha":"*","expect.js":"*"},"_id":"validator.js@0.4.0","dist":{"shasum":"569738d6bdc6844b1752488c58a6d923564fab8c","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.4.0.tgz","integrity":"sha512-zvGv+yDZCflhGpyCsiLqaCH79gCysVF/pzQ76RHA4cx8IeUmUTMgk6wU2mZwIGFTMLiDLw8I1VjHRYSa73TGGA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBdscYX1N+3PKwZIY2R2LiFtq9mkELXot17aJjXdM+idAiEA8CJhhkliJ+5+kXm9SKNgP2+OC2cICO9TYZIdr6U4dpU="}]},"_from":"./","_npmVersion":"1.3.8","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.4.1":{"name":"validator.js","version":"0.4.1","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./validator","devDependencies":{"mocha":"*","expect.js":"*"},"_id":"validator.js@0.4.1","dist":{"shasum":"97372fa28db5d2406c3f6aa15516cd6e4f2925e9","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.4.1.tgz","integrity":"sha512-hA8pj9FJyiNEpoztxZ6KTxn3alI6VgcaSadNghARvRs0Idq1PcFhZUW7pTWGi2IkzmG4xDCYuXT8ygZeouFU0g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAf/zAkTJT8HY+qCsrlXpWIZPsjNhde03ooykJfAkzTAAiB+qppXqQY4/5je7MY4oNtXrWDcO+7PbYSFZXe365j7Xg=="}]},"_from":"./","_npmVersion":"1.3.8","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.4.3":{"name":"validator.js","version":"0.4.3","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./validator","devDependencies":{"mocha":"*","expect.js":"*"},"_id":"validator.js@0.4.3","dist":{"shasum":"14a59f4da6f92dc84bddc758a7202c6d5c0a0257","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.4.3.tgz","integrity":"sha512-cqxUIErD7P0RUrg3CvzUCKlSflQPgyU/QUQFgMMAjSbwaJQDw4Tw/kD0PP7VeYNropaoAlwFmSpD8cxJUXfpug==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9VncwVgXlLcbRarFkLterXXtNV9tNYSOR8RWIOA9mQgIgDU/iZ2RzBEx5vtUlL6pSOb1krmPUVjEu0qjCuKcJUA0="}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.4.4":{"name":"validator.js","version":"0.4.4","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./validator","devDependencies":{"mocha":"*","expect.js":"*"},"scripts":{"test":"mocha tests/server.js -R dot && mocha tests/server.min.js -R dot"},"_id":"validator.js@0.4.4","dist":{"shasum":"ee52b5b8c5d85f257c96a761a8e2bcb223758d42","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.4.4.tgz","integrity":"sha512-gRHTEaaDigsF2tP2HNptLTsoc2IbW2sv4GghlDnJIaahtoLYzgmzBSiepwA8I1GeL5ZpGi8rREt/5b6gyYGdCQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICDHj2BduY6wJrjUuQx3NVOejYQFcIZN4HgLTitCAgYUAiBS1SYhbKzw98yqlAgWvOqxTT5Abeu6RHZL7Ho0HzT7gA=="}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.4.7":{"name":"validator.js","version":"0.4.7","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./validator","devDependencies":{"mocha":"*","expect.js":"*"},"scripts":{"test":"mocha tests/server.js -R dot && mocha tests/server.min.js -R dot"},"_id":"validator.js@0.4.7","dist":{"shasum":"13976e2327bd427cb79ebf68db1e26007da7374e","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.4.7.tgz","integrity":"sha512-gpIl9CfzdJsB8bVcYiPxfbYUN8zvvsXQIEXmRjKtUlXnuhSnTVhQWfdQNwwiycEFVOYRQHAJCBgxpklz/wH/IQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH3MYEKvkQmGyxb0lY7oWClJNteWj2SHXFJGNXFYgajOAiEA/s+pPmnc5OKzUnY4C0OUSL2BE+S2VJqDZbQVsDxd3pc="}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.4.8":{"name":"validator.js","version":"0.4.8","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./dist/validator","devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~0.2.7","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0"},"scripts":{"test":"mocha tests/server.js -R dot && mocha tests/server.min.js -R dot"},"_id":"validator.js@0.4.8","dist":{"shasum":"bd43bb8cffdb69f97a6d8be863fd760674057d08","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.4.8.tgz","integrity":"sha512-hj48lBG5G65VbXJYi8nJhtGF2D9sK4htmpHWx9P4NUjuicO1XMRBF4c/BFtvNJ24DuzcV+ile+11Q7+bjcXbXw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDi+FKETYbnaoYroOrsQw0ZbV36r/kyNDVxbQIw2kAUMgIhANU+Q2DQ73QfOmRo2d6eC4wR1hieh6uM/FVuKxCm2y0n"}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.4.9":{"name":"validator.js","version":"0.4.9","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":["./dist/validator","./dist/validator.min"],"devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~0.2.7","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0"},"scripts":{"test":"mocha tests/server.js -R dot && mocha tests/server.min.js -R dot"},"_id":"validator.js@0.4.9","dist":{"shasum":"36669a90388b844464ab7b25ecf2e9c1ee0eff72","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.4.9.tgz","integrity":"sha512-PKq9i355pS/aqF7b+LWDna3NnR2PnlC0cltNvbQi0I7HbJMwkOBWI430hcVkrDaPbio6jzfl+02SqR+ru0th2A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBTPz9tpHUkqWcNg09k/Rxt3duwG1ohC4Uxdh3SdLkjZAiEAkp8bguoy+83/mrmj9UUamsF/OAJkg6uH8kSX9INQEMQ="}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.4.11":{"name":"validator.js","version":"0.4.11","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":["./dist/validator","./dist/validator.min"],"devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~0.2.7","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0"},"scripts":{"test":"mocha tests/server.js -R dot && mocha tests/server.min.js -R dot"},"_id":"validator.js@0.4.11","dist":{"shasum":"c45e95dda0d4a4b4ca24cfbc99343997df865344","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.4.11.tgz","integrity":"sha512-3qdBg619K01wCJu4IdrHIU9o0qmTTcOTAyUaDrQ/1em7Nn8d4Ap14bNg6wW/sdTto7BIcINpMpDjD7Cqy8EQdQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAXKswfanKmX5m+nqmPtNOMUM7uADxcOo+Vwf0wl0bxBAiEAwh7ILLO3RBm3BZYSBO9H0kFywxTKqCm76iACzfc2piA="}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.4.12":{"name":"validator.js","version":"0.4.12","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":["./dist/validator","./dist/validator.min"],"devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~0.2.7","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0"},"scripts":{"test":"mocha tests/server.js -R dot && mocha tests/server.min.js -R dot"},"_id":"validator.js@0.4.12","dist":{"shasum":"c911d3148dbaf0ba867ef6f704b20194159adc96","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.4.12.tgz","integrity":"sha512-HpNb5ZG2d+1b0wcM/d8bzx4XMVaNNT6Q5Jk789DhHpYNUUkPRcLc92uEzjQnqql8mctZTQTpYqayfR2glvJnJw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHF7Dffl0I0785ZrTc8+z+Ur8Q0WLVTNoENRofuwi65gAiEAwAN4ZOp3ejOhA7rZJ1Kq75QnEDy5F366ivDQBec4wY0="}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.5.0":{"name":"validator.js","version":"0.5.0","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":["./dist/validator","./dist/validator.min"],"devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~0.2.7","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0"},"scripts":{"test":"mocha tests/server.js -R dot && mocha tests/server.min.js -R dot"},"_id":"validator.js@0.5.0","dist":{"shasum":"0277718cd467eacdc21fe127056e5739208a0864","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.5.0.tgz","integrity":"sha512-BclOZzD9N1h3VjcgGTEiNGksBT1LToqqBJ48/soqlmBER4AH2S8lOwQ7T+uqhwXIDpCeqYh/fBbC1o2Tj4qwqg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDwZHHMGpuhoadI+XY2R83QqhAfycCNn88E1n9lM1jFVAIgHdmemZdx3HpbUaJN925OhV+OLLZeyeKfvwjIPECsj2A="}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.5.2":{"name":"validator.js","version":"0.5.2","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":["./dist/validator","./dist/validator.min"],"devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~0.2.7","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0"},"scripts":{"test":"mocha tests/server.js -R dot && mocha tests/server.min.js -R dot"},"_id":"validator.js@0.5.2","dist":{"shasum":"21774ed9d9f03fdb61a110775bfe79f845257a9f","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.5.2.tgz","integrity":"sha512-iMkCsFaJ9HhVhkcSsLKqwJOVLWaaRu8Z52v+vNGGmpnseYoQi+au5IyhbhiQ3OX9rCpbMyqolClHS7wGwfpOWA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID13wu2q0+Hldazq5yCubLyTQvStSYoz2R92j4XpZ+knAiBjQfl3hWkNoNuPVw8HgALzfiDA0Ufw1LFskjMK56+D+A=="}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.5.3":{"name":"validator.js","version":"0.5.3","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":["./dist/validator","./dist/validator.min"],"devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~0.2.7","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0"},"scripts":{"test":"mocha tests/server.js -R dot && mocha tests/server.min.js -R dot"},"_id":"validator.js@0.5.3","dist":{"shasum":"611b8083e805763401132a5c7108c8b66048572d","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.5.3.tgz","integrity":"sha512-7H5pxy2DHk1vyo28Woj0BKnWVSs047Xh8WpfIkxBAUkvAcVMNiOVs8Fz4oIFng5P4NPXHZviV1+wprft5frP+A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEc68mXGnBkb3SkZAfQ6PQpJYGNFXZVs4wX/QFIQopAwAiB4YVn+qOG3G3XbYpkhbyh7s/xtF9IilStZcx5Y4FJEVg=="}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.5.8":{"name":"validator.js","version":"0.5.8","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":["./dist/validator","./dist/validator.min"],"devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~0.2.7","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0"},"scripts":{"test":"mocha tests/server.js -R dot && mocha tests/server.min.js -R dot"},"_id":"validator.js@0.5.8","dist":{"shasum":"c6a5768ae84745308abb9d257bf143f9e4baf3d0","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.5.8.tgz","integrity":"sha512-qpbBkVYd3Im1meRxyY8jC4hcEjSM3ZC7cocecMeZXTl8WJo6aI58TDhwpR1kbPgDVmjyKNHgMgdIaZa69dtyzQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH5uprxf8CupeSi7oW3J8pNlZ4o474UcQVlNIxp6a2puAiBKbCLVP3a8o3lllhvmZqbbaT6FqnIxnDHfeTBYcI1a4g=="}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.6.0":{"name":"validator.js","version":"0.6.0","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./dist/validator","devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~0.2.7","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0"},"scripts":{"test":"mocha tests/server.js -R dot && mocha tests/server.min.js -R dot"},"_id":"validator.js@0.6.0","dist":{"shasum":"c4bd0e641522740444c14c725dc52aaf58abd913","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.6.0.tgz","integrity":"sha512-rD8Jc60GQR6L4bFrGzLXFpDF6EG+7lRrOMwGZPNrGgr9pVP9755gxw/cnO/3++IEgkItHvPf8GwZTQjy/BI64A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHERWNxR+i3JHPDhSGxNlCydsNtcZU1vwlVQYNPC9LqgIhALff9IdZzB2WC19YWPVRT6y2A2n6ssgnCxgl+7WatXxb"}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"0.6.1":{"name":"validator.js","version":"0.6.1","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./dist/validator","repository":{"type":"git","url":"https://github.com/guillaumepotier/validator.js"},"devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~0.2.7","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0"},"scripts":{"test":"mocha tests/server.js -R dot && mocha tests/server.min.js -R dot"},"bugs":{"url":"https://github.com/guillaumepotier/validator.js/issues"},"_id":"validator.js@0.6.1","dist":{"shasum":"bb90ff2433b856bf08a0bf0dafd8a8f166bfb5ed","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-0.6.1.tgz","integrity":"sha512-/uI4mg+zPsaweqtZocw3Ui6Kf5P7kICVT4Eci07iDEuoINAclBm8CvmStU0c2Ahh1g/bOY7duytq+8D2HmXtPA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4r5ApVq7DWojh7CkrxembNkCdWce/WLMnUlaAXINdjgIgWjNYowgfTKVeYLOeGW+6JOs5mtp+EIqqOao+POn94zM="}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"1.0.0":{"name":"validator.js","version":"1.0.0","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./dist/validator","repository":{"type":"git","url":"https://github.com/guillaumepotier/validator.js"},"devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~0.2.7","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0"},"scripts":{"test":"mocha tests/server.js -R dot && mocha tests/server.min.js -R dot"},"bugs":{"url":"https://github.com/guillaumepotier/validator.js/issues"},"_id":"validator.js@1.0.0","dist":{"shasum":"2f4f9c4e99d0c8e3fb86b4088e587eca2054659d","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-1.0.0.tgz","integrity":"sha512-lZOvAcsuEPtmqNng/Oi3rbFlETt669WB8Bcr8jhSs6bXS1znSzfNicNj0aWfjbjRTqDRSB2Uls219SyRO7PoRA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDIx5qp7gPVeXyaIsWiMNFogxDsz9ZrfgsEjZ4fAnQdeQIgaSkKGfj73mYWps5wCj2LhHLLtGUOdO9MvWW5Y1yS3tw="}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"1.0.1":{"name":"validator.js","version":"1.0.1","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./dist/validator","repository":{"type":"git","url":"https://github.com/guillaumepotier/validator.js"},"devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~0.2.7","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0"},"scripts":{"test":"mocha tests/server.js -R dot && mocha tests/server.min.js -R dot"},"bugs":{"url":"https://github.com/guillaumepotier/validator.js/issues"},"_id":"validator.js@1.0.1","dist":{"shasum":"9757950ac1663fdf340557c1b962804986d7cb3b","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-1.0.1.tgz","integrity":"sha512-/MfdYmM+BK02snJ+E4hy1FVyhohJr+WKnXzsA/05MdMJ5N+vp8njTv1XE8tXjsLn0DSiPXzWGNPvTJcF3HZbbg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEWWiZY7NcPWnktiW/Ffnw0rBWUSazTVa4ftiDxfxwEGAiATNECUqhg218rbNMMRai12L2TxEtzneIPI+yAFZfrIfw=="}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"1.1.1":{"name":"validator.js","version":"1.1.1","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./dist/validator","repository":{"type":"git","url":"git+https://github.com/guillaumepotier/validator.js.git"},"devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~0.2.7","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0"},"scripts":{"build":"grunt build","test":"mocha tests/server.js -R dot","test-dist":"mocha tests/server.min.js -R dot"},"gitHead":"5fc3913a0856fda5ae133d50e9c78d9c42bbc0aa","bugs":{"url":"https://github.com/guillaumepotier/validator.js/issues"},"homepage":"https://github.com/guillaumepotier/validator.js#readme","_id":"validator.js@1.1.1","_shasum":"8c3d45127974a45736c987f7ecf88390cda86c9f","_from":".","_npmVersion":"2.8.3","_nodeVersion":"0.10.16","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"dist":{"shasum":"8c3d45127974a45736c987f7ecf88390cda86c9f","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-1.1.1.tgz","integrity":"sha512-0I8p/YaVnYBYipwfnA3b1nVtMgt6CGOyXHUp+ApdCcO6QCkl2Ie5yZj6425cpGuL9wTUziQtg8123Yh8Prx1kg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID/4hR0yCCOAZz8N2H4eJYDnItMTBHh/ZLjrE6SZZrglAiA7sQdPzXsLucBhD3p4lvJU71GYr3FX7vpTgqbHu2rBpg=="}]},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"1.1.2":{"name":"validator.js","version":"1.1.2","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./src/validator","repository":{"type":"git","url":"git+https://github.com/guillaumepotier/validator.js.git"},"devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~0.2.7","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0","sinon":"~1.14.1"},"scripts":{"build":"grunt build","test":"mocha tests/server.js -R dot","test-dist":"mocha tests/server.min.js -R dot"},"gitHead":"4289a9474cbe0a7bf5c354a3c8141e0796fcb253","bugs":{"url":"https://github.com/guillaumepotier/validator.js/issues"},"homepage":"https://github.com/guillaumepotier/validator.js#readme","_id":"validator.js@1.1.2","_shasum":"a797fa62d7e7f217f223168bdd809cf17c275d32","_from":".","_npmVersion":"2.8.3","_nodeVersion":"0.10.16","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"dist":{"shasum":"a797fa62d7e7f217f223168bdd809cf17c275d32","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-1.1.2.tgz","integrity":"sha512-4XZ3JHO9K3c0ERgBzdlLqraCYTkp96RqXILuZr3ySBl8lTcQSDtnORWHIgzaPK2CWREWqMs164UWpCUl/fPkKw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBTOmFL73j/EHZZBmsSuBHNesTuZP654lnlPAJUydfGdAiBVPCkWcCkmCTbkkYt5mSuzjWAC1rN0YETUVszMG++fpw=="}]},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"1.2.0":{"name":"validator.js","version":"1.2.0","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./src/validator","repository":{"type":"git","url":"git+https://github.com/guillaumepotier/validator.js.git"},"devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~0.2.7","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0","sinon":"~1.14.1"},"scripts":{"build":"grunt build","test":"mocha tests/server.js -R dot","test-dist":"mocha tests/server.min.js -R dot"},"gitHead":"9656cf4f5b4f796ed787e0501265abead0dc19c9","bugs":{"url":"https://github.com/guillaumepotier/validator.js/issues"},"homepage":"https://github.com/guillaumepotier/validator.js#readme","_id":"validator.js@1.2.0","_shasum":"6526a4ac4cde7d134f086462cb11f31152f73ee0","_from":".","_npmVersion":"2.8.3","_nodeVersion":"0.10.16","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"dist":{"shasum":"6526a4ac4cde7d134f086462cb11f31152f73ee0","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-1.2.0.tgz","integrity":"sha512-JZXAFUAx9A8rJ9WmVSDY1e935WJO+PzOACodx5HVUiUCtlifDfqVVCTEd1oMrhbLn5Ureg23m2BCJ7gkQF8rDQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfTdCpikvpjnV9eMmPHclI13sps9zcZ0xkm9ROSUv29QIgf8wL5gkY67WXCpS52sRCDhFRmgip6cBdCjVYOGTbPyw="}]},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"1.2.1":{"name":"validator.js","version":"1.2.1","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./src/validator","repository":{"type":"git","url":"git+https://github.com/guillaumepotier/validator.js.git"},"devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~0.2.7","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0","sinon":"~1.14.1"},"scripts":{"build":"grunt build","test":"mocha tests/server.js -R dot","test-dist":"mocha tests/server.min.js -R dot"},"gitHead":"9f10b22c7061cfb2babad9a1f27a83bdf18c9ae1","bugs":{"url":"https://github.com/guillaumepotier/validator.js/issues"},"homepage":"https://github.com/guillaumepotier/validator.js#readme","_id":"validator.js@1.2.1","_shasum":"cb35806d6b527455906ddca02a97fb85ebea6e7b","_from":".","_npmVersion":"2.8.3","_nodeVersion":"0.10.16","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"dist":{"shasum":"cb35806d6b527455906ddca02a97fb85ebea6e7b","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-1.2.1.tgz","integrity":"sha512-qTiZV4fDOqJVOj22/fhMC8CjAyWuPsY/W87VxaDUEtfV6uqCLqeTFpu/o9XbiN1ZnC87S9hOWHT3ggis4gPnQg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAOTwh4IIV4q/b1/td4TA/VB9Znpw5eliAgRJr28X1hDAiBAWIWoDRq4SeybJwZrtFo0SlvKxnlHTV5zw2asf/pcYw=="}]},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"1.2.2":{"name":"validator.js","version":"1.2.2","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./src/validator","repository":{"type":"git","url":"git+https://github.com/guillaumepotier/validator.js.git"},"devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~0.2.7","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0","sinon":"~1.14.1"},"scripts":{"build":"grunt build","test":"mocha tests/server.js -R dot","test-dist":"mocha tests/server.min.js -R dot"},"gitHead":"b0176f4257e42810632acae9c033dd9c12ac2c3f","bugs":{"url":"https://github.com/guillaumepotier/validator.js/issues"},"homepage":"https://github.com/guillaumepotier/validator.js#readme","_id":"validator.js@1.2.2","_shasum":"9931f0703bb50a23c35bf1758ce437fdd512ecc6","_from":".","_npmVersion":"2.8.3","_nodeVersion":"0.10.16","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"dist":{"shasum":"9931f0703bb50a23c35bf1758ce437fdd512ecc6","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-1.2.2.tgz","integrity":"sha512-XmDo2LPK58CIs9Q8Iora4EjAYJDxQDfziOMl1Lqz6b2F3D4JVRkYNuRR01QgKqyfHGPpMCTuNZcUQKBuKLiHcQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEa73aQmxPb+0kiDhA3ZK7mBn00f7QQbIUXVXDgnASNPAiEA6Vb58aUO084RnOOEdV9i5Zp7tSnEZ3grImuZn7/seUs="}]},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"1.2.3":{"name":"validator.js","version":"1.2.3","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./src/validator","repository":{"type":"git","url":"git+https://github.com/guillaumepotier/validator.js.git"},"devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~0.2.7","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0","sinon":"~1.14.1"},"scripts":{"build":"grunt build","test":"mocha tests/server.js -R dot","test-dist":"mocha tests/server.min.js -R dot"},"gitHead":"7ef459c0cb3581a135c5fb8b49f98710160263c2","bugs":{"url":"https://github.com/guillaumepotier/validator.js/issues"},"homepage":"https://github.com/guillaumepotier/validator.js#readme","_id":"validator.js@1.2.3","_shasum":"f8e623f60e53bada54880333649970996a3446e1","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"dist":{"shasum":"f8e623f60e53bada54880333649970996a3446e1","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-1.2.3.tgz","integrity":"sha512-Nd3sr2DpTlnnzRHjJppEsuxueQz5WsR8Btd7MPAdytwvnSnYN+dMFaeqfGa0ElEFlWUZI1d6c763Uax9ltT7Mw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG68YCTLPH6C3xZjjMQ38GK6VZOzQbDvzSED7i6EY0CTAiEAir50EDhhugkCSyZmY0oxrNebE9Nf2kbz7qR+XGIL4nE="}]},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"directories":{}},"2.0.0":{"name":"validator.js","version":"2.0.0","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./src/validator","repository":{"type":"git","url":"git+https://github.com/guillaumepotier/validator.js.git"},"devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~0.2.7","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0"},"scripts":{"build":"grunt build","test":"mocha tests/server.js","test-dist":"mocha tests/server.min.js -R dot"},"gitHead":"a586849d280cb54b4e81222135ddc33817659a58","bugs":{"url":"https://github.com/guillaumepotier/validator.js/issues"},"homepage":"https://github.com/guillaumepotier/validator.js#readme","_id":"validator.js@2.0.0","_shasum":"137fb246626c994e2ac531fc84263d69b28b27af","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"dist":{"shasum":"137fb246626c994e2ac531fc84263d69b28b27af","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-2.0.0.tgz","integrity":"sha512-eXXSVk0BAB1fJvnN3CTCbcghUEtKjtqFJRPTQtdGIrSW+SPquEc7/Lgf0jDemtcE0GkjZ3lDrr/I9V/DNI2hjw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB8Wy2IsVrPrsVO9gwfI+udyvyWdH6yzQQSX4QsOViMKAiA9o7H5bMAsC58xJi3GF0nwW9HTaubRigaAE1D3OyKBZQ=="}]},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/validator.js-2.0.0.tgz_1463140219064_0.3497594268992543"},"directories":{}},"2.0.1":{"name":"validator.js","version":"2.0.1","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./src/validator","repository":{"type":"git","url":"git+https://github.com/guillaumepotier/validator.js.git"},"devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~1.0.1","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0"},"scripts":{"build":"grunt build","test":"mocha tests/server.js","test-dist":"mocha tests/server.min.js -R dot"},"gitHead":"db9a68b47bdbb649674b6a13aec30e8816540e35","bugs":{"url":"https://github.com/guillaumepotier/validator.js/issues"},"homepage":"https://github.com/guillaumepotier/validator.js#readme","_id":"validator.js@2.0.1","_shasum":"f6e08d0302e10c336ff240f7c6becc35af8642b6","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"dist":{"shasum":"f6e08d0302e10c336ff240f7c6becc35af8642b6","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-2.0.1.tgz","integrity":"sha512-ZTwzjJ2UhI/xINrdDvfEfSoDOCsmKcW5uc0gdvwFTJx2zz0v/Q7DODcohHikh3vt9OcJrIcN1dII35OHaAmpDA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzPpUhjBCSY8wVQlw3LE7dB2x2hJH8GGp4w9onNx7dlAIhAIlDrTud/0awnaohnja2n/gDibe6/VS3gQMOWqfgBb/7"}]},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/validator.js-2.0.1.tgz_1467127815820_0.6949492853600532"},"directories":{}},"2.0.2":{"name":"validator.js","version":"2.0.2","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./src/validator","repository":{"type":"git","url":"git+https://github.com/guillaumepotier/validator.js.git"},"devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~1.0.1","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0"},"scripts":{"build":"grunt build","test":"mocha tests/server.js","test-dist":"mocha tests/server.min.js -R dot"},"gitHead":"d4a071a9adf9444cd77e743eb4aed0bb82d83252","bugs":{"url":"https://github.com/guillaumepotier/validator.js/issues"},"homepage":"https://github.com/guillaumepotier/validator.js#readme","_id":"validator.js@2.0.2","_shasum":"2cd5b892e0df66c76e1e7dae5a0667d9c6d4bfae","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"dist":{"shasum":"2cd5b892e0df66c76e1e7dae5a0667d9c6d4bfae","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-2.0.2.tgz","integrity":"sha512-zVp4vh40SnXlgctHwmjev8FC7N+DSHqTrGhNTfyxu6EvnRGpjaOROAOp8oJSubkp0V3ElMNUIzDr1ruedugntA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCS2Stprux6S5agfNflVXv6CO124ORdXbkcw0PINkBgmwIgSdzakCrHJLkEIsgp5aI7iL/4Mek5/CINKwT2/fI67UM="}]},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/validator.js-2.0.2.tgz_1468998174686_0.9458936005830765"},"directories":{}},"2.0.3":{"name":"validator.js","version":"2.0.3","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./src/validator","repository":{"type":"git","url":"git+https://github.com/guillaumepotier/validator.js.git"},"devDependencies":{"mocha":"*","expect.js":"*","grunt":"~0.4.2","grunt-contrib-uglify":"~1.0.1","grunt-contrib-clean":"~0.5.0","grunt-replace":"~0.5.1","grunt-npm2bower-sync":"~0.3.0"},"scripts":{"build":"grunt build","test":"mocha tests/server.js","test-dist":"mocha tests/server.min.js -R dot"},"gitHead":"bf8f083281861368dfef9ff65f8b1ed3a5225490","bugs":{"url":"https://github.com/guillaumepotier/validator.js/issues"},"homepage":"https://github.com/guillaumepotier/validator.js#readme","_id":"validator.js@2.0.3","_shasum":"3f4d8ae50673f7fbd5539abd66a1338d879f5ef4","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"dist":{"shasum":"3f4d8ae50673f7fbd5539abd66a1338d879f5ef4","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-2.0.3.tgz","integrity":"sha512-aG5cl/GD6dCfhMuLXFVVPrSfp1+azdJ+BJwYUVMKbdD4GdUsjolpS39B8crk25OMeJydO49BIkyXMA+OzBrSDQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFwErBjTkvCT6GlgX1fmSFl6sbvLiq/cQiTgX1ABe4i/AiAAkl6W4ZrxxX4s8aq35GT2sdsZaYToFuz+1rCWaztlPw=="}]},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/validator.js-2.0.3.tgz_1470406633790_0.3248212030157447"},"directories":{}},"2.0.4":{"name":"validator.js","version":"2.0.4","license":"MIT","description":"Powerful object and string validation in Javascript.","keywords":["validation","validator","node","browser","library"],"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"main":"./src/validator","repository":{"type":"git","url":"git+https://github.com/guillaumepotier/validator.js.git"},"devDependencies":{"expect.js":"*","grunt":"~0.4.2","grunt-contrib-clean":"~0.5.0","grunt-contrib-uglify":"~1.0.1","grunt-npm2bower-sync":"~0.3.0","grunt-replace":"~0.5.1","mocha":"~3.5.3"},"scripts":{"build":"grunt build","test":"mocha tests/server.js","test-dist":"mocha tests/server.min.js -R dot"},"gitHead":"34636f22363a9b9ab1def526c0f4241ff0e25bdd","bugs":{"url":"https://github.com/guillaumepotier/validator.js/issues"},"homepage":"https://github.com/guillaumepotier/validator.js#readme","_id":"validator.js@2.0.4","_nodeVersion":"12.9.1","_npmVersion":"6.10.2","dist":{"integrity":"sha512-6gknFyS1WrkXPlnpcb3hecx2LD4j8dEO+G9/yEJ3RYzUUtV4s3icO/IrAzTZtT9BHRSTNGRtg5JORIt+njMpIw==","shasum":"c9f72164aadb503a1a7be5b17b4beff3616e542e","tarball":"https://registry.npmjs.org/validator.js/-/validator.js-2.0.4.tgz","fileCount":21,"unpackedSize":315332,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeNEIxCRA9TVsSAnZWagAA8BMP/1Qxkh/PbW+dW9xx4z4y\nvSNCRpYyFkIX9FUgwffLwkb3vf62MwTqFs5cIeQ1sN0V9MqKTKtDoaoRliat\nZ7Syiu2gA1UEwrT06CbukWPTwT1+K3G58WTU6wzFirsTsrR3ypddCLk73YYr\nXry7RUc8zhDmvj8Iswgl3UtrVANwFjLh77hYFG2dws9W6ca1/jTo9OZ9Vj2N\nllSfKB3XBRk42anh5ViUdupwPvzRSS4Nz6QEixeXvUO7NDymjlAMhGLr6mQH\ntoRvaPOSnjc8UzAfPWCL4lnzW1l6kD6D4j23XYQTuIJxUu3XkPJ6A6mAZmbf\nPxD+pUsb+zqQFz3avZ2q7KIJozUj6HBi9MZFKAQdv/ppeAzNdtjNZJSusJ6b\nVvP2YYisYeGt8x9JLXISFYCaTOGQXUzqN5bMKcqEc1FzOvI1fyCQkAE0pOIs\nt+A8URld0N9dnmwaR1Cai+pZlAcaZDbyBq8n36vLt0/cqxB/6ReLpva30S7n\ncxygRson4JeCTIJbgWr1K7aRKIDz7c6rwidJqZjAQ0j+Uk05laNMyCKwIP7n\nSJWgxDmsCPGSEFw4WhntcyVdqB96MrikwOj8I4JX1AIygjGQdzdQ6aRcwG38\nMDaJKDLdhAP+JbbuDvPJMOwNOdHxUuOQ7al+nTxS/q1QOOhIedaOmmjPHKqC\npt3M\r\n=wFjR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9dGkiR8ymFoRmFLI3xTgOHRADDpldMqmpSlt0vdvA5gIgWF9uCMdDZHXybM1/fJ2EH1lP8zBIDaKX/5EitZYszQ8="}]},"maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"_npmUser":{"name":"guillaumepotier","email":"cobalt2760@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/validator.js_2.0.4_1580483120949_0.9471823214628186"},"_hasShrinkwrap":false}},"readme":"# validator.js\n\nPowerful objects and strings validation in javascript for Node and modern browsers (evergreen browsers).\n\n## Version\n\n2.0.4\n\n## Status\n\n[![Build Status](https://travis-ci.org/guillaumepotier/validator.js.png?branch=master)](https://travis-ci.org/guillaumepotier/validator.js)\n[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/guillaumepotier/validator.js/trend.png)](https://bitdeli.com/free \"Bitdeli Badge\")\n\n## License\n\nMIT - See LICENSE.md\n\n## Install\n\n`bower install validator.js`\n\n# Summary\n\n  - [General usage](#general-usage)\n  - [Validate string](#validate-a-string)\n  - [Validate object](#validate-an-object)\n  - [Validation groups](#validation-groups)\n  - [Bind constraint to an object](#bind-a-constraint-to-an-object)\n  - [Assert definition](#assert-definition)\n  - [Constraint definition](#constraint-definition)\n  - [Available asserts](#available-asserts)\n  - [Collection Assert](#collection-assert)\n  - [Callback Assert](#callback-assert)\n\n## General usage\n\n- On node:\n\n```\n$ npm install -g validator.js\n```\n\nThen\n\n```js\nvar Validator = require( 'validator.js' );\n```\n\n- On browser:\n\n```js\n<script src=\"../validator.js\"></script>\n<script>\n    console.log(Validator);\n</script>\n```\n\n## Validate a string\n\n```js\nvar is = require( 'validator.js' ).Assert;\nvar validator = require( 'validator.js' ).validator();\n\nvalidator.validate( 'foo', is.ofLength( { min: 4 } ) );\nvalidator.validate( 'foo', [ is.ofLength( { min: 4 } ), is.email() ] );\n```\n\nwill return `true` if validation passes, a `Violation`'s array otherwise.\n\n## Validate an object\n\n```js\nvar is = require( 'validator.js' ).Assert;\nvar validator = require( 'validator.js' ).validator();\n\nvar object = {\n    name: 'john doe',\n    email: 'wrong@email',\n    firstName: null,\n    phone: null\n  },\n  constraint = {\n    name: [ is.notBlank(), is.ofLength( { min: 4, max: 25 } ) ],\n    email: is.email(),\n    firstName: is.notBlank(),\n    phone: is.notBlank()\n  };\n\nvalidator.validate( object, constraint );\n```\n\nwill return `true` if validation passes, `{ email: [ Violation ], firstname: [ Violation ] }` in this case.\n\n## Validation groups\n\nWith same objects than above, just by adding validation groups:\n\n```js\n  constraint = {\n    name:      [ is.notBlank(), is( 'edit' ).ofLength( { min: 4, max: 25 } ) ],\n    email:     is.email(),\n    firstname: is( [ 'edit', 'register'] ).notBlank(),\n    phone:     is( 'edit' ).notBlank()\n  };\n\nvalidator.validate( object, constraint, 'edit' );\n```\n\nwill return `true` in this case `{ firstname: [ Violation ], phone: [ Violation ] }`.\n\nThere are two special groups: \"Any\" and \"Default\". Validating against `\"Any\"` group will validate\nagainst all Asserts, regardless their groups. Validating against `\"Default\"` group will only\nvalidate against Asserts that do not have a validation group.\n\n## Bind a constraint to an object\n\n```js\nvalidator.bind( object, constraint );\nvalidator.validate( object, groups );\n```\n\nUnder the hood, by default, a `_validatorjsConstraint` key will be created in object\nin order to store here the constraint. You could override this default key name by\npassing an option to Validator constructor.\n\n# Documentation\n\n## Assert definition\n\nAn assert implements Assert Interface, and is an assertion that your string or object\nproperty must pass during validation process. There are several Asserts built in\nValidator.js (see below), but you can implement yours for your needs using the\n`Callback()` assert (see below).\n\n```js\nvar length = is.ofLength( { min: 10 } );\ntry {\n  length.check( 'foo' );\n} catch ( violation ) {\n}\n```\n\n## Constraint definition\n\nA Constraint is a set of asserts nodes that would be used to validate an object.\n\n```js\nvar length = is.ofLength( { min: 10 } );\nvar notBlank = is.notBlank();\nvar constraint = validator.constraint( { foo: length, bar: notBlank } );\n\nconstraint.check( { foo: 'foo', bar: 'bar' } );\n```\n\n### Strict Constraint validation\n\nBy default, Validator.js checks properties that are defined in the Constraint object\nand exists on the validated object unless the constraint is `Required`. If you want a\nstrict validation (ie ensure that **every**) Constraint node is valid, you'll have to pass\nan optional parameter to your Constraint:\n\n```js\nvar object = {\n  foo: 'foo',\n  bar: 'bar'\n};\n\nvar constraint = validator.constraint( {\n  foo: is.notBlank(),\n  bar: is.notBlank(),\n  baz: is.notBlank()\n}, { strict: true });\n\nconstraint.check( object );\n```\nwill return a `HaveProperty` Violation, saying that `baz` property does not exist\nin validated object. Without `{ strict: true }` this check would return `true`.\n\n### Deep required validation\n\nBy default, a `Required` constraint fails if the parent property exists in the validated\nobject and the property doesn't. To force Validator.js to take into account all `Required`\nconstraints, no matter the validated object, you have to enable the `deepRequired` option:\n\n```js\nvar object = { };\n\nvar constraint = validator.constraint({\n  foo: {\n    bar: is.required()\n  }\n}, { deepRequired: true });\n\nconstraint.check(object);\n```\n\nwill return a `HaveProperty` Violation, saying that `foo` property does not exist.\n\nThis option also works when `Collection` is used, but doesn't enforce a non empty array\non the validated object.\n\n## Available asserts\n\n- Blank() (alias: `blank`)\n- Callback( fn ( value ) {} [, arg1 ...] ) (alias: `callback`)\n- Choice( [] ) (alias: `choice`)\n- Choice( fn () {} ) (alias: `choice`)\n- Collection ( Assert ) (alias: `collection`)\n- Collection ( Constraint ) (alias: `collection`)\n- Count( value ) (alias: `count`)\n- Count( fn ( [] ) {} ) (alias: `count`)\n- Email() (alias: `email`)\n- EqualTo( value ) (alias: `equalTo`)\n- EqualTo( fn ( value ) {} ) (alias: `equalTo`)\n- GreaterThan( threshold ) (alias: `greaterThan`)\n- GreaterThanOrEqual( threshold ) (alias: `greaterThanOrEqual`)\n- InstanceOf( classRef ) (alias: `instanceOf`)\n- IsString() (alias: `isString`)\n- Length( { min: value, max: value } ) (alias: `length`)\n- HaveProperty( propertyName ) (alias: `haveProperty`)\n- LessThan( threshold ) (alias: `lessThan`)\n- LessThanOrEqual( threshold ) (alias: `lessThanOrEqual`)\n- EqualTo( value ) (alias: `equalTo`)\n- EqualTo( fn ( value ) {} ) (alias: `equalTo`)\n- NotBlank() (alias: `notBlank`)\n- NotEqualTo( value ) (alias: `notEqualTo`)\n- NotNull() (alias: `notNull`)\n- Null() (alias: `null`)\n- Range( min, max ) (alias: `range`)\n- Regexp( value ) (alias: `regexp`)\n- Required() (alias: `required`)\n- Unique() (alias: `unique`)\n- Unique( { key: value } ) (alias: `unique`)\n- When( 'field', { is: Assert, then: Assert, otherwise: Assert } );\n\n### Additional asserts via extras.js\n\n- Eql( object ) (alias: `eql`)\n- Eql( fn ( value ) {} ) (alias: `eql`)\n- IPv4() (alias: `ipv4`)\n- Mac() (alias: `mac`)\n\n### Community-driven asserts\n\nYou can extend validator.js with more asserts should you need them. There are several extra asserts built by the community that seamlessly integrate with this package.\nSee the [Extending](#extending) section for more information.\n\n* [validator.js-asserts](https://github.com/seegno/validator.js-asserts): a set of extra asserts for `validator.js`.\n\n### Collection Assert\n\nCollection Assert is quite special yet powerful. It allows you to validate\nan object's array by checking each one of them against a constraint.\n\nHere is an example of test suite test showing how this assert works:\n\n```js\nit( 'Collection', function () {\n  var itemConstraint = validator.constraint( { foobar: is.notNull(), foobaz: is.notNull() } ),\n    object = {\n      foo: null,\n      items: [\n        { foobar: null, foobaz: 'foo', fooqux: null },\n        { foobar: 'bar', foobaz: 'baz' },\n        { foobar: null, foobaz: null }\n      ]\n    },\n    constraint = {\n      foo: is.notNull(),\n      items: [ is.collection( itemConstraint ), is.count( 2 ) ]\n    };\n\n  var result = validator.validate( object, constraint );\n  expect( result ).to.have.key( 'foo' );\n  expect( result ).to.have.key( 'items' );\n  expect( result.items[ 0 ] ).to.have.key( '0' );\n  expect( result.items[ 0 ] ).to.have.key( '2' );\n  expect( result.items[ 0 ][ 0 ] ).to.have.key( 'foobar' );\n  expect( result.items[ 0 ][ 0 ] ).not.to.have.key( 'foobaz' );\n  expect( result.items[ 0 ][ 2 ] ).to.have.key( 'foobar' );\n  expect( result.items[ 0 ][ 2 ] ).to.have.key( 'foobaz' );\n  expect( result.items[ 1 ] ).to.be.a( Violation );\n  expect( result.items[ 1 ].assert ).to.be( 'Count' );\n} )\n```\n\n### Callback Assert\n\nThis assert allows you to add the custom rules / assert you want. Just give a\ncallback function that will be called with the value to be tested against.\nReturn true for validation success, everything else if there is an error.\n\nHere is an example from test suite test showing how this assert works:\n\n```js\nit( 'Callback', function () {\n  assert = is.callback( function ( value ) {\n    var calc = ( 42 / value ) % 2;\n\n    return calc ? true : calc;\n  } );\n\n  expect( validate( 3, assert ) ).not.to.be( true );\n  expect( validate( 3, assert ).show() ).to.eql( { assert: 'Callback', value: 3, violation: { result: 0 } } );\n  expect( validate( 42, assert ) ).to.be( true );\n\n  // improved Callback\n  assert = is.callback( function ( value, string1, string2 ) {\n    return value + string1 + string2 === 'foobarbaz';\n  }, 'bar', 'baz' );\n  expect( validate( 'foo', assert ) ).to.be( true );\n  expect( validate( 'bar', assert ) ).to.be( false );\n} )\n```\n\n### When Assert\n\nThis assert adds conditional asserts to the schema based on another key.\n\nHere is an example showing how this assert works:\n\n```js\nit( 'When', function () {\n  // Using `is` and `otherwise`.\n  assert = {\n    foo: is.when( 'bar', {\n      is: is.ofLength( { min: 4 } ) ],\n      otherwise: is.Length( { min: 5 } )\n    } )\n  };\n\n  expect( validator.validate( { foo: 'foo' }, assert ) ).to.be( true );\n  expect( validator.validate( { foo: 'foo', bar: 'bar' }, assert ) ).to.not.be( true );\n  expect( validator.validate( { foo: 'foobar', bar: 'bar' }, assert ) ).to.be( true );\n  expect( validator.validate( { foo: 'foo', bar: 'foobar' }, assert ) ).to.be( true );\n\n  // Using `is` and `then`.\n  assert = {\n    foo: is.when( 'bar', {\n      is: is.ofLength( { min: 4 } ),\n      then: is.ofLength( { min: 5 } )\n    } )\n  };\n\n  expect( validator.validate( { foo: 'foo' }, assert ) ).to.be( true );\n  expect( validator.validate( { foo: 'foo', bar: 'bar' }, assert ) ).to.not.be( true );\n  expect( validator.validate( { foo: 'foo', bar: 'foobar' }, assert ) ).to.not.be( true );\n  expect( validator.validate( { foo: 'foobar', bar: 'foobar' }, assert ) ).to.be( true );\n\n  // Using `is`, `then` and `otherwise`.\n  assert = {\n    foo: is.when( 'bar', {\n      is: is.ofLength( { min: 4 } ),\n      then: is.ofLength( { min: 5 } ),\n      otherwise: is.ofLength( { min: 4 } )\n    } )\n  };\n\n  expect( validator.validate( { foo: 'foo' }, assert ) ).to.be( true );\n  expect( validator.validate( { foo: 'foo', bar: 'bar' }, assert ) ).to.not.be( true );\n  expect( validator.validate( { foo: 'foobar', bar: 'bar' }, assert ) ).to.be( true );\n  expect( validator.validate( { foo: 'foo', bar: 'foobar' }, assert ) ).to.not.be( true );\n  expect( validator.validate( { foo: 'foobar', bar: 'foobar' }, assert ) ).to.be( true );\n} )\n```\n\n### A note on type checking\nNote that `Length` assertion works for both String and Array type, so if you want to validate only strings, you should write an additional assertion:\n\n```js\nvalidator.validate( 'foo', [\n  is.ofLength( { min: 4, max: 100 } ),\n  is.string()\n] );\n```\n\n## Extending\n\nIf you want to extend the library with your own asserts, you can use `Assert.extend()` which will return a copy of `validator.Assert` plus your custom asserts. This means that the original `validator.Assert` is always pristine.\n\nExample:\n\n```js\nvar Assert = Validator.Assert;\nvar isExtended = Assert.extend({\n  integer: Number.isInteger,\n  NaN: Number.isNaN\n});\n\nexpect( validate( 10, isExtended.integer() ).to.be( true );\n```\n\n## Browser support\n\nRun on modern browsers (IE10+). Please open an issue or a PR if you find a bug.\n\n\n## Run Tests\n\n- On node:\n  - `mocha tests/server.js`\n\n- On browser:\n  - open tests/browser.html in your browser\n","maintainers":[{"name":"guillaumepotier","email":"cobalt2760@gmail.com"}],"time":{"modified":"2022-06-28T08:42:26.622Z","created":"2013-05-20T14:56:14.363Z","0.0.1":"2013-05-20T14:56:17.202Z","0.0.2":"2013-05-20T21:23:45.583Z","0.0.3":"2013-05-21T13:32:19.315Z","0.1.0":"2013-05-22T18:15:05.999Z","0.2.0":"2013-05-23T12:13:46.202Z","0.2.1":"2013-05-23T17:40:45.803Z","0.2.2":"2013-05-23T22:33:27.942Z","0.2.3":"2013-05-24T14:05:56.815Z","0.3.0":"2013-05-26T11:43:47.624Z","0.3.1":"2013-05-26T21:36:57.647Z","0.3.2":"2013-06-03T17:12:50.566Z","0.4.0":"2013-08-30T17:40:17.833Z","0.4.1":"2013-08-30T22:04:24.452Z","0.4.3":"2013-11-22T16:59:22.608Z","0.4.4":"2013-11-24T13:19:28.728Z","0.4.7":"2013-12-27T21:22:42.950Z","0.4.8":"2013-12-29T18:28:07.698Z","0.4.9":"2013-12-29T18:34:46.570Z","0.4.11":"2014-01-03T10:07:46.734Z","0.4.12":"2014-01-03T13:58:39.666Z","0.5.0":"2014-01-04T11:57:35.174Z","0.5.2":"2014-01-29T21:53:17.215Z","0.5.3":"2014-01-29T22:30:21.713Z","0.5.8":"2014-04-07T22:08:58.163Z","0.6.0":"2014-04-17T07:28:35.411Z","0.6.1":"2014-06-25T12:02:58.704Z","1.0.0":"2014-08-03T15:49:01.349Z","1.0.1":"2014-09-09T15:37:09.678Z","1.1.1":"2015-04-21T07:54:09.314Z","1.1.2":"2015-05-25T10:39:53.007Z","1.2.0":"2015-06-26T09:49:42.446Z","1.2.1":"2015-06-30T07:22:15.896Z","1.2.2":"2015-07-21T07:47:17.188Z","1.2.3":"2015-10-14T08:05:40.761Z","2.0.0":"2016-05-13T11:50:21.736Z","2.0.1":"2016-06-28T15:30:18.024Z","2.0.2":"2016-07-20T07:02:56.031Z","2.0.3":"2016-08-05T14:17:15.648Z","2.0.4":"2020-01-31T15:05:21.470Z"},"author":{"name":"Guillaume Potier","email":"guillaume@wisembly.com","url":"http://guillaumepotier.com/"},"readmeFilename":"README.md","keywords":["validation","validator","node","browser","library"],"license":"MIT","users":{"fixe":true,"makenova":true,"boopathisakthivel.in":true,"stephenoconnor":true,"fearnbuster":true},"repository":{"type":"git","url":"git+https://github.com/guillaumepotier/validator.js.git"},"bugs":{"url":"https://github.com/guillaumepotier/validator.js/issues"},"homepage":"https://github.com/guillaumepotier/validator.js#readme"}