{"_id":"sound","_rev":"40-cae80ceadfa0d2848561c2a6891516d0","name":"sound","description":"Make sure your data is sound! Schema generator, converter and validation library for Node.js.","dist-tags":{"latest":"3.1.0"},"versions":{"0.1.0":{"name":"sound","description":"Make sure your data is sound! Validation library for Node.js.","version":"0.1.0","main":"sound.js","author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"homepage":"https://github.com/chilts/sound","contributors":[],"dependencies":{"underscore":"~1.4.x"},"devDependencies":{"tap":">= 0.4.x","tape":">= 0.2.x"},"engines":{"node":">= 0.6.0"},"repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues","mail":"andychilton@gmail.com"},"licenses":[{"type":"MIT","url":"http://chilts.mit-license.org/2013/"}],"keywords":["validate","validation","input","params"],"scripts":{"test":"tap test/*.js"},"_id":"sound@0.1.0","dist":{"shasum":"2c75788e07276a7dcb957a609024d5e42981655b","tarball":"https://registry.npmjs.org/sound/-/sound-0.1.0.tgz","integrity":"sha512-zdihWS2rB6dSMhV0e7/kod7rUiwtwl0I806hyUksCAqI4xHZGH5XWqmD8YEUsNRGpNcXE2ReDcnyKdGvPluVGg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnmkTwxFRbtV56SpcTltHMxJcKCObCx0vvkmdr9c3FpAIhAJj7RBgsVWfSDWyo+gdoSqddN4p0NevAfhK/hVaAgt/5"}]},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"chilts","email":"chilts@appsattic.com"},"maintainers":[{"name":"chilts","email":"chilts@appsattic.com"}],"directories":{}},"0.2.0":{"name":"sound","description":"Make sure your data is sound! Validation library for Node.js.","version":"0.2.0","main":"sound.js","author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"homepage":"https://github.com/chilts/sound","contributors":[],"dependencies":{"underscore":"~1.4.x"},"devDependencies":{"tap":">= 0.4.x","tape":">= 0.2.x"},"engines":{"node":">= 0.6.0"},"repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues","mail":"andychilton@gmail.com"},"licenses":[{"type":"MIT","url":"http://chilts.mit-license.org/2013/"}],"keywords":["validate","validation","input","params"],"scripts":{"test":"tap test/*.js"},"_id":"sound@0.2.0","dist":{"shasum":"59112acc4dff4bb50b6e2398c2eb833a38f83494","tarball":"https://registry.npmjs.org/sound/-/sound-0.2.0.tgz","integrity":"sha512-Zr8Jf8Ek9yZWW7FmOtFiSspGEzsQFiq6uzyAFsyZQq2EJMTcLmegTkLiVe00SVZ7KkFcIBM8WNE3mAuDHw/tHw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHy5o72UKVldTfkgcUE19wsBSUgAkSD8IdGFM3/N0zZeAiBVW68xJDDA2YhDimldMRRS7N0DEiQdj8LLGlq7n7qOyg=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"chilts","email":"chilts@appsattic.com"},"maintainers":[{"name":"chilts","email":"chilts@appsattic.com"}],"directories":{}},"0.2.1":{"name":"sound","description":"Make sure your data is sound! Validation library for Node.js.","version":"0.2.1","main":"sound.js","author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"homepage":"https://github.com/chilts/sound","contributors":[],"dependencies":{"underscore":"~1.4.x"},"devDependencies":{"tap":">= 0.4.x","tape":">= 0.2.x"},"engines":{"node":">= 0.6.0"},"repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues","mail":"andychilton@gmail.com"},"licenses":[{"type":"MIT","url":"http://chilts.mit-license.org/2013/"}],"keywords":["validate","validation","input","params"],"scripts":{"test":"tap test/*.js"},"_id":"sound@0.2.1","dist":{"shasum":"50608ac45e36f24741918dc8e91e018e3fe214d2","tarball":"https://registry.npmjs.org/sound/-/sound-0.2.1.tgz","integrity":"sha512-eBp20hSgCkVH6icWNPZ8BKcBy51Jdl8mIOwqgCmM0WOP/42ZBmPFcPFLJoyekWfTY4qPVY6yWOpIHljF4kipQw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGoOE+XYmh3m4pCGuv5w+tl2X58GsDTuApjhQ0pFHfXDAiEAh154r+ysUoIAim6WrIWpNGU6Vo+NxTpf9ZOANaLlefM="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"chilts","email":"chilts@appsattic.com"},"maintainers":[{"name":"chilts","email":"chilts@appsattic.com"}],"directories":{}},"0.2.2":{"name":"sound","description":"Make sure your data is sound! Validation library for Node.js.","version":"0.2.2","main":"sound.js","author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"homepage":"https://github.com/chilts/sound","contributors":[],"dependencies":{"underscore":"~1.4.x"},"devDependencies":{"tap":">= 0.4.x","tape":">= 0.2.x"},"engines":{"node":">= 0.6.0"},"repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues","mail":"andychilton@gmail.com"},"licenses":[{"type":"MIT","url":"http://chilts.mit-license.org/2013/"}],"keywords":["validate","validation","input","params"],"scripts":{"test":"tap test/*.js"},"_id":"sound@0.2.2","dist":{"shasum":"46c959bdc007f0060701a35b6c92563ca78ee5da","tarball":"https://registry.npmjs.org/sound/-/sound-0.2.2.tgz","integrity":"sha512-UKqbQZ7jhwG2irzgqFS2KCffAeKOJ40sGmtTC4L6HbUkXMbEY7S8Oh5kz8eV+XscZOE6j6FgIJemSLsiaKhh8g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB6BCr0T/pMDuvZEAdyqR6hjHUY29bcMDLC8qrN6A2buAiA9B12/EQl2FXLxvZho2IbVGV8c2EM9ytKz4VMUKooHkQ=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"chilts","email":"chilts@appsattic.com"},"maintainers":[{"name":"chilts","email":"chilts@appsattic.com"}],"directories":{}},"0.3.0":{"name":"sound","description":"Make sure your data is sound! Validation library for Node.js.","version":"0.3.0","main":"sound.js","author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"homepage":"https://github.com/chilts/sound","contributors":[],"dependencies":{"underscore":"~1.4.x"},"devDependencies":{"tap":">= 0.4.x","tape":">= 0.2.x"},"engines":{"node":">= 0.6.0"},"repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues"},"licenses":[{"type":"MIT","url":"http://chilts.mit-license.org/2013/"}],"keywords":["validate","validation","input","params"],"scripts":{"test":"tap test/*.js"},"_id":"sound@0.3.0","dist":{"shasum":"4a76fab97fafc54c539a78093d70265694d0d58e","tarball":"https://registry.npmjs.org/sound/-/sound-0.3.0.tgz","integrity":"sha512-4cZ5NQsk9656ElNxZu5k+k8Mdo6byBqqsQ1rfIRX2jOA0vtfjLT9sPSUiO7v9HydRQFdS8MJsMi42cifacFUgw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICwEH5sQknhKMOO4MhKXzacPbSO09EcDhwW6aCvqj+5+AiEArQJ57e0DlTdY+Vj6kNmmY8JOm9cSYEpiNQ0F+eBS7CY="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"maintainers":[{"name":"chilts","email":"andychilton@gmail.com"}],"directories":{}},"0.3.1":{"name":"sound","description":"Make sure your data is sound! Validation library for Node.js.","version":"0.3.1","main":"sound.js","author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"homepage":"https://github.com/chilts/sound","contributors":[],"dependencies":{"underscore":"~1.4.x"},"devDependencies":{"tap":">= 0.4.x","tape":">= 0.2.x"},"engines":{"node":">= 0.6.0"},"repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues"},"licenses":[{"type":"MIT","url":"http://chilts.mit-license.org/2013/"}],"keywords":["validate","validation","input","params"],"scripts":{"test":"tap test/*.js"},"_id":"sound@0.3.1","dist":{"shasum":"0d9912f841e08abb4302e65218f5907ecaf78670","tarball":"https://registry.npmjs.org/sound/-/sound-0.3.1.tgz","integrity":"sha512-W0i/Oug2cF5ovAq8hJZqznwJU2U70W3s2pDvTnWqM3RH7BEHP4hgnC6OQEcxmFpYPBs9MP7AAgRkf/sl2g9w3w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA6Uu+WVvCmrO4fYVSg3MNhrRqUEyHX+NB19JWIoR8ymAiAro4Lfq/uIh2ANs6WsweFGUh48hVmkVeAPdy5m4LSEHA=="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"maintainers":[{"name":"chilts","email":"andychilton@gmail.com"}],"directories":{}},"0.3.2":{"name":"sound","description":"Make sure your data is sound! Validation library for Node.js.","version":"0.3.2","main":"sound.js","author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"homepage":"https://github.com/chilts/sound","contributors":[],"dependencies":{"underscore":"~1.4.x"},"devDependencies":{"tap":">= 0.4.x","tape":">= 0.2.x"},"engines":{"node":">= 0.6.0"},"repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues"},"licenses":[{"type":"MIT","url":"http://chilts.mit-license.org/2013/"}],"keywords":["validate","validation","input","params"],"scripts":{"test":"tap test/*.js"},"gitHead":"5dd0ce2db1827bc3c6907edf48c988aee06befa5","_id":"sound@0.3.2","_shasum":"58dce0a3ee54d1eac4de66d4036c3ec08d9932b0","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"maintainers":[{"name":"chilts","email":"chilts@appsattic.com"}],"dist":{"shasum":"58dce0a3ee54d1eac4de66d4036c3ec08d9932b0","tarball":"https://registry.npmjs.org/sound/-/sound-0.3.2.tgz","integrity":"sha512-xmLsEnj9dV0cq2ZzRzisyGDc9q2WuzHHUpc55QDQJgqfaPiA7UiY55nrtKJom8/AUCVX+SnnKfFWesb/nDZlNg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLGzw9GC9mmjMdWcupk9UOn4OiTo/MAOe20wkMi0SIeQIgGYcC4glh+LArpoovI1WV6DKgBTx3JrMU3UL/rq5IDfQ="}]},"directories":{}},"0.3.3":{"name":"sound","description":"Make sure your data is sound! Validation library for Node.js.","version":"0.3.3","main":"sound.js","author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"homepage":"https://github.com/chilts/sound","contributors":[],"dependencies":{"underscore":"~1.4.x"},"devDependencies":{"tap":">= 0.4.x","tape":">= 0.2.x"},"engines":{"node":">= 0.6.0"},"repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues"},"licenses":[{"type":"MIT","url":"http://chilts.mit-license.org/2013/"}],"keywords":["validate","validation","input","params"],"scripts":{"test":"tap test/*.js"},"gitHead":"4078d8f898f7baad52b1c02f13ab169c1ba11d18","_id":"sound@0.3.3","_shasum":"b623cc887672779111d8607b5a48a1f837f3475a","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"maintainers":[{"name":"chilts","email":"chilts@appsattic.com"}],"dist":{"shasum":"b623cc887672779111d8607b5a48a1f837f3475a","tarball":"https://registry.npmjs.org/sound/-/sound-0.3.3.tgz","integrity":"sha512-PO8QdvO5e/GhmPcKIHPgJu2s+p9R2ZLW4xJTg2Qx3FEXZIfpZxe1g0gIEAGkzxQ8LQnbEUByuy/00lVovnRWhg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCmN+DgH3v5vvUxlpoO9AlhlstxI5xIj9mybd4RAr1wlwIgAjf5uo3CbHgiNTSWemg9nZVym5OQIG3+M6X4kVf8Csc="}]},"directories":{}},"1.0.0":{"name":"sound","description":"Make sure your data is sound! Validation library for Node.js.","version":"1.0.0","main":"sound.js","author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"homepage":"https://github.com/chilts/sound","contributors":[],"dependencies":{"underscore":"~1.4.x"},"devDependencies":{"tap":">= 0.4.x","tape":">= 0.2.x"},"engines":{"node":">= 0.6.0"},"repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues"},"licenses":[{"type":"MIT","url":"http://chilts.mit-license.org/2013/"}],"keywords":["validate","validation","input","params"],"scripts":{"test":"tap test/*.js"},"gitHead":"800dac89771e732adeea75422fea494a347606f3","_id":"sound@1.0.0","_shasum":"267e2e83dce9c86d7ae8ff79b567e259631d1a9f","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"maintainers":[{"name":"chilts","email":"chilts@appsattic.com"}],"dist":{"shasum":"267e2e83dce9c86d7ae8ff79b567e259631d1a9f","tarball":"https://registry.npmjs.org/sound/-/sound-1.0.0.tgz","integrity":"sha512-7NMhS0qjOvYu3Z1ZvlVN74m6Plyrjht8OO75tHtMfbOcm9GCH3VWjJWrj98ugv8NMLDoWLovKBoXXqSIsiEqoA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDoIabuwBRYbPotd1OUnoRHUBxcp7rJUiNWNkXIL6AeJQIgWJ7heEIeNrvwGBG+rRaU0ImeMozNFweLE5ShLPpFxUA="}]},"directories":{}},"1.0.1":{"name":"sound","description":"Make sure your data is sound! Validation library for Node.js.","version":"1.0.1","main":"sound.js","author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"homepage":"https://github.com/chilts/sound","contributors":[],"dependencies":{"underscore":"~1.4.x"},"devDependencies":{"tap":">= 0.4.x","tape":">= 0.2.x"},"engines":{"node":">= 0.6.0"},"repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues"},"licenses":[{"type":"MIT","url":"http://chilts.mit-license.org/2013/"}],"keywords":["validate","validation","input","params"],"scripts":{"test":"tap test/*.js"},"gitHead":"0a55309cca7c67c1307bf36d71be5568fe52655f","_id":"sound@1.0.1","_shasum":"8e28796163c57d9e851d6596f39fcf443a39a749","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"maintainers":[{"name":"chilts","email":"chilts@appsattic.com"}],"dist":{"shasum":"8e28796163c57d9e851d6596f39fcf443a39a749","tarball":"https://registry.npmjs.org/sound/-/sound-1.0.1.tgz","integrity":"sha512-jX3SkFqL8jsWTz+cYUZKBIXV9gpRTPqndmF4/GESnJN54vlJ5H8JL4t6z1adTMYxM4Ffv9m+6FooCtUZAVU+kA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCcgwRd08TB/MlKxfz3pAxTcGZbwLS/BMfpCKVLdY4GDwIhAJTasuv4loLP2Njyv9avQUQDL5A3WvG5xrj0lD2OKjzV"}]},"directories":{}},"1.1.0":{"name":"sound","description":"Make sure your data is sound! Validation library for Node.js.","version":"1.1.0","main":"sound.js","author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"homepage":"https://github.com/chilts/sound","contributors":[],"dependencies":{"underscore":"~1.4.x"},"devDependencies":{"tap":">= 0.4.x","tape":">= 0.2.x"},"engines":{"node":">= 0.6.0"},"repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues"},"licenses":[{"type":"MIT","url":"http://chilts.mit-license.org/2013/"}],"keywords":["validate","validation","input","params"],"scripts":{"test":"tap test/*.js"},"gitHead":"5446f423f140f52d77ca6445ce9cd9fbe5d873f1","_id":"sound@1.1.0","_shasum":"0f555873050cad0c181752b7ccb2a279c5e18f8e","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"maintainers":[{"name":"chilts","email":"chilts@appsattic.com"}],"dist":{"shasum":"0f555873050cad0c181752b7ccb2a279c5e18f8e","tarball":"https://registry.npmjs.org/sound/-/sound-1.1.0.tgz","integrity":"sha512-rPXs+hMqlVCvakSpClMeByyfAgHWWcZ22xCLVw7b9XjNzQYOMrRdkhXLcmuvnflRXbe6y+hGSOFl/mJB+KRqtQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+v3Z8ZhGk8aLQTWE0wx7UnKxRJgcVMraZi/AMcc518wIhAOZIg50erzJ24ssSxQo7wkGpKBVG5gAdFiQMusT/AQLc"}]},"directories":{}},"1.2.0":{"name":"sound","description":"Make sure your data is sound! Validation library for Node.js.","version":"1.2.0","main":"sound.js","author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"homepage":"https://github.com/chilts/sound","contributors":[],"dependencies":{"underscore":"~1.4.x"},"devDependencies":{"tap":">= 0.4.x","tape":">= 0.2.x"},"engines":{"node":">= 0.6.0"},"repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues"},"licenses":[{"type":"MIT","url":"http://chilts.mit-license.org/2013/"}],"keywords":["validate","validation","input","params"],"scripts":{"test":"tap test/*.js"},"gitHead":"4ed4b5a2127d2f16cd9c86f75934b34e77e832b6","_id":"sound@1.2.0","_shasum":"2ce1176ba163199ed855b5ce2f61b49cba388be2","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"maintainers":[{"name":"chilts","email":"chilts@appsattic.com"}],"dist":{"shasum":"2ce1176ba163199ed855b5ce2f61b49cba388be2","tarball":"https://registry.npmjs.org/sound/-/sound-1.2.0.tgz","integrity":"sha512-4WT6QyxjG1cYwv0sEpZDSxXi05koOGv+Gd17k5NrnZrpwo/OK/5vNAYu1RWF5hhaQapcXyd/SPqkoPBWegXt6Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBYX9+Vl+lH5geVDhFc+mZ54Sm/Fmu5Y2f5dL83Aui3PAiEA/7e5hICVS8Qj1KW7bqD6e9YVw4pn/SrM1mADwFiGZps="}]},"directories":{}},"1.2.1":{"name":"sound","description":"Make sure your data is sound! Validation and conversion library for Node.js.","version":"1.2.1","main":"sound.js","author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"homepage":"https://github.com/chilts/sound","contributors":[],"dependencies":{"underscore":"~1.4.x"},"devDependencies":{"tap":">= 0.4.x","tape":">= 0.2.x"},"engines":{"node":">= 0.6.0"},"repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues"},"licenses":"MIT","keywords":["validate","validation","input","params"],"scripts":{"test":"tap test/*.js"},"gitHead":"70f3780b31c0b2a7c71cac2caec50d2d8edfacbd","_id":"sound@1.2.1","_shasum":"a6673386aa9554f68b6b53ecffc3f41c99c31001","_from":".","_npmVersion":"2.10.1","_nodeVersion":"0.10.38","_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"maintainers":[{"name":"chilts","email":"chilts@appsattic.com"}],"dist":{"shasum":"a6673386aa9554f68b6b53ecffc3f41c99c31001","tarball":"https://registry.npmjs.org/sound/-/sound-1.2.1.tgz","integrity":"sha512-BMt/Q4tAAaJFqmZmBDBo8mQsC909VlUgiztyJ57VOm24L7U5dGoDspLg7hExA3LjkL6g2b7U7gI3f4Nj6eDPrA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAdHpubKZWjPlCPG4sbj/hdFaWjNrAxANTV6u2K2AAwBAiAw76/igBFhk+bK/yzmSt936IAyY1yxlV71nRt2zaGOqw=="}]},"directories":{}},"1.2.2":{"name":"sound","description":"Make sure your data is sound! Validation and conversion library for Node.js.","version":"1.2.2","main":"sound.js","author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"homepage":"https://github.com/chilts/sound","contributors":[],"dependencies":{"underscore":"~1.4.x"},"devDependencies":{"tap":">= 0.4.x","tape":">= 0.2.x"},"engines":{"node":">= 0.6.0"},"repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues"},"licenses":"MIT","keywords":["validate","validation","input","params"],"scripts":{"test":"tap test/*.js"},"gitHead":"9e42daa14ad1023aaccd878d4c17bd5bca270a1d","_id":"sound@1.2.2","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"dist":{"integrity":"sha512-Ngx4MDEdHQvGsfhqX7QfK6w+o2iITiNxXA1qPJGan0ukBQ4Jdy7e34SvvSIqXzea31Wd3x3EUuopbP4WX91i6Q==","shasum":"8e4475b80989b87c47e48c99fbd4cf63ee318697","tarball":"https://registry.npmjs.org/sound/-/sound-1.2.2.tgz","fileCount":12,"unpackedSize":54531,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIES8Az1kcJL9Omrn49mDx0O03igHThnkn+Nndgcvc/PfAiEAhzA1KVyWkAo2YxoZ42l6mIaNBuFM/aP5E4kEpQkQZVI="}]},"maintainers":[{"name":"chilts","email":"chilts@appsattic.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sound_1.2.2_1519764163998_0.08246355363976021"},"_hasShrinkwrap":false},"2.0.0":{"name":"sound","description":"Make sure your data is sound! Validation and conversion library for Node.js.","version":"2.0.0","main":"sound.js","homepage":"https://github.com/chilts/sound","scripts":{"test":"tape test/*.js"},"dependencies":{"underscore":"~1.4.x"},"devDependencies":{"tape":"*"},"engines":{"node":">= 0.6.0"},"repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues"},"author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"contributors":[],"keywords":["validate","validation","input","params"],"licenses":"MIT","gitHead":"908f8b2896c9d2bc3d66f49b8ee98c8dfc8a25ed","_id":"sound@2.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"dist":{"integrity":"sha512-xPZcYQX39Q+EHYNihLT95DBWkZioXC50H6+dEf7Nap3ZqJqqIEHCr3Zq8HNC3C+zsFA3xl9jOtOz+SL4vV0psQ==","shasum":"725a003d1e8e1de079ba61effc3f69d77e32101e","tarball":"https://registry.npmjs.org/sound/-/sound-2.0.0.tgz","fileCount":12,"unpackedSize":56404,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDe+G9gB3FwVTC5Z00/gMmdEOz0NUax5CMOdzwlpNflnwIgTJTbIG/yFdAd5F932JTz8WWREk+X7hvKpMEMoyEFmGw="}]},"maintainers":[{"name":"chilts","email":"chilts@appsattic.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sound_2.0.0_1519819363122_0.26548940162098966"},"_hasShrinkwrap":false},"2.1.0":{"name":"sound","description":"Make sure your data is sound! Validation and conversion library for Node.js.","version":"2.1.0","main":"sound.js","homepage":"https://github.com/chilts/sound","scripts":{"test":"tape test/*.js"},"dependencies":{"underscore":"~1.4.x"},"devDependencies":{"tape":"*"},"engines":{"node":">= 0.6.0"},"repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues"},"author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"contributors":[],"keywords":["validate","validation","input","params"],"licenses":"MIT","gitHead":"78d5c0c5afc3e2494516834b92abbe83b69cad2f","_id":"sound@2.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"dist":{"integrity":"sha512-gHXKXjAgR/VB3QI3cHfqCebAP+q58EdDRZ4eF9eOjzDAsRn4R34JWeijqre4FDnIoxHZAYLfynltqVTSU5yuBw==","shasum":"0a136c3348ec52340099970b9187ddccaa364bda","tarball":"https://registry.npmjs.org/sound/-/sound-2.1.0.tgz","fileCount":12,"unpackedSize":58250,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB84I29DwRsPxPh9eKET4MC+q2N2tBIM+BeE/libtTR1AiBmXU20ZAJ/zesqXhTPP604VqMK8OwmnaRT983YvvKKtw=="}]},"maintainers":[{"name":"chilts","email":"chilts@appsattic.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sound_2.1.0_1519851696681_0.8051276300883812"},"_hasShrinkwrap":false},"2.2.0":{"name":"sound","description":"Make sure your data is sound! Validation and conversion library for Node.js.","version":"2.2.0","main":"sound.js","homepage":"https://github.com/chilts/sound","scripts":{"test":"tape test/*.js"},"dependencies":{"underscore":"*"},"devDependencies":{"tape":"*"},"engines":{"node":">= 0.6.0"},"repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues"},"author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"contributors":[],"keywords":["validate","validation","input","params"],"licenses":"MIT","gitHead":"7fcc14d976829ae63328286a8b3cca60bba6ca89","_id":"sound@2.2.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"dist":{"integrity":"sha512-r1BV+dum++2rePM3hqA1T14orE5S1ugYGaDewWtL/o0kvR752+x09HHZmp8hgFbPc58H2MsPCFUlCjsC0R0uZA==","shasum":"a04cbcb5ce8660ad3049d4604a2178dd9c67a279","tarball":"https://registry.npmjs.org/sound/-/sound-2.2.0.tgz","fileCount":12,"unpackedSize":58245,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFvl++YeTLIn06MlBxkSYTRWO7LA9morJzU95vb+FQYqAiEA9qgvJXG4TuWUGdWjzyq70Q6KV6oWOQqJyNNhapBkJJo="}]},"maintainers":[{"name":"chilts","email":"chilts@appsattic.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sound_2.2.0_1519864615008_0.6336821327184476"},"_hasShrinkwrap":false},"2.3.0":{"name":"sound","description":"Make sure your data is sound! Validation and conversion library for Node.js.","version":"2.3.0","main":"sound.js","scripts":{"test":"tape test/*.js"},"engines":{"node":">= 0.6.0"},"dependencies":{"isemail":"^3.1.3","underscore":"*"},"devDependencies":{"tape":"*"},"homepage":"https://github.com/chilts/sound","repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues"},"keywords":["validate","validation","input","params"],"author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"contributors":[],"license":"MIT","gitHead":"d8e645e810c64536caa04d5159f18dfaeb7ab352","_id":"sound@2.3.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"dist":{"integrity":"sha512-qYVE+nhyslyQZmZIVTWUmi5h500jojqjuA76RxuQrXg//WP6pxffUfMGEGD28p0HQrc0A38PYJtUJWthcaZymg==","shasum":"69f1d3c42631fef663a5a7ce1799481c4209732e","tarball":"https://registry.npmjs.org/sound/-/sound-2.3.0.tgz","fileCount":12,"unpackedSize":58677,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbT8JNCRA9TVsSAnZWagAAMEkP+wTD0MmjFBvFIEACsIyY\nl3z3O/8xqy5OPZ2Is+Y7P5iyLBBBobISnXZkNAAZ8d+ZLiYCk+Ci8Ojdmu29\nbOcWT00Ko9w9LioBBoqGEackqctqDjjNvykdoEbkER1fblgpID3v8jgfVMJK\n9AnwsPR/7Uh+1KhnvxlDemXRabDobX2oqqDV0yhL3E+v5A/JC1bm3yxgh3KY\nFC+hvteeyjgmcUqop3BfPwSSVsNJis8judsvjgy3lnpuuRxS1pyU2ybMxcJZ\neRnrKjPUq413su6icVAYgMV2Gf2hoTuOHoxR4mw8xVaRV1gcga+caDTlb9a+\nQQn5mOveAqvbkIEcBYh2fd42/qMXbk9aI/C12zzVymOk12/+fZGt/wkWz8p4\nbNjNuEevDq8GobQfAckXSRg7MuacdFD13eiy8rgxKN4WsaZhLRslfkak3n44\nox67vmVXtRkBfhp5Ne/3qDJ7Fd3GkNU9VCNxxaTpWo8/7xYyJYcbAHwXbTFq\nn6siyhgmZs8YJVr4ivVFHbuaYsTwUmN1hojcdEL8W4K+gKuRhb/Z9TbVqvNx\nccNiZ2vWe3XIzF4M5dcuNWhN0wZGfv6RcG3WcN+vEP1aL+hmzp4fu9MXrHDS\nUvxkz28qxV1SPbFdyMXRCVZUfXhs8CYPiUPpdXDvuMrEoqCH2l1rWIqw8N8X\n5BUz\r\n=VXro\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGZ6dF6QXd/4uNjen8N9mzwpnfuRh0CnTi/f1AAgGeKAIhAOYayAdQEXG/GrwFE9ifElAjObuRGQCq/Gwr1ig0kwK7"}]},"maintainers":[{"name":"chilts","email":"chilts@appsattic.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sound_2.3.0_1531953740638_0.309742235226667"},"_hasShrinkwrap":false},"2.4.0":{"name":"sound","description":"Make sure your data is sound! Validation and conversion library for Node.js.","version":"2.4.0","main":"sound.js","scripts":{"test":"tape test/*.js"},"engines":{"node":">= 0.6.0"},"dependencies":{"isemail":"^3.1.3","underscore":"*"},"devDependencies":{"tape":"^4.9.1"},"homepage":"https://github.com/chilts/sound","repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues"},"keywords":["validate","validation","input","params"],"author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"contributors":[],"license":"MIT","gitHead":"4fee3913f5e09a69775fb76341fcb2a12f936aa9","_id":"sound@2.4.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"dist":{"integrity":"sha512-P3BcfppMLF0opF7aoddk4HzCQmteAMK8B4PoQQiIUSr3d5TUVYpofuF1KHEnwwioaZd8XT9joE2hPkIjGqB8gw==","shasum":"192e60409a079531da1da2f715aa049c984c192a","tarball":"https://registry.npmjs.org/sound/-/sound-2.4.0.tgz","fileCount":12,"unpackedSize":59538,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbT9J5CRA9TVsSAnZWagAAkg8QAJQnlZ0oJwz/B772b8Ws\nSD52WNyJUHZXtXsWK0S09f843gZR3Y5u4eyqUBKrIfWjXozDDLgFHC51DCJK\nQp8iLywpocbPZWdl8KcomQHdtrVOCuqS3Q42grsJpfxIndDUxZLFn98MRiCn\n6OrrIiaF/8zCuKG28StRz4FOomfqEOj76diz2VVr+cLZCzRStZEjNutec09T\nPDrmYqW2PTma794nr2xrm9d1AimM56KkqQdV308qXhvekNZRUvO+tOtmMYCd\nRzGORHXK61cMAASwtBS+9zPH2CwAJWmsfD9BcmQrqk32C5a0+KtOtAsOlc+k\n+Xq2i1oBP8iFdYRQGzhr1z4KEUBGcpOMg5E6WTGXCzyhV/HpmyFrfYlzhKK+\n1FSBdelc9eMEmBxiN8+ht0uJzCcMEB5DkdyDQrH7NrhStWdQK6OlhBI7tJ6E\naYgpEHCOu4j3jBrws2bVgcwzz70rfVxI1jv5jTOPPvF5BMqkkzwYTpDf9qUE\n1OL5EeOPMjMRD/+VjED+Pb+piASyeseW8R2hb3dy4o3eZF76L/RoPhV7ba8j\n6ItXKCwtw7t+0nRfq21wM67mrG539SJumtEuXo2O2wvEAhlmoSrNGhEPGlHU\nmQM7U0BPv7CCzNTUkLRIkGfQbF5AsFaqfbZbhtjHfNNTBVujrPFDwnaPh64B\nM5o2\r\n=XquE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHIe8VD3sN8hgJQjt7Cbq7no52BDPsLRgHZ8237ZCD7BAiApd2DJi+t2HQmM9lpV028KA3jcOsyy/+HVr9AExlma9w=="}]},"maintainers":[{"name":"chilts","email":"chilts@appsattic.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sound_2.4.0_1531957881692_0.05568744839438344"},"_hasShrinkwrap":false},"2.5.0":{"name":"sound","description":"Make sure your data is sound! Validation and conversion library for Node.js.","version":"2.5.0","main":"sound.js","scripts":{"test":"tape test/*.js"},"engines":{"node":">= 0.6.0"},"dependencies":{"isemail":"^3.1.3","underscore":"*"},"devDependencies":{"tape":"^4.9.1"},"homepage":"https://github.com/chilts/sound","repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues"},"keywords":["validate","validation","input","params"],"author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"contributors":[],"license":"MIT","gitHead":"a9ea9a590043ce431bc215d4d4a26e6068aa43fb","_id":"sound@2.5.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"dist":{"integrity":"sha512-u0cHtPp/gH3K1M+TROhOuidsyCut8wZ1snJQUxDmcyBog3PXaNeUBNFs23IyuOgWilMOnfF4Gyyrxo2dtMq05Q==","shasum":"9bcc24f853c2597d96123ab789c5ddb8d8ea902b","tarball":"https://registry.npmjs.org/sound/-/sound-2.5.0.tgz","fileCount":12,"unpackedSize":59455,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbUBFyCRA9TVsSAnZWagAA8SgP/0uWvC2zV+PgV6MAUxj8\nF96ifeqc5bh35x7StBa47oW743NbM1/6qEzAOm7YStZ640debu15HzgCimaj\njqOKQ95bBpawVHMVsaihGFD9Fj1eqMxThOh6QN9qOT/vOq4En6mRWuGCBite\nSJ5Zj34cEvBmgbrHScVVnOvN479uHRw7DLbq7JbFH854FiZJrJg3RV5bmgF5\nfxOS7tQPfT/MCxLoMUNABPcSywyy84ncbiZ3gX1NjIO910+5IarZX3rhfWzl\nxaGS/0pL8lHPDB6xFVt4RAW29BjQY3ePEvpUeH1TA0ZyExizX2+UvxalCKlR\nZlQ8/L0jxRWU1lYm5MsMem/RGAXSlM4PI/s1M5OfLEdhnnhxwXiqwyMc0i/J\nAQ+G3y3oG/l3mvMU/KnoNQwX/zdgl/PICtR/nsT/L9jh84XeqUk9E8YZ5bYB\nwQjDmf0yNKLIAPQzMfgB+9LXUTNlvCkL2aCDdbDKtq16DMTalYhpcpwzED8T\nISCEpKb976uOAdzpMWFjuDPEDyJsNtNDt2soo9zCbmte8YxqdL1Ko6fhcs59\nn+YKZIP3eXX2V62nFjJF60a43fu4gpOkd2HxVnXoL1jT17qDEBALfXYpSfeD\nHtsGUnHTnYiXCY7A5oJAhM0ER1UuXDI/vZ1F6AFKyC57M/NTNWmq3xZf95tQ\n8Ctc\r\n=3vuk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE6oVDAJrKjY5BMasr2BiTLxww5fdgh/nO+bCaqMVT08AiEA7vTYKZJTlTt8FLzDVfpAdczQcCOL2S/IsbyhkVh4/KA="}]},"maintainers":[{"name":"chilts","email":"chilts@appsattic.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sound_2.5.0_1531974002719_0.5446980223757545"},"_hasShrinkwrap":false},"2.6.0":{"name":"sound","description":"Make sure your data is sound! Validation and conversion library for Node.js.","version":"2.6.0","main":"sound.js","scripts":{"test":"tape test/*.js"},"engines":{"node":">= 0.6.0"},"dependencies":{"isemail":"^3.1.3","underscore":"*"},"devDependencies":{"tape":"^4.9.1"},"homepage":"https://gitlab.com/chilts/sound","repository":{"type":"git","url":"git://gitlab.com/chilts/sound.git"},"bugs":{"url":"http://gitlab.com/chilts/sound/issues"},"keywords":["validate","validation","input","params"],"author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"contributors":[],"license":"MIT","gitHead":"bed2fc0a7ea62417003a8a9e871a7a8f2dcd208e","_id":"sound@2.6.0","_nodeVersion":"8.14.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-DgMlAxmIqNO0CBo5Yp32BHywjXlFMYKfijWslBC4eZ2fNP8IbzKjv/L6Br1W05tNFxRCeqYWgl0bYdqMY3fxkA==","shasum":"ed1825050911c08c5836ad0bde166d51930d0d40","tarball":"https://registry.npmjs.org/sound/-/sound-2.6.0.tgz","fileCount":12,"unpackedSize":64239,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJccwwqCRA9TVsSAnZWagAAmqkQAJbeiNtQWw7e4Bm60VvR\n18ENIikxSdKlDPeqZlmNuhNJk4oKd4x9rmUGx/LglnXNXfnkeyKiDkbGcZRR\nETWX0dwS1VUv9oiUzw92cySqYqEn/v1AsVkLpi2sTh4j5SxYJr6qUYSfKFgy\nbCerhJV2VkYQIh6I5W+Byg/bRkWtaL8SUsvMuulf9z3iaNPFMec7krpbGpY5\n9ZEWIr8P2nmODInxxKBlyOUFeYaseYFgnSado3Iquu1sjl9mXEFvGTZlml6t\nomnKD6vaCl8M399HOui3gHo2kobOK7KMNjn7TPVum6+FYeqbO4/LXmMPQmYS\ntnBWm0mvZPZYXfFpFIxtypSXL8LQnBteMSOXv9glMCIHjtAiBDgoSiPdk6qQ\nMVO9Mxg0fM+qr+Zf9jUKla+DnUqjR4dJTXnCQPeRv5TtClSTDlK+qddwLw7L\nVvMFu4VlQkbDs1QzeA3t71tjhrVyezqSQZS4Ce1hmywP3zvy/A24eCqvIENa\nIcL3Gt32UQnZRi93c89CMyzgSotlCVMHxxNfKAF72fjR2R9bz6zLKDAh3uOY\n+9eG6b8lqop9XFnjR/znvdcXsYcCmXZT4hqj2XHEwDLRtA/oQnZmh0VyvnAH\nqQtHM5ujBUtmZYRRJkI4tP5we8LMUKqnNK0uSvlsfCzaygzlPOSTSk3rEqLv\nG9gG\r\n=A/Nz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICyWz2jCNEubiTAbrBVjOXtATHpdyMoUhT6JvgjB+X7nAiEA4+vup0Z4vJfYFSLK6q7AtcsZJp4YMY+gRi+JKSKD6NE="}]},"maintainers":[{"name":"chilts","email":"chilts@appsattic.com"}],"_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sound_2.6.0_1551043626099_0.19584566910388945"},"_hasShrinkwrap":false},"2.6.1":{"name":"sound","description":"Make sure your data is sound! Validation and conversion library for Node.js.","version":"2.6.1","main":"sound.js","scripts":{"test":"tape test/*.js"},"engines":{"node":">= 0.6.0"},"dependencies":{"isemail":"^3.1.3","underscore":"*"},"devDependencies":{"tape":"^4.9.1"},"homepage":"https://gitlab.com/chilts/sound","repository":{"type":"git","url":"git://gitlab.com/chilts/sound.git"},"bugs":{"url":"http://gitlab.com/chilts/sound/issues"},"keywords":["validate","validation","input","params"],"author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"contributors":[],"license":"MIT","gitHead":"5e298be47aca9ded65a943c77cfcad4849dea1a0","_id":"sound@2.6.1","_nodeVersion":"8.14.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-iXBju+h5xIqF91rG0uzcz3zB+o7W7EVXMo9QbBU4US1VEny9jaQ3NcDiRHSfeOhlYNQImJpAQyPCUq3WqfTptw==","shasum":"00c9d17b57651e3c7c4dec13efcd4211f0d87c59","tarball":"https://registry.npmjs.org/sound/-/sound-2.6.1.tgz","fileCount":12,"unpackedSize":64418,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcc71RCRA9TVsSAnZWagAAwmAP/AqKLd6VaXdbTTyP8sCW\nzkn4y9yujLTQQ68oi1G/35LaImhJ5IeaSR5C45lK5RAR/7y5NpZSFzUy2fzB\nbKqPyrvm2TjwXqS/h5DgdP0WaKqmv55f0hprQXydvrHRrGrw+kl2VL9R7zHa\nOPaUYkurHnZZAZ7pcOCP6rBHWBZ6EGzBjknue0hcOahP4ORNL0m5gav1eY+e\nqlTV7rtphw0vyXafMCAKM76iYzE2mx71o+/BkOVXghU+JfTiqnWg0JS8dWbh\nXNeSRJcoVzpfktgoGlSdhREvBR1DF/ZAJLmwSoqxGRNMG4HFqtyYJDkIlhYP\nDr8jiFqz1b1ZHyfCREAPlse6BVDYICVDvPpIH6gjh7Cc5SPulLPlX+0UvWI4\n127ZP19/WfPh9x4o87l5JFNcwVB1MFcUtX1JKkrVkWlt2Mmsu54FDT3pn6eW\nHMby8bZAPLztWA+JYTQ7IWJu46hD5eTbzN78KljcDw+G9knnl7bmm0p6g7Fz\nlIS0uRETP2ViVGkkcdOtcg3sZa88f5OAsAePtccfjmmqfjAVvDyt09Itax9R\n12nbGYOCndsHcWeLQstZpsZfyfZqIAiQ0tDGa58ubFkwcEKjLxX+/tD4y+Tk\nP/bgUrGu6IYGfFQ1RqctlJ16P+LVsSUPGjUBwlI3ZBYjAMtD+Buxv1ds/bPq\nXXAU\r\n=/r4f\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDU/vIEUACWHJhHmFHZFk+H1DZ+OPm0GFaO1pfZn0d5CAiEA97n2ZZG7ZY+R+MnyANZLCqjdnnnb+ixQaheZvMUKLJo="}]},"maintainers":[{"name":"chilts","email":"chilts@appsattic.com"}],"_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sound_2.6.1_1551088976559_0.976415743290614"},"_hasShrinkwrap":false},"2.7.0":{"name":"sound","description":"Make sure your data is sound! Validation and conversion library for Node.js.","version":"2.7.0","main":"sound.js","scripts":{"test":"tape test/*.js"},"engines":{"node":">= 0.6.0"},"dependencies":{"isemail":"^3.1.3","underscore":"*"},"devDependencies":{"tape":"^4.9.1"},"homepage":"https://gitlab.com/chilts/sound","repository":{"type":"git","url":"git://gitlab.com/chilts/sound.git"},"bugs":{"url":"http://gitlab.com/chilts/sound/issues"},"keywords":["validate","validation","input","params"],"author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"http://www.chilts.org/"},"contributors":[],"license":"MIT","gitHead":"7716964abc87bd0fda991eb23bd99bac20cd3d44","_id":"sound@2.7.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-fUQxW/6ed8xfzaljjuV4ChPMw2xefzfhKqwr5kefty49h3uFytTMKrHXWbI1PI+bS0cKYfPa2Nk9/ooeAWKEUQ==","shasum":"ea2c7e926fc244ac62e248ef45a1dcef915bc4b8","tarball":"https://registry.npmjs.org/sound/-/sound-2.7.0.tgz","fileCount":12,"unpackedSize":69926,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEdl7CRA9TVsSAnZWagAAkXUP+wXqsbbf44gp1NrPNeys\nu1aGlNe9wWKKGUG76vU6l1S14wod/HcquCbMEWVy+uPUuXBDuSJlA3mP59fr\nNs5IszdUeEwWHZdzwCYudLelt0gpzXpQrrHOc0mKdGpFgXxyy28d3NhIuEgC\nj/CELvSbqYOJ60tdmHGDI/LQTvAYdZGvUD3eqM+z1bpgMl6/QSsUDJ7t7swX\nyuHVpD7wV5UGF/R6wkXqR95zOW+QWVR5TzDn5RdiJkU6PFTFoJN/hD1nzSBX\nNdHrO25Z9ntmLkJD4QvwnguAIZkZj/SGmOQXjbtYWgUkGNHqFJ/EYMGxXxQ6\nMDa2j7Ex0grjzQkzAW6QudsFwZ5lAN1gemUA/YM4UP7GaQ5GjIx4ZDtUbTh1\n+MdPNxQb4D9ouU8snpftgwvEQjJXCcGFMo9zg6qW7fzMD+STuUx/nhlsTpB5\nDVju1uKxlb6a5C3UFDHCOP4O/VqSHTlzA9wdN0F0eavK0oWhjWy+xiTo2UFE\nq22fFGDWxejXrJ+d71bRJKSkIUwa/vJF6h//thWu6SAYWRSYA9RGb131WCBT\nQWfLTq2EjkqFutIqnRVS4Jf54cMK1TvMjphyCCC1169cKLqx0EGRUabL3rQP\nZM2GirDz+qQHQt8+lPLg2n5WfQOFQRWkOb9JAqdHvWM9M1ekjU63kmpNYtaF\nxg2O\r\n=iMKD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDb+o2NW8CGaNFNx+pIjcqliu+/PXqL79EZzybFjmwj4gIhAJ+7seGURtb1AhTOVHXKXMvQrOOVCtBXzQP04H7HDSCP"}]},"_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"directories":{},"maintainers":[{"name":"chilts","email":"andychilton@gmail.com"},{"name":"chilts-appsattic","email":"chilts@appsattic.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sound_2.7.0_1611782523187_0.35483851351163453"},"_hasShrinkwrap":false},"3.0.1":{"name":"sound","description":"Make sure your data is sound! Schema generator, converter and validation library for Node.js.","version":"3.0.1","main":"sound.js","type":"module","homepage":"https://github.com/chilts/sound","repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues"},"scripts":{"test":"npm run eslint && npm run tape","tape":"tape test/*.js","eslint":"eslint **/*.js","eslint-fix":"eslint --fix **/*.js"},"dependencies":{"isemail":"^3.2.0","underscore":"^1.13.4"},"devDependencies":{"eslint":"^8.20.0","tape":"^5.5.3"},"author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"https://chilts.org/"},"contributors":[],"keywords":["validate","validation","input","params"],"license":"MIT","gitHead":"f07338cb2e714cd9ec6ff20ede8e9c4aeb4fa299","_id":"sound@3.0.1","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-SwUREruldxN4KVfbvkEsphsujWiikHNaF2Yija8gIJ/lhRIoUXndtRrK6spdD6/MXD+5mbqQ7ygGKCUCg+qXaQ==","shasum":"566e628da8fe4596c53392c683416d49b526defe","tarball":"https://registry.npmjs.org/sound/-/sound-3.0.1.tgz","fileCount":14,"unpackedSize":73039,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCqD0f7tJGoVFgrA3TJ4hIpm6n8G/K+ym75kOYoikVO1gIgdeHifDcBXe57Nd3xzaQCPNPJPsmg10zLZX9ldw6gnvg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi1mEhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq0ew/+LyWAPHN9XwNKX8td2v8WUnSgJS+D77lmBRUvAabzWtEU3Fyd\r\nl7Y1jPYz/9eybzzRh9K3dyFVP0AxOe3ycv+rs0StPukRaZUt6wjJqqn3TowW\r\ne3L7IGW0pc3JhYNmrAkwU/cGRThPX6JND43OSRXys6hEjfEwGqKE4xrOUH7Z\r\npBoivdFLrvWrUhUkl1ERqgX1bKPSRFChZ+tmHNmd9kHIla7ReJ3qn/EO4wJp\r\nVJoOaE5nHanSnvZ2VIYNWZVzmBZfiLi36YQYPzUudksbcU+BJrIxuKvfBetq\r\nPp1lk6fHbn81aG4REOrwga6pAqyi2vdUIRDxnoC8XK9R3mqx4OfVqs7Fyy0q\r\ntuYEXGGLZt2awTortf0K7MNanQ5weoGiOXw7xCUtYOHhhKD5ukrS5QJw4IMX\r\nyo9O9Ac9msSSAH0Z0UE8pO/vMH1OEZuzx8oWgNKvk9l2qUq0tfBx59skWP5v\r\n2CqQyTb+yVuSLW2rAHYvDZ6bkuMFEfsp95uxRelWygp6TAGOTQrCXwOWaa4H\r\nDIMS2FVO8aYBY3PKoW2vE7LvoTN0earNFWyVJ+xYaFHxBXbL1JkbcQfELcir\r\nZD5EeARH0Pc+8oxoCYpT5YWR0povpna9P4nuZ7URQivvPVa2BviLCvziDiXG\r\n2RiQd1eNkghIHTa+X0nA+irTo+Kp1G6Adnk=\r\n=BG8y\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"directories":{},"maintainers":[{"name":"chilts","email":"andychilton@gmail.com"},{"name":"chilts-appsattic","email":"chilts@appsattic.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sound_3.0.1_1658216737224_0.4820353885271904"},"_hasShrinkwrap":false},"3.0.2":{"name":"sound","description":"Make sure your data is sound! Schema generator, converter and validation library for Node.js.","version":"3.0.2","main":"sound.js","type":"module","homepage":"https://github.com/chilts/sound","repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues"},"scripts":{"test":"npm run eslint && npm run tape","tape":"c8 tape test/*.js","eslint":"eslint **/*.js","eslint-fix":"eslint --fix **/*.js"},"dependencies":{"isemail":"^3.2.0","underscore":"^1.13.4"},"devDependencies":{"c8":"^7.11.3","eslint":"^8.20.0","tape":"^5.5.3"},"author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"https://chilts.org/"},"contributors":[],"keywords":["validate","validation","input","params"],"license":"MIT","gitHead":"b73d4cfa58f9122a38fb36524b9b08384434e25d","_id":"sound@3.0.2","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-cPmhReyoYkHIW8wHmYHjoCQEf9TJuuuG7m+logwElykpbWaxEgIpuzI9t2XLNaYDIRUV8D+/D4d4u3yz2l+wWg==","shasum":"94b69260b46d4b064fa1d84a6c1eede218a0a698","tarball":"https://registry.npmjs.org/sound/-/sound-3.0.2.tgz","fileCount":14,"unpackedSize":75809,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICtiN3qNfRfAHzupesjLIrcY0A2MZ1O0pFOkVp3fMrdcAiBV0IE6l7QMdvzq71e+HiYSlVUnvI3AMLJ8bYYtv1995g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi1nTdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqoLBAAjjMsktCXo6MYi6CXCQWV0cGyJ4/OSP7u+cJeDWqxA0WWSIPX\r\nfZPGoYuw5SQqWp+ij61bgpY7ExrZURucZj9bxj4aH3QyUvkVE4cQ2aSduoE6\r\nESnDnsXrrTScWVjBOn7ac4r//q/6UJf7giaA+/Zbd0Hm3a0N2KG2wq9Tf7xg\r\nm+R/kdZ6gOvARc6P3gzYDeV8kPJrFt354MA9LFScuEvS37fN3omHP1QvZO7Z\r\nM8eshoDOrMSSoL08w6bzX6FXJTXnJHkSdJF6c7Y0fTFQ/DVFrvV6rTjFHHk2\r\nkJiVtnIKTUP4K+T1bxtJ1tYHDb0xpckSbvZlX6yUqB4f9QhiBErxq0z4VKT5\r\n9xUbfBZPbWPITKcdNrnLWrZH+mWhiaw82ZpRNOvnAQALOK840Z1zh26YRLKQ\r\nDThxeafaaixxwy151yKQO3mrM1JWyhQEdegE/bBb7ppSHlCAbl6mi6nv4FTT\r\njV3Us1D0nA/iuZ4KFm+Vg1dG4ripYQvKLvD2DJ00pSSvUq1F4q8KUkkQtbhy\r\nRegO3KNCd5t1edQmdQPdmsMoab97QfCeviyqUkCTpOzm+0xEsYvDEJhD8Jbu\r\nQqr+hvjATpFBD4A2em9K6thMrXzPrKZJMbiOq3OFg1m13amf3gRPQKjf1wOP\r\nDZ6WN8JtaI9+KWa/qgtpH1Ewt94PWGA15SU=\r\n=VzVV\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"directories":{},"maintainers":[{"name":"chilts","email":"andychilton@gmail.com"},{"name":"chilts-appsattic","email":"chilts@appsattic.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sound_3.0.2_1658221788907_0.5094507752728012"},"_hasShrinkwrap":false},"3.1.0":{"name":"sound","description":"Make sure your data is sound! Schema generator, converter and validation library for Node.js.","version":"3.1.0","main":"sound.js","type":"module","homepage":"https://github.com/chilts/sound","repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"bugs":{"url":"http://github.com/chilts/sound/issues"},"scripts":{"test":"npm run eslint && npm run tape","tape":"c8 tape test/*.js","eslint":"eslint **/*.js","eslint-fix":"eslint --fix **/*.js"},"dependencies":{"isemail":"^3.2.0","lodash":"^4.17.21"},"devDependencies":{"c8":"^7.11.3","eslint":"^8.20.0","tape":"^5.5.3"},"author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"https://chilts.org/"},"contributors":[],"keywords":["validate","validation","input","params"],"license":"MIT","gitHead":"7d8b8028243b83b9031dfc6801f9839e4a04556b","_id":"sound@3.1.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-BmAYrlP8kJZYDsJJWWK/dzDC8IQFNfjVQR1upxh1BQb8hZLxb6c1Dd5AMCzSZzgh2cv+bImwSBbQ2GO/bY9qDg==","shasum":"efb7dd9458eeacf7ca2da8f976e3b07e40669edd","tarball":"https://registry.npmjs.org/sound/-/sound-3.1.0.tgz","fileCount":15,"unpackedSize":81302,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEiSWKqjzwnK/TxnFc12jXYZOgCSnhty9ZPV2XKg87klAiEAi5Pn0MhWNw/gTrQMGwZtaZieWFWc/ZnScwG+yql7rts="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi2NMeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp9wRAAgW5ZHeXwVLS5VZ2eP31vij30c6XowetUwsdoLY9wC6y+k3/H\r\nxArdoLsFkGhmbmGgT5HtMuVrUrS02OUfleMBRivaOECNWH3Rz1+1L6OFneXk\r\nbWGWwjKAJsTKwcUFuHWaA5srJ5Miyy9+7k+hV17izv5Zb1FZZi4sIVlIMpPl\r\nSGElPnWYygpaeaNQY0jL7/4yZo28N8RalkOTBF6rAYA4Sp89v/r1TH/ACTah\r\nQB4wyEoQipijnFNMmbc8ysdg5Y5al5NqntyXlGE7cR9r32HdK//ZML0H3hYb\r\n+2+Hedmh99i83y9uZ1yS8zWVAsbOXU4a1wQQ2UsNqiGBYrw97anvFFsgMJkB\r\nFh73+CGLVZ2iTqSoY3skTtnLfx+hdS90TPqUr3cifpu4Ah8gbjZSgdAH5LmS\r\nysJ8Y+g9M1P6zuXPK/UvdDv6RrAyQHIXSLD7MuFSBe2nHP8ejRW6jDGao6LC\r\nAPShKie2ics/pecydQGQ0ZpYHIKz0aF/Px47iZy8Yo50IanTu0BZsEwP7CwU\r\neNiNDNu2rc/BDkuPcRHNmePTjGaEy73gaYuLaolhBtvxDFeezX26PAQwwXI/\r\nLr4vavPqpuHE31bmAnuj+p4JNo+58YfSGTL9FeoWAN0q1tFZldpQjpTV8mKq\r\nNAY/2ftCjl+EwZPKAj9LpiIffRO/m0Yzh6Y=\r\n=cuPv\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"chilts","email":"andychilton@gmail.com"},"directories":{},"maintainers":[{"name":"chilts","email":"andychilton@gmail.com"},{"name":"chilts-appsattic","email":"chilts@appsattic.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sound_3.1.0_1658376990196_0.8527708998515502"},"_hasShrinkwrap":false}},"readme":"# Sound #\n\nMake sure your data is sound! Schema generator, converter and validation library for Node.js.\n\n## About ##\n\n* powerful schema generator and validator\n* control over your error messages\n* errors in objects, not arrays\n\nAdvantages over JSON Schema:\n\n* much much simpler to generate and use\n* better default error messages\n* control over error message depending on which validation fails\n* errors relate to the property name, not randomly placed in an arbitrary array\n\nWe aim to test every part of `sound` which means we currently have over 350 tests.\n\n```\n# tests 369\n# pass  369\n```\n\nWe also aim to have 100% code coverage of `sound.js` - using `c8` - which is now almost 700 lines:\n\n```\n----------|---------|----------|---------|---------|-------------------\nFile      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s \n----------|---------|----------|---------|---------|-------------------\nAll files |     100 |      100 |     100 |     100 |                   \n sound.js |     100 |      100 |     100 |     100 |                   \n----------|---------|----------|---------|---------|-------------------\n```\n\n## Synopsis ##\n\nTake an object and verify its properties:\n\n```\nimport sound from 'sound'\n\nconst schema = {\n  username: sound().isString().toLowerCase().toTrim().isRequired().isMatch(/^[a-z0-9]{4,16}$/),\n  password: sound().isString().isRequired().isMinLen(8),\n  age: sound().isInteger().isRequired().isMinVal(13),\n}\n\nconst user = {\n  username: 'chilts',\n  password: 'abcdefgh',\n  age: 15,\n}\n\nconst check = sound.validate(params, schema)\nif ( check.ok ) {\n  // everything validated ... params contained in `check.val`\n  // e.g. { username: 'chilts', password: '12345678', age: 15 }\n}\nelse {\n  // something failed validation ... errors contained in `check.err`\n  // e.g. { username: 'username is required', password: 'password should be at least 8 characters', age: 'age should be at least 13' }\n}\n```\n\n## Examples ##\n\nAn example schema for a user, with various properties to show you different aspects of `sound`:\n\n```\nconst schema = {\n  username : sound().isString().toLowerCase().toTrim().isRequired().isMatch(/^[a-z0-9]{4,16}$/),\n  password : sound().isString().isRequired().isMinLen(8).isMaxLen(100),\n  email    : sound().isString().isRequired().isEmailAddress(),\n  logins   : sound().isInteger().isRequired().isMinVal(0),\n  awesome  : sound().isString().hasDefault('yes').toBoolean().isBoolean(),\n  url      : sound().isString().isUrl(), // optional\n  isAdmin  : sound().isString().isRequired().toBoolean().isBoolean(),\n  dob      : sound().isDate(), // accepts 'yyyy-mm-dd'\n  agree    : sound().isString().toBoolean().isEqual(true), // make sure they tick T&C's\n  color    : sound().isString().toLowerCase().toTrim().isRequired().isEnum([ 'red', 'green', 'blue' ]),\n}\n\nconst params = {\n  username : 'chilts',\n  password : 'abcdefgh',\n  email : 'me@example.com',\n  agree : 'on', // will convert to true\n}\n\nconst check = sound.validate(params, schema)\nif ( check.ok ) {\n  // everything validated ... params contained in `check.val`\n}\nelse {\n  // something failed validation ... errors contained in `check.err`\n}\n```\n\nIf anything fails validation, then err will be an object with keys set to each field for each error. Only one error per\nfield in the schema will be reported.\n\nIf no failures are detected, err is just `{}`. You need to check `checks.ok` to see if validation passed or failed.\n\n```\nconst check = sound.validate(params1, schema)\nif ( !check.ok ) {\n  // something failed, check the keys in `check.err.*`\n  ...\n  return\n}\n\n// all ok, the valid (and perhaps converted) values are in `check.val.*`\n```\n\nAn error may look like:\n\n```\ncheck.err: {\n  password: 'Password should be at least 8 characters'\n  logins: 'Logins should be of type integer',\n  pi: 'PI should be of type float',\n  date: 'Date should be of type date'\n}\n```\n\nA valid value may look like:\n\n```\ncheck.val: {\n  username: 'chilts'\n  password: 'abcdefgh'\n  email: 'me@example.com',\n  agree: true,\n}\n```\n\n## Checks ##\n\n* isString()\n* isInteger()\n* isFloat()\n* isBoolean()\n* isDate()\n* isObject()\n* isArray()\n* isUrl()\n* isDomain()\n* isEmailAddress()\n* isToken()\n* isMatch()\n* isEnum()\n* toTrim()\n* toLowerCase()\n* toUpperCase()\n* toReplace()\n* isEqual()\n* isNotEmpty()\n* isMinLen()\n* isMaxLen()\n* isMinVal()\n* isMaxVal()\n* isGreaterThan()\n* isLessThan()\n\n## Coercions ##\n\n* toString()\n* toString()\n* toInteger()\n* toFloat()\n* toBoolean()\n\n## Unknown Params ##\n\nOnly params that we know about are passed back as `check.val`.\n\n## Other Validation Libraries ##\n\nThere are other validation libraries out there, but they all give me errors which are arrays. To me, this is useless. I\ndon't want to list all of the errors at the top of a form, nor do I know which order those errors are in if I want to\npick and choose. I want the err to be an object with the only keys set to be to ones that fail.\n\nCurrently 'sound' only reports the first error it encounters with each field and it is likely to stay this way (due to\nthe problem and overlap required to keep trying every test even if the first one has failed).\n\n## Changelog ##\n\n* v3.0.0 (2022-07-19)\n  * switch from CommonJS to ESModules\n  * modernise the codebase\n  * use eslint to check style (now 2 space indent, no semi-colons)\n* v2.7.0 (2021-01-21)\n* v2.6.1 (2019-02-25)\n* v2.6.0 (2019-02-25)\n* v2.5.0 (2018-07-19)\n* v2.4.0 (2018-07-19)\n* v2.3.0 (2018-07-19)\n* v2.2.0 (2018-03-01)\n* v2.1.0 (2018-03-01)\n* v2.0.0 (2018-03-01)\n* v1.2.2 (2018-02-28)\n* v1.2.1 (2015-05-26)\n* v1.2.0 (2014-07-30)\n* v1.1.0 (2014-06-28)\n* v1.0.1 (2014-06-28)\n* v1.0.0 (2014-06-28)\n* v0.3.3 (2014-06-28)\n* v0.3.2 (2014-06-28)\n* v0.3.1 (2014-01-02)\n* v0.3.0 (2014-01-02)\n* v0.2.2 (2013-04-15)\n* v0.2.1 (2013-04-15)\n* v0.2.0 (2013-04-15)\n* v0.1.0 (2013-02-01)\n  * first release\n\n## Author ##\n\nWritten by\n\n* [Andrew Chilton](https://chilts.org/)\n* [Twitter](https://twitter.com/andychilton).\n* [GitHub](https://github.com/chilts).\n\n## License ##\n\nMIT - https://chilts.mit-license.org/2013/\n\n(Ends)\n","maintainers":[{"name":"chilts","email":"andychilton@gmail.com"},{"name":"chilts-appsattic","email":"chilts@appsattic.com"}],"time":{"modified":"2022-07-21T04:16:30.462Z","created":"2013-02-01T05:12:45.841Z","0.1.0":"2013-02-01T05:12:49.413Z","0.2.0":"2013-04-15T08:16:17.147Z","0.2.1":"2013-04-15T08:23:12.202Z","0.2.2":"2013-04-15T09:50:53.342Z","0.3.0":"2014-01-01T18:54:50.918Z","0.3.1":"2014-01-01T19:03:56.477Z","0.3.2":"2014-06-28T08:33:26.628Z","0.3.3":"2014-06-28T08:34:54.558Z","1.0.0":"2014-06-28T09:10:03.438Z","1.0.1":"2014-06-28T10:38:26.608Z","1.1.0":"2014-06-28T11:09:07.706Z","1.2.0":"2014-07-03T05:10:48.586Z","1.2.1":"2015-05-26T10:06:34.492Z","1.2.2":"2018-02-27T20:42:44.225Z","2.0.0":"2018-02-28T12:02:43.264Z","2.1.0":"2018-02-28T21:01:36.752Z","2.2.0":"2018-03-01T00:36:55.094Z","2.3.0":"2018-07-18T22:42:21.755Z","2.4.0":"2018-07-18T23:51:21.793Z","2.5.0":"2018-07-19T04:20:02.813Z","2.6.0":"2019-02-24T21:27:06.382Z","2.6.1":"2019-02-25T10:02:56.730Z","2.7.0":"2021-01-27T21:22:03.312Z","3.0.1":"2022-07-19T07:45:37.395Z","3.0.2":"2022-07-19T09:09:49.073Z","3.1.0":"2022-07-21T04:16:30.394Z"},"author":{"name":"Andrew Chilton","email":"andychilton@gmail.com","url":"https://chilts.org/"},"repository":{"type":"git","url":"git://github.com/chilts/sound.git"},"homepage":"https://github.com/chilts/sound","keywords":["validate","validation","input","params"],"contributors":[],"bugs":{"url":"http://github.com/chilts/sound/issues"},"readmeFilename":"ReadMe.md","license":"MIT"}