{"_id":"schema-object","_rev":"21-3e5c4be0d2cd8bcd98c17556a81db460","name":"schema-object","description":"Enforce schema on JavaScript objects, including type, transformation, and validation. Supports extends, sub-schemas, and arrays.","dist-tags":{"latest":"4.0.11"},"versions":{"3.3.4":{"name":"schema-object","version":"3.3.4","description":"Enforce schema on JavaScript objects, including type, transformation, and validation. Supports extends, sub-schemas, and arrays.","main":"index.js","scripts":{"test":"gulp test --harmony --harmony_proxies; gulp test;","prepublish":"gulp build;"},"directories":{"test":"test"},"repository":{"type":"git","url":"git+ssh://git@github.com/scotthovestadt/schema-object.git"},"keywords":["schema"],"dependencies":{"babel-polyfill":"6.6.1","lodash":"4.6.1","harmony-reflect":"1.4.2"},"devDependencies":{"babel-core":"6.7.0","babel-plugin-transform-builtin-extend":"1.1.0","babel-plugin-transform-class-properties":"6.6.0","babel-preset-es2015":"6.6.0","gulp":"3.9.1","gulp-babel":"6.1.2","gulp-mocha":"2.2.0","load-plugins":"2.1.0","minimist":"1.2.0","should":"8.x.x"},"author":{"name":"Scott Hovestadt"},"license":"BSD","engines":{"node":">=0.11"},"gitHead":"18bb1b2db9c62b44ab4ca023cce46da7efcbfbfe","bugs":{"url":"https://github.com/scotthovestadt/schema-object/issues"},"homepage":"https://github.com/scotthovestadt/schema-object#readme","_id":"schema-object@3.3.4","_shasum":"1e00ed95d1ef53084ef418a2d727a2c73c5c03fc","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"},"dist":{"shasum":"1e00ed95d1ef53084ef418a2d727a2c73c5c03fc","tarball":"https://registry.npmjs.org/schema-object/-/schema-object-3.3.4.tgz","integrity":"sha512-DCZqc+es+uA82xEbHmcPWxvuwa6S+oMkSHcYxhxhfqV6YRW1TUhQl3MB8sP6IqG4qL5TDlK7z0Vser2ITNLuog==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDaH0dN16ZgpI3qn/404q9p4hlX4/QGTaNIhb0NbIJtIwIhAMSH74jtGXMfYw2q3LGnyRDqhPmxyfl4/BMAahXeOr7X"}]},"maintainers":[{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/schema-object-3.3.4.tgz_1458089049052_0.0933164854068309"}},"3.3.5":{"name":"schema-object","version":"3.3.5","description":"Enforce schema on JavaScript objects, including type, transformation, and validation. Supports extends, sub-schemas, and arrays.","main":"index.js","scripts":{"test":"gulp test --harmony --harmony_proxies; gulp test;","prepublish":"in-publish && gulp build;"},"directories":{"test":"test"},"repository":{"type":"git","url":"git+ssh://git@github.com/scotthovestadt/schema-object.git"},"keywords":["schema"],"dependencies":{"babel-polyfill":"6.7.2","harmony-reflect":"1.4.3","in-publish":"2.0.0","lodash":"4.6.1"},"devDependencies":{"babel-core":"6.7.2","babel-plugin-transform-builtin-extend":"1.1.0","babel-plugin-transform-class-properties":"6.6.0","babel-preset-es2015":"6.6.0","gulp":"3.9.1","gulp-babel":"6.1.2","gulp-mocha":"2.2.0","load-plugins":"2.1.0","minimist":"1.2.0","should":"8.x.x"},"author":{"name":"Scott Hovestadt"},"license":"BSD","engines":{"node":">=0.11"},"gitHead":"2c5ff52789a2b23732b208af028e2dacfde7cecb","bugs":{"url":"https://github.com/scotthovestadt/schema-object/issues"},"homepage":"https://github.com/scotthovestadt/schema-object#readme","_id":"schema-object@3.3.5","_shasum":"6eca708d5e0f937c08b247afb5cf86ce2fe9981b","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"},"dist":{"shasum":"6eca708d5e0f937c08b247afb5cf86ce2fe9981b","tarball":"https://registry.npmjs.org/schema-object/-/schema-object-3.3.5.tgz","integrity":"sha512-aP7PUp5I9Ifh9mzHyMdGtld49GW6yz0t+xKqRjhyPw4lZiTNk6BmcWhZqO+63eYliPPbhxjC8a82KdmWsI7f0w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFZXckMvpKanHTIRbmf6F2WE5H2XBOgFO86KuX9unqvyAiAvRwGRqJvIXYMhZ8vgVAe6kUs/Mp75Fb8+JPbIADYV6g=="}]},"maintainers":[{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/schema-object-3.3.5.tgz_1458265574370_0.9870323454961181"}},"3.3.6":{"name":"schema-object","version":"3.3.6","description":"Enforce schema on JavaScript objects, including type, transformation, and validation. Supports extends, sub-schemas, and arrays.","main":"index.js","scripts":{"test":"gulp test --harmony --harmony_proxies; gulp test;","prepublish":"in-publish && gulp build || not-in-publish"},"directories":{"test":"test"},"repository":{"type":"git","url":"git+ssh://git@github.com/scotthovestadt/schema-object.git"},"keywords":["schema"],"dependencies":{"babel-polyfill":"6.7.2","harmony-reflect":"1.4.3","in-publish":"2.0.0","lodash":"4.6.1"},"devDependencies":{"babel-core":"6.7.2","babel-plugin-transform-builtin-extend":"1.1.0","babel-plugin-transform-class-properties":"6.6.0","babel-preset-es2015":"6.6.0","gulp":"3.9.1","gulp-babel":"6.1.2","gulp-mocha":"2.2.0","load-plugins":"2.1.0","minimist":"1.2.0","should":"8.x.x"},"author":{"name":"Scott Hovestadt"},"license":"BSD","engines":{"node":">=0.11"},"gitHead":"3af145f7cfa693d206d9e609293d121659c0c4e7","bugs":{"url":"https://github.com/scotthovestadt/schema-object/issues"},"homepage":"https://github.com/scotthovestadt/schema-object#readme","_id":"schema-object@3.3.6","_shasum":"7318e1d4045289d26501f04782f5a5d61104f377","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"},"dist":{"shasum":"7318e1d4045289d26501f04782f5a5d61104f377","tarball":"https://registry.npmjs.org/schema-object/-/schema-object-3.3.6.tgz","integrity":"sha512-z+VojiSG6db2MPy5s9asVhfG3VtXLv3Gzzejv8as1r1Ev0N8vU2xVmRhdI9SqX9tAHIVpwI4LhmKZzIsPm1R/A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDs7LyM4pNo31jtaGetw4UAp3U8it6pSMqDtik5KtFT4gIgNZpGvtSQOCNjvzNj07ee/Md3iZu+rOza1QsEIujyHyY="}]},"maintainers":[{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/schema-object-3.3.6.tgz_1458266116765_0.5341668573673815"}},"3.3.7":{"name":"schema-object","version":"3.3.7","description":"Enforce schema on JavaScript objects, including type, transformation, and validation. Supports extends, sub-schemas, and arrays.","main":"index.js","scripts":{"test":"gulp test --harmony --harmony_proxies; gulp test;","prepublish":"in-publish && gulp build || not-in-publish"},"directories":{"test":"test"},"repository":{"type":"git","url":"git+ssh://git@github.com/scotthovestadt/schema-object.git"},"keywords":["schema"],"dependencies":{"babel-polyfill":"6.7.2","harmony-reflect":"1.4.4","in-publish":"2.0.0","lodash":"4.6.1"},"devDependencies":{"babel-core":"6.7.2","babel-plugin-transform-builtin-extend":"1.1.0","babel-plugin-transform-class-properties":"6.6.0","babel-preset-es2015":"6.6.0","gulp":"3.9.1","gulp-babel":"6.1.2","gulp-mocha":"2.2.0","load-plugins":"2.1.0","minimist":"1.2.0","should":"8.x.x"},"author":{"name":"Scott Hovestadt"},"license":"BSD","engines":{"node":">=0.11"},"gitHead":"0e1692787042883742b71f0dc58f51b4bb3139bf","bugs":{"url":"https://github.com/scotthovestadt/schema-object/issues"},"homepage":"https://github.com/scotthovestadt/schema-object#readme","_id":"schema-object@3.3.7","_shasum":"55f94570dd9579196435fb4ab83457e5d5476950","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"},"dist":{"shasum":"55f94570dd9579196435fb4ab83457e5d5476950","tarball":"https://registry.npmjs.org/schema-object/-/schema-object-3.3.7.tgz","integrity":"sha512-b3OMT0aEwOYSkcTAGiJL3zFif4jg0Mc+K9Fka6p6FuQRUpvHLGPaYOLKvlrXuW6T/5D2iLDmH8OxxUFn8nptYw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCH7yTrxz9LuV/TDdqiCDLD4hHHDhGFstj5Q+h20c4BHwIhAJq7wYkGSBH/xnf/0tzPur+hlD2a8slxILU0pFEiLpa9"}]},"maintainers":[{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/schema-object-3.3.7.tgz_1458344311220_0.47231201082468033"}},"3.3.8":{"name":"schema-object","version":"3.3.8","description":"Enforce schema on JavaScript objects, including type, transformation, and validation. Supports extends, sub-schemas, and arrays.","main":"dist/schemaobject.js","scripts":{"test":"gulp test-node --harmony --harmony_proxies && gulp test-node","prepublish":"in-publish && gulp build || not-in-publish"},"directories":{"test":"test"},"repository":{"type":"git","url":"git+ssh://git@github.com/scotthovestadt/schema-object.git"},"keywords":["javascript","schema","extends","type","transformation","validation","object","array"],"dependencies":{"babel-polyfill":"6.7.2","harmony-reflect":"1.4.4","in-publish":"2.0.0","lodash":"4.6.1"},"devDependencies":{"babel-core":"6.7.2","babel-plugin-transform-builtin-extend":"1.1.0","babel-plugin-transform-class-properties":"6.6.0","babel-preset-es2015":"6.6.0","gulp":"3.9.1","gulp-babel":"6.1.2","gulp-mocha":"2.2.0","gulp-mocha-phantomjs":"0.11.0","load-plugins":"2.1.0","minimist":"1.2.0","should":"8.x.x"},"author":{"name":"Scott Hovestadt"},"license":"BSD","engines":{"node":">=0.11"},"gitHead":"6fca16a76f3d274189349c6001a1fbb67b66a3e5","bugs":{"url":"https://github.com/scotthovestadt/schema-object/issues"},"homepage":"https://github.com/scotthovestadt/schema-object#readme","_id":"schema-object@3.3.8","_shasum":"bb0f43dd5d92bcebcdb5fe936f9ae2e5d0dbcafd","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"},"dist":{"shasum":"bb0f43dd5d92bcebcdb5fe936f9ae2e5d0dbcafd","tarball":"https://registry.npmjs.org/schema-object/-/schema-object-3.3.8.tgz","integrity":"sha512-tSoy913btZ6758UjssyicZOOKHbk9IOSoof+r3K+LC4v0ujxc+QZ4ZOZZ2rMl65WU+bzBtD30XIB8PnKxxGZCg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHoAiiOsE0y57m8OOzmZvqRDt1rfSAFC9y0seVKs/1rgAiBLtdcVjnYh9RDnAYIMEKTctRLcoicw+uSn5OeqotySJA=="}]},"maintainers":[{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/schema-object-3.3.8.tgz_1458861839789_0.761212590849027"}},"3.3.9":{"name":"schema-object","version":"3.3.9","description":"Enforce schema on JavaScript objects, including type, transformation, and validation. Supports extends, sub-schemas, and arrays.","main":"dist/schemaobject.js","scripts":{"test":"gulp test-node --harmony --harmony_proxies && gulp test-node","prepublish":"in-publish && gulp build || not-in-publish"},"directories":{"test":"test"},"files":["dist"],"repository":{"type":"git","url":"git+ssh://git@github.com/scotthovestadt/schema-object.git"},"keywords":["javascript","schema","extends","type","transformation","validation","object","array"],"dependencies":{"babel-polyfill":"6.7.4","harmony-reflect":"1.4.6","in-publish":"2.0.0","lodash":"4.11.1"},"devDependencies":{"babel-core":"6.7.7","babel-plugin-transform-builtin-extend":"1.1.0","babel-plugin-transform-class-properties":"6.6.0","babel-preset-es2015":"6.6.0","gulp":"3.9.1","gulp-babel":"6.1.2","gulp-mocha":"2.2.0","gulp-mocha-phantomjs":"0.11.0","load-plugins":"2.1.0","minimist":"1.2.0","should":"8.x.x"},"author":{"name":"Scott Hovestadt"},"license":"BSD","engines":{"node":">=0.11"},"gitHead":"c0991badf21c07e8e97f6b557d181ab1b45e7714","bugs":{"url":"https://github.com/scotthovestadt/schema-object/issues"},"homepage":"https://github.com/scotthovestadt/schema-object#readme","_id":"schema-object@3.3.9","_shasum":"10994e7ead097e25b6759126137b13a910db0353","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"},"dist":{"shasum":"10994e7ead097e25b6759126137b13a910db0353","tarball":"https://registry.npmjs.org/schema-object/-/schema-object-3.3.9.tgz","integrity":"sha512-JrZUErYP3sy3FgNCLQlAsGvPDeoGtJYrENOO+fjalZMXBA1utDmCA00tO3qA2Vxa7r1KIB4dFSjJJBGyjioCEA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGWD1pMQZZIh0Wl8UtZUorJlvdIEegLVYdATs8CS6k/sAiEAwnNXFmimKmXQmDOEk6K8Ay7Q156QqN5CmNkpLNdwfV4="}]},"maintainers":[{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/schema-object-3.3.9.tgz_1462070859037_0.5529169456567615"}},"4.0.0":{"name":"schema-object","version":"4.0.0","description":"Enforce schema on JavaScript objects, including type, transformation, and validation. Supports extends, sub-schemas, and arrays.","main":"dist/schemaobject.js","scripts":{"test":"gulp test-node --harmony --harmony_proxies && gulp test-node","prepublish":"in-publish && gulp build || not-in-publish"},"directories":{"test":"test"},"files":["dist"],"repository":{"type":"git","url":"git+ssh://git@github.com/scotthovestadt/schema-object.git"},"keywords":["javascript","schema","extends","type","transformation","validation","object","array"],"dependencies":{"babel-polyfill":"6.8.0","harmony-reflect":"1.4.6","in-publish":"2.0.0","lodash":"4.11.1"},"devDependencies":{"babel-core":"6.8.0","babel-plugin-transform-builtin-extend":"1.1.0","babel-plugin-transform-class-properties":"6.8.0","babel-preset-es2015":"6.6.0","gulp":"3.9.1","gulp-babel":"6.1.2","gulp-mocha":"2.2.0","gulp-mocha-phantomjs":"0.11.0","load-plugins":"2.1.0","minimist":"1.2.0","should":"8.x.x"},"author":{"name":"Scott Hovestadt"},"license":"BSD","engines":{"node":">=0.11"},"gitHead":"c81c484f351bb966dffb43e4444d1baab1c9bc32","bugs":{"url":"https://github.com/scotthovestadt/schema-object/issues"},"homepage":"https://github.com/scotthovestadt/schema-object#readme","_id":"schema-object@4.0.0","_shasum":"5475bbdc1f66a1614a0e52273ef8598fc9ef6764","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"},"dist":{"shasum":"5475bbdc1f66a1614a0e52273ef8598fc9ef6764","tarball":"https://registry.npmjs.org/schema-object/-/schema-object-4.0.0.tgz","integrity":"sha512-rQWOecf+NuDzvlajZtbdy7DC5tGJ6LLW1HqbpNM1zA6opXHhnjkQcEcH5jzYg3Yot1KMw+tItavwisht0wkBcw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCR1gvgyI7y/y7NhSjLBaYryec4Cv3OFgGn07ZKFdurnAIgWRE5daWMe45XOlrfdjjm1Fl3+WYivzzP0g3uuLTwd0Q="}]},"maintainers":[{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/schema-object-4.0.0.tgz_1462761062611_0.9381583926733583"}},"4.0.1":{"name":"schema-object","version":"4.0.1","description":"Enforce schema on JavaScript objects, including type, transformation, and validation. Supports extends, sub-schemas, and arrays.","main":"dist/schemaobject.js","scripts":{"test":"gulp test-node --harmony --harmony_proxies && gulp test-node","prepublish":"in-publish && gulp build || not-in-publish"},"directories":{"test":"test"},"files":["dist"],"repository":{"type":"git","url":"git+ssh://git@github.com/scotthovestadt/schema-object.git"},"keywords":["javascript","schema","extends","type","transformation","validation","object","array"],"dependencies":{"babel-polyfill":"6.9.1","harmony-reflect":"1.4.6","in-publish":"2.0.0","lodash":"4.13.1"},"devDependencies":{"babel-core":"6.10.4","babel-plugin-transform-builtin-extend":"1.1.0","babel-plugin-transform-class-properties":"6.10.2","babel-preset-es2015":"6.9.0","gulp":"3.9.1","gulp-babel":"6.1.2","gulp-mocha":"2.2.0","gulp-mocha-phantomjs":"0.11.0","load-plugins":"2.1.0","minimist":"1.2.0","should":"9.x.x"},"author":{"name":"Scott Hovestadt"},"license":"BSD","engines":{"node":">=0.11"},"gitHead":"82e7338913ef33e93828d91e7ff47737b1061066","bugs":{"url":"https://github.com/scotthovestadt/schema-object/issues"},"homepage":"https://github.com/scotthovestadt/schema-object#readme","_id":"schema-object@4.0.1","_shasum":"c1d662831e646192904dbdd5717f59d65a4e3feb","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"},"dist":{"shasum":"c1d662831e646192904dbdd5717f59d65a4e3feb","tarball":"https://registry.npmjs.org/schema-object/-/schema-object-4.0.1.tgz","integrity":"sha512-L01Pwue7XPOrDm67VRcFbH4jJcGU4g0BHnM/wY7p/4+2nDSK09xUoSz8wB37p/a/tMzpMtCAbBODO1Pj1vA4jQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCOS6GfZFEhcSdrBnJQhhBuIlR9mf+n9dNCCSSAtJxM5AIgZGVQH31F/qqGs8/welC+p3e6MM0BE8NLUjjswEKxvXw="}]},"maintainers":[{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/schema-object-4.0.1.tgz_1468971664185_0.06580059649422765"}},"4.0.2":{"name":"schema-object","version":"4.0.2","description":"Enforce schema on JavaScript objects, including type, transformation, and validation. Supports extends, sub-schemas, and arrays.","main":"dist/schemaobject.js","scripts":{"test":"gulp test-node --harmony --harmony_proxies && gulp test-node","prepublish":"in-publish && gulp build || not-in-publish"},"directories":{"test":"test"},"files":["dist"],"repository":{"type":"git","url":"git+ssh://git@github.com/scotthovestadt/schema-object.git"},"keywords":["javascript","schema","extends","type","transformation","validation","object","array"],"dependencies":{"babel-polyfill":"6.9.1","harmony-reflect":"1.4.6","in-publish":"2.0.0","lodash":"4.13.1"},"devDependencies":{"babel-core":"6.10.4","babel-plugin-transform-builtin-extend":"1.1.0","babel-plugin-transform-class-properties":"6.10.2","babel-preset-es2015":"6.9.0","gulp":"3.9.1","gulp-babel":"6.1.2","gulp-mocha":"2.2.0","gulp-mocha-phantomjs":"0.11.0","load-plugins":"2.1.0","minimist":"1.2.0","should":"9.x.x"},"author":{"name":"Scott Hovestadt"},"license":"BSD","engines":{"node":">=0.11"},"gitHead":"25bdc74a55b7a7dfbfced045440e05df8dc0df73","bugs":{"url":"https://github.com/scotthovestadt/schema-object/issues"},"homepage":"https://github.com/scotthovestadt/schema-object#readme","_id":"schema-object@4.0.2","_shasum":"c288128428cde951f41ae7ed368063c2e810137d","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"},"dist":{"shasum":"c288128428cde951f41ae7ed368063c2e810137d","tarball":"https://registry.npmjs.org/schema-object/-/schema-object-4.0.2.tgz","integrity":"sha512-dfYs6BDffbR6Xo7omJ5+m12Yb5f3kPd1vUVVVuDnoBTHBk6fzS+hIT75thpuXHHjwNynKavPiLWiNPQtDQeb8g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDBkAw82h6m8AvsZfv5HC0g/ErzcppBERdrNAVd+68uYwIgKf1DJRqCr6JZFWtlbxXGrkmngqi895le8NRsV9TgVjk="}]},"maintainers":[{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/schema-object-4.0.2.tgz_1470041372894_0.6588476370088756"}},"4.0.3":{"name":"schema-object","version":"4.0.3","description":"Enforce schema on JavaScript objects, including type, transformation, and validation. Supports extends, sub-schemas, and arrays.","main":"dist/schemaobject.js","scripts":{"test":"gulp test-node --harmony --harmony_proxies && gulp test-node","prepublish":"in-publish && gulp build || not-in-publish"},"directories":{"test":"test"},"files":["dist"],"repository":{"type":"git","url":"git+ssh://git@github.com/scotthovestadt/schema-object.git"},"keywords":["javascript","schema","extends","type","transformation","validation","object","array"],"dependencies":{"babel-polyfill":"6.9.1","harmony-reflect":"1.4.6","in-publish":"2.0.0","lodash":"4.13.1"},"devDependencies":{"babel-core":"6.10.4","babel-plugin-transform-builtin-extend":"1.1.0","babel-plugin-transform-class-properties":"6.10.2","babel-preset-es2015":"6.9.0","gulp":"3.9.1","gulp-babel":"6.1.2","gulp-mocha":"2.2.0","gulp-mocha-phantomjs":"0.11.0","load-plugins":"2.1.0","minimist":"1.2.0","should":"9.x.x"},"author":{"name":"Scott Hovestadt"},"license":"BSD","engines":{"node":">=0.11"},"gitHead":"1b6557b5399e9da4ec14713749ea2e726c0f7049","bugs":{"url":"https://github.com/scotthovestadt/schema-object/issues"},"homepage":"https://github.com/scotthovestadt/schema-object#readme","_id":"schema-object@4.0.3","_shasum":"c04fbcdf3e7ade6a19cc72429feb39b3d2e9d216","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"},"dist":{"shasum":"c04fbcdf3e7ade6a19cc72429feb39b3d2e9d216","tarball":"https://registry.npmjs.org/schema-object/-/schema-object-4.0.3.tgz","integrity":"sha512-84IVPLpm8iJDTkgN8EpnXlA7Ovxd2rSmaXHV3PTvL9nlpzzzaz82YdOSJiZe6EwifQHnCZmGMEVVHNsaTsd++A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBALOkgcPyqldr2DwKxFHnY0LnboZdEyqeAzff5CJ8RwAiA0mF74rkL1BYxhZsd2p50XYAQ5uFoICXdkU1i2A3jgeg=="}]},"maintainers":[{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/schema-object-4.0.3.tgz_1470041509796_0.4754972842056304"}},"4.0.4":{"name":"schema-object","version":"4.0.4","description":"Enforce schema on JavaScript objects, including type, transformation, and validation. Supports extends, sub-schemas, and arrays.","main":"dist/schemaobject.js","scripts":{"test":"gulp test-node --harmony --harmony_proxies && gulp test-node","prepublish":"in-publish && gulp build || not-in-publish"},"directories":{"test":"test"},"files":["dist"],"repository":{"type":"git","url":"git+ssh://git@github.com/scotthovestadt/schema-object.git"},"keywords":["javascript","schema","extends","type","transformation","validation","object","array"],"dependencies":{"babel-polyfill":"6.13.0","harmony-reflect":"1.4.6","in-publish":"2.0.0","lodash":"4.15.0"},"devDependencies":{"babel-core":"6.13.2","babel-plugin-transform-builtin-extend":"1.1.0","babel-plugin-transform-class-properties":"6.11.5","babel-preset-es2015":"6.13.2","gulp":"3.9.1","gulp-babel":"6.1.2","gulp-mocha":"3.0.1","gulp-mocha-phantomjs":"0.11.0","load-plugins":"2.1.0","minimist":"1.2.0","should":"11.x.x"},"author":{"name":"Scott Hovestadt"},"license":"BSD","engines":{"node":">=0.11"},"gitHead":"8fd9e8466f6341e1dbd62099f83097839e1cde87","bugs":{"url":"https://github.com/scotthovestadt/schema-object/issues"},"homepage":"https://github.com/scotthovestadt/schema-object#readme","_id":"schema-object@4.0.4","_shasum":"e55cf03f3601b57e4caecff8f459fab25dd3c0f9","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"},"dist":{"shasum":"e55cf03f3601b57e4caecff8f459fab25dd3c0f9","tarball":"https://registry.npmjs.org/schema-object/-/schema-object-4.0.4.tgz","integrity":"sha512-OOqdVqfP9dzgj0PUASQBLMcxX52rzaAbrc+i/HaB0o/tFn4h4BgpW9RmkB9Y/Af6LGyc4LY1XUsxJb7kTmpcOA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDOdTtsIGEXnm+c82yiik5gtfDec+5N6QALWdmOqdMG3gIgcvkzfyvgycwpPdmpViEdudPdK1yyGcqABr2XqkTPjrA="}]},"maintainers":[{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/schema-object-4.0.4.tgz_1471414970385_0.3791200041305274"}},"4.0.5":{"name":"schema-object","version":"4.0.5","description":"Enforce schema on JavaScript objects, including type, transformation, and validation. Supports extends, sub-schemas, and arrays.","main":"dist/schemaobject.js","scripts":{"test":"gulp test-node --harmony --harmony_proxies && gulp test-node","prepublish":"in-publish && gulp build || not-in-publish"},"directories":{"test":"test"},"files":["dist"],"repository":{"type":"git","url":"git+ssh://git@github.com/scotthovestadt/schema-object.git"},"keywords":["javascript","schema","extends","type","transformation","validation","object","array"],"dependencies":{"babel-polyfill":"6.13.0","harmony-reflect":"1.4.6","in-publish":"2.0.0","lodash":"4.15.0"},"devDependencies":{"babel-core":"6.13.2","babel-plugin-transform-builtin-extend":"1.1.0","babel-plugin-transform-class-properties":"6.11.5","babel-preset-es2015":"6.13.2","gulp":"3.9.1","gulp-babel":"6.1.2","gulp-mocha":"3.0.1","gulp-mocha-phantomjs":"0.11.0","load-plugins":"2.1.0","minimist":"1.2.0","should":"11.x.x"},"author":{"name":"Scott Hovestadt"},"license":"BSD","engines":{"node":">=0.11"},"gitHead":"5ace8bc7de9c62e45229ab0844e609dc239afc71","bugs":{"url":"https://github.com/scotthovestadt/schema-object/issues"},"homepage":"https://github.com/scotthovestadt/schema-object#readme","_id":"schema-object@4.0.5","_shasum":"696b8d003f94d0dea0eb0525b1e61eb05b1f5fc4","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"},"dist":{"shasum":"696b8d003f94d0dea0eb0525b1e61eb05b1f5fc4","tarball":"https://registry.npmjs.org/schema-object/-/schema-object-4.0.5.tgz","integrity":"sha512-GPK/gqfWLS2Zz7mNAnV5fxH5VKLJCgts5OX37fqHcAlebOu224yyWs32yU/x9C702cy5Lpzz5HqEUROCjO8zhQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSkZ4OjUrzf4Pwwnw+TJ5P8y4UeoSzPczJ0U+Iue9PVwIgbxhfAKdjDHz+xXBYh569OGoVuNbB+D+uKVwEV/vX3U0="}]},"maintainers":[{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/schema-object-4.0.5.tgz_1472243501972_0.3941117008216679"}},"4.0.6":{"name":"schema-object","version":"4.0.6","description":"Enforce schema on JavaScript objects, including type, transformation, and validation. Supports extends, sub-schemas, and arrays.","main":"dist/schemaobject.js","scripts":{"test":"gulp test-node && gulp test-node","prepublish":"in-publish && gulp build || not-in-publish"},"types":"./lib/schemaobject.d.ts","directories":{"test":"test"},"files":["dist"],"repository":{"type":"git","url":"git+ssh://git@github.com/scotthovestadt/schema-object.git"},"keywords":["javascript","schema","extends","type","transformation","validation","object","array"],"dependencies":{"babel-polyfill":"^6.16.0","harmony-reflect":"^1.5.0","in-publish":"^2.0.0","lodash":"^4.17.2"},"devDependencies":{"babel-core":"6.18.2","babel-plugin-transform-builtin-extend":"1.1.0","babel-plugin-transform-class-properties":"6.19.0","babel-preset-es2015":"6.18.0","gulp":"3.9.1","gulp-babel":"6.1.2","gulp-mocha":"3.0.1","gulp-mocha-phantomjs":"0.12.0","load-plugins":"2.1.1","minimist":"1.2.0","should":"11.x.x"},"author":{"name":"Scott Hovestadt"},"license":"BSD","engines":{"node":">=0.11"},"gitHead":"c6d9f1e52105607d801b27d73193f5c79f5b7332","bugs":{"url":"https://github.com/scotthovestadt/schema-object/issues"},"homepage":"https://github.com/scotthovestadt/schema-object#readme","_id":"schema-object@4.0.6","_shasum":"d49615dffd3ae287249be9198ce9d9136310f68f","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"},"dist":{"shasum":"d49615dffd3ae287249be9198ce9d9136310f68f","tarball":"https://registry.npmjs.org/schema-object/-/schema-object-4.0.6.tgz","integrity":"sha512-ZLg37A5DPPOOXXPXgvT9NoKhM7jBx2L6nlsAOl0uhoBjwQL4751BncAaNMiVOuRtPSba5j6aj7MEVYXsckkprw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFPh0z/mnh8oZnCOF4zRoRWkEJN7wcCIjhDLmj47eO5NAiB/ZOdIZ2TOpq44Eg4cQvoBdPHnIaKsZF5e5xbh0vf4+Q=="}]},"maintainers":[{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/schema-object-4.0.6.tgz_1480464821594_0.4728788109496236"}},"4.0.7":{"name":"schema-object","version":"4.0.7","description":"Enforce schema on JavaScript objects, including type, transformation, and validation. Supports extends, sub-schemas, and arrays.","main":"dist/schemaobject.js","scripts":{"test":"gulp test-node && gulp test-node","prepublish":"in-publish && gulp build || not-in-publish"},"types":"./typescript/schemaobject.d.ts","directories":{"test":"test"},"files":["dist","typescript"],"repository":{"type":"git","url":"git+ssh://git@github.com/scotthovestadt/schema-object.git"},"keywords":["javascript","schema","extends","type","transformation","validation","object","array"],"dependencies":{"babel-polyfill":"^6.16.0","harmony-reflect":"^1.5.0","in-publish":"^2.0.0","lodash":"^4.17.2"},"devDependencies":{"babel-core":"6.18.2","babel-plugin-transform-builtin-extend":"1.1.0","babel-plugin-transform-class-properties":"6.19.0","babel-preset-es2015":"6.18.0","gulp":"3.9.1","gulp-babel":"6.1.2","gulp-mocha":"3.0.1","gulp-mocha-phantomjs":"0.12.0","load-plugins":"2.1.1","minimist":"1.2.0","should":"11.x.x"},"author":{"name":"Scott Hovestadt"},"license":"BSD","engines":{"node":">=0.11"},"gitHead":"c6d9f1e52105607d801b27d73193f5c79f5b7332","bugs":{"url":"https://github.com/scotthovestadt/schema-object/issues"},"homepage":"https://github.com/scotthovestadt/schema-object#readme","_id":"schema-object@4.0.7","_shasum":"faf328f1e617ac24ca77d7aa97d6d79b66cd2a7d","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"},"dist":{"shasum":"faf328f1e617ac24ca77d7aa97d6d79b66cd2a7d","tarball":"https://registry.npmjs.org/schema-object/-/schema-object-4.0.7.tgz","integrity":"sha512-M2S9p/g7jWEqjfQaXLjMX+KcwsnQhUtAOsIf/ot5fzNwJCudgluyjDaObue4hHH+626oRKViPmS6pbYQteg2XA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCr8akYJh3OhO7xun3gmgtGdB95PbrEpAU6CWwtINDXbQIhAKM46COWue20pGIjrBSFw2XSDnUFau2QNGRbScDDcikn"}]},"maintainers":[{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/schema-object-4.0.7.tgz_1480465029517_0.9802307379432023"}},"4.0.8":{"name":"schema-object","version":"4.0.8","description":"Enforce schema on JavaScript objects, including type, transformation, and validation. Supports extends, sub-schemas, and arrays.","main":"dist/schemaobject.js","scripts":{"test":"gulp test-node && gulp test-node","build":"gulp build","prepublish":"in-publish && gulp build || not-in-publish"},"types":"./typescript/schemaobject.d.ts","directories":{"test":"test"},"files":["dist","typescript"],"repository":{"type":"git","url":"git+ssh://git@github.com/scotthovestadt/schema-object.git"},"keywords":["javascript","schema","extends","type","transformation","validation","object","array"],"dependencies":{"babel-polyfill":"^6.16.0","harmony-reflect":"^1.5.0","in-publish":"^2.0.0","lodash":"^4.17.2"},"devDependencies":{"babel-core":"6.21.0","babel-plugin-transform-builtin-extend":"1.1.0","babel-plugin-transform-class-properties":"6.19.0","babel-preset-es2015":"6.18.0","gulp":"3.9.1","gulp-babel":"6.1.2","gulp-mocha":"3.0.1","gulp-mocha-phantomjs":"0.12.0","load-plugins":"2.1.2","minimist":"1.2.0","should":"11.x.x"},"author":{"name":"Scott Hovestadt"},"license":"BSD","engines":{"node":">=0.11"},"gitHead":"12925c60f7529931cb3bbd63085feaa99d706dbd","bugs":{"url":"https://github.com/scotthovestadt/schema-object/issues"},"homepage":"https://github.com/scotthovestadt/schema-object#readme","_id":"schema-object@4.0.8","_shasum":"6098a9e97e4683f279aa3da1d04c627c82c656c1","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"},"dist":{"shasum":"6098a9e97e4683f279aa3da1d04c627c82c656c1","tarball":"https://registry.npmjs.org/schema-object/-/schema-object-4.0.8.tgz","integrity":"sha512-sPIKns3geZkxenROKLUsJDuaRR08aWRcVqsd5MoQkq1M21e5KY092a6sr0xDNYnWD6DPLuLRc+I9jNYPDblwIg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDVqMRjiq2fQ1UUzrjJOz9SolxW7IGsZYxaXcLVq1E++AiBcgbg8AM/d3ArZ/mWtjjw43lTgBDt94DzAjNkt5LfsVg=="}]},"maintainers":[{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/schema-object-4.0.8.tgz_1484356123917_0.9171173798386008"}},"4.0.9":{"name":"schema-object","version":"4.0.9","description":"Enforce schema on JavaScript objects, including type, transformation, and validation. Supports extends, sub-schemas, and arrays.","main":"dist/schemaobject.js","scripts":{"test":"gulp test-node && gulp test-node","build":"gulp build","prepublish":"in-publish && gulp build || not-in-publish"},"types":"./typescript/schemaobject.d.ts","directories":{"test":"test"},"files":["dist","typescript"],"repository":{"type":"git","url":"git+ssh://git@github.com/scotthovestadt/schema-object.git"},"keywords":["javascript","schema","extends","type","transformation","validation","object","array"],"dependencies":{"babel-polyfill":"^6.16.0","harmony-reflect":"^1.5.0","in-publish":"^2.0.0","lodash":"^4.17.2"},"devDependencies":{"babel-core":"6.21.0","babel-plugin-transform-builtin-extend":"1.1.0","babel-plugin-transform-class-properties":"6.19.0","babel-preset-es2015":"6.18.0","gulp":"3.9.1","gulp-babel":"6.1.2","gulp-mocha":"3.0.1","gulp-mocha-phantomjs":"0.12.0","load-plugins":"2.1.2","minimist":"1.2.0","should":"11.x.x"},"author":{"name":"Scott Hovestadt"},"license":"BSD","engines":{"node":">=0.11"},"gitHead":"3234d93c7c8bd32226ce9f6aeeb4cdabffa09fb5","bugs":{"url":"https://github.com/scotthovestadt/schema-object/issues"},"homepage":"https://github.com/scotthovestadt/schema-object#readme","_id":"schema-object@4.0.9","_shasum":"49d5728949c43afc24c65467e915a47a96de7669","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"},"dist":{"shasum":"49d5728949c43afc24c65467e915a47a96de7669","tarball":"https://registry.npmjs.org/schema-object/-/schema-object-4.0.9.tgz","integrity":"sha512-wSaF1IhSAQv247iZWqmZaRiTJHp+YBrdph8C9o1msAH0cv+QtV8+q5+ZXBIiXOMlugwkhYq/Rvyu8ESqrPZAxg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEPFyRpGh9cVo7tLVIIN/u9Ls6pWEbMXSZoRklLI1zqDAiEA+pqpK13WyGq4ovjAH7OiPLgFQ179Cp6lXdyQz5VOsr4="}]},"maintainers":[{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/schema-object-4.0.9.tgz_1486673663823_0.009365648729726672"}},"4.0.10":{"name":"schema-object","version":"4.0.10","description":"Enforce schema on JavaScript objects, including type, transformation, and validation. Supports extends, sub-schemas, and arrays.","main":"dist/schemaobject.js","scripts":{"test":"gulp test-node && gulp test-node","build":"gulp build","prepublish":"in-publish && gulp build || not-in-publish"},"types":"./typescript/schemaobject.d.ts","directories":{"test":"test"},"files":["dist","typescript"],"repository":{"type":"git","url":"git+ssh://git@github.com/scotthovestadt/schema-object.git"},"keywords":["javascript","schema","extends","type","transformation","validation","object","array"],"dependencies":{"babel-polyfill":"^6.16.0","harmony-reflect":"^1.5.0","in-publish":"^2.0.0","lodash":"^4.17.2"},"devDependencies":{"babel-core":"6.21.0","babel-plugin-transform-builtin-extend":"1.1.0","babel-plugin-transform-class-properties":"6.19.0","babel-preset-es2015":"6.18.0","gulp":"3.9.1","gulp-babel":"6.1.2","gulp-mocha":"3.0.1","gulp-mocha-phantomjs":"0.12.0","load-plugins":"2.1.2","minimist":"1.2.0","should":"11.x.x"},"author":{"name":"Scott Hovestadt"},"license":"BSD","engines":{"node":">=0.11"},"gitHead":"27ccfb78f0f5a35e938852535952769fbb2b3e53","bugs":{"url":"https://github.com/scotthovestadt/schema-object/issues"},"homepage":"https://github.com/scotthovestadt/schema-object#readme","_id":"schema-object@4.0.10","_shasum":"5050d4771ae7c7bf32f0b26c67493abe9205b21c","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"},"dist":{"shasum":"5050d4771ae7c7bf32f0b26c67493abe9205b21c","tarball":"https://registry.npmjs.org/schema-object/-/schema-object-4.0.10.tgz","integrity":"sha512-rBxlElIrSqdhRTdDgQXRPC1qoUvFAW3LGR+jGwwnBrWM9MTeeZBwSInQuErHwwz+LDuEP5fJVKryrkSs6HMl9g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA0tiSu/k2I31O9KqDJsQyznF0KbevzWmmH9mTkEqe/3AiB6ZgWme0VYhmB2AhxnzpVA2vAD8cyRIrkvZWc33vD3CQ=="}]},"maintainers":[{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/schema-object-4.0.10.tgz_1487099545256_0.49102424876764417"}},"4.0.11":{"name":"schema-object","version":"4.0.11","description":"Enforce schema on JavaScript objects, including type, transformation, and validation. Supports extends, sub-schemas, and arrays.","main":"dist/schemaobject.js","scripts":{"test":"gulp test-node && gulp test-node","build":"gulp build","prepublish":"in-publish && gulp build || not-in-publish"},"types":"./typescript/schemaobject.d.ts","directories":{"test":"test"},"files":["dist","typescript"],"repository":{"type":"git","url":"git+ssh://git@github.com/scotthovestadt/schema-object.git"},"keywords":["javascript","schema","extends","type","transformation","validation","object","array"],"dependencies":{"babel-polyfill":"^6.16.0","harmony-reflect":"^1.5.0","in-publish":"^2.0.0","lodash":"^4.17.2"},"devDependencies":{"babel-core":"6.21.0","babel-plugin-transform-builtin-extend":"1.1.0","babel-plugin-transform-class-properties":"6.19.0","babel-preset-es2015":"6.18.0","gulp":"3.9.1","gulp-babel":"6.1.2","gulp-mocha":"3.0.1","gulp-mocha-phantomjs":"0.12.0","load-plugins":"2.1.2","minimist":"1.2.0","should":"11.x.x"},"author":{"name":"Scott Hovestadt"},"license":"BSD","engines":{"node":">=0.11"},"gitHead":"a0467ecf514ee46eb646f172350f21f3304bbf4d","bugs":{"url":"https://github.com/scotthovestadt/schema-object/issues"},"homepage":"https://github.com/scotthovestadt/schema-object#readme","_id":"schema-object@4.0.11","_shasum":"8264684ca889bc60386928df05121819b3e54df2","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"},"dist":{"shasum":"8264684ca889bc60386928df05121819b3e54df2","tarball":"https://registry.npmjs.org/schema-object/-/schema-object-4.0.11.tgz","integrity":"sha512-RT9dJp23pCZm9/o9VUDc5lW3rAGZX4UjzI8C3jJt4rXcyLvEbGEoqtLkq5pvgL7SZQpAt9z3b63Nx5QCZKtv3g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHGAJ+OAbZDKA7IWo84rw1QOhsU2h6ECTEiGrZjel7kKAiBj3JpknGBSgRmnYBuJ6EeZZj2zPGI1bPdehGG9xPGxjA=="}]},"maintainers":[{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/schema-object-4.0.11.tgz_1488764803481_0.8098159902729094"}}},"readme":"Schema Object [![Build Status](https://travis-ci.org/scotthovestadt/schema-object.png?branch=master)](https://travis-ci.org/scotthovestadt/schema-object)\n==================\n\nDesigned to enforce schema on Javascript objects. Allows you to specify type, transformation and validation of values via a set of attributes. Support for sub-schemas included.\n\n```\nnpm install schema-object\n```\n```\nbower install schema-object\n```\n\n**TypeScript typings included. Node and browser environments supported.**\n\nFor older versions of Node, run node with the harmony proxies ````--harmony_proxies```` flag. This flag is on by default in newer NodeJS versions.\n\n\n# Very basic usage example\n```js\nvar SchemaObject = require('schema-object');\n\n// Create User schema\nvar User = new SchemaObject({\n  firstName: String,\n  lastName: String,\n  birthDate: Date\n});\n\n// Initialize instance of user\nvar user = new User({firstName: 'Scott', lastName: 'Hovestadt', birthDate: 'June 21, 1988'});\nconsole.log(user);\n\n// Prints:\n{ firstName: 'Scott',\n  lastName: 'Hovestadt',\n  birthDate: Tue Jun 21 1988 00:00:00 GMT-0700 (PDT) }\n```\n\n# Advanced example\n```js\nvar SchemaObject = require('schema-object');\n\n// Create custom basic type\n// Type can be extended with more properties when defined\nvar NotEmptyString = {type: String, minLength: 1};\n\n// Create sub-schema for user's Company\nvar Company = new SchemaObject({\n  // Any string will be magically parsed into date\n  startDate: Date,\n  endDate: Date,\n\n  // String with properties\n  name: NotEmptyString,\n\n  // Typed array\n  tags: [NotEmptyString]\n});\n\n// Create User schema\nvar User = new SchemaObject({\n  // Basic user information using properties\n  firstName: NotEmptyString,\n  lastName: NotEmptyString,\n\n  // Extend \"NotEmptyString\" with enum property\n  gender: {type: NotEmptyString, enum: ['m', 'f']},\n\n  // Sub-object with enforced type\n  work: Company\n}, {\n  // Add methods to User prototype\n  methods: {\n    getDisplayName: function() {\n      return this.firstName + ' ' + this.lastName;\n    }\n  }\n});\n\n// Create Account schema by extending User schema\nvar Account = User.extend({\n  // Add username to schema\n  username: NotEmptyString,\n\n  // Special behavior will transform password to hash if necessary\n  // https://www.npmjs.com/package/password-hash\n  password: {type: String, stringTransform: function(string) {\n    if(!passwordHash.isHashed(string)) {\n      string = passwordHash.generate(string);\n    }\n    return string;\n  }}\n}, {\n  methods: {\n    getDisplayName: function() {\n      // If available, use username as display name\n      // Otherwise fall back to first name and last name\n      return this.username || this.super();\n    }\n  }\n});\n\n// Initialize a new instance of the User with a value\nvar account = new Account({\n  username: 'scotthovestadt',\n  password: 'hunter2',\n  firstName: 'Scott',\n  lastName: 'Hovestadt',\n  gender: 'm',\n  work: {\n    name: 'My Company',\n    startDate: 'June 1, 2010'\n  }\n});\n\nconsole.log(account.getDisplayName());\n\n// Prints:\n\"scotthovestadt\"\n\nconsole.log(account);\n\n// Prints:\n{ firstName: 'Scott',\n  lastName: 'Hovestadt',\n  gender: 'm',\n  work:\n   { startDate: Tue Jun 01 2010 00:00:00 GMT-0700 (PDT),\n     name: 'My Company' },\n  username: 'scotthovestadt' }\n```\n\n# Static Methods\n\n## extend\n\nAllows you to extend SchemaObject instance schema and options.\n\n```js\nvar Person = new SchemaObject({\n  firstName: String,\n  lastName: String\n}, {\n  constructors: {\n    fromFullName: function(fullName) {\n      fullName = fullName.split(' ');\n      this.firstName = fullName[0];\n      this.lastName = fullName[1];\n    }\n  },\n  methods: {\n    getDisplayName: function() {\n      return this.firstName + ' ' + this.lastName;\n    }\n  }\n});\n\nvar Employee = Person.extend({\n  id: Number\n}, {\n  methods: {\n    getDisplayName: function() {\n      return '[Employee ID ' + this.id + '] ' + this.super();\n    }\n  }\n});\n\nvar john = Employee.fromFullName('John Smith');\njohn.id = 1;\n\nconsole.log(john.getDisplayName());\n\n// Prints:\n\"[Employee ID 1] John Smith\"\n```\n\n\n# Methods\n\n## clone\n\nClones SchemaObject and all sub-objects and sub-arrays into another SchemaObject container. Writes on any sub-objects or sub-arrays will not touch the original.\n```js\nvar User = new SchemaObject({\n  firstName: String,\n  lastName: String\n});\n\nvar user = new User({firstName: 'Scott', lastName: 'Hovestadt'});\n\nvar anotherUser = user.clone();\nanotherUser.firstName = 'John';\nanotherUser.lastName = 'Smith';\n\nconsole.log(user);\nconsole.log(anotherUser);\n\n\n// Prints:\n{ firstName: 'Scott',\n  lastName: 'Hovestadt' }\n{ firstName: 'John',\n  lastName: 'Smith' }\n```\n\n## toObject\n\ntoObject returns a cloned primitive object, stripped of all magic. Writes on any sub-objects or sub-arrays will not touch the original. All values will be typecasted and transformed, but future writes to the primitive object will not. The [invisible attribute](https://github.com/scotthovestadt/schema-object#invisible) can be used to ensure an index stored on the SchemaObject will not be written to the primitive object. toObject is automatically called if a SchemaObject is passed to JSON.stringify.\n```js\nvar User = new SchemaObject({\n  firstName: String,\n  lastName: String,\n  birthDate: Date\n});\n\nvar user = new User({firstName: 'Scott', lastName: 'Hovestadt', birthDate: 'June 21, 1988'});\nconsole.log(user);\n\n// Prints:\n{ firstName: 'Scott',\n  lastName: 'Hovestadt',\n  birthDate: Tue Jun 21 1988 00:00:00 GMT-0700 (PDT) }\n```\n\n## populate\n\npopulate will copy an object's values.\n```js\nvar User = new SchemaObject({\n  firstName: String,\n  lastName: String\n});\n\nvar user = new User();\nuser.populate({firstName: 'Scott', lastName: 'Hovestadt'});\nconsole.log(user);\n\n// Prints:\n{ firstName: 'Scott',\n  lastName: 'Hovestadt' }\n```\n\n## clear\n\nclear removes all values.\n```js\nvar User = new SchemaObject({\n  firstName: String,\n  lastName: String\n});\n\nvar user = new User({firstName: 'Scott', lastName: 'Hovestadt'});\nconsole.log(user);\n\n// Prints:\n{ firstName: 'Scott',\n  lastName: 'Hovestadt' }\n\nuser.clear();\nconsole.log(user);\n\n// Prints:\n{ firstName: undefined,\n  lastName: undefined }\n```\n\n## isErrors / getErrors / clearErrors\n\nSee documentation on [Errors](https://github.com/scotthovestadt/schema-object#errors).\n\n\n# Options\n\nWhen you create the SchemaObject, you may pass a set of options as a second argument. These options allow you to fine-tune the behavior of your objects for specific needs.\n\n## constructors\n\nThe constructors option allows you to override the default or attach new constructors to your SchemaObject-created class.\n\n```js\nvar Person = new SchemaObject({\n  firstName: String,\n  lastName: String\n}, {\n  constructors: {\n    // Override default constructor\n    default: function(values) {\n      // Will call this.populate\n      this.super(values);\n\n      // Populate default values with custom constructor\n      if(this.firstName === undefined) {\n        this.firstName = 'John';\n      }\n      if(this.lastName === undefined) {\n        this.lastName = 'Smith';\n      }\n    },\n\n    // Create new constructor used by calling Person.fromFullName\n    fromFullName: function(fullName) {\n      // Will call default constructor\n      this.super();\n\n      fullName = fullName.split(' ');\n      if(fullName[0]) {\n        this.firstName = fullName[0];\n      }\n      if(fullName[1]) {\n        this.lastName = fullName[1];\n      }\n    }\n  }\n});\n\nvar person = new Person({ firstName: 'Scott' });\n// OR\nvar person = Person.fromFullName('Scott');\n\nconsole.log(person);\n\n// Prints:\n{ firstName: 'Scott',\n  lastName: 'Smith' }\n```\n\n## methods\n\nThe methods option allows you to attach new methods to your SchemaObject-created class.\n\n```js\nvar Person = new SchemaObject({\n  firstName: String,\n  lastName: String\n}, {\n  methods: {\n    getFullName: function() {\n      return this.firstName + ' ' + this.lastName;\n    }\n  }\n});\n\nvar person = new Person({ firstName: 'Scott', lastName: 'Hovestadt' });\nconsole.log(person.getFullName());\n\n// Prints:\n{ 'Scott Hovestadt' }\n```\n\n## toObject(object)\n\ntoObject allows you to transform the model before the result of toObject() is passed back.\n\nThis example shows how it could be used to ensure transform all strings to uppercase.\n```js\nvar Model = new SchemaObject({\n  string: String\n}, {\n  toObject: function(object) {\n    _.each(object, function(value, key) {\n      if(_.isString(value)) {\n        object[key] = value.toUpperCase();\n      }\n    });\n    return object;\n  }\n});\n\nvar model = new Model();\nmodel.string = 'a string';\nconsole.log(model.string);\n\n// Prints:\n{ 'a string' }\n\nvar simpleObject = model.toObject();\nconsole.log(simpleObject.string);\n\n// Prints:\n{ 'A STRING' }\n```\n\n## inheritRootThis\n\ninheritRootThis (default: false) should be set to true if you want your nested SchemaObjects to have the \"this\" context of the root SchemaObject. SchemaObjects created with the shorthand syntax are considered a part of the parent object and have this enabled automatically.\n\n\n## setUndefined\n\nsetUndefined (default: false) allows you to specify if an unset value is written when toObject() is called. By default, the behavior is not to write unset values. This means if there is a null/undefined primitive, an empty array, or an empty object it will not be written to the object when toObject() is called.\n\nThis value should set to true if:\n- You want your database (Mongo, etc) to write unset indexes and overwrite existing fields with empty values.\n- You want to write undefined values when exporting to JSON explicitly.\n- You want toObject() to contain empty arrays and objects.\n\n## preserveNull\n\npreserveNull (default: false) allows you to set `null` to any field. The default behavior will treat null as unsetting the field.\n\nThis value should set to true if you're intentionally using null and know the difference between null and undefined.\n\n## strict\n\nstrict (default: true) allows you to specify what happens when an index is set on your SchemaObject that does not exist in the schema. If strict mode is on, the index will be ignored. If strict mode is off, the index will automatically be created in the schema when it's set with type \"any\".\n\nWith strict mode on (default):\n```js\nvar Profile = new SchemaObject({\n  id: String\n}, {\n  strict: true\n});\n\nvar profile = new Profile();\nprofile.id = 'abc123';\nprofile.customField = 'hello';\n\n// Prints:\n{ id: 'abc123' }\n```\n\nWith strict mode off:\n```js\nvar Profile = new SchemaObject({\n  id: String\n}, {\n  strict: false\n});\n\nvar profile = new Profile();\nprofile.id = 'abc123';\nprofile.customField = 'hello';\n\n// Prints:\n{ id: 'abc123', customField: 'hello' }\n```\n\n## dotNotation\n\ndotNotation (default: false) allows you to access deep fields in child objects using dot notation. If dot notation is on, getting or setting \"profile.name\" will look inside the object for a child object \"profile\" and then for key \"name\", instead of simply setting the index \"profile.name\" on the parent object.\n\nThe following example turns off strict mode to demonstrate the differences when toggling dot notation on or off, although dot notation can be used with or without strict mode.\n\nWith dot notation off (default):\n```js\nvar User = new SchemaObject({\n}, {\n  dotNotation: false,\n  strict: false\n});\n\nvar user = new User();\nuser['profile.name'] = 'Scott';\n\n// Prints:\n{ 'profile.name': 'Scott' }\n```\n\nWith dot notation on:\n```js\nvar User = new SchemaObject({\n}, {\n  dotNotation: true,\n  strict: false\n});\n\nvar user = new User();\nuser['profile.name'] = 'Scott';\n\n// Prints:\n{ profile: { name: 'Scott' } }\n```\n\n## keysIgnoreCase\n\nkeysIgnoreCase (default: false) allows you to set indexes without worrying about the casing of the key.\n\nWith keys ignore case off (default):\n```js\nvar User = new SchemaObject({\n  firstName: String\n}, {\n  keyIgnoreCase: false\n});\n\nvar user = new User();\nuser.firstname = 'Scott';\n\n// Prints:\n{}\n```\n\nWith keys ignore case on:\n```js\nvar User = new SchemaObject({\n  firstName: String\n}, {\n  keyIgnoreCase: true\n});\n\nvar user = new User();\nuser.firstname = 'Scott';\n\n// Prints:\n{ firstName: 'Scott' }\n```\n\n\n## onBeforeValueSet(value, key) / onValueSet(value, key)\n\nonBeforeValueSet / onValueSet allow you to bind an event handler to all write operations on an object. Currently, it will only notify of write operations on the object itself and will not notify you when child objects are written to. If you return false or throw an error within the onBeforeValueSet handler, the write operation will be cancelled. Throwing an error will add the error to the error stack.\n```js\nvar User = new SchemaObject({\n  name: String\n}, {\n  onBeforeValueSet: function(value, key) {\n    if(key === 'name' && value === 'Scott') {\n      return false;\n    }\n  }\n});\n\nvar user = new User();\n\nuser.name = 'Scott';\n// Prints:\n{ name: undefined }\n\nuser.name = 'Scott Hovestadt';\n// Prints:\n{ name: 'Scott Hovestadt' }\n```\n\n\n# Errors\n\nWhen setting a value fails, an error is generated silently. Errors can be retrieved with getErrors() and cleared with clearErrors().\n\n```js\nvar Profile = new SchemaObject({\n  id: {type: String, minLength: 5}\n});\n\nvar profile = new Profile();\nprofile.id = '1234';\n\nconsole.log(profile.isErrors());\n\n// Prints:\ntrue\n\nconsole.log(profile.getErrors());\n\n// Prints:\n[ { errorMessage: 'String length too short to meet minLength requirement.',\n    setValue: '1234',\n    originalValue: undefined,\n    fieldSchema: { name: 'id', type: 'string', minLength: 5 } } ]\n\n// Clear all errors.\nprofile.clearErrors();\n```\n\n\n# Types\n\nSupported types:\n- String\n- Number\n- Boolean\n- Date\n- Array (including types within Array)\n- Object (including typed SchemaObjects for sub-schemas)\n- 'alias'\n- 'any'\n\nWhen a type is specified, it will be enforced. Typecasting is enforced on all types except 'any'. If a value cannot be typecasted to the correct type, the original value will remain untouched.\n\nTypes can be extended with a variety of attributes. Some attributes are type-specific and some apply to all types.\n\nCustom types can be created by defining an object with type properties.\n```js\nvar NotEmptyString = {type: String, minLength: 1};\ncountry: {type: NotEmptyString, default: 'USA'}\n```\n\n## General attributes\n\n### transform\nCalled immediately when value is set and before any typecast is done.\n```js\nname: {type: String, transform: function(value) {\n  // Modify the value here...\n  return value;\n}}\n```\n\n### default\nProvide default value. You may pass value directly or pass a function which will be executed when the object is initialized. The function is executed in the context of the object and can use \"this\" to access other properties (which .\n```js\ncountry: {type: String, default: 'USA'}\n```\n\n### getter\nProvide function to transform value when retrieved. Executed in the context of the object and can use \"this\" to access properties.\n```js\nstring: {type: String, getter: function(value) { return value.toUpperCase(); }}\n```\n\n### required\nIf true, a value must be provided. If a value is not provided, an error will be generated silently. If used in conjunction with default, this check will always pass.\n```js\nfullName: {type: String, required: true}\n```\n\n### readOnly\nIf true, the value can be read but cannot be written to. This can be useful for creating fields that reflect other values.\n```js\nfullName: {type: String, readOnly: true, default: function(value) {\n  return (this.firstName + ' ' + this.lastName).trim();\n}}\n```\n\n### invisible\nIf true, the value can be written to but isn't outputted as an index when toObject() is called. This can be useful for creating aliases that redirect to other indexes but aren't actually present on the object.\n```js\nzip: String,\npostalCode: {type: 'alias', invisible: true, index: 'zip'}\n// this.postalCode = 12345 -> this.toObject() -> {zip: '12345'}\n```\n\n\n## String\n\n### stringTransform\nCalled after value is typecast to string **if** value was successfully typecast but called before all validation.\n```js\npostalCode: {type: String, stringTransform: function(string) {\n  // Type will ALWAYS be String, so using string prototype is OK.\n  return string.toUpperCase();\n}}\n```\n\n### regex\nValidates string against Regular Expression. If string doesn't match, it's rejected.\n```js\nmemberCode: {type: String, regex: new RegExp('^([0-9A-Z]{4})$')}\n```\n\n### enum\nValidates string against array of strings. If not present, it's rejected.\n```js\ngender: {type: String, enum: ['m', 'f']}\n```\n\n### minLength\nEnforces minimum string length.\n```js\nnotEmpty: {type: String, minLength: 1}\n```\n\n### maxLength\nEnforces maximum string length.\n```js\nstateAbbrev: {type: String, maxLength: 2}\n```\n\n### clip\nIf true, clips string to maximum string length instead of rejecting string.\n```js\nbio: {type: String, maxLength: 255, clip: true}\n```\n\n\n## Number\n\n### min\nNumber must be > min attribute or it's rejected.\n```js\npositive: {type: Number, min: 0}\n```\n\n### max\nNumber must be < max attribute or it's rejected.\n```js\nnegative: {type: Number, max: 0}\n```\n\n\n## Array\n\n### arrayType\nElements within the array will be typed to the attributes defined.\n```js\naliases: {type: Array, arrayType: {type: String, minLength: 1}}\n```\n\nAn alternative shorthand version is also available -- wrap the properties within array brackets.\n```js\naliases: [{type: String, minLength: 1}]\n```\n\n### unique\nEnsures duplicate-free array, using === to test object equality.\n```js\nemails: {type: Array, unique: true, arrayType: String}\n```\n\n### filter\nReject any values where filter callback does not return truthy.\n```js\nemails: {type: Array, arrayType: Person, filter: (person) => person.gender !== 'f'}\n```\n\n\n## Object\n### objectType\nAllows you to define a typed object.\n```js\ncompany: {type: Object, objectType: {\n  name: String\n}}\n```\n\nAn alternative shorthand version is also available -- simply pass an instance of SchemaObject or a schema.\n```js\ncompany: {\n  name: String\n}\n```\n\n\n## Alias\n\n### index (required)\nThe index key of the property being aliased.\n```js\nzip: String,\npostalCode: {type: 'alias', alias: 'zip'}\n// this.postalCode = 12345 -> this.toObject() -> {zip: '12345'}\n```\n","maintainers":[{"name":"scotthovestadt","email":"scott.hovestadt@gmail.com"}],"time":{"modified":"2022-06-26T16:30:45.482Z","created":"2016-03-16T00:44:09.558Z","3.3.4":"2016-03-16T00:44:09.558Z","3.3.5":"2016-03-18T01:46:14.745Z","3.3.6":"2016-03-18T01:55:17.165Z","3.3.7":"2016-03-18T23:38:31.697Z","3.3.8":"2016-03-24T23:24:00.186Z","3.3.9":"2016-05-01T02:47:41.179Z","4.0.0":"2016-05-09T02:31:05.188Z","4.0.1":"2016-07-19T23:41:04.423Z","4.0.2":"2016-08-01T08:49:33.125Z","4.0.3":"2016-08-01T08:51:50.043Z","4.0.4":"2016-08-17T06:22:54.306Z","4.0.5":"2016-08-26T20:31:42.200Z","4.0.6":"2016-11-30T00:13:41.820Z","4.0.7":"2016-11-30T00:17:11.330Z","4.0.8":"2017-01-14T01:08:45.635Z","4.0.9":"2017-02-09T20:54:24.056Z","4.0.10":"2017-02-14T19:12:25.482Z","4.0.11":"2017-03-06T01:46:45.525Z"},"homepage":"https://github.com/scotthovestadt/schema-object#readme","keywords":["javascript","schema","extends","type","transformation","validation","object","array"],"repository":{"type":"git","url":"git+ssh://git@github.com/scotthovestadt/schema-object.git"},"author":{"name":"Scott Hovestadt"},"bugs":{"url":"https://github.com/scotthovestadt/schema-object/issues"},"license":"BSD","readmeFilename":"README.md","users":{"kowus":true}}