{"_id":"gandalf-validator","_rev":"39-7deccbc1de08bc943024659947ccdf9d","name":"gandalf-validator","description":"Determines who shall and shall not pass form validation in React","dist-tags":{"latest":"1.1.1"},"versions":{"0.1.0":{"name":"gandalf-validator","version":"0.1.0","description":"Determines who shall and shall not pass form validation in React","main":"src/gandalf.js","scripts":{"test":"test"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"gitHead":"681406650a7d49343f91a4c8fedc24bfccb9c27e","_id":"gandalf-validator@0.1.0","_shasum":"f5259d587e2c8c1717bc724e98dd127e2d8cbc03","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"shasum":"f5259d587e2c8c1717bc724e98dd127e2d8cbc03","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.1.0.tgz","integrity":"sha512-MT/rfdfOoPZlqw4qMoG5sB1LsezpacBilwLoezwHJYb5RBi5HBIu+n2OF9H7BAa666ZiL69WCN4jsAL5kRy7lg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFq/HygOE5A42HikL8zMDTz7acScGEj5ynDAEvOYltT5AiEAvew6WrucVvBsaIavcrfxLg2nJWbZHpafsdxf1P8hXew="}]},"maintainers":[{"name":"redacademy","email":"blake.turner@redacademy.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/gandalf-validator-0.1.0.tgz_1485822320099_0.9814350628294051"},"directories":{}},"0.1.1":{"name":"gandalf-validator","version":"0.1.1","description":"Determines who shall and shall not pass form validation in React","main":"src/gandalf.js","scripts":{"test":"test"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"gitHead":"2fd8836ac7b698657f630b82144e7179bd620188","_id":"gandalf-validator@0.1.1","_shasum":"d44f60e7d08acc42eeac41cbc43c2418ae986ed0","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"shasum":"d44f60e7d08acc42eeac41cbc43c2418ae986ed0","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.1.1.tgz","integrity":"sha512-kR8FA5xrUj6aQiSyvnGZa9pFtS0kagUdNA00e+qS9CblW3qQj0eBknZCjs3UwoBS4MaXjUKagnSGmwcODseNwg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH1501G0H5rUzfK5+RubP2450c2LZZ2Omj+M9o+OIXAOAiEA0Z/vCPK1k+OA54eibO8QK8OjiHmMq5plxGulA0sq0aE="}]},"maintainers":[{"name":"redacademy","email":"blake.turner@redacademy.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/gandalf-validator-0.1.1.tgz_1485830886065_0.049021560698747635"},"directories":{}},"0.1.2":{"name":"gandalf-validator","version":"0.1.2","description":"Determines who shall and shall not pass form validation in React","main":"src/gandalf.js","scripts":{"test":"test"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"gitHead":"4829823e4d92c07a66c7bae700205f7fb795a128","_id":"gandalf-validator@0.1.2","_shasum":"142ec31bc67bbb5bcdf4d65bf0455849137ea516","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"shasum":"142ec31bc67bbb5bcdf4d65bf0455849137ea516","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.1.2.tgz","integrity":"sha512-K0tsabarPnMZijtVApdjwWDYFAbP+b67d5PdkXMVuAyFgv1J7O1tbg8ByhYRrI3mcb5rPfb0CrIAgLUuSzhPFA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA0gYoFgODRTsyuIiLx//lPwyOKgGy6ABAX51MsqWZ0EAiBPgYOOHEnA0J3EhYID++ncGh3WgJM+DGF2EZFTLvd0Ng=="}]},"maintainers":[{"name":"redacademy","email":"blake.turner@redacademy.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/gandalf-validator-0.1.2.tgz_1485844054732_0.5584871110040694"},"directories":{}},"0.1.3":{"name":"gandalf-validator","version":"0.1.3","description":"Determines who shall and shall not pass form validation in React","main":"src/gandalf.es5.js","scripts":{"test":"test"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"gitHead":"93c6805b8c3c1c1dd27c2d6fa42a8d7e89405ae7","_id":"gandalf-validator@0.1.3","_shasum":"7b4d0827ee694bca0f1cd19e77cbe29c78c8fdb7","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"shasum":"7b4d0827ee694bca0f1cd19e77cbe29c78c8fdb7","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.1.3.tgz","integrity":"sha512-Ej74Rl1h8zbPSD5+rXAadiR81SyDOciWjXEgmyP7S7Wo/RXtoEOovEKiGmsa1sAsCpYpUvTsN1NHVaGFwZyzNg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICG5uSiExMdwqUeVvtDqrWpZkPK9eQ6UJL09doVB4iWlAiEA2Mvz3gX8e/vHWCLpJO48cuU2Dl+MUDXomTUO6efRWbI="}]},"maintainers":[{"name":"redacademy","email":"blake.turner@redacademy.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/gandalf-validator-0.1.3.tgz_1485844790924_0.22341587278060615"},"directories":{}},"0.1.4":{"name":"gandalf-validator","version":"0.1.4","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","publish":"gulp; npm publish"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-uglify":"^2.0.1","pump":"^1.0.2"},"gitHead":"2e11fc574661aad11a766f858b3b0f4b5f7ec26c","_id":"gandalf-validator@0.1.4","_shasum":"5ed5297a16f7b81d55766657f5755a497a0b8017","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"shasum":"5ed5297a16f7b81d55766657f5755a497a0b8017","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.1.4.tgz","integrity":"sha512-g2l8SIcc8+Gg7uBKA77btmV4W9G7aXUhYpPQHKMIlBDyuG4KnDojix8XYu9eZ+gj9pR5Oiv2iAOUCiUpr+A3Ng==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA73IbRf6xRxFBw3WZ6zLL0ju9EgdeqsI6/HYl0ixjGJAiEAtxKRYP3OiFjei/9xTDhHkttdXZCdk/PD1ajMUw4B1mQ="}]},"maintainers":[{"name":"redacademy","email":"blake.turner@redacademy.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/gandalf-validator-0.1.4.tgz_1485846224317_0.3314536183606833"},"directories":{}},"0.1.5":{"name":"gandalf-validator","version":"0.1.5","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","publish":"gulp; npm publish"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-uglify":"^2.0.1","pump":"^1.0.2"},"gitHead":"2c174eae6395c14593a432df976ab76add2430b6","_id":"gandalf-validator@0.1.5","_shasum":"14c8da309974224adbfae64a663c1deaa13ac18a","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"shasum":"14c8da309974224adbfae64a663c1deaa13ac18a","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.1.5.tgz","integrity":"sha512-jIkfIHHF2T9PdDKf5EUW/lYhUVijyel0kD1DUSYzV2WQnDGcphmuODX0f1uTYNUVVFKVfyZ/JhR9a6/lCWhSrQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC7VWu0nJJCvupKaa8lqLlCkl0X4U+ADWPkcPpfO27F8gIgYgKwxG5HM4FNOxBe0usVPsU1B2WIIRy20rI8xevNYe4="}]},"maintainers":[{"name":"redacademy","email":"blake.turner@redacademy.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/gandalf-validator-0.1.5.tgz_1485846374770_0.9923756797797978"},"directories":{}},"0.2.0":{"name":"gandalf-validator","version":"0.2.0","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-uglify":"^2.0.1","pump":"^1.0.2"},"gitHead":"2c174eae6395c14593a432df976ab76add2430b6","_id":"gandalf-validator@0.2.0","_shasum":"6b8f85163995072e2c8da3d40f312576bccfd8b6","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"shasum":"6b8f85163995072e2c8da3d40f312576bccfd8b6","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.2.0.tgz","integrity":"sha512-RIRiXCEoP+MjsfqU81kZ1tbSZSjzRvVBl0Tl+WUqYCyPStlT13WlbU0ubXqEy8dTJkxWlkaKlPuZ2+E6zpeBWg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDILouh6Fm0UWUg46JbQEPQTgonlAK8FnFEi19J77r5vAIgfa5E6oN2UG5HfmCTCP1uP/eYnqVZru998+Y7pfMCoJo="}]},"maintainers":[{"name":"redacademy","email":"blake.turner@redacademy.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/gandalf-validator-0.2.0.tgz_1485846642391_0.7616108283400536"},"directories":{}},"0.3.0":{"name":"gandalf-validator","version":"0.3.0","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","gulp-uglify":"^2.0.1","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"verbose":true,"gitHead":"00427faa938b33e0ee3e465a7990d946f1e71e14","_id":"gandalf-validator@0.3.0","_shasum":"4277ef4da80ae4c71d78161f252be9ebd809ef9e","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"shasum":"4277ef4da80ae4c71d78161f252be9ebd809ef9e","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.3.0.tgz","integrity":"sha512-BrCEWDG0DStjI5hU08NchkRWoBGzUcjT2lpisrwrbAkjzvRxJ3HkORtUwb/I5THZM4blKJo6+cs2/bvLHengyQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEtA5hI0m7dVlL3gVw7MIR7pa26KJ62+YdrhNvEWnvPbAiBlQ25rwi1V7JeOXrcffV67PEJ+ERDpRYsXOF2QLhqmIw=="}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/gandalf-validator-0.3.0.tgz_1488312098593_0.6442959539126605"},"directories":{}},"0.5.0":{"name":"gandalf-validator","version":"0.5.0","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"verbose":true,"gitHead":"238d0a02ba252f1bed81b97defc385e829fb7a44","_id":"gandalf-validator@0.5.0","_shasum":"ec06a6e64f4d218ef31d02edccc86344ba08b355","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"shasum":"ec06a6e64f4d218ef31d02edccc86344ba08b355","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.5.0.tgz","integrity":"sha512-/zzaERzaNMcHIi5G8vpRQa3i2fZud8l8zikmrjWtpurYZNOIFi2d5eeWW7O6NZHUe7m6skYzUAdJa4gDSjYf5Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBJ4xQJtkgVgGMrw5Mn0WkSX5JJWdymPcIsEUNOGfkaHAiAiPiiX+9GACibckPY6fOf7mpo/6h6uj10/TjvNng8Teg=="}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/gandalf-validator-0.5.0.tgz_1489385112268_0.8859499734826386"},"directories":{}},"0.6.0":{"name":"gandalf-validator","version":"0.6.0","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"verbose":true,"gitHead":"a4d500df7093e7528dde4595857e655183b25e4f","_id":"gandalf-validator@0.6.0","_shasum":"d25a64c75bc4ca693caaa04624f37857718022bb","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"shasum":"d25a64c75bc4ca693caaa04624f37857718022bb","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.6.0.tgz","integrity":"sha512-NrdRgEFmsXmDS7bFqlMFnlBSpkK+FTp0Fn/Q/wwGaP3noynpwTZb022uG6yhdx7INnPyxQYSj4iMsYyX1wFbMg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLwbuo7Zt6iBPM0aDT76Gt/HI0snHg6PRJ8GV+kGfGpgIhAKrcANZD1l6dTS2GgMRoJqzyLLgPxRpI7+E+KLNoSAaO"}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/gandalf-validator-0.6.0.tgz_1489514095450_0.4758170780260116"},"directories":{}},"0.6.1":{"name":"gandalf-validator","version":"0.6.1","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"verbose":true,"gitHead":"cd0af2c08896f18559fb11e6fd281f64ef2e8fe1","_id":"gandalf-validator@0.6.1","_shasum":"f0dc94a8dd5e48a9e6ae63fa34143b229446f6b8","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"shasum":"f0dc94a8dd5e48a9e6ae63fa34143b229446f6b8","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.6.1.tgz","integrity":"sha512-Lklx606dIpHpmdFmoPehgJPdfXronS37x/GZulPxpFoJllTHUh8Y4zXkQjXleZWT+y7jcz0JB363gt8Frn8zTg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIADC5AXPl+gJvOO9ZUVrUvVaSOiHHbK18og4ME7VlBm7AiEA6O0PaBvgCHV/vnav32ptz+VJ+SASevxJZHtmEwyJ7xc="}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/gandalf-validator-0.6.1.tgz_1489516052794_0.8785152200143784"},"directories":{}},"0.6.2":{"name":"gandalf-validator","version":"0.6.2","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"verbose":true,"gitHead":"ca86a1d7068f9145a02049087a075303f32bfbfd","_id":"gandalf-validator@0.6.2","_shasum":"8b9b6abd471d02d0954291c05608bfd47d965872","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"shasum":"8b9b6abd471d02d0954291c05608bfd47d965872","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.6.2.tgz","integrity":"sha512-EsHsPfQchPm77KBE9VuGVZFzt1MDhOJSm3F30HbY9tHndqpNMGw9LtQmzLymRhHA+o0qFKLJcBPJZccYD8H1zQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4kkvvEJWL3iAFqK7+u3KcthG/DyRxDwa46AgdV3tSlQIhALxfFQWTWO1OJj1/DkHJlCKPhOkP0L8ulZbapA19ye2N"}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/gandalf-validator-0.6.2.tgz_1489517185867_0.5489274414721876"},"directories":{}},"0.7.0":{"name":"gandalf-validator","version":"0.7.0","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"verbose":true,"gitHead":"762872d4415e193b8e4258ca13249a0f66b7c763","_id":"gandalf-validator@0.7.0","_shasum":"1b12caa30bdf7b918ddab2101c2fda7d18011049","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"shasum":"1b12caa30bdf7b918ddab2101c2fda7d18011049","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.7.0.tgz","integrity":"sha512-zm8g8WRHFne4RjxHShKzOSW2bNPF+OTPeX60BUAP38j8JbJdNVC9uG6JZ36mJUy2iyq0Be5WnQ4sPYOH1iLpmA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGiIT7bQszqyoHGm5e7FdYNuf8liaUPXD9t5dTiFg4ZeAiBsAEhDGYO0XCdbMwWvS7yBa9RMHP1LEpT9EHe5KaDXqg=="}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/gandalf-validator-0.7.0.tgz_1489688861626_0.4624975430779159"},"directories":{}},"0.7.1":{"name":"gandalf-validator","version":"0.7.1","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"verbose":true,"gitHead":"69445108bd73e1c4757b9ce22c6680324e889983","_id":"gandalf-validator@0.7.1","_shasum":"f74046cb9973eabb9998c1e6ed78601aec675c2e","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"shasum":"f74046cb9973eabb9998c1e6ed78601aec675c2e","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.7.1.tgz","integrity":"sha512-EuYsPcuVwzmSg2ieGj65U+jxra4KBYTI2YVeFCaotKdxxtjsKLqVGsBjBvndT+JXlKPyyxm/Hovy11IcZ3xLUg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPO5ERuWuJKdqUBe1ncCKV+jaiTUuugIRdMcW6pB9gugIgBSvd6VVsm16CMMJcuRMsDqMXutFq0AOZuJKFM+2g64M="}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/gandalf-validator-0.7.1.tgz_1489690103068_0.13104013167321682"},"directories":{}},"0.8.0":{"name":"gandalf-validator","version":"0.8.0","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"verbose":true,"gitHead":"938663298fb1fdeb373a9e42cdbb64eda716cd40","_id":"gandalf-validator@0.8.0","_shasum":"42cfd862b042ddcb9fe22a572635003f0df6a8cf","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"shasum":"42cfd862b042ddcb9fe22a572635003f0df6a8cf","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.8.0.tgz","integrity":"sha512-0CDw+zhYX2vqK5Nz7gMCZK/98UQYe44FmoKQdtFXotkURJEt7v6slHhIypWh2/Eka8+PnGLNViH273xhZdj7Cg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBDyUqkU13DUTas49E2TkSyq+EOrx/EpJ8MbQ0c4yJluAiBpIR8d9dHaBue0foNUYva2pF6pn52EGxW6/3a5ZceMOQ=="}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/gandalf-validator-0.8.0.tgz_1489703729607_0.6916041020303965"},"directories":{}},"0.8.1":{"name":"gandalf-validator","version":"0.8.1","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"verbose":true,"gitHead":"926988ad5ebe84b89bc563c9d38578e9227d0128","_id":"gandalf-validator@0.8.1","_shasum":"0bb42b34d7023a69dc9c7eaf1a375471b5a28997","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"shasum":"0bb42b34d7023a69dc9c7eaf1a375471b5a28997","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.8.1.tgz","integrity":"sha512-hZ7PZPUK/iYxzue2LI9vbCcLAdKJgg7zQlT9pgOWeqnd45aTULcJg1CytazKb8V8cbyTMpSaS6t3fxfK7lWsaA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDULtF9VlwiyLRaeBDOkUz2T04agOkB39wvH3YtZn6ZhQIgakTMMVCghmQT5FOxhGsgzVH/eoI2wHiPTC46RZBMG2Q="}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/gandalf-validator-0.8.1.tgz_1490054848716_0.06790617411024868"},"directories":{}},"0.8.2":{"name":"gandalf-validator","version":"0.8.2","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"verbose":true,"gitHead":"37b61ab178d1c101ec2edcb716a550f762301543","_id":"gandalf-validator@0.8.2","_shasum":"5247909dca5992fbd69717eeb01451651c6fcc54","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"shasum":"5247909dca5992fbd69717eeb01451651c6fcc54","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.8.2.tgz","integrity":"sha512-GA0g7OA1469zSZLlpd8pxepwNgjz6b4hfoSOZsqh1h+rlAwFqN5fVGF2nNKbVsa3WGs3VmKNF/92bcghz0V2Kg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC7Jgg3Ax0Rz/uWJLTORK7bNS+I0XaeXYhs96F8ZcovtAIhALg6BSLsIbblKU0wt/S2cLl3+9z9B2KvX7p//ez8aAZk"}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/gandalf-validator-0.8.2.tgz_1490112477157_0.9630072058644146"},"directories":{}},"0.8.3":{"name":"gandalf-validator","version":"0.8.3","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose --no-cache"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"babel":{"presets":["es2015"]},"gitHead":"fe37547541b190af1987b756c73228cd6d086ffa","_id":"gandalf-validator@0.8.3","_shasum":"5f084362b817e4c2831f3c72b0c0ee924dfdfb31","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"shasum":"5f084362b817e4c2831f3c72b0c0ee924dfdfb31","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.8.3.tgz","integrity":"sha512-P/SJ1df96bUND34GWGVdti65YKQElX1xVBCZf55m+FLWmlnG8ApnPSuetVKx+oaz369BYZlJRJt29uSMetGTpA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCNtPIHHQ0R7lj3/gfk/uD+ZaVskvJEaqm2dqoGdp47RgIhALkqzmFlKpPvQPUBOd114dII3BFAPRcertJLyFSBu4nq"}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/gandalf-validator-0.8.3.tgz_1490308585507_0.095934989862144"},"directories":{}},"0.8.4":{"name":"gandalf-validator","version":"0.8.4","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose --no-cache"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"gitHead":"3832aef59f5bf22fc01460b4ceb6b757703d9423","_id":"gandalf-validator@0.8.4","_shasum":"a92cc1ef9c5c9dab59ccce14f2be53bb39bc58b2","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"shasum":"a92cc1ef9c5c9dab59ccce14f2be53bb39bc58b2","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.8.4.tgz","integrity":"sha512-p2kCkTqlFSrbqDwgh8C4m2mglrIgsjhERd5rvIkvqfhxFbWNb9gubw+Tt/P2c+JJJMe7nunXdPW0V+3fnBevKw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWuHZoBA4ojQR5surN6v6vJkiG3AQt2R17FB/Aq0dxywIgBs5DAzeM6xKbAj184EoqtdJZmDbewNxVZpeGo0wVnjM="}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/gandalf-validator-0.8.4.tgz_1490388861963_0.31678636581636965"},"directories":{}},"0.8.5":{"name":"gandalf-validator","version":"0.8.5","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose --no-cache"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"gitHead":"ae8647afa2f1a131fb60b7bf3ca05e20b29059f4","_id":"gandalf-validator@0.8.5","_npmVersion":"5.3.0","_nodeVersion":"8.1.3","_npmUser":{"name":"blaketurner","email":"mail@blakewilliamturner.com"},"dist":{"integrity":"sha512-on3D/OLXh+PYTt2gfrfN63Zf7PVxCwDsoLHoaVTdZQNJCEje3vtB1o2q9jWnIDBN2e7y+4itw8yzFPnkfLX8ww==","shasum":"b7d1f8539394bdebd089f3738a13add7a8b2538c","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.8.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWspr5UeW8+/it6xuUj0Elre8YFmvuCeJNOE8nUZDohQIhAIFXlJC8HQnxG+WY9uQihM7ojmA6JsmcVIeGy8LdfDpq"}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gandalf-validator-0.8.5.tgz_1502924917596_0.5230539401527494"},"directories":{}},"0.8.6":{"name":"gandalf-validator","version":"0.8.6","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose --no-cache"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"gitHead":"ae8647afa2f1a131fb60b7bf3ca05e20b29059f4","_id":"gandalf-validator@0.8.6","_npmVersion":"5.3.0","_nodeVersion":"8.1.3","_npmUser":{"name":"blaketurner","email":"mail@blakewilliamturner.com"},"dist":{"integrity":"sha512-6r4txqk9SHdrJ1OLJ4bAfXIKk3DYKo3NdR5KnZPJPf5pJGnJuE5fr+ah0ZhIaX9VUVmv4zVWEuKX8O209pQI/g==","shasum":"9eceb5f8f59c46127875344807eae9d3facfcfb7","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.8.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCby7rDlQzRuYsmHfH8MCbtT5fNh7HKsMSVvr0xXiBnGAIhAItoz3zLDQzJXy0snWPdLuwgK0kB71Ex8Eew/MatBeDb"}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gandalf-validator-0.8.6.tgz_1502925312295_0.8456764479633421"},"directories":{}},"0.8.7":{"name":"gandalf-validator","version":"0.8.7","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose --no-cache"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"gitHead":"ae8647afa2f1a131fb60b7bf3ca05e20b29059f4","_id":"gandalf-validator@0.8.7","_npmVersion":"5.3.0","_nodeVersion":"8.1.3","_npmUser":{"name":"blaketurner","email":"mail@blakewilliamturner.com"},"dist":{"integrity":"sha512-LaG+ZTu66VJDu5Y6bq37IHa+AqZRFqTFpHKOVlTEOzeAxMi/3UC1a7mf4E8EcwjdFZ78/QayHIyqUbsXCilAOA==","shasum":"73cbd6bb4d7ca61600a24743679c9672bbd2b70d","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.8.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQKDyvUdAeEEyHHRw6+IxV4UaJic9ymgRo+bRHqrVy2QIgIJN93MToHmpWCGjeBqWmmvlWhKExzAwqCX1kLSTEXGo="}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gandalf-validator-0.8.7.tgz_1502925932383_0.03627577796578407"},"directories":{}},"0.9.0":{"name":"gandalf-validator","version":"0.9.0","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose --no-cache"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"gitHead":"a75a692cadc3f67b9d5572d89e0d61b9d7f8c17b","_id":"gandalf-validator@0.9.0","_npmVersion":"5.3.0","_nodeVersion":"8.1.3","_npmUser":{"name":"blaketurner","email":"mail@blakewilliamturner.com"},"dist":{"integrity":"sha512-Nas2htbWQTE53RDsSPdNPWHvt9WnLFyLxHrtX07vYq48KdcWRPrHq5ItHmefIr5Z4EtLQCW1zddSLEDlTdGM5A==","shasum":"357e91ec6e367feff273e785b0e6b77d58f567cf","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.9.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBQLGfVxfg9lqZ+yjOHxPx23wxQBiIJ2Uod276IjPxT0AiEAuewy/kePQQvd6gjA349M8Ap+Hl0SFBLXljc6mCd1L6w="}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gandalf-validator-0.9.0.tgz_1503007732651_0.7054580005351454"},"directories":{}},"0.10.0":{"name":"gandalf-validator","version":"0.10.0","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose --no-cache"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"gitHead":"5ddeb32d156f933cec8e9f709cfd2223651ab6aa","_id":"gandalf-validator@0.10.0","_npmVersion":"5.3.0","_nodeVersion":"8.1.3","_npmUser":{"name":"blaketurner","email":"mail@blakewilliamturner.com"},"dist":{"integrity":"sha512-Sp0lutYtwt+uajG1Ipm4OgnXD0gNjQSAJ3/I6srAKO+qmNrHxuBhe3LPEcWp5zUJytPkgR8LAEWw1L7mvsJfVg==","shasum":"a56672ad30aa866e21c81b39026b53d0400823dc","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.10.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0yB03qMy3KT9wVQb1Fuqalc2KGXZi/MgIM/OSH1MTWQIgOIQeueHXMpCGg5inSTdMdd95kppxEonifxr3cXcScjw="}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gandalf-validator-0.10.0.tgz_1503338549071_0.4444551442284137"},"directories":{}},"0.10.1":{"name":"gandalf-validator","version":"0.10.1","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose --no-cache"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"gitHead":"5ddeb32d156f933cec8e9f709cfd2223651ab6aa","_id":"gandalf-validator@0.10.1","_npmVersion":"5.3.0","_nodeVersion":"8.1.3","_npmUser":{"name":"blaketurner","email":"mail@blakewilliamturner.com"},"dist":{"integrity":"sha512-sVONE46fb7k/0e84StwNTJWclC32jaq8zEMzVuCDDXy6iXEAVURT/KePbddxWN/x1gw3NILjMy0ay5zMOGoPCA==","shasum":"18d53ca7845b566b1a5fc82d505f1c3b00d11413","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-0.10.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdA1L00PAB/lkQydZPGRwU+DgdoppFzruv8sQ7NnZoVAIhAOppj4acH5lkuMoJTg0AVXxbpOtEIhBqzkQWJ7VhV5WZ"}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gandalf-validator-0.10.1.tgz_1503339288644_0.8766933805309236"},"directories":{}},"1.0.0":{"name":"gandalf-validator","version":"1.0.0","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose --no-cache"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"gitHead":"3453f31a303c4fc955003fcbc438ee3195da2e92","_id":"gandalf-validator@1.0.0","_npmVersion":"5.3.0","_nodeVersion":"8.1.3","_npmUser":{"name":"blaketurner","email":"mail@blakewilliamturner.com"},"dist":{"integrity":"sha512-pRvHeu+HT3e3WAq6O//SebtuHrVV1ctnP/9BG4PdmlBCEEJDIeLyXEVcKPJGrQUvT+xqWszjzUMWY/kAJ15m9A==","shasum":"e237b4fc5dd408c9ca8ff071d9950fee38231036","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-1.0.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCIdtqRq61mhTNGQPpLm3m7U8CejIYHcojpTti4RCGEEAIgPHznn/SVaybE4pr6e0eLVPGlTz5ONl3MT3GImeEO+SY="}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gandalf-validator-1.0.0.tgz_1503596230305_0.7042097959201783"},"directories":{}},"1.0.1":{"name":"gandalf-validator","version":"1.0.1","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose --no-cache"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"babel-plugin-transform-object-assign":"^6.22.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"gitHead":"66f80f4a53c81839e2892fba46c9bc7fa7d14b5a","_id":"gandalf-validator@1.0.1","_npmVersion":"5.6.0","_nodeVersion":"8.7.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"integrity":"sha512-Tz1iziyT778Ll4AjB3UpHc7E5nqQfBZxvhN1icjGB/Bf2VJ36kvo1I11kf2jof18rrAyBO65LiyR/0Aawua+zQ==","shasum":"2cbd522fb2a1b895b506742af2abea786c5d7f55","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-1.0.1.tgz","fileCount":8,"unpackedSize":226860,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZ7gifS2D2TWTdqRyle/Qcnj9iQFngu+uuXmokFhkALQIgOaZKMCdzJog3Cpb8xm7mvoKBlNzZmwM+Gubrb2x1N6E="}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gandalf-validator_1.0.1_1518729912712_0.9068233604638438"},"_hasShrinkwrap":false},"1.0.2":{"name":"gandalf-validator","version":"1.0.2","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose --no-cache"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"babel-plugin-transform-object-assign":"^6.22.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"gitHead":"684fa168f7ab6fef7d67f407305edcf8e1a610fc","_id":"gandalf-validator@1.0.2","_npmVersion":"5.6.0","_nodeVersion":"8.7.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"integrity":"sha512-CXxZdewsDSrrU2jUWkB8oC+qk/M0FvEBpwtKbmnlytjykwJoG2xM2RZLJsIew3HYKuYYA4W+dzA0Ba97kO8sKA==","shasum":"0336518a70a4c4c673a8b5ec5ae2473066e60b55","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-1.0.2.tgz","fileCount":8,"unpackedSize":226860,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCeTs0VLXB6fjf2ckk8134py9ef7efchDgEzoAg1p9R2QIhAO/Z9aki8DfXNalLdxZmVdNGWveuVWJhB1o9nLLh1RXz"}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gandalf-validator_1.0.2_1520898564135_0.7691562224578337"},"_hasShrinkwrap":false},"1.0.3":{"name":"gandalf-validator","version":"1.0.3","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose --no-cache"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"babel-plugin-transform-object-assign":"^6.22.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"gitHead":"80ba1287f2bab8f2a1a20b493bb636198246c063","_id":"gandalf-validator@1.0.3","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"integrity":"sha512-qJkNNPoo3fe/eV44W2bPqO8VoMnGLdWCrf//RffRuXW/rIEaypBT6lUjNFO4Q8mENRTStyFp4PpWLV4tTkzi1w==","shasum":"79c964a7fd007be45861c58ca3e42a8af68beefe","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-1.0.3.tgz","fileCount":9,"unpackedSize":424248,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa9galCRA9TVsSAnZWagAAj58QAJY5r204xVCdImo3tBDM\n9De+klFvhscfW99xQo/QOI3EPDfaNGoyNhCZHzFdPIpoTfZRXFu2A0N7//RQ\nTMd/s+qRJBlv0lwXXMGtEq+GOtmnB5c+D/7kJ6LWf87jrRXVYjLpcE5e3Fol\nPv4sa4F9/zpTCMbwSEuozIN2wzuvRgDOukiIzeNYvhi+hAvqu+3ulb8ISppT\nIGAdxBSHKmAcEGFamccjrDR9AkeZotPvafMm3Tr2lLqvCwqYhZqDqm6j/Wpq\n6lpiVa+eNrnTHSseoReZF9vbF5y3xdPJ2ZOOM3cKDa/eUk4Z5yo/qO97yMT/\nY/LmkJtmJvbq6RgbDnU8IpBaAms1gA2IaITgaPk5xSgbWQJiv9oSd4IYaqW2\nyCoTwEo9j7AEsE7tLyqvzRr5gHIZm+3ZoJSrqu6KdBgyZXLj3wusoxw8Zyi1\n2xbYkAjzpfJMnAwphQ/1vhUAvSGsrtNfTzMiLerg1iDS3sjYgL3MFyXbA4EI\nmRPieG2CTjRhJAjs117Upnsppw89Nii99dhuwTfjFBMziz0B5UAxswV7zjLz\nYGWf6sJ6nfj9FqtyHn1IF0mYI1wsjMUp8gPCRFWGkDRC1yX+bmvD/9U52vda\nGzvZoW+ANqAk9tVc0QFHBaWPqCCJxc0m1BcCz+Ue2xPZRE0rTUTZ2y4lILXY\nnIGe\r\n=kYHu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH+mkVqArNKjm1FdMBuQt5ID9+y0jg5rDo5GZkX8Eu0cAiBxEm2OJJC1poYtItKMzhOEwJmhsvhwif6JCVJj1IewmA=="}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gandalf-validator_1.0.3_1526072995351_0.5184547636607382"},"_hasShrinkwrap":false},"1.0.4":{"name":"gandalf-validator","version":"1.0.4","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp","test":"jest --verbose --no-cache"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"babel-plugin-transform-object-assign":"^6.22.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"gitHead":"363d42a8d934b8e147a549c963a4cb92289fd3f8","_id":"gandalf-validator@1.0.4","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"integrity":"sha512-DQJb39T5/SaQtvX2+g0jfUVmQVU1d5fdiuzBycsC6+3mkxe7ksU/NOUHClNDCmCtDbL9zPmshDI32Rj66BdynQ==","shasum":"826c9a7da32d563e72ec2d8b76ccd454ee3bb3ec","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-1.0.4.tgz","fileCount":9,"unpackedSize":424494,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa9guYCRA9TVsSAnZWagAA6owP/339zPW0zB+kKp1s7Pdg\nMPvJTbSpxIDgTonc5xj7R3vWOoWYxsTmEcFzu1QdCnDJIqoAa/BJvikA4qZ8\n2pX0G6RYQLK1essd7dxJfDDC8bZjY6Inj2GBQqbO55KMZOzfKG1sfvtbJQVM\nC5Q+UpAxq1fnStEvPxVg0LTMEISWTuMUktebjLB+sBurwHNOi2uvI1oiHsmM\n8sTf8WNQzjlrxzjv69KAh3+nSlhWo9Oiz0r5M1z/vYO76sLT3DoDmdOspBW7\n5zqRJrsUCUmaAtJ35hOgQj4Fle9OSHbclXtBzvrODoKB667qLu+xBhD0LobX\n83VehIbbOASoO6v+iKrU5aEg5F+IbR7w6JUXfclOk07qH0v2/odBJf0HR0K/\n6e67Cmx02o6yl4vEtdMm1q3+WtFJMYsV4r/2ez1CVZWFoSueiLyPc6JkrIYr\n/SoXnsxilu9sFEPqvNK/qqArjm5QDME3rjvVsSE25mJwuJvHxgF8AW3wi/4K\nGYW6Y3DiWl/Q6NYOt65ouqi/mhQVbt052nGLZaDIJwdC+fHny3ySzPwaXzb+\np/F+qd+6BvDWbMmv3DMfv6E04LHKOlYCcNmMm0TE/1x1swMBcRC0DP7bLt16\nLl1JfRXBGHRN8tKMmieZgmBR5J4Z8s8u60ieLcve8zwBUTnzbd7TQIV3pVeW\n0ydn\r\n=Fxf+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIENY7PBy5PAFoNhXVfmRbcwJqcVNRMdwQNRboSG0+59XAiEAyNsSVyocd1ZxbuNGvRhVry0n8OjAeY4epJiZMt7h7tE="}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gandalf-validator_1.0.4_1526074263261_0.04256484810337313"},"_hasShrinkwrap":false},"1.0.6":{"name":"gandalf-validator","version":"1.0.6","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp build","prepare":"yarn build","prepublishOnly":"yarn test","test":"jest --verbose --no-cache"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"dependencies":{"babel-plugin-transform-object-assign":"^6.22.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","react":"^15.4.2"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"gitHead":"3af300a4fcd5ebb3afdb3104b2321db8db15e9d5","_id":"gandalf-validator@1.0.6","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"integrity":"sha512-eFBAiqqsEXAUxd+nszjAx36js33sDxzQfLqArPxKZfJfwbTl1IvVSi2MY/7mUGeZxcqWTS1BXQUWD+7MEF0Vew==","shasum":"253266f6e16d44c0697b1de4532756ed517c5087","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-1.0.6.tgz","fileCount":9,"unpackedSize":424882,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbFwOwCRA9TVsSAnZWagAAYuEQAIEws9ofjhi+eiC4P0eC\ndyFgkSzM4uwDv+JIZ85lULP79EhwJ3gLA5uhtZoIYL2PjoBzWf7tNX1npwDO\nKovBbFre6BzGX+IjghSBC8w7DUSlPLP8rf9yJVVxdsvgS1XxkCONwo9L4q2X\nS70GfpVRrtJ3+jXSoIFkC4loxYbKHOfdHsv9InZSr3kUCv8aGob0q/7Z/vqb\n4PFX02+Gqs3mBeqWWr7KN4O9gAKo7tOoxfP3Da6sr+SiLb7H1hye6EO8kkll\n3xbO1sWhdgO4oGF12dbzXgM/i41RurqKpMYNHdHv9c3/UN9XWZGtQDAu47Yh\nfI7Lcwpdc/aSyYc65erYb2miwLFrh1p0zcj+PvTRMANaXn8kJJdoIGOJjGI3\nmZZA6uXTnPs+DQLvLrwvzIqNzYhyoPAU2mYv7ImYXf2/kk90n966kHVeV/b1\n2jNDLsUHGf0pGKxGYNivvz7PBThnSQBnzo6e2l+exKXpPKPA6qEzUZ+WLkfy\ny1Q0Je6J55yvmKOQKwXod+EAzFl2ueT8cIaT/W6cQ2P3UOl27dyNBTpiEghg\nJ/1mOqeeZX/6tJQwLR/gU6nf4LZf/0IycKPKoOBmV3ecEgaY1HE5q7x0y8c/\n9/gIpL2qZ66CCY4uoSlQLpMDmUFdd67j5QOoIoECGL/JhddmajJcVtP56NmN\noe36\r\n=MU+7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRaPO4P0y8oAId/yRjqTuwGALlVUgAUC2Eommmni86vAIhAIRsyi0rPo/kYT7D3fF3u2DQ3xjPSt36kyANdrOgutr7"}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gandalf-validator_1.0.6_1528234926373_0.9735455003663009"},"_hasShrinkwrap":false},"1.1.0":{"name":"gandalf-validator","version":"1.1.0","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp build","prepare":"yarn build","prepublishOnly":"yarn test","test":"jest --verbose --no-cache"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"peerDependencies":{"react":"^16.12.0"},"dependencies":{"babel-plugin-transform-object-assign":"^6.22.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"gitHead":"e1f7f1dca24f71770f8fdb92914fd70d9ea68230","_id":"gandalf-validator@1.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.10.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"integrity":"sha512-srQjvF0nQr2mLS072sjg8vyACYF1RQGPQdhWUJoOopzNw3pFcls2mmeftv3m8z8U7r19V/JJ0EvcYbbsWMEOyw==","shasum":"2602cf0b0704355f075615d41904eecd998359ce","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-1.1.0.tgz","fileCount":8,"unpackedSize":227206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8WYoCRA9TVsSAnZWagAAjYwQAJWLFlq+ARUXP436o07J\nvYiyc/HZ1IVYXHi7RWlCQHiDZooROrMhow2zSQIg6LC9muSiW+B6GhiWWNY8\nJ0ovhXKrrxo6qA/Pqv8FWOXs8nV3hwSDQxu4mF8nRDOVS/UA5QHFENytJSPL\nQJsAJEtQKj+Irm0MT5YhJMdXq7gDej526jsONg/IrpaXS/7xwJiW6P8c46G+\nRIQnrYoKsGO/fKebG/Ou124Mww4FusKz/eCGWSguey/RnTGFdFCbujUnZ7ZX\nT0QytJXrH+K7jffOm5lvQxQtAHxGdpUu9n7/Y8PzoKlh+L7u0EYRnRFReCTK\nXgZaHwEDoxVqJEl1U2uKo0GFBzSJRMEiWGG90zoCmrLDoJIfeIsxYV195dc6\ntIY+xU+WMZtpCG6IzKJy/yuXAf0C3Y5Ypl89tX3XdG67bXYrB9ORsXhExrh7\nsMP25fj+irSh2yKuAy1a3K/Qk/zgqO2Acji2rvUz+Y49G5KOeBr6+hZowzMG\nshnKK8J9R4tsi5yZQgFcuVZS/3jpLAimOUYS6s6/HUwAf2iV2grs/yEWG4zG\nGJnxO05q9FI3cikF1mvbtcj4SEL2yeeRVJYWYVT5CQyr//rFtMGIunqcOn+f\n/PHhQU51fnsk7aIEJj5EBBBZFxiNR+HJWb3N75osDemPQO5NlOCOMcUH1y/N\nrO33\r\n=wrf1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAcFoc5NRKRcRM0J3C0D5Mnpe+/x3GmIxTYZOoCvqza9AiEA52fdYDNF4RN51GzZ4gXwRV3bQzBzPIqn3d3CpWNx9is="}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gandalf-validator_1.1.0_1576101415872_0.5249431007027647"},"_hasShrinkwrap":false},"1.1.1":{"name":"gandalf-validator","version":"1.1.1","description":"Determines who shall and shall not pass form validation in React","main":"dist/gandalf.js","scripts":{"build":"gulp build","prepare":"yarn build","prepublishOnly":"yarn test","test":"jest --verbose --no-cache"},"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"keywords":["react","form","validation","redux","material-ui","semantic-ui"],"author":{"name":"RED Academy"},"license":"MIT","bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"peerDependencies":{"react":"^16.12.0"},"dependencies":{"babel-plugin-transform-object-assign":"^6.22.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1"},"devDependencies":{"@types/react":"^15.0.13","awesome-typescript-loader":"^3.0.8","babel-jest":"^18.0.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-0":"^6.22.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.5","jest":"^19.0.2","jest-cli":"^19.0.2","typescript":"^2.2.1","typescript-babel-jest":"^1.0.1","webpack":"^2.2.1"},"jest":{"transform":{"^.+\\.(js|ts|tsx)$":"typescript-babel-jest"},"moduleFileExtensions":["ts","tsx","js"],"testRegex":"/__tests__/.*\\.spec\\.(js|ts|tsx)$"},"gitHead":"b7081587446bdbaf0f065ffba4d9cdd85754e0c0","_id":"gandalf-validator@1.1.1","_npmVersion":"5.6.0","_nodeVersion":"8.10.0","_npmUser":{"name":"redacademy","email":"blake.turner@redacademy.com"},"dist":{"integrity":"sha512-AUOn/j1wKxysic0ZgusnAAaV3e7vU/qCXEK/wj9vTi6cN7krcW7YMpVG/PdvfU5vak90qwSMz8CrJKSuYWZ6dQ==","shasum":"1c0c74faa308d7c3d4b52e93dd8ab610ff07d31b","tarball":"https://registry.npmjs.org/gandalf-validator/-/gandalf-validator-1.1.1.tgz","fileCount":8,"unpackedSize":227358,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAUl3CRA9TVsSAnZWagAAtX0P/01M/DoxOpFY/3Oky1kB\noVNtJ+mpZEmVUKbimAu8jrKmW2hH0XZzLNRNmWJ/eihkO55nKiWauonXYPaq\nELPO3+bCgCnrXfanbOEIQPYHndc0tlblg4IVX+LlzPy/oo+P9ET6NnqWV3WA\nv6WdGbTVNNbRCq8DWBXh67bdfIPuooIboZ+WZJJroMKBsX4zaooYoXTAVFKO\n4DgZ/PqLq0or5ELuKx2Z7N+HNPechJckD2JAVfKQgNB6YaXe/5hSS9aQnaoB\n8cf62Lb7VwF4xLyevmUuQG7g/0W4zkSsKhgTfc9sFU/c5zzes4gh8giYpdg6\nayTclHFvd1fn4RDFtlPgICoQNS+j4iJSLVVU0TpMVGebeNH2qE1nTG60CdzN\nfxYnioOjIsbA6zrdOLM060qbZuGCD9N+472PJ6ugvvrrFLN1HQtf8rTUIcI3\n7uwO8jzqKWW4vdhZmgIr2N15ofG+AgflIoQBddcHCUk0uDGpldicaWQsXQ5k\nPcMXLU83q8pbLNYLfrodya71GSx2nOr1RZpO46VFZ8bK3M5XBdtr+eHIdhuM\n7JbkeLdoG3w/HdN4QG8N5ICwKQPmwtVHX/n2CYoZK9ejOm9kGJkGNiIBqqTZ\nenBjCIwUCzkn1HiwyI40UdrzUdbu0bZQlez3TCh3l/WHvjZYYi+RveTNOdC0\n4LS9\r\n=IHNa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICsu8daD3t6Dc+c1K/zl/8YGyaV009XJn6YgmqlorzllAiBhlH5zUIqffFsYHIsGAsYN0TXGVEqFPoqcP7Fa1cLNjA=="}]},"maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gandalf-validator_1.1.1_1577142647072_0.8802252457098483"},"_hasShrinkwrap":false}},"readme":"# gandalf-validator\n\nDetermines who shall and shall not pass form validation in React\n\n__Note__: This documentation is for version `1.X.X`, for `0.X.X` documentation, see [README_v0](README_v0.md).\n\n## Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n  - [Options](#options)\n  - [Field Definitions](#field-definitions)\n  - [Rendering](#rendering)\n  - [Handling Form Submit](#handling-form-submit)\n  - [Checking Form State](#checking-form-state)\n  - [Full Example](#full-example)\n- [Building Components for Gandalf](#building-components-for-gandalf)\n- [Contributing](#contributing)\n\n## Installation\n\n```shall\nnpm install --save gandalf-validator\n```\n\n## Usage\n\nThe `Gandalf` class extends `React.Component`, so we start by extending `Gandalf`.\n\n```javascript\nimport React from 'react';\nimport Gandalf from 'gandalf-validator';\n\nclass Form extends Gandalf {\n  componentDidMount() {\n    this.buildFields(fieldDefinitions);\n  }\n  ...\n  render(){\n    if (!this.areFieldsReady()) {\n      return 'Loading...';\n    }\n    return (\n      <form>\n        ...\n    ); \n  }\n}\nexport default Form;\n```\n\n`Gandalf` expects the `buildFields` method to be called in the `componentDidMount` lifecycle method. `buildFields` takes a __field definitions array__ as its only parameter.\nIt also provides the `areFieldsReady` method to be used in the render method to show a loading state before all the fields are generated. \n\n## Field Definitions\n\n__Example__\n\n```js\nconst fieldDefinitions = [\n  {\n    name: 'name',\n    component: TextField,\n    validators: ['required'],\n    errorPropName: 'errorText',\n    props: {\n      hintText: 'Name',\n    },\n    debounce: 500,\n  },\n  {\n    name: 'age',\n    component: TextField,\n    validators: ['required', 'numeric'],\n    errorPropName: 'errorText',\n    props: {\n      hintText: 'Age',\n    },\n    debounce: 300,\n  }\n];\n```\n\n__Options__\n\n| Property              | Type             | Description\n|-----------------------|------------------|------------------------------------------------------\n| `name`                | String           | Field name\n| `component`           | React Component  | The component to render\n| `props`               | Object           | Props to pass to the component\n| `validators`          | Array            | List of [validators](#validators) to apply to the value\n| `errorPropName`       | String           | The name of the prop in `component` used to display errors (optional)\n| `errorPropIsBool`     | Boolean          | Whether the `errorPropName` expects a boolean instead of a string (optional)\n| `onChangeHandler`     | Function         | Specify a name for the change handler function, defaults to `onChange`\n| `getValueInOnChange`  | Function         | If the value in the onChange handler is something other than e.target.value, this function can get it. Takes (e, key, payload).\n| `children          `  | Array            | Array of child React Components. Remember to add a `key` prop.\n| `debounce`            | Integer          | Milliseconds to delay validation, resets w/ each keystroke (optional)\n| `defaultValue`        | Any              | Default value for the component (optional)\n\n#### Validators\n\nGandalf ships with several out of the box validations. Some are very simple, requiring only a string identifier. Others are more complex, requiring an object.\n\n__Simple__\n\n- `required`\n- `numeric`\n- `email`\n\nTo enable a simple validator, add the string identifier to the `validators` prop.\n\n```js\nvalidators: ['required', 'numeric', 'email']\n```\n\n__Complex__\n\n- `minLength`\n- `maxLength`\n- `min`\n- `max`\n- `regex`\n\nComplex validators are objects with a `name` and `value` property.\n\n```js\nvalidators: [{ name: 'minLength', value: 8 }, { name: regex, value: /[^0-9]/g }]\n```\n\n__Simple + Complex__\n\nYou can use both simple and complex validators on the same field.\n\n```js\nvalidators: [\n  'required',\n  { name: 'minLength', value: 8 },\n  { name: regex, value: /.+\\s.+/g }\n]\n```\n\n__Custom Error Messages__\n\nGandalf provides generic error messages by default, but you can pass your own to the Validator object. If you're using a simple validator, you can use an object with `name` and `message` fields as shown below.\n\n```js\nvalidators: [\n  { name: 'required', message: 'How dare you not fill this field?' }\n  { name: 'minLength', value: 8, message: 'Your answer is too short! It must be at least 8 characters.' },\n]\n```\n\n__In Practice__\n\n```javascript\nimport React from 'react';\nimport Gandalf from 'gandalf-validator';\nimport TextField from 'material-ui/TextField';\nimport { Input } from 'semantic-ui-react';\n\nclass Form extends Gandalf {\n  componentDidMount() {\n    const fieldDefinitions = [\n      {\n        name: 'firstName',\n        component: TextInput,\n        validators: ['required'],\n        errorPropName: 'errorText',\n        props: {\n          autoComplete: 'given-name',\n          label: 'First Name',\n        },\n        debounce: 300,\n      },\n      {\n        name: 'lastName',\n        component: TextInput,\n        validators: ['required'],\n        errorPropName: 'errorText',\n        props: {\n          autoComplete: 'family-name',\n          label: 'Last Name',\n        },\n        debounce: 300,\n      },\n      {\n        name: 'company',\n        component: TextInput,\n        validators: ['required'],\n        errorPropName: 'errorText',\n        props: {\n          autoComplete: 'organization',\n          label: 'Company Name',\n        },\n        debounce: 300,\n      },\n      {\n        name: 'phone',\n        component: TextInput,\n        validators: [\n          'required',\n          {\n            name: 'regex',\n            value: /\\D*([1-9]\\d{2})(\\D*)([1-9]\\d{2})(\\D*)(\\d{4})\\D*/,\n            message: 'Please enter a valid phone number',\n          },\n        ],\n        errorPropName: 'errorText',\n        props: {\n          autoComplete: 'tel',\n          label: 'Phone #',\n        },\n        debounce: 700,\n      },\n      {\n        name: 'availability',\n        component: SelectField,\n        validators: ['required'],\n        errorPropName: 'errorText',\n        getValueInOnChange: (e, key, value) => value,\n        props: {\n          hintText: 'Availability',\n        },\n        children: [\n          <MenuItem key={1} value=\"Never\" primaryText=\"Never\" />,\n          <MenuItem key={2} value=\"Every Night\" primaryText=\"Every Night\" />,\n          <MenuItem key={3} value=\"Weeknights\" primaryText=\"Weeknights\" />,\n          <MenuItem key={4} value=\"Weekends\" primaryText=\"Weekends\" />,\n          <MenuItem key={5} value=\"Weekly\" primaryText=\"Weekly\" />,\n        ],\n      },\n      {\n        name: 'colour',\n        component: Input,\n        validators: ['required'],\n        errorPropName: 'error',\n        errorPropIsBool: true,\n        props: {\n          placeholder: 'Favourite Colour',\n        },\n        debounce: 300,\n      },\n      {\n        name: 'email',\n        component: TextField,\n        validators: ['required', 'email'],\n        errorPropName: 'errorText',\n        props: {\n          hintText: 'Email',\n        },\n        debounce: 300,\n      },\n    };\n\n    this.buildFields(fieldDefinitions);\n  }\n}\n```\n\n#### Rendering\n\nThe `buildFields` method build your form inputs as puts them into `this.state.fields`. Each element is accessible via the value of its `name` property.\nUse the `areFieldsReady` method to show a loading state before all the fields are generated.\n```javascript\nrender() {\n  const fields = this.state.fields;\n  if (!this.areFieldsReady()) {\n    return 'Loading...';\n  }\n\n  return (\n    <form>\n      <h1>My Form</h1>\n      { fields.firstName.element } <br />\n      { fields.lastName.element } <br />\n      { fields.company.element } <br />\n      { fields.phone.element } <br />\n      { fields.availability.element } <br />\n      { fields.colour.element } <br />\n      { fields.email.element } <br />\n\n      <button onClick={this.handleSubmit}>Submit</button>\n    </form>\n  );\n}\n```\n\n#### Handling Form Submit\n\nGandalf provides two methods for getting form data:\n\n```js\n// Returns form data, regardless of its validity\nthis.getFormData();\n\n// If the form is valid, returns the form data, otherwise returns null\nthis.getCleanFormData();\n```\n\nRecommended submit handler implementation:\n\n```js\nhandleSubmit() {\n  const data = this.getCleanFormData();\n\n  // If form is invalid, all error messages will show automatically\n  // So you can simply exit the function\n  if (!data) return;\n\n  // Handle valid data here\n}\n```\n\n#### Checking Form State\n\nGandalf also privides two methods for checking the current state of the form:\n\n```js\n// Not every element on the form has been touched - it may be invalid, but not all errors are triggered\n// An element is not included in this list if it has an empty validators array\nthis.formHasPristineElements()\n\n// Whether the form is currently valid. Use in combination with formHasPristineElements for reliable results\nthis.formIsValid()\n```\n\nIt also provides a method to check if the form elements were built:\n```js\n// Returns true if the buildFields() has been called and fields are created \nthis.areFieldsReady();\n```\n\n## Full Example\n\n```javascript\nimport React from 'react';\nimport Gandalf from 'gandalf-validator';\nimport TextField from 'material-ui/TextField';\nimport { Input } from 'semantic-ui-react';\n\nclass Form extends Gandalf {\n  componentDidMount() {\n    const fieldDefinitions = [\n      {\n        name: 'firstName',\n        component: TextInput,\n        validators: ['required'],\n        errorPropName: 'errorText',\n        props: {\n          autoComplete: 'given-name',\n          label: 'First Name',\n        },\n        debounce: 300,\n      },\n      {\n        name: 'lastName',\n        component: TextInput,\n        validators: ['required'],\n        errorPropName: 'errorText',\n        props: {\n          autoComplete: 'family-name',\n          label: 'Last Name',\n        },\n        debounce: 300,\n      },\n      {\n        name: 'company',\n        component: TextInput,\n        validators: ['required'],\n        errorPropName: 'errorText',\n        props: {\n          autoComplete: 'organization',\n          label: 'Company Name',\n        },\n        debounce: 300,\n      },\n      {\n        name: 'phone',\n        component: TextInput,\n        validators: [\n          'required',\n          {\n            name: 'regex',\n            value: /\\D*([1-9]\\d{2})(\\D*)([1-9]\\d{2})(\\D*)(\\d{4})\\D*/,\n            message: 'Please enter a valid phone number',\n          },\n        ],\n        errorPropName: 'errorText',\n        props: {\n          autoComplete: 'tel',\n          label: 'Phone #',\n        },\n        debounce: 700,\n      },\n      {\n        name: 'availability',\n        component: SelectField,\n        validators: ['required'],\n        errorPropName: 'errorText',\n        getValueInOnChange: (e, key, value) => value,\n        props: {\n          hintText: 'Availability',\n        },\n        children: [\n          <MenuItem key={1} value=\"Never\" primaryText=\"Never\" />,\n          <MenuItem key={2} value=\"Every Night\" primaryText=\"Every Night\" />,\n          <MenuItem key={3} value=\"Weeknights\" primaryText=\"Weeknights\" />,\n          <MenuItem key={4} value=\"Weekends\" primaryText=\"Weekends\" />,\n          <MenuItem key={5} value=\"Weekly\" primaryText=\"Weekly\" />,\n        ],\n      },\n      {\n        name: 'colour',\n        component: Input,\n        validators: ['required'],\n        errorPropName: 'error',\n        errorPropIsBool: true,\n        props: {\n          placeholder: 'Favourite Colour',\n        },\n        debounce: 300,\n      },\n      {\n        name: 'email',\n        component: TextField,\n        validators: ['required', 'email'],\n        errorPropName: 'errorText',\n        props: {\n          hintText: 'Email',\n        },\n        debounce: 300,\n      },\n    };\n\n    this.buildFields(fieldDefinitions);\n  }\n\n  handleSubmit() {\n    const data = this.getCleanFormData();\n\n    // If form is invalid, all error messages will show automatically\n    // So you can simply exit the function\n    if (!data) return;\n\n    // Handle valid data here\n  }\n\n  render() {\n    const fields = this.state.fields;\n    \n    if (!this.areFieldsReady()) {\n      return 'Loading...';\n    }\n\n    return (\n      <form>\n        <h1>My Form</h1>\n        { fields.firstName.element } <br />\n        { fields.lastName.element } <br />\n        { fields.company.element } <br />\n        { fields.phone.element } <br />\n        { fields.availability.element } <br />\n        { fields.colour.element } <br />\n        { fields.email.element } <br />\n\n        <button\n          onClick={() => this.handleSubmit()}\n          disabled={() => this.formHasPristineElements() || !this.formIsValid()}\n        >\n          Submit\n        </button>\n      </form>\n    );\n  }\n}\n```\n\n## Building Components for Gandalf\n\nSome component libraries provide inputs with built in error handling.\n\nFor example, Material UI TextFields provide an `errorText` prop that alters the component's appearance if it exists. Similarly, Semantic UI's Input component provides a boolean `error` prop that turns the input red if it exists.\n\nBut what if you want to build your own component for use with Gandalf? Turns out it's pretty easy.\n\n#### React Native Example\n\nReact Native provides a TextInput component. It's very similar to an HTML input in regular React, with a few tiny differences. For example it exposes an `onChangeText` handler instead of an `onChange` handler for handling input changes.\n\nBut it has no build in error handling. So let's build it. We'll call it `ValidatedTextInput`.\n\n```js\nimport React from 'react';\nimport { View, Text, TextInput } from 'react-native';\n\nconst ValidatedTextInput = (props) => (\n  <View>\n    <View>\n      <Text>{ props.title }</Text>\n      <TextInput\n        onChangeText={props.onChange}\n        placeholder={props.placeholder}\n      />\n    </View>\n    {!!props.error &&\n    <View>\n      <Text>\n        { props.error }\n      </Text>\n    </View>\n    }\n  </View>\n);\n```\n\nWe know that we can define arbitrary props in the [Fields Object](#fields-object).\nOn top of those, Gandalf passes in an `error` prop (string) and an `onChange` handler (function).\n\nWe can use the existence of `error` to conditionally render the error message UI. The rest is as simple as passing props to `TextInput`.\n\nNow we can use `ValidatedTextInput` in Gandalf:\n\n```js\nimport React from 'react';\nimport Gandalf from 'gandalf-validator';\nimport { View, Text, TouchableHighlight } from 'react-native';\n\nimport ValidatedTextInput from '../components/ValidatedTextInput';\n\nclass Form extends Gandalf {\n  componentDidMount() {\n    const fields = [\n      {\n        name: 'fName',\n        component: ValidatedTextInput,\n        getValueInOnChange: value => value,\n        validators: ['required'],\n        props: {\n          title: 'First Name',\n          placeholder: 'John Doe',\n        },\n        debounce: 300,\n      },\n    };\n\n    this.buildFields(fields);\n  }\n\n  handleSubmit() {\n    const data = this.getCleanFormData();\n\n      // If form is invalid, all error messages will show automatically\n      // So you can simply exit the function\n      if (!data) return;\n\n      // Handle valid data here\n    }\n\n  render() {\n    const fields = this.state.fields;\n    \n    if (!this.areFieldsReady()) {\n      return 'Loading...';\n    }\n\n    return (\n      <View>\n        { fields.fName.element }\n\n        <TouchableHighlight onPress={this.handleSubmit}>\n          <Text>Submit</Text>\n        </TouchableHighlight>\n      </View>\n    );\n  }\n}\n```\n\n## Contributing\n\nFile a Github Issue or fork this repo, make a PR and bump the version in the package.json file.\n\nTo build locally, use `npm run build`. This will transpile and uglify the library.\n\n\n\n\n#### Running tests locally\n\nYou will need to add a `.babelrc` file in your local `gandalf-validator` directory. It is git ignored, as it can conflict with `.babelrc` files in projects using Gandalf.\n\n`.babelrc`:\n```json\n{\n  \"presets\": [\"es2015\"]\n}\n```\n","maintainers":[{"name":"blaketurner","email":"mail@blakewilliamturner.com"},{"name":"djordje-vujatovic","email":"djordje_v@hotmail.com"},{"name":"redacademy","email":"blake.turner@redacademy.com"},{"name":"ringong95","email":"ringong95@gmail.com"}],"time":{"modified":"2022-06-18T04:50:57.240Z","created":"2017-01-31T00:25:21.951Z","0.1.0":"2017-01-31T00:25:21.951Z","0.1.1":"2017-01-31T02:48:07.873Z","0.1.2":"2017-01-31T06:27:34.958Z","0.1.3":"2017-01-31T06:39:52.627Z","0.1.4":"2017-01-31T07:03:44.566Z","0.1.5":"2017-01-31T07:06:14.994Z","0.2.0":"2017-01-31T07:10:42.625Z","0.3.0":"2017-02-28T20:01:40.437Z","0.5.0":"2017-03-13T06:05:12.509Z","0.6.0":"2017-03-14T17:54:55.669Z","0.6.1":"2017-03-14T18:27:34.649Z","0.6.2":"2017-03-14T18:46:27.636Z","0.7.0":"2017-03-16T18:27:41.887Z","0.7.1":"2017-03-16T18:48:23.352Z","0.8.0":"2017-03-16T22:35:31.440Z","0.8.1":"2017-03-21T00:07:30.565Z","0.8.2":"2017-03-21T16:07:59.105Z","0.8.3":"2017-03-23T22:36:25.776Z","0.8.4":"2017-03-24T20:54:26.152Z","0.8.5":"2017-08-16T23:08:37.684Z","0.8.6":"2017-08-16T23:15:12.433Z","0.8.7":"2017-08-16T23:25:32.641Z","0.9.0":"2017-08-17T22:08:52.743Z","0.10.0":"2017-08-21T18:02:29.166Z","0.10.1":"2017-08-21T18:14:48.977Z","1.0.0":"2017-08-24T17:37:10.512Z","1.0.1":"2018-02-15T21:25:12.804Z","1.0.2":"2018-03-12T23:49:24.222Z","1.0.3":"2018-05-11T21:09:55.439Z","1.0.4":"2018-05-11T21:31:03.365Z","1.0.6":"2018-06-05T21:42:06.501Z","1.1.0":"2019-12-11T21:56:56.033Z","1.1.1":"2019-12-23T23:10:47.214Z"},"homepage":"https://github.com/redacademy/gandalf-validator#readme","keywords":["react","form","validation","redux","material-ui","semantic-ui"],"repository":{"type":"git","url":"git+https://github.com/redacademy/gandalf-validator.git"},"contributors":[{"name":"Blake Turner","email":"mail@blakewilliamturner.com","url":"https://github.com/BlakeTurner"},{"name":"Ringo Ng","email":"Ringong95@gmail.com","url":"https://github.com/ringong95"},{"name":"Djordje Vujatovic","email":"djordje_v@hotmail.com","url":"https://github.com/DjordjeVujatovic"},{"name":"Jonathan Funk","email":"jonfunk88@hotmail.com","url":"https://github.com/jonathanfunk"},{"name":"Justin Levett-Yeats","email":"j@solaris.org.uk","url":"https://github.com/justinl-y"},{"name":"Scott Fuoco","email":"scottfuoco@gmail.com","url":"https://github.com/scottfuoco"}],"author":{"name":"RED Academy"},"bugs":{"url":"https://github.com/redacademy/gandalf-validator/issues"},"license":"MIT","readmeFilename":"README.md"}