{"_id":"rules","_rev":"35-d94d69395b8aabb7ba7d5ac760926616","name":"rules","description":"Validate objects against predefined rules (node.js).","dist-tags":{"latest":"0.6.53"},"versions":{"0.2.0":{"name":"rules","version":"0.2.0","description":"Create simple schemas, containing invariants, then use them to validate objects.","main":"index","author":{"name":"Colin Jack"},"repository":{"type":"git","url":"https://github.com/colin-jack/rules.git"},"dependencies":{"underscore":"*","moment":"*"},"devDependencies":{"mocha":"*","chai":"*","require-namespace":"*"},"engines":{"node":">= 0.4.0"},"_npmUser":{"name":"colin_jack","email":"colin.jack@gmail.com"},"_id":"rules@0.2.0","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.63","_nodeVersion":"v0.6.4","_defaultsLoaded":true,"dist":{"shasum":"2448e67abd2cec40095dacbf2c752d690dc9aa3d","tarball":"https://registry.npmjs.org/rules/-/rules-0.2.0.tgz","integrity":"sha512-w9/k5licBPUlIvZOYYvPIsS2fkmhK6SQuE2TLaK3W/AGnuq+iYZAzYWbl1yad6BI5foEhbSPK6Ob0YAp3HudfQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIET3oUPWt55MaUrYTr2fVqDAvoXGUI1+ozFb0VKCQwrOAiEAmdjYfHRn1xi+zDHzjK8cCjY7CUGYOIB3YNw14jjvAT0="}]},"maintainers":[{"name":"colin_jack","email":"colin.jack@gmail.com"}]},"0.3.0":{"name":"rules","version":"0.3.0","description":"Validate objects against declarative rules objects.","main":"index","author":{"name":"Colin Jack"},"repository":{"type":"git","url":"https://github.com/colin-jack/rules.git"},"dependencies":{"underscore":"*","moment":"*"},"devDependencies":{"mocha":"*","chai":"*","require-namespace":"*"},"engines":{"node":">= 0.4.0"},"_npmUser":{"name":"colin_jack","email":"colin.jack@gmail.com"},"_id":"rules@0.3.0","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.63","_nodeVersion":"v0.6.4","_defaultsLoaded":true,"dist":{"shasum":"68d06275232c588f35f29f52339c1257105617ed","tarball":"https://registry.npmjs.org/rules/-/rules-0.3.0.tgz","integrity":"sha512-JGUeAxNQx1c0MAj4j00BT6Fsyw9/2mJPUXKCZsDnVzS8RbSnYqTspc8tMkJ59G+zRlVloGQUERTUB7In09+N/w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICZIMUbctVMxE3uMUM0OMGlQnFwJbGcP3+mFq4R4ZgzTAiB4JTcIlo3avn+pNfe8Ud11r1xiDyi6ROw0M4kNNKyOSw=="}]},"maintainers":[{"name":"colin_jack","email":"colin.jack@gmail.com"}]},"0.5.0":{"version":"0.5.0","name":"rules","preferGlobal":"false","description":"Validate objects against predefined rules (node.js).","main":"index","author":{"name":"Colin Jack"},"repository":{"type":"git","url":"https://github.com/colin-jack/rules.git"},"dependencies":{"underscore":"*","moment":"*"},"scripts":{"test":"mocha -R spec spec/testFixture spec/ -w -G --recursive"},"devDependencies":{"mocha":"*","chai":"*","require-namespace":"*","objectcompare":"*"},"engines":{"node":">=0.6"},"_npmUser":{"name":"colin_jack","email":"colin.jack@gmail.com"},"license":"MIT","_id":"rules@0.5.0","dist":{"shasum":"fd48160f745d70fe8414c41ab9e92f475b375340","tarball":"https://registry.npmjs.org/rules/-/rules-0.5.0.tgz","integrity":"sha512-6M/e3/dn5oIYmOyKVc7L37CDvvgkA+c6lyWA5pGprDPnB4nYhhTgB5Ftm6YyYY0MePn5p1ezUe/WEvrDHJJTMA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEzBatFI+fH8aPcWnXMHamlXk6hkWAzwWY/TNmJzOvaqAiEA/GjfdBJ1AhXk3Dpbvh8HRrYXt3BvS65qA5i/jPaE1BA="}]},"_npmVersion":"1.1.63","maintainers":[{"name":"colin_jack","email":"colin.jack@gmail.com"}]},"0.6.1":{"version":"0.6.1","name":"rules","preferGlobal":"false","description":"Validate objects against predefined rules (node.js).","main":"index","author":{"name":"Colin Jack"},"repository":{"type":"git","url":"https://github.com/colin-jack/rules.git"},"dependencies":{"underscore":"*","moment":"*"},"scripts":{"test":"mocha -R spec spec/testFixture spec/ -w -G --recursive"},"keywords":["validation","rules","schema"],"devDependencies":{"mocha":"*","chai":"*","require-namespace":"*","objectcompare":"*"},"_npmUser":{"name":"colin_jack","email":"colin.jack@gmail.com"},"license":"MIT","engines":{"node":">=0.6"},"_id":"rules@0.6.1","dist":{"shasum":"0ff6e52b2f87f03ff1234a8d8c19def0f227ea90","tarball":"https://registry.npmjs.org/rules/-/rules-0.6.1.tgz","integrity":"sha512-+Xhj1YlM4wOe+GZk9/B0+gZn3GxLyq13zMTvTjPGM4iIHpJFTZ+RfAOVuxYqf1Z513bpCXK5kmJvdcnU1kdNsA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGjf8E0eUYC+FdbYLHjXgbdtwCGujpI+5AIHLxpGCpAgIhAJUhgAYupuIVh/Q7TY6Xaz3YvCxrQJT1yfsNivxwsog8"}]},"_npmVersion":"1.1.63","maintainers":[{"name":"colin_jack","email":"colin.jack@gmail.com"}]},"0.6.2":{"version":"0.6.2","name":"rules","preferGlobal":false,"description":"Validate objects against predefined rules (node.js).","main":"index","author":{"name":"Colin Jack"},"repository":{"type":"git","url":"https://github.com/colin-jack/rules.git"},"dependencies":{"underscore":"*","moment":"*"},"scripts":{"test":"mocha -R spec spec/testFixture spec/ -w --recursive"},"keywords":["validation","rules","schema"],"devDependencies":{"mocha":"*","chai":"*","require-namespace":"*","objectcompare":"*"},"_npmUser":{"name":"colin_jack","email":"colin.jack@gmail.com"},"license":"MIT","engines":{"node":">=0.6"},"_id":"rules@0.6.2","dist":{"shasum":"ee1fc1b7f31dd0e8317fa3efe2f5a7aa2cc9e1c6","tarball":"https://registry.npmjs.org/rules/-/rules-0.6.2.tgz","integrity":"sha512-12AvS959GZg9iVuBCxT9Q2g40AuYgNQG2DIo+hfDnojr8QwtPHUOnV73gp9XzyVZFlw5/ZU7B5qDsAfcCL7Y2A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFawO51bQrI/FCXXrGvv0Bpb4TahkNbHhCFKnj+tWCd8AiAIHHkl6EjsoL3pKjb6UvTRHv/2+g+Mol5wd51L5nyvjA=="}]},"_npmVersion":"1.1.63","maintainers":[{"name":"colin_jack","email":"colin.jack@gmail.com"}]},"0.6.3":{"version":"0.6.3","name":"rules","preferGlobal":false,"description":"Validate objects against predefined rules (node.js).","main":"index","author":{"name":"Colin Jack"},"repository":{"type":"git","url":"https://github.com/colin-jack/rules.git"},"dependencies":{"underscore":"*","moment":"*"},"scripts":{"test":"mocha -R spec spec/testFixture spec/ -w --recursive"},"keywords":["validation","rules","schema"],"devDependencies":{"mocha":"*","chai":"*","require-namespace":"*","objectcompare":"*"},"_npmUser":{"name":"colin_jack","email":"colin.jack@gmail.com"},"license":"MIT","engines":{"node":">=0.6"},"_id":"rules@0.6.3","dist":{"shasum":"d8c13ea981f288253c5301ef1d563d86b38c718a","tarball":"https://registry.npmjs.org/rules/-/rules-0.6.3.tgz","integrity":"sha512-fZGKgomWoIrcT8F9KtIcv2zdQe30QmJNe6uCerLIkrerxmTcWYze+5pSUfhTViGYOotASpr6Mn37tm/ZcgIZtQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8wKS3GLaKM5UL3aGE/Ln8/hMRvkIi+vPnt0gvWY5s9AIgEgo+pBE/xcGhHFY9+YzG+JieNtCDgRWw6Ph9NpYPpRM="}]},"_npmVersion":"1.1.63","maintainers":[{"name":"colin_jack","email":"colin.jack@gmail.com"}]},"0.6.4":{"version":"0.6.4","name":"rules","preferGlobal":false,"description":"Validate objects against predefined rules (node.js).","main":"index","author":{"name":"Colin Jack"},"repository":{"type":"git","url":"https://github.com/colin-jack/rules.git"},"dependencies":{"underscore":"*","moment":"*"},"scripts":{"test":"mocha -R spec spec/testFixture spec/ -w --recursive"},"keywords":["validation","rules","schema"],"devDependencies":{"mocha":"*","chai":"*","require-namespace":"*","objectcompare":"*"},"_npmUser":{"name":"colin_jack","email":"colin.jack@gmail.com"},"license":"MIT","engines":{"node":">=0.6"},"_id":"rules@0.6.4","dist":{"shasum":"47c29e384460e937711664214953b5e3a3f62d1d","tarball":"https://registry.npmjs.org/rules/-/rules-0.6.4.tgz","integrity":"sha512-b6ZTrEUWoR6RnJ2sOkHGP++cidoo8g9NL35RSja0Ym7Daq6JdxadYiUVeUdFoWcN6Ukq2e/P+i5NiCduu78ClA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIClkc6tfsg3J45mRTM8tn/EPuaq28x2Wm5jXc/rESc1iAiEA/zPugK/FKdaAUHWAHlNd+ajKJB4C0/nP8z1jNvojucM="}]},"_npmVersion":"1.1.59","maintainers":[{"name":"colin_jack","email":"colin.jack@gmail.com"}]},"0.6.41":{"version":"0.6.41","name":"rules","preferGlobal":false,"description":"Validate objects against predefined rules (node.js).","main":"index","author":{"name":"Colin Jack"},"repository":{"type":"git","url":"https://github.com/colin-jack/rules.git"},"dependencies":{"underscore":"*","moment":"*"},"scripts":{"test":"mocha -R spec spec/testFixture spec/ --recursive"},"keywords":["validation","rules","schema"],"devDependencies":{"mocha":"*","chai":"*","require-namespace":"*","objectcompare":"*"},"_npmUser":{"name":"colin_jack","email":"colin.jack@gmail.com"},"license":"MIT","engines":{"node":">=0.6"},"_id":"rules@0.6.41","dist":{"shasum":"ac4d78797b2864c96e56c5b51cce32932d8f33d4","tarball":"https://registry.npmjs.org/rules/-/rules-0.6.41.tgz","integrity":"sha512-In9d/piUKkv73edVZMQf+geKffk9m5sN/9csxODLlgj5+SLQUr+y6sJgG+0RRO0HKTpml/lCqFYrMgwQr6lftQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCbfxqiDA4vR0a1mxpmWmEzsp9TwaI34C+XoxYSBv3IOQIhAOJDxBOEU9t8vzqXK16Z/8uDnKIa8cF4DfZx6e0/Ycm5"}]},"_npmVersion":"1.1.59","maintainers":[{"name":"colin_jack","email":"colin.jack@gmail.com"}]},"0.6.42":{"version":"0.6.42","name":"rules","preferGlobal":false,"description":"Validate objects against predefined rules (node.js).","main":"index","author":{"name":"Colin Jack"},"repository":{"type":"git","url":"https://github.com/colin-jack/rules.git"},"dependencies":{"moment":"*","require-namespace":"^0.3.2","underscore":"*"},"scripts":{"test":"mocha -R spec spec/testFixture spec/ --recursive"},"keywords":["validation","rules","schema"],"devDependencies":{"mocha":"*","chai":"*","objectcompare":"*"},"_npmUser":{"name":"colin_jack","email":"colin.jack@gmail.com"},"license":"MIT","engines":{"node":"*"},"gitHead":"fe6ab8d016f4ddca941113c75d9df7e351649e27","bugs":{"url":"https://github.com/colin-jack/rules/issues"},"homepage":"https://github.com/colin-jack/rules","_id":"rules@0.6.42","_shasum":"9c3a051820e25b4a26c505220af7b1a5f760fff2","_from":".","_npmVersion":"2.0.0","maintainers":[{"name":"colin_jack","email":"colin.jack@gmail.com"}],"dist":{"shasum":"9c3a051820e25b4a26c505220af7b1a5f760fff2","tarball":"https://registry.npmjs.org/rules/-/rules-0.6.42.tgz","integrity":"sha512-OgEyQ5otkr1bKjVXCEpfU017Xj+UZ+5PwcWE54v+HMW62E+mUQ8vWtp0mVG1HhuNhlym5IxNpSorsTVq8nY+VA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGMsUHQJv6otnFIY+RFRoiOIdmUl4aFsBOEqWD9dazRuAiEAlIiUEXS0OxCYsektcygSKnOMLYr7eOGRPjKZKu5sOX8="}]}},"0.6.43":{"version":"0.6.43","name":"rules","preferGlobal":false,"description":"Validate objects against predefined rules (node.js).","main":"index","author":{"name":"Colin Jack"},"repository":{"type":"git","url":"https://github.com/colin-jack/rules.git"},"dependencies":{"moment":"*","require-namespace":"^0.3.2","underscore":"*"},"scripts":{"test":"mocha -R spec spec/testFixture spec/ --recursive -b"},"keywords":["validation","rules","schema"],"devDependencies":{"mocha":"*","chai":"*","objectcompare":"*"},"_npmUser":{"name":"colin_jack","email":"colin.jack@gmail.com"},"license":"MIT","engines":{"node":"*"},"gitHead":"b6d2f671da93b49699335e8809966e77c776d1b1","bugs":{"url":"https://github.com/colin-jack/rules/issues"},"homepage":"https://github.com/colin-jack/rules","_id":"rules@0.6.43","_shasum":"800d40f1734ef4e54163b521a5bf981c072179dc","_from":".","_npmVersion":"2.0.0","maintainers":[{"name":"colin_jack","email":"colin.jack@gmail.com"}],"dist":{"shasum":"800d40f1734ef4e54163b521a5bf981c072179dc","tarball":"https://registry.npmjs.org/rules/-/rules-0.6.43.tgz","integrity":"sha512-fNvd+uY+/cp/p7j0JLDKIYuK1GQJdgEz/Xfvuoe7p/jx7U9TKGe+9tuOl4O2bBktd7usUrg3/4CHFePtAWXTew==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC7EvMPjSxegpd8C2436GDuL/yvwxwYVdFMyuQy0fiG1wIgCj+1nneBZpUVFrd1xs/QfJama7JWkfBdKBx+BDJ6BX4="}]}},"0.6.45":{"version":"0.6.45","name":"rules","preferGlobal":false,"description":"Validate objects against predefined rules (node.js).","main":"index","author":{"name":"Colin Jack"},"repository":{"type":"git","url":"https://github.com/colin-jack/rules.git"},"dependencies":{"moment":"*","require-namespace":"^0.3.2","underscore":"*"},"scripts":{"test":"mocha -R spec spec/testFixture spec/ --recursive -b"},"keywords":["validation","rules","schema"],"devDependencies":{"mocha":"*","chai":"*","objectcompare":"*"},"_npmUser":{"name":"colin_jack","email":"colin.jack@gmail.com"},"license":"MIT","engines":{"node":"*"},"gitHead":"60da3761cc60b359c919a45ed4799bba4ffd8c0e","bugs":{"url":"https://github.com/colin-jack/rules/issues"},"homepage":"https://github.com/colin-jack/rules","_id":"rules@0.6.45","_shasum":"a2f275c445cab91bc7bdccc4102984f1f6555b07","_from":".","_npmVersion":"2.0.0","maintainers":[{"name":"colin_jack","email":"colin.jack@gmail.com"}],"dist":{"shasum":"a2f275c445cab91bc7bdccc4102984f1f6555b07","tarball":"https://registry.npmjs.org/rules/-/rules-0.6.45.tgz","integrity":"sha512-uqGMiggXGmnRGHn2V3G0o4IMas7Uasd8kfhvCOSr1nGhzVeDwvuOTPMmJW7Yfeom2J3AMMSkx1zjH2BFNtiYYw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAiVD657pHu6/EMc2hDkFgi1RbFsCuE+6OtsRPrYmVuSAiEAhGl9sDAt3D+xHUcapqvpc264orNzteTML4xMXuTp2QM="}]}},"0.6.50":{"version":"0.6.50","name":"rules","preferGlobal":false,"description":"Validate objects against predefined rules (node.js).","main":"index","author":{"name":"Colin Jack"},"repository":{"type":"git","url":"https://github.com/colin-jack/rules.git"},"dependencies":{"moment":"*","require-namespace":"^0.3.2","underscore":"*"},"scripts":{"test":"mocha -R spec spec/testFixture spec/ --recursive -b"},"keywords":["validation","rules","schema"],"devDependencies":{"mocha":"*","chai":"*","objectcompare":"*"},"_npmUser":{"name":"colin_jack","email":"colin.jack@gmail.com"},"license":"MIT","engines":{"node":"*"},"gitHead":"ba287640b29b42126e89422478f757d32f1540ec","bugs":{"url":"https://github.com/colin-jack/rules/issues"},"homepage":"https://github.com/colin-jack/rules","_id":"rules@0.6.50","_shasum":"ef9420e4ec22eeab5c05a0b738a189f2b16d1b85","_from":".","_npmVersion":"2.0.0","maintainers":[{"name":"colin_jack","email":"colin.jack@gmail.com"}],"dist":{"shasum":"ef9420e4ec22eeab5c05a0b738a189f2b16d1b85","tarball":"https://registry.npmjs.org/rules/-/rules-0.6.50.tgz","integrity":"sha512-IAzo+4sPMCdpbvcYBOR8V194u3+vMRlfd4J3PH0EVVC20DY8QRYFh8PtU1fKoT9FHOnAwBUWQIbCGgqGkceYNQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE+j9Ca6wkJXj7RPxvxjyRT/JrMlKGyj04qUYz3wF/qkAiBE2HHC2wBrZf5WGTHzQqdP1+83ZYtwxd9ughTo6/Wtlg=="}]}},"0.6.51":{"version":"0.6.51","name":"rules","preferGlobal":false,"description":"Validate objects against predefined rules (node.js).","main":"index","author":{"name":"Colin Jack"},"repository":{"type":"git","url":"https://github.com/colin-jack/rules.git"},"dependencies":{"moment":"*","require-namespace":"^0.3.2","underscore":"*"},"scripts":{"test":"mocha -R spec spec/testFixture spec/ --recursive -b"},"keywords":["validation","rules","schema"],"devDependencies":{"mocha":"*","chai":"*","objectcompare":"*"},"_npmUser":{"name":"colin_jack","email":"colin.jack@gmail.com"},"license":"MIT","engines":{"node":"*"},"gitHead":"cab64e250e681bb3d136cda8adff06ecd617442d","bugs":{"url":"https://github.com/colin-jack/rules/issues"},"homepage":"https://github.com/colin-jack/rules","_id":"rules@0.6.51","_shasum":"5f4a593e5c73978f7b64f42f9c5b9d5f30bbb02e","_from":".","_npmVersion":"2.0.0","maintainers":[{"name":"colin_jack","email":"colin.jack@gmail.com"}],"dist":{"shasum":"5f4a593e5c73978f7b64f42f9c5b9d5f30bbb02e","tarball":"https://registry.npmjs.org/rules/-/rules-0.6.51.tgz","integrity":"sha512-5cZnbNfe8V+qdZPBjRMFl3eevd7g+tUW2V2KGNK2WEdkSy859IibBSBAfD4wOPbqKuzzjyz9lzRLEYwzotHydA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEdTlX60JgQaD6ToEgSiHHIr3snToW/e9Af2N9artKCvAiEAsP5oruxpmTb88kGFnz47CW1dCMXu2nuvEP8wlViB2SU="}]}},"0.6.52":{"version":"0.6.52","name":"rules","preferGlobal":false,"description":"Validate objects against predefined rules (node.js).","main":"index","author":{"name":"Colin Jack"},"repository":{"type":"git","url":"https://github.com/colin-jack/rules.git"},"dependencies":{"moment":"*","require-namespace":"^0.3.2","underscore":"*"},"scripts":{"test":"mocha -R spec spec/testFixture spec/ --recursive -b"},"keywords":["validation","rules","schema"],"devDependencies":{"mocha":"*","chai":"*","objectcompare":"*"},"_npmUser":{"name":"colin_jack","email":"colin.jack@gmail.com"},"license":"MIT","engines":{"node":"*"},"gitHead":"881d1c9aab70f398db693baa397e4e2854895b61","bugs":{"url":"https://github.com/colin-jack/rules/issues"},"homepage":"https://github.com/colin-jack/rules","_id":"rules@0.6.52","_shasum":"d1d7e9051a56864bda6e794a47d90f3a4f73a9cd","_from":".","_npmVersion":"2.0.0","maintainers":[{"name":"colin_jack","email":"colin.jack@gmail.com"}],"dist":{"shasum":"d1d7e9051a56864bda6e794a47d90f3a4f73a9cd","tarball":"https://registry.npmjs.org/rules/-/rules-0.6.52.tgz","integrity":"sha512-tC4ePJa3w0LReW/MPDXo19Ay0JqHAqB/WmB6Gjw9o4+Byn/eLoYeRc3YgskLWTuVNZ6UTS5rTZyw0Esw5FFjTQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCT2Zdgf9UmG2IE+FBQxtA0e7mvsPGlWx2G7M9RDA+zHgIgYYV4HgWS3iPVusPPUS3k0gyH+eyMcLp5mWxFndoH2e4="}]}},"0.6.53":{"version":"0.6.53","name":"rules","preferGlobal":false,"description":"Validate objects against predefined rules (node.js).","main":"index","author":{"name":"Colin Jack"},"repository":{"type":"git","url":"https://github.com/colin-jack/rules.git"},"dependencies":{"moment":"*","require-namespace":"^0.3.2","underscore":"*"},"scripts":{"test":"mocha -R spec spec/testFixture spec/ --recursive -b"},"keywords":["validation","rules","schema"],"devDependencies":{"mocha":"*","chai":"*","objectcompare":"*"},"_npmUser":{"name":"colin_jack","email":"colin.jack@gmail.com"},"license":"MIT","engines":{"node":"*"},"gitHead":"cf0dcd21e0102d62fa9ca776be31339aa1af7a56","bugs":{"url":"https://github.com/colin-jack/rules/issues"},"homepage":"https://github.com/colin-jack/rules","_id":"rules@0.6.53","_shasum":"f8f944698528446dca9f7e21ee7d3bcd9b731435","_from":".","_npmVersion":"2.0.0","maintainers":[{"name":"colin_jack","email":"colin.jack@gmail.com"}],"dist":{"shasum":"f8f944698528446dca9f7e21ee7d3bcd9b731435","tarball":"https://registry.npmjs.org/rules/-/rules-0.6.53.tgz","integrity":"sha512-L5MFjonlE2PvSeIowL6haPzg2+ZpQdZ3PobgWWAA6mv/kHpljLkRiU7dZ2epyChyWukLEoCEPi4iPSTZnXzrLg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEZw1vrZvRF/VGl/d+Ht99TGoeGU3rY/uOjT1o4DLV8cAiEAinKqnQp+6QiJ8fh27ywA8Ea+e7H0iGDFzBPy9ewy1gs="}]}}},"readme":"rules (node.js)\r\n==========\r\n[![Build Status](https://travis-ci.org/colin-jack/rules.png)](https://travis-ci.org/#!/colin-jack/rules)\r\n\r\nA tiny rules framework that can be used to validate any value, either by you creating a rules/schema object or applying validations to a single value. In both cases a fluent interface is used.\r\n## Samples\r\n### Schema\r\nYou create an object to declare the rules/invariants you want to apply (something akin to a schema). A fluent interface makes it easy to specify the invariants for each property:\r\n\r\n```js\r\nvar nameRules = {\r\n    first  : mustBe().populated().string({ minLength: 5, maxLength: 20}), [1]\r\n    second : mustBe().populated().string({ minLength: 5, maxLength: 20}),\r\n}\r\n\r\nvar personRules = {\r\n    name:        nameRules,\r\n    weight:      mustBe().populated().numeric({min : 0, max: 130}),\r\n    dateOfBirth: function() { \r\n        this.populated().date({ before: now.subtract(\"years\", 1) }); \r\n    } [2]\r\n}\r\n````\r\nAs shown you can access this fluent interface using two approaches:\r\n\r\n* [1] mustBe() - Acts as the entry point to the fluent interface.\r\n* [2] function - 'this' inside the function being the entry point to the fluent interface.\r\n\r\nThe function based approach is designed primarily for use with CoffeeScript:\r\n```coffeescript\r\n# This schema is not showing how to validate a real address, it just shows a few validators\r\naddressRules = {\r\n  streetOne: mustBe().populated()\r\n  streetTwo: -> @.populated().string( minLength: 10, maxLength : 50 ) \r\n  streetThree: -> @.populated().string( minLength : 10, maxLength: 50) \r\n  town: -> @.populated()\r\n  postCode: -> @.populated().matchFor(/.../)\r\n}\r\n```\r\n### Inline Validation\r\nThe same validators are available for use validating individual values:\r\n```js\r\nvar doSomeStuff = function(name, age) {\r\n    ensure(name).populated().string();\r\n    ensure(age, \"age\").integer();\r\n\r\n    ...\r\n}\r\n```\r\n\r\n### Triggering validation\r\nYou trigger validation using:\r\n\r\n    result = rules.apply(person, personRules)\r\n\r\nThe returned object has the per-property details of any validation failures, e.g.:\r\n```js\r\n{ \r\n    name: { \r\n        first: { \r\n            message: 'The value must be populated.',\r\n            type: 'not_populated',\r\n            value: '' \r\n        },\r\n        second: { \r\n            message: 'The value must be populated.',\r\n            type: 'not_populated',\r\n            value: undefined } \r\n        },\r\n    weight: { \r\n        message: 'The value must be populated.',\r\n        type: 'not_populated',\r\n        value: undefined \r\n    } \r\n}\r\n```\r\nNote in this case both the first name (e.g. person.name.first) and second name (person.name.second) needed to be populated, along with the weight.\r\n\r\n## Validators\r\nThe framework comes with several validators, to understand them further you may want to run the examples.\r\n\r\n* ```populated``` - Checks the value is not ```null```, ```undefined```, ```\"\"```, or an empty array.\r\n* ```array```\r\n* ```numeric``` - Optionally you can also pass in object with ```min``` and/or ```max``` values\r\n* ```integer```\r\n* ```matchFor``` - You can pass in an object with ```pattern``` and optionally ```flags```, alternatively you can pass in the ```RegExp``` object to use.\r\n* ```date``` - Optionally you can specify that the date must be ```before``` and/or ```after``` specified dates. To make this easier you use ```now.add``` or ```now.subtract``` to specify the dates to use for ```before```/```after```.\r\n* ```string``` - Optionally you can pass in ```minLength``` and/or ```maxLength```.\r\n\r\n## Examples\r\nThe project comes with examples in the examples directory.\r\n\r\n## Tests\r\n\r\n    mocha -R spec spec/testFixture spec/ --recursive\r\n\r\n## Future\r\n* Numeric validators - >, <, >=, <=\r\n* Date validator - Support now()\r\n* boolean validator\r\n* enum style validator - valueIn(list), valueNotIn(list).\r\n* Potentially UMD support\r\n* Trying to apply multiple of same validator, multiple type validators (integer and string, numeric and boolean), regex with anything other than string\r\n* Ensure interface e.g. ensure(5).populate().numeric(), allowing direct validation of single values\r\n* API for throwing\r\n* Cyclical rules objects warning\r\n* Numeric validator - failing if passed \"15.5\"","maintainers":[{"name":"colin_jack","email":"colin.jack@gmail.com"}],"time":{"modified":"2022-06-26T14:44:29.013Z","created":"2012-10-22T21:01:32.571Z","0.2.0":"2012-10-22T21:01:35.131Z","0.3.0":"2012-10-23T17:41:46.350Z","0.5.0":"2012-10-24T19:39:54.809Z","0.6.1":"2012-10-25T19:45:00.444Z","0.6.2":"2012-10-30T21:14:57.195Z","0.6.3":"2012-10-30T21:32:36.444Z","0.6.4":"2012-11-20T21:40:04.502Z","0.6.41":"2012-11-20T21:56:49.645Z","0.6.42":"2014-10-27T17:12:08.602Z","0.6.43":"2014-11-16T14:46:16.926Z","0.6.45":"2014-11-16T15:13:14.303Z","0.6.50":"2014-11-18T20:27:59.793Z","0.6.51":"2014-11-18T20:37:36.513Z","0.6.52":"2014-11-18T20:49:29.129Z","0.6.53":"2014-11-25T20:06:24.007Z"},"author":{"name":"Colin Jack"},"repository":{"type":"git","url":"https://github.com/colin-jack/rules.git"},"homepage":"https://github.com/colin-jack/rules","keywords":["validation","rules","schema"],"bugs":{"url":"https://github.com/colin-jack/rules/issues"},"license":"MIT","readmeFilename":"README.md","users":{"esperluette":true,"gonzalofj":true}}