{"_id":"@polyn/blueprint","_rev":"27-feec6bf0811095e90784dbb8f8d07c9f","name":"@polyn/blueprint","dist-tags":{"latest":"2.7.0"},"versions":{"0.1.0":{"name":"@polyn/blueprint","version":"0.1.0","description":"An easy to use validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"chai":"^4.2.0","eslint":"^5.16.0","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.17.2","eslint-plugin-node":"^8.0.1","eslint-plugin-promise":"^4.1.1","eslint-plugin-standard":"^4.0.0","supposed":"^0.2.0"},"dependencies":{},"gitHead":"50cfc51d0f5d9c631d27feebef1594293cced2dc","_id":"@polyn/blueprint@0.1.0","_npmVersion":"6.1.0","_nodeVersion":"10.6.0","_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"dist":{"integrity":"sha512-WPHJLMEhzSYLpASW83bTi7aRUrGhzRVKGfVJJqrl32kVd3TTvIGw03Bw1vgWpjg3XxgqXLagRk2HZMsJeVGX0w==","shasum":"ecc4dc9dae3f81d796e19ac0dac75478b72528ae","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-0.1.0.tgz","fileCount":11,"unpackedSize":47245,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwIYzCRA9TVsSAnZWagAAcyAP/1p227y4r5cZIJedg8W0\ne6hhDnplteyAAtLrGv+UVDfEnSYQ4KVW12UbHG5mzd4GPzahKbQIIjr/JBFa\nW55IiwuuyLIWqxg85NBOnZUw1FmaPG+9wi0lO6qm9plsV9yE6NrzT/UYQ7hV\n9XRkQewQjSxnCb1idpyHmLOje/VTuKgtfTApAGlFFb5o9vxnKG+eoPHm3bL3\nHjcPIBUWoFMz5cgOIvIeJlyxFxpMqE8QhJtBDc/8gYKaCfxYX6RvBIbPiyld\nj8r+yKQHCWZy9J10vstvOs2UD7nTFZ2yKDRPmVjiCDlA6JxQ2XzvFElbTj1d\nFH8j+taD722nWvgPBCdP3TIElhXxNZysrZV5dl3RPM1DvyVz3bsbpamu1XQI\nSjGR7vu3ocWG1E3ixUMO+UnRU+1m1cVBgKWeDZsimU5gbgSr/728kQAjMHuV\nfqD91S7GeqR4DYP/Yc2zeAc9NHmF71SRxeJiIcfyIpju9nLrdEBvh3e+zbqz\nfk/dofoy5EdYjgpD43y3cxRU1txKyt3y8j8+nbp2WJwUV+AG2HTs4cuWe2xD\nFg9l69zR7oaCNX1I1oOS/jNDMCCaE7Uoouzxuse/HPVXy04rCH3SxFHM3dpY\njP9x7fJHkkdsl5MX4KlEkHjTYaaAuuk0PMkLpvY1xaGv3HTqijIDKtg6u/w1\nZtnI\r\n=F+H3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDtUbK2kpvKrumRUL5bVJ8N6GKHvI8qNFg0HON1kDNoIgIhANonD0QODb9QH9EjfF6QPyOoDK5iPwgO4QAkSRX2S7BD"}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_0.1.0_1556121139193_0.44392909004914416"},"_hasShrinkwrap":false},"0.2.0":{"name":"@polyn/blueprint","version":"0.2.0","description":"An easy to use validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"chai":"^4.2.0","eslint":"^5.16.0","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.17.2","eslint-plugin-node":"^8.0.1","eslint-plugin-promise":"^4.1.1","eslint-plugin-standard":"^4.0.0","supposed":"^0.2.0"},"dependencies":{},"gitHead":"582cf1e00bba4dc94cf2d6199c0d6ffd3650e2e3","_id":"@polyn/blueprint@0.2.0","_npmVersion":"6.1.0","_nodeVersion":"10.6.0","_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"dist":{"integrity":"sha512-dCz3+aAqJ8gLrZ3BD0f1iGwt4b9jFHJaYOkaLD95qZds8gGUYOSOUTu81KTslG7x67EWPJ+xhstDkRLdzRDKQw==","shasum":"cb9b7311a647d356584c68b52b85b45b34a4797e","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-0.2.0.tgz","fileCount":11,"unpackedSize":51430,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwKZeCRA9TVsSAnZWagAAxRAP/3UlPsTi/w2cbIIT+QM9\n5PM0y6tixmuhhyRZ/ND85Gr+NU7DXfAOHvItZq0oU/3UHxLA27dtpOitUEt4\nMZnj74dad+JcBvyAEg16J9fCjgjSISoHKMhLalqAuftyrkefF7F62Ll4kq3C\nA91EWIkGyDchckl9rF9TKTHqurddN+AekScnP4/3x1nGiJi/4drdVS+sEDtp\nGoHwlNIECpmBL4XWTEqCxMdTqqpAVsucnJm2Lhs+2pdUQGWDurEsAlV1pcYP\nXsHzIYlVO6KoG9dNjX/IvVZNj0l/eLCIc7tUJ2TPrX2Aj93NfyKR8MhYng3C\nagJVrsDo71oND0tIy1eD1fO87WSe+AR1Bc1nZOJa+uYG0+GPCo6zSEl5LvAJ\nTMEX+J5AceYb0nVY7TjnBdKeiqac1LJfZibPuWsbkcLtqTEFN9p1Bx/Rfwlw\nFz1x3Y2JV4/Ywrt/6aZLp3GSYdjGEpqtoFemsGtuwHtnJmZycyS9w6LOsyRg\nLMq0+1cDMv2BmLlVrIkcb7Hu76okBZGNNcxptvcXsDFcln/lX1lx1wgBzUMr\nSVH43E8O3p3G7QPsAEov+0InpiAn0CRDAsVAxc/AgOWBaE8RlH/Z1i1xK0e7\nH0Qrno2G0vcCHpY068FYd9B97dgFn2L6tRAouJVaBm1QUugZRoRAG9lvrl6R\nFo0H\r\n=PqCF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbT3I75Z79Pc3Ov00Wk77WISH/Gj6onfOtQDNuDUF7IAIgXTOMmuzCUTWAT38Fv9ovRY9faWb3oS8s8DNG0qsufO4="}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_0.2.0_1556129373493_0.8478255749367307"},"_hasShrinkwrap":false},"0.2.1":{"name":"@polyn/blueprint","version":"0.2.1","description":"An easy to use validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"chai":"^4.2.0","eslint":"^5.16.0","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.17.2","eslint-plugin-node":"^8.0.1","eslint-plugin-promise":"^4.1.1","eslint-plugin-standard":"^4.0.0","supposed":"^0.2.0"},"dependencies":{},"gitHead":"efab9ba77a0c120c621fbeaf13156be9b7d73837","_id":"@polyn/blueprint@0.2.1","_npmVersion":"6.1.0","_nodeVersion":"10.6.0","_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"dist":{"integrity":"sha512-KijeFDAQKqw4jJ8pxZTCLO15HIsMmQEpD0Ucp5HMBPoR57K+jPyERDGQiWxOvE4EInKdf9tvw+1jz8M0C2a8zA==","shasum":"6a5c11828a71a70dc7f75e35b6a467e102a84507","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-0.2.1.tgz","fileCount":11,"unpackedSize":51356,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwKelCRA9TVsSAnZWagAAEakP/jIb/gMOAjmtTP+Zl0zA\n4qwr8k7+hCnH7f8y9wwb2LtfzxgLGhu7rp4XjggiHZfEbn6mYLWGjGeYC161\nGNMIBvVVQn+nt7cv15D52qxw74/4tK9tNgNVhpJP7sbs7v0RxM6wMjpkedXw\ndGXUlvYtFuYF/mxSXM599YjetUlFh/uc7GaO9N9ErE+HX8F/2EGNOaKE/sFN\nJwkhfDJmNAZaTJ8NGw1CyJkbkeNq+A2Bsk0jvKlt0JZgg0JPq0wVRydo05T9\nCJtBCN4DXcd+WPUwrAm1LqV96V8Q/ZT04WdEjyHIxJd63yQOln21kP5SHpeX\nAnFV8CbKhjEODKNzcIk7jfuXp3TLLmd1W8i3miEHFpvmYryiKOl5USyA4oo6\n30YZNeummRdp+9rsl+4UMdmfvoKVidq3ix4B/+y12YSH4FjGbftmYLFp3PIg\nPMNIGP54S0Wx/TWsN2EDtDZdO9QdYzmZz04WgSvOzBgorKCs31JrL2OD0Ugk\ne1WzMYrJqpFpT7g213w629OcRFlkxsd66w075PcZJUJxoK/b5nkp106WZwm6\nMxdz4wOwHlXGPHaJgBt0BtftaBmaxKY34DXyCEwdIeyR3kfbkyM9eMqQN0dS\nBfQrge/XsYMYPadVYKe2GokLcg6JIlJnGgjqSzQjLOYAhX2YwkkwpkTCYDeA\nVg6a\r\n=RE9S\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDfJcEyxLorfTU77siFvmBZX/fZ3e7LOE0wCqsYOLRVrAIhAKI2EvXkmu384gbw+aQhVXH+bV20fque77CXbZR4vxCG"}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_0.2.1_1556129699732_0.43774258550725076"},"_hasShrinkwrap":false},"0.3.0":{"name":"@polyn/blueprint","version":"0.3.0","description":"An easy to use validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"chai":"^4.2.0","eslint":"^5.16.0","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.17.2","eslint-plugin-node":"^8.0.1","eslint-plugin-promise":"^4.1.1","eslint-plugin-standard":"^4.0.0","supposed":"^0.2.0"},"dependencies":{},"gitHead":"2ad85ab6fa1d1866e7e3fcf642c06b7017ae7e39","_id":"@polyn/blueprint@0.3.0","_nodeVersion":"10.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-TqJF/QCNpjnsTkG9dsZbm04V0n+xAnHrfiTeZaPl+0TV/ibPInLgVr9E7WrevDo1dAn6uji/lxeLbjZmT04ABg==","shasum":"4f0472deb71490f4fd1904eef5664aba78e54869","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-0.3.0.tgz","fileCount":11,"unpackedSize":51358,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwKk/CRA9TVsSAnZWagAAV14QAJv4tT21lPd0kRyjtzr1\nXSziKmSszNzgHFAP9S2GfPLDkKsz4lprlgYSGe/j45f1JX0FKSygO/MrzYDl\nkpvr5W9KRVAyp9zCelufofFpvOZlPB/dY5CkaDR021Gq/RnZLjnXXNlKFTje\nXx+uqGLXKTWLlfD43QI0kfwvQhBiZQaSVf/josDMoarG9gbBL4+VTZ2vvJrG\nXfk1awkjoz3RKRVoQERem3/LudrBFqNpCqQam3+w+qfEG9w6agHUJBS3t/t/\ngszuuk1RukXE2lcKAg3h4U7ydmcRZgvNk/qLn00nKM5qps/UqONy2Zx7Xvvv\nOKA8SfP6bmwFxRawmIYJChqensquT/zUUcGIb1cG2d1QlxNA/LUduailVV8P\n4AgLcPTrlUxwnSzlJbpiyLGIN9iuU8a5n+zdAtG4pq/K/ayrr2xLyaC9opgA\nPSSc2IdfkXXVAgMp96yHmqCcWNypDYm10dRwUpGNLvSCHI9tqqMUvWU8AGMt\nZ45RTH1Awpset9nuwMJH2DzAFUD0p3PCdl/uILSImMy4fY5vb84lqjhehB/s\nSQT0wd5n9uQoN6axCaNBnBgsBZ5reVJT2jrusYVKvG8Yk/5heOw5lUrWYRXo\nqi6XzzqF+YVFsP5RIQsiTk44zcNNEjMcoy75oW52xTCgFtEDDEjFDWjI+esU\nnY0E\r\n=6jt4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCU1pPmb+2Dh/xCui9/6eGdHsuS3B9frUw3/0GeM+B8ggIgL799Lj9zWxq/iVMGKwyGFRqpDdNWab1Ff5cm1GpR+B0="}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_0.3.0_1556130111364_0.4574960769077214"},"_hasShrinkwrap":false},"0.3.1":{"name":"@polyn/blueprint","version":"0.3.1","description":"An easy to use validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"chai":"^4.2.0","eslint":"^5.16.0","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.17.2","eslint-plugin-node":"^8.0.1","eslint-plugin-promise":"^4.1.1","eslint-plugin-standard":"^4.0.0","supposed":"^0.2.0"},"dependencies":{},"gitHead":"0f23737e77b4fb61ca3324d3a4e9626a25356ee4","_id":"@polyn/blueprint@0.3.1","_nodeVersion":"10.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-3H+AzMYdFr+6E7L6PHn9m9GAe8P0jNB9cNrDg2pqQQFEl26lHC3JxpmRrKLkm2dtvMvtia2kkgNtJrU0Ys7idw==","shasum":"d9b4719b91daad01f97eef0067c3d295f9f637e6","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-0.3.1.tgz","fileCount":11,"unpackedSize":51499,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwKqWCRA9TVsSAnZWagAATOsQAJ7lXCYUxVGmRCNLKAFa\nFl8GKg0XAajfxB72TL9qWnYkVtjsHksMgudzMQTiZoTUpKSgTNsNzDXmBaSL\nuDgFIg15MO19xJoh8QvMGBnv9XDDOClQKll15fCGHGCOV38q4s5fYUnciBEz\nJmp3RVm5P5V6JO+ctQmcRdEtuxXqOSc6r3SAtWqGR6T2NwrhdYRbWoMCP8XJ\n0rWZ11CX2F6YCKdS4idn7J6Fp+tjpTRoeSAX9EksjvvkjjaWwaL5C8ZTHLSI\n1LI13yjrmQwpsvbIMdZe2CbkdQ5fN9jQWEccZeGausvMFh1MbKJPpG1ySL2c\nCsfECq9ZcxxfSH9xEcZNsfuU/faVHK0E92w8SKHLfsTY2KRxQyeXJOYdm03U\nGdm4HPuZnRxmpY3KdDm72MuuFRX6u9XoogFjOKD8K4rHA7IbrvH+a/UAI2VB\nZ1yxzSKdqfZN2dKlwYUOaPAgUZ1sy8jRZ4OR5J3Fa/uRKqPEqmU2WAAsFIoe\njkgiJ1KUjEh1g6/qeng7OoYxAAy5CSI8I5fVseuuQ4GJp5tUt1jjVL8ZjDEB\nEAVmTAe4oreHBExXtH0HEljfgWzomHvFENs0vN64WMMLRgl8xcIaA9Bl1yE7\ngAWONkgyxwZRE9fVjxo6QprGIQCjkBZS2/YWKYY8WJW4rZMSqDj/4GU1DRUU\n3z/k\r\n=/yEF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1D9PdzQs5uHorA7qMuv2qmreOMNrP9Qzu3Z8LUU5wfAIhAJ7nFUJfYeyBIsVv1Uq5fnIUhgivC72zNMFlfeCTGIgB"}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_0.3.1_1556130453322_0.4055699202758529"},"_hasShrinkwrap":false},"1.0.0":{"name":"@polyn/blueprint","version":"1.0.0","description":"An easy to use validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","test":"node test.js","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"^7.4.4","@babel/preset-env":"^7.4.4","chai":"^4.2.0","eslint":"^5.16.0","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.17.2","eslint-plugin-node":"^8.0.1","eslint-plugin-promise":"^4.1.1","eslint-plugin-standard":"^4.0.0","nodemon":"^1.19.0","supposed":"^0.2.0"},"dependencies":{},"gitHead":"1f463c6ea76c472c1fc9aecf60dcebeda1dd657e","_id":"@polyn/blueprint@1.0.0","_nodeVersion":"10.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-KF8cG+6WzCzVi9UGzeWxeJJz1kyErWrn6ttyPeFOm0y2LuSF2EUbS5eR7wlWG+fb90+oiYyUJgxn393sLWIoqw==","shasum":"53417c581459040eaa5ab07a64672642c014a786","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-1.0.0.tgz","fileCount":27,"unpackedSize":116348,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyz80CRA9TVsSAnZWagAAvPoP/RaN4f7ahZaKf1KiJIZv\n10eBgDQ9NszkaWUhSp4mPzqYPawPrc9mcLP6NPm01u6GWPDjIQvbOEVCbLea\nyxsoT1EsSlBSBHaMExJ9fsgbkLqRD9CT1MY2yPPwJjIQtHbU8AfKawJn9pH3\njxLzi/69KVJ+7Kr5qslTY54XKwGMCA1t50HhIuyp8aBcjBShVwbP2JPYR5Lc\n+YDdOuht799G7qazhGW8r/00mrI4xPdFfcIWR2+eJDSzzktWW4+Ah5VuulAb\n91sosdZb1m7KWOYr4u3oO0r8PhcIL+k3Si77HOR56ERFwmJVpb0Zie2IROxB\nSUvFTACoXLFI5CvdD/QYVcfFQd9fDRPl3GqRW1+fxsOS7WRL67/iO1g1eSnV\nqTeUx9SgKeBZ22Lzs7gcC656mPEm4t3Jrd3uZB30zfnV+y6q8XfqfIMQJcDz\nHvwrODP4nM19iRYCZ/I/xVpAcTTSuud3K4PkxwPqJ04oUeduJ5OLMH0SSsC4\nhgQCWy1N6NhkE73TN05Mh0/e9/Qf3l8gIFfkC/6ldEIYolAlKEaK/Kf8Lm3t\nDSdU9khOBCtCj6rwiKWyzCutP3ahZQGzoEUftYZAVfpG3P+h9r+/20INVfu5\noNx2drohdVv5o5poC09rbzq8t17VDcWrbaKlrbsoar7mfVNt8y1AjSZfcUj3\nJp+P\r\n=h3Wa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+80QDAsXQE9OSjK2+qbJZ0Viem++JVQW/UI2OO7awyQIhAOBWxFVNDqxm4cyPi9xbSPG6eKimHmy2uhUUHX1x9/7b"}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_1.0.0_1556823859721_0.43677918018123196"},"_hasShrinkwrap":false},"2.0.0":{"name":"@polyn/blueprint","version":"2.0.0","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","test":"node test.js && npm run test:ts","test:ts":"tsc -p ./tsconfig.json && node test-ts.js","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"~7.4.4","@babel/preset-env":"~7.4.4","@types/chai":"~4.1.7","chai":"~4.2.0","eslint":"~5.16.0","eslint-config-standard":"~12.0.0","eslint-plugin-import":"~2.17.2","eslint-plugin-node":"~8.0.1","eslint-plugin-promise":"~4.1.1","eslint-plugin-standard":"~4.0.0","nodemon":"~1.19.0","supposed":"~0.2.0","typescript":"~3.4.5"},"dependencies":{},"gitHead":"9248e582612ad2ebc3f660a84d3a27bc33dac4d0","_id":"@polyn/blueprint@2.0.0","_nodeVersion":"10.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-SKVXbL0wi2EhVOr3/1bYuMBRoiAsxf+sXKaiKt56+G5x3zpYr+pXdBbLx++jT55pxpadHQUOTFctvrB0KGy1HQ==","shasum":"260f4746f9f99d6dc4a117e42c441cb6ae309b01","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.0.0.tgz","fileCount":30,"unpackedSize":152609,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0b8gCRA9TVsSAnZWagAAbnsP/3LNR6SQeE/ZUvR+frgD\nzDYu3jz47+JNvaEsudjBSGWZBhFGdg9ibVTT3O9LIfSSB4ek1z1b53lzMTU3\nG2zNY11MMF1io1ULuCRiOgdZr6uRmLK4YTOzWJ9FOl5RYzUV+7iMNvh8QF2a\nAks0cHVbBnAB0Qmfed8GGzcZ8/BFpbEjoDMLfbd9KKNN9GFPZ72p6VtkquHW\nOHVfSr+WUeV3XJKDTDeb+lgo7LI4+Ppthxf59ABLFH2JUf0nkA6t9G+3uKIJ\nblVmjxWUMNzsIgateuh7P2C/OAXmqoSuu5WJE5W/fS+Tlk2oD7QH3zHIAV3i\nPGc7J/GKRsHvTE0bmYcIyRYRkJhG5Gr0DMmL5MRn5L0ZASo/kgdxsPW9+Wnk\nx4BOy2N985/dUTX6U8tLYNblRjcuOQH7aRR7rzYVCpUCJzhrTgkJwo8K3V1J\nF2FxlQq4gRZ7+90nJYXvmXTR4c9dlTK/TcJTc7ZGzu5sATsr2p3Wkw2IJjlF\n0+d6CgBqMB1g44lfiiyblBHdH4inKeVWZ4DQ313F/aF752CSoxXwozKtiFAu\nQ/dDEkdHxHgBNDr8Aj86SzYkjJQtbM3QBOvn93S+Na8hfW6oyVuHvs0R7Wqs\n2E/fY0p54+H8b0jeAL2sPdiG3jE/rngLCt0p81cQYiBcITeQKrlZVaALoi8O\nNa5R\r\n=iJ32\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBFImf9RX27PUj5vjyIlqFkrAZlE8l11kWfotT/t+Eh4AiAZ6u/fh4VnosNbQIopFfHRnmdqpjmkfdNnG52qrjTHwg=="}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.0.0_1557249823972_0.45651072225304135"},"_hasShrinkwrap":false},"2.0.1":{"name":"@polyn/blueprint","version":"2.0.1","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","test":"node test.js && npm run test:ts","test:ts":"tsc -p ./tsconfig.json && node test-ts.js","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"pre-commit":["build"],"pre-push":["test"],"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"~7.4.4","@babel/preset-env":"~7.4.4","@types/chai":"~4.1.7","chai":"~4.2.0","eslint":"~5.16.0","eslint-config-standard":"~12.0.0","eslint-plugin-import":"~2.17.2","eslint-plugin-node":"~8.0.1","eslint-plugin-promise":"~4.1.1","eslint-plugin-standard":"~4.0.0","nodemon":"~1.19.0","pre-commit":"~1.2.2","pre-push":"~0.1.1","supposed":"~0.2.0","typescript":"~3.4.5"},"dependencies":{},"gitHead":"719f934745576bda830fd2c9d32f34f9868ddfec","_id":"@polyn/blueprint@2.0.1","_nodeVersion":"10.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-x8TqCZ1L4WF6kDg7V1k3E7435bFnlRLF0j3Ue0YIdFvV7K6F74KsUV3gI28UKdKXj8gmtdDcQefSZN43KkXdew==","shasum":"dfc37e353d242a319c87e5bc679d9b60f3318a58","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.0.1.tgz","fileCount":29,"unpackedSize":172176,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc1PnpCRA9TVsSAnZWagAA2bwP/1ubBGP93K2I3Smy+D2Z\n+P3IVE6/h7Z1VJew5qtV0rqMglo+HKVm6cX3F1NaGr6KFLRMQPYZuSQPmfzf\nKlQVWVxbpoM5WxsLOHhGCUqgtaUvH4PjNFBF/5j4YcKUdFdBce5/xNJc4Z+I\nlhUdHmFENOEoczRavcP5bHnj7lxHB1An+UmvFBqTrxOpmCWldPQVefQUjZEP\n9qTMiEFDQhXR2YSq2j0BreuYUWv7dBHGTgrLdciqMxNImc4IC1nslk6Cg7GA\nMidPN20p3O2/XV/Ewwn5H7Z/ERwPVSfExYIHkKoUnJfz1qnkw24rdYWSgKFv\nzIt/TKIIoqAzHyF1YZzIGaMpD9vYmmVSdZrPiL2z8UmkUn7B6ZlGJHmDX9sG\nm1qsi14aUk2rsqk5xIhDoHgOKLaq/62B2kSzrPH4jxVpgM28JCss1f8k3wLv\n2lAw8Q67JP/IH3E9nC4pgRYa4FUJbdFLb0wzwarDAqR4XAj6A1xxCYW4uW32\nSJldb4O9AC/VaVCR6vCzB9ktZ5Hm3DT98seTlo8fJsjcInQ2eU8auOoSRlL2\niYJ/JwtOba/xb8qasL8VOrWEwQFnLoFBsTyk2NLM8MagE/qaUzNdnI2qFRS8\nlzh9V0umeT7d3F/UTUhlGe16uCR6NofQ2Dq3LaN7Zh66dLP16rIZhDBYC/82\nAJLp\r\n=q04w\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCzSWHzHbPpALQY+CCGnxofS/OTLiXxlgc8I+XH2hrsFwIgVbthCdDmERP3yQ4/JgmCO+hVOHSiK6V42yWGlxOUy4k="}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.0.1_1557461480698_0.5507052133975987"},"_hasShrinkwrap":false},"2.0.2":{"name":"@polyn/blueprint","version":"2.0.2","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","test":"node test.js && npm run test:ts","test:ts":"tsc -p ./tsconfig.json && node test-ts.js","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"pre-commit":["build"],"pre-push":["test"],"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"~7.4.4","@babel/preset-env":"~7.4.4","@types/chai":"~4.1.7","chai":"~4.2.0","eslint":"~5.16.0","eslint-config-standard":"~12.0.0","eslint-plugin-import":"~2.17.2","eslint-plugin-node":"~8.0.1","eslint-plugin-promise":"~4.1.1","eslint-plugin-standard":"~4.0.0","nodemon":"~1.19.0","pre-commit":"~1.2.2","pre-push":"~0.1.1","supposed":"~0.2.0","typescript":"~3.4.5"},"dependencies":{},"gitHead":"d0f9210eeb86c94b64ce2db76b1564cab1cc2e98","_id":"@polyn/blueprint@2.0.2","_nodeVersion":"10.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-lB5eyWWnelJYr3b4+stPbQ1NO45fjE3IwDF5hcBlUcSNByMbP9+el6NDfDFRna4oV7a9IP8RSEiDzN5h9hwDjw==","shasum":"ef69d9a7d6c51426c132d9b2baa4d138ddf54343","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.0.2.tgz","fileCount":29,"unpackedSize":172262,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc1PyXCRA9TVsSAnZWagAAMYMP/jQbnt42jPtZEB59g0gK\nGOdC+rlk2pcS35F3YvrH6l7kQNQRjxoL6nJE+yN6jDy3NrsAcojIP1rsXd5c\nIfS95V8plyLsOQH2PoyU2qE1ewV1yYu2iz3n02QTxpUqlu4Nd3mTgnPa9mPh\nmnm32321KRoiudIB/MhUB721GqYW/C2JP8ZkyvACYAJEPS2CtCIfTp9vyW1B\numHXQeNhoPn9fbsiFjb6hVqkJdg27xiGKCUhZBW7vQe9H77emHhE2dOlFMdD\n8f+qrYQ6226SE+bNI7QHlDIl14OCBBqMzi92U10gq0lNmJzV5dGDWkpGpoAY\nWXAxlLb4MWGi22MaAo9fLEWRmiR2Mz6FCMdcy1jo0h3aepdHojWiYbV35Yuy\nU0pMAnMM3OGFKLbbtrVQrGBbrN1YY+uLk1kq6Hrv7CbmclnyQ7WL+I9Gyvmd\nQalWD2dwdPK3KR7FaNt7vzRJSBmfNWtU5cQ0rfDfxRmITglVs40IncA5S6K4\no89hmohN3kQ+GDvxssWzkB1JE5o0/x904P7BJDjTGrxMzztU72O9q18+ehIM\n73iKtm1qK80bk8++nXspjOtHBJ2julprKd24mAJGrO4iAdNKd+T0wesVhJI3\nEa62vEiMR7cTtBEpShZV7G8wR3BIxUR/I5qQILep6jKiIUoLKJkjDLXXCPYk\nC9XS\r\n=9G6n\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCBc9afaQWPi76ShK4EbF5hl2RScX2bg4hiuV29jkIFhQIgEuJLeEZQ9GjN0XVUPwE3bh3ZAti70VzqXi6VZ2auZjA="}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.0.2_1557462166447_0.5558493687363144"},"_hasShrinkwrap":false},"2.0.4":{"name":"@polyn/blueprint","version":"2.0.4","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","pre-push":"npm test && node pre-push.js","test":"node test.js && npm run test:ts","test:ts":"tsc -p ./tsconfig.json && node examples-typescript.js","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"pre-push":["pre-push"],"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"~7.4.4","@babel/preset-env":"~7.4.4","@types/chai":"~4.1.7","chai":"~4.2.0","eslint":"~5.16.0","eslint-config-standard":"~12.0.0","eslint-plugin-import":"~2.17.2","eslint-plugin-node":"~8.0.1","eslint-plugin-promise":"~4.1.1","eslint-plugin-standard":"~4.0.0","nodemon":"~1.19.0","pre-push":"~0.1.1","supposed":"~0.2.0","terminal-adventure":"~1.0.2","typescript":"~3.4.5"},"dependencies":{},"gitHead":"0b294cbe714d1e85be4f5906613730518de533f9","_id":"@polyn/blueprint@2.0.4","_nodeVersion":"10.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-06aqi4t/sVkNmMXcHDoGhDpESXK+fJNrqTIRM+30Dp6WcxB3Uqb7ryzDEr9l8PRhKm6WIpAB+vJhHlgI45197A==","shasum":"0a9b6dc0015adba01f7d175f03525a7d77678339","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.0.4.tgz","fileCount":13,"unpackedSize":98957,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2EWvCRA9TVsSAnZWagAAVNsP/j7Qi7n3R+yaHzlaHFqm\nexUpomFP+A4mknQ5jZvEJkBP1OE4/PYMKAM36GCN2y0NwyffAz6/iSM2vVvR\nw+d4AWQh0C9TYPigKK7OSrEG6uRGQkFxwoSU2ivQzLGzCjuZGCVE1lZGTQ3B\nTAG8/nqVipbpOL/CSt+xP6bOtJt8/0NjnPmNrL8r4BHb78KevmOm/q3CBXbf\nrbXIBr9hWgFTBvomGFKteFVxym8kbG17XMGOLIM1ilWx76W8lORuqfYjDsL5\n9CgWy7UU1SySMSDfX2ND7wka/8CRo+jhmoDFIUVTjzBRoxihA41O8/GFqLWZ\n7CYaixTdcDhMSS41GQODjwK+yZ6EqbNDHlEj1qskD8qzItV1LZ89dXs38cq2\nqxZlx3sE+uQmtjwQwnwPR+bEAEY5XYuC/ZHzUdVPFE11POVsfRbbyCsxP+9b\nHN7y9cUIG+kjUcvlKlPNC0EkRgojSRYx8hMr7L5tRZw7D7v4WcsyJ7cvk/AZ\n16V3GbKSpmAdzTe9y8Efxmf2Dv2enJWS0yh9V9xkXuIZWfs6oIiixF58YW9X\nDdDBvyD/AiVbU67LpnIlFZFBsJVjBlHJDF2SGr6eVP1vBOuV4EPLE1bkWa1v\nH5Kvli3MfXnRbB0sCHgoLPOMhMdF8vmOqw1seCefVnJ2JFMyWfb9+cyVsuPC\nKJS+\r\n=roqo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkw3xMmq7FQAvvhA4J8KiLJHyOKhqdUEIr6MOBBoHPlAIgfyrt7ZblS0bUwv5IBS+vq6WqEhzSLdLt5vxeTV84+xE="}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.0.4_1557677487035_0.1867074229791752"},"_hasShrinkwrap":false},"2.0.5":{"name":"@polyn/blueprint","version":"2.0.5","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","pre-push":"npm test && node pre-push.js","test":"node test.js && npm run test:ts","test:ts":"tsc -p ./tsconfig.json && node examples-typescript.js","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"pre-push":["pre-push"],"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"~7.4.4","@babel/preset-env":"~7.4.4","@types/chai":"~4.1.7","chai":"~4.2.0","eslint":"~5.16.0","eslint-config-standard":"~12.0.0","eslint-plugin-import":"~2.17.2","eslint-plugin-node":"~8.0.1","eslint-plugin-promise":"~4.1.1","eslint-plugin-standard":"~4.0.0","nodemon":"~1.19.0","pre-push":"~0.1.1","supposed":"~0.2.0","terminal-adventure":"~1.0.2","typescript":"~3.4.5"},"dependencies":{},"gitHead":"c56d8770e017fa319dd03423dd5e7af2607be27e","_id":"@polyn/blueprint@2.0.5","_nodeVersion":"10.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-gS4S5iYZsbn4OBeKBIhTm5/edQ1/5nnrJBg2YSK3ZokCrkSGfFtWy5w9fsChxGk8q8JVulWN2E33vI18TsmRNQ==","shasum":"13220f4fdf2f840bfaf4480b2032a9269eb5294c","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.0.5.tgz","fileCount":13,"unpackedSize":100705,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2X/nCRA9TVsSAnZWagAAlxUP+wWY13dBr35HGB3ofSDR\nQXwoOdhjWymPytccvCCHIoow8eiEt3UpxVOktXopS86zP+zMxeW6/VrUBFzS\n1Eh4gj0W1Ij/ucFVSdaY3DdTrZgVhgU/WtHo4u8V4BZ3JDf+bOJtyNYx57ZD\nyvRmUcDw53vxTIHGXWVHaUirubRXYDE7Vp+GEMFSKcgUM9ZwSfDi+vUxCX3y\nA3iQ0XG/rcoQUbcAM7p2rMqOY22I5/lRWkkzDbxUaaWnw24duE5bn4o4JJ3d\nOljVmfQNhDEIh2+xjjILwxFtjm3mx0dxDpmaIm4r+Fnm78WDrFEPrP8Vr3eq\niB935owiRe5COtJXf+m3SpdDSSTcbR9qhtvE77VG11iGcPGC70du9x7FsxdK\nN6OmeEvHKZq8rzljAmUGvW0rBI0fQmGa7FyUJOyO6maK4SnEXHgEeG59Y91w\n6g4hjJuAxVXYRZSbVyXueKTtgUS6s0ALG7FoFOZJuKBxLsffcOsJWXku6dOH\nqsQ8gS743hY/E2xID9kSGBFbUY3+tC3EqvBRVSLHXCFrzncE7/BSG9LjATnJ\nMYT7oO6+j1A+NH/xszV92Uqlp79RGKjIDM6mb2qmmsDGLu66lSFF3tYZAD5R\n4myWj+H8Zv+9wYqaszUeLPRstoDAa9jU/poHRe7S5TMsT3NNN57FzX+A612q\nJMU1\r\n=6u7A\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF8LHPsIPQSQYyyMg3WwIa8PHNgnjsC+R9G/wQHEcoAgAiA9uf/N3ja7yYOona9Nm6aDpWPvexohRS+iWSSLViQLGg=="}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.0.5_1557757926347_0.46043967380667916"},"_hasShrinkwrap":false},"2.1.0":{"name":"@polyn/blueprint","version":"2.1.0","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","pre-push":"npm test && node pre-push.js","test":"node test.js && npm run test:ts","test:ts":"tsc -p ./tsconfig.json && node examples-typescript.js","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"pre-push":["pre-push"],"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"~7.4.4","@babel/preset-env":"~7.4.4","@types/chai":"~4.1.7","chai":"~4.2.0","eslint":"~5.16.0","eslint-config-standard":"~12.0.0","eslint-plugin-import":"~2.17.2","eslint-plugin-node":"~8.0.1","eslint-plugin-promise":"~4.1.1","eslint-plugin-standard":"~4.0.0","nodemon":"~1.19.0","pre-push":"~0.1.1","supposed":"~0.2.0","terminal-adventure":"~1.0.2","typescript":"~3.4.5"},"dependencies":{},"gitHead":"76c796fa4b679a71f26f70a163a0c892c50bbb67","_id":"@polyn/blueprint@2.1.0","_nodeVersion":"10.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-FtIjxCb4rTSGwDCLmTqw2GzIhhSzRFLj0uKGVHLPOfmm8fN2s50tDlZ9L1KVRRjc9kMMEERwypz/LCjnyPL7rw==","shasum":"e990af31d65ca7cbae5e8abe2d77984ef183a071","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.1.0.tgz","fileCount":14,"unpackedSize":105749,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3OEcCRA9TVsSAnZWagAAEe4P/2zjPrvx5fd5KcSLXksJ\n8Yfqr0KpPHTLIXA/mFFfyzrxhzhbzAcjRNdEzTL4q/DnShqZhYw0plH7+8Zh\nAlbi69Mf1AGBHoFJhzcMLrhnXg6jyQMmC6YmdP5RGg9w1XbRZvxboibS6si3\nr2DR1uQJpzInk8TNmoIhnIXSFuzAVF+EffX+SH+NUlzqPUIOEkUYSz8twKPk\nstyD/HnQqabJ04Dq9LzOeS03v5brS3z5yKl2cJ7rP5Zd4qsUuwwK9y+qUFQf\ndnyUNtvKuyXwJMafAsXx8KXtkfFxKZYI3rV5EoUrbPCsIxu4wyqr6ycH3L87\nmfeh/WpfvtkNQmTi3OMzzXxJ2rN9Dme4offsXBoOCaBb0AL7XJXiMpWdoYoe\nXA7pYaTqaNClzcytqtGcFFjMLqCxXClm6erIk9UCx6bgaqvI3tWAVb51/3PT\nfToRiID2BKJIw1YLaL2QuvIWJyULLCK/g4KUY3gS5J6+dqBWtac1zXRNp3w6\nFwX/U612zwSn+8oRNMW3EDZoSwoMZXCj7Un9Tlt184430f5JszBtRpsbCV9L\nQYghT3jzbBR4DswjV12QrUnwIFidV08Drq6M6rV+fUdegFSbbIDJtURPx0LD\nyRtMnH6qarqDKRBXAvBNUrljHYidBD57ie+uOu9cXphfdaWmWERs65X47u2R\nSYkD\r\n=NpBK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB6AdVjJwrWv5VWPKDFbM6YdcLZkNp0XBPUn3+PP2npnAiEAuutx92z8zypbUgc17cl3sNIrNcLnts6Azul6hrWeyu8="}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.1.0_1557979419664_0.5086196594985264"},"_hasShrinkwrap":false},"2.1.1":{"name":"@polyn/blueprint","version":"2.1.1","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","pre-push":"npm test && node pre-push.js","test":"node test.js && npm run test:ts","test:ts":"tsc -p ./tsconfig.json && node examples-typescript.js","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"pre-push":["pre-push"],"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"~7.4.4","@babel/preset-env":"~7.4.4","@types/chai":"~4.1.7","chai":"~4.2.0","eslint":"~5.16.0","eslint-config-standard":"~12.0.0","eslint-plugin-import":"~2.17.2","eslint-plugin-node":"~8.0.1","eslint-plugin-promise":"~4.1.1","eslint-plugin-standard":"~4.0.0","nodemon":"~1.19.0","pre-push":"~0.1.1","supposed":"~0.2.0","terminal-adventure":"~1.0.2","typescript":"~3.4.5"},"dependencies":{},"gitHead":"76516847fce2306d4bb9bb2d52a11851c8fe799e","_id":"@polyn/blueprint@2.1.1","_nodeVersion":"10.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-HYb2IAebDXaXk27szgRSknYAhJbCl6P+CGBX8XsqbjNRDdzCH/eGCI7rYoNi44gnr/9+RyIsthGEfYCrS7v4Iw==","shasum":"407916f0f29fef88fd4a127ec3795c936ecceeaf","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.1.1.tgz","fileCount":14,"unpackedSize":106923,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3OoiCRA9TVsSAnZWagAAj/oP/19BuSVuIPgi/gty9hhk\nTODM+nTLnmeEsLnX+XoTbK0Cwr20brKnzeduf5VRkKezEcDkyn91NVBxfE0a\n3uhnLGd4WbbMF27AiBeLcvFH+uXiT25q1zcFcjiu4U5sS1YOmNgisskIqltq\nesZDrT5p5W0dDfCqfx559q5qZlvsE5vnae3CXMX0h2qV/ROZP6jFR2r2kcfa\nHrQ35fzB2rpLaifj0LnU+AXXvVYze9TXgbjUJbEmwOabihNlu8+3j5o5JC24\ntu8Udc708LPIoxtQob070JgzvpvMUD0UigUHQchUEg+onO3AyrKiDeFr7JtW\nzrtvprEBo9OHSLyt+pdpJsM8LLBWZEwUpKnH4BzVVGxxW4bpDvb82cic3teF\nh0yXrTVk53Q/duQAO3loJmMpcWsMWqBFrGntPRH6yilAs8sVtLALTGp1Rizp\n7Ijq8WWTunuuUy9Jh5adDxr4ZktRFcR0G2V4y7DCOA5veomTbqHckvTa4fZC\n8R6Bo35YpRRF/bywtTSxy1suWRjglCVfIxOfPE1TLOYaAZdKB4OjU+0qlol8\nKCEEw0vaKcvC81J7W5tG3qB1Qfj4y2PDLS3dhjdGzDV9m1VYHlCPnW4S1872\nqegPJS4N0dNz+287iDxYU8+EeSgHeWSUKakLkXYdfDZLafiqKX2ycjOaBFrz\nHfOP\r\n=+XS2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCXeCqyRe5bXt+lVDTiQfMUQA6bkrGKzXOyvKMGLVCXPwIhAIWU08FLcYOM/xKFNCo+PgFaR4wBAPg9EkFh5sSkll6y"}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.1.1_1557981729836_0.44626926214182716"},"_hasShrinkwrap":false},"2.1.2":{"name":"@polyn/blueprint","version":"2.1.2","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","pre-push":"npm test && node pre-push.js","test":"node test.js && npm run test:ts","test:ts":"tsc -p ./tsconfig.json && node examples-typescript.js","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"pre-push":["pre-push"],"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"~7.4.4","@babel/preset-env":"~7.4.4","@types/chai":"~4.1.7","chai":"~4.2.0","eslint":"~5.16.0","eslint-config-standard":"~12.0.0","eslint-plugin-import":"~2.17.2","eslint-plugin-node":"~8.0.1","eslint-plugin-promise":"~4.1.1","eslint-plugin-standard":"~4.0.0","nodemon":"~1.19.0","pre-push":"~0.1.1","supposed":"~0.2.0","terminal-adventure":"~1.0.2","typescript":"~3.4.5"},"dependencies":{},"gitHead":"dd074489ae6d2d4944df8065f342d3996434f38c","_id":"@polyn/blueprint@2.1.2","_nodeVersion":"10.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-OLq1WcoNGC0jjr8//nPOymq0JWGBuTY5oLlqO0Yn/3B8Ycmr7Y0R/CC2jAUpVmhq2J7AFtKmpnCMAj2qAGPDsA==","shasum":"c062cabdd3029609b248e502f58624a980192db5","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.1.2.tgz","fileCount":14,"unpackedSize":107222,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3V1HCRA9TVsSAnZWagAA8dgP/0wEXsdCENR1B7FksnRe\nXqBMZbgfuOtB2F+XDm3PBs3WePSo5zk1dk1gle+IiJosEIewse/UcmPQ2dl2\nMkRhCPPWDcIaz6Mtl7QP26DyQr46ht3zCM/FmWO0ZuZVYCdW4+EopAt/65vu\n5cgBfqzQ3RVsdHmUgMmwu6y0EHEuwrOB4IXCMkeJEqLe/4YIpXO4HKXBu6ym\na8nwY8SWPVBW9fqToEV/KUSPE7xQ6d7M5hr3vkxKJoo1ciwW0EYY6r7Y+uGu\nnsYaG+mlktCnAs3EwhZFDUG5JXzWZB8Ly15OTpL5nB4oOs4IThleRlfNnak5\n82FbKffSQYTCheuAgQUYfcoO7D0sO6CXkRGGSvzDRHHkYEidsM3qX+ECdO1/\nTYqzETINhUCNZkKx5w9Q9VWEWy/4FWqqB70DSUGyiLKTZDNpee1U1p+8jr3W\n0hNStU5LNz9Awaqr85ApJ3t2l+w9U+9oghTmfZ+Usu+TUEssTlIISvxLxcMJ\nYtFic8jmetD7CSqOU3I2fh3CAX2nOFtytIdwFNGkcnsv2u9htvlfknzn4WNc\nfnHsjWTpc/lOZ60QOsio8DJ87/QRd0kycyJEc7dGka5sYw233Zfxfmi8qWB2\njfL1VpihHiMNil3uuaSlWXVtLE41B0nUFJK8Hbk5hKy2UOU4afpGyZTdUBBU\n+KR4\r\n=UwlC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAiHNE/IIUOgnBT8GgBknjiBOnOpKiQsI8AiUmp8SbfUAiEAobh+07Wwp5wJNSgMKLRijaeU20X48QmueFD51oydzXQ="}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.1.2_1558011206365_0.824920598856479"},"_hasShrinkwrap":false},"2.1.3":{"name":"@polyn/blueprint","version":"2.1.3","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","pre-push":"npm test && node pre-push.js","test":"node test.js && npm run test:ts","test:ts":"tsc -p ./tsconfig.json && node examples-typescript.js","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"pre-push":["pre-push"],"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"~7.4.4","@babel/preset-env":"~7.4.4","@types/chai":"~4.1.7","chai":"~4.2.0","eslint":"~5.16.0","eslint-config-standard":"~12.0.0","eslint-plugin-import":"~2.17.2","eslint-plugin-node":"~8.0.1","eslint-plugin-promise":"~4.1.1","eslint-plugin-standard":"~4.0.0","nodemon":"~1.19.0","pre-push":"~0.1.1","supposed":"~0.2.0","terminal-adventure":"~1.0.2","typescript":"~3.4.5"},"dependencies":{},"gitHead":"f4bef10058c592985c463dc73c7aae69365611be","_id":"@polyn/blueprint@2.1.3","_nodeVersion":"10.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-02VqL55/klX/32GCEejcMTWP8ouRMrl5viweBjVFpfruMdTa69DRch9kCqWHeTVpsHbJU0XLPBmNpVhAUzKWmg==","shasum":"71953c25b998a77d9bc607b6af703ebbc43a3711","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.1.3.tgz","fileCount":14,"unpackedSize":107718,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3sGICRA9TVsSAnZWagAAHSQP/inBqBSu8uWf3ymyh7y0\nyFiC6atLzS2hDYzECNLDQ4Pwo/CTiKaqS+gOFdkeTxfX7OkWautPWazs2hGo\nio124gMB3Qmz2Sua59yohmYeVZePbuSZEsHReKlTfWc457XRX32JRxUz4bAw\nFx2oNY8kJ/g+AXAsUO6KWk8Y44JbwMvTnFg+W480tbEMkQKcK4hELGsutOxr\n1gA7d0gvMROdif4l5GYGUvPM263l3n5Jd/KKONvtSWWHboCoGkpiQGx/1k0K\n4kT/eOTHK/IuJPiwRfv5zXzs+Zxme8tNk01buVHTgeFbZ0Z4I9rCL1I3YMHF\n5pNk9GVwSB8GhA6fyuodJeeXv6jlNCNCZPjrmW7gYgZ7dswBzgzccL1RI/Au\nOtsIMxH/zGmLQSJ0AzH6KL+jInhB5m94Kg7GFhaKqFfJovBC0u9Ovd99sJL+\nw6Uhnz4BXKsjgIeJmyeiTsOgLm7T7gOzbvxO5qpq+u/OqtFQGuswZnW2Gn52\nuxTzSide3DfC8VhTqP9nrZleQsZ28GRd8VDbEy/mxSXuSKA5jdcbXBYoVV6V\n7Sxrn2Bj7+zR8bKMbpD8j7kShRcxrZr9ZeQx2o0R/28vdGxefywRndq3F6Pc\nRtK/yneSSFDeemU7k3kxiZlwHMpOAAUTiqWDSn1BtZt6cxrsDSEbVuw4AWQ/\nuSoK\r\n=vSZm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6jBwjh9KTGYl1qaVcmGeaLTEKyQKnO+6vBz448ugmXgIgB+J8voWZvbZBfqzmwwO9B6i3oxZ6m6ZPX7IrDPvgpDM="}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.1.3_1558102407310_0.7389213878947924"},"_hasShrinkwrap":false},"2.1.4":{"name":"@polyn/blueprint","version":"2.1.4","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","pre-push":"npm test && node pre-push.js","test":"node test.js && npm run test:ts","test:ts":"tsc -p ./tsconfig.json && node examples-typescript.js","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"pre-push":["pre-push"],"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"~7.4.4","@babel/preset-env":"~7.4.4","@types/chai":"~4.1.7","chai":"~4.2.0","eslint":"~5.16.0","eslint-config-standard":"~12.0.0","eslint-plugin-import":"~2.17.2","eslint-plugin-node":"~8.0.1","eslint-plugin-promise":"~4.1.1","eslint-plugin-standard":"~4.0.0","nodemon":"~1.19.0","pre-push":"~0.1.1","supposed":"~0.2.0","terminal-adventure":"~1.0.2","typescript":"~3.4.5"},"dependencies":{},"gitHead":"d29262b712ae09851f1d5e1445ca0fdbe7b644ff","_id":"@polyn/blueprint@2.1.4","_nodeVersion":"10.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-jCSQOIS5m3e6IzIlOj43k+rt6e8YHRe1/RLY5e5XIo8dL5dXDjkCJKXUVgGy8jGnuE+fx9yl62QkbY8ZAALqNA==","shasum":"b289b7bac6a73c3e73d075162c2922dd5a455453","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.1.4.tgz","fileCount":14,"unpackedSize":109316,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4sobCRA9TVsSAnZWagAAqLYP/RO2tFkWXu27fpuP8eAg\nvoZRGwHh7nYl6Q8+jBMXoOswGYhBYp+QQQumo7XSO5Exvl7g6TjuP0u6v3H1\n8dSNESCHXlmZJKREQy5fpcHufhFK5Q20w1gtkEZyRnhomTz1bEqP3bsceTSC\n6MLRAq1+xCPTAVwAErpxaUQZQ7YpSAX5b54cHW+IjdxQT/ZHxQr6YfzosSjZ\nr2z7i3CEkZ00xiu4NWml6UZw2Cc66I79RbAuVDuzXBfC8Bzi2r6fdXFIQb0/\nfEKjUhkqhUgOkj6hmMxkDxBrPmZnNlultEn16TaNcv3sQ3nRMxLLQfxWVFjN\n91Bv8IMDlENd6Xvl7VHizNHq3Srqm6hOhSnHAPGjl/XEaZFUEyDTshg5U3RZ\n2v+zqYQeXPSKp+eTT24goazcQU9LN2Hr9mYeCZQ5Jc/0dHIhDwHT1jetp/q7\nZlt3bSUd/KvE99yAE3BD+dQqDl6vFPjgAIiMPTvFOJ3j1DmSWKBLtG/ii5dj\nYuhyDNRn4SnTxSOPif1Y2a1tg7dAK79bGoi3SO5stYmC2THlEc4XghaJwale\nm8TuDkVAilRW9m6d26c8AJtnMS8YrY0Xa8MovX/NAouG1z5uovkG8PnicQxH\nb6BtRQZ3pdsvrd1mszPIWo9Tq3eLRZrRSDTPrzqzDRizIMDO/MiGDIGbvuSX\nhRFf\r\n=DAFG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8yL0HeORDLjHbs09YCITZCHuYp2CerfAkCHj9iCpSSwIgJkM3DL++u0Ys+tuQEXVz0MMp7muWH5kjiyrGEwh7MQE="}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.1.4_1558366739089_0.1993192103384751"},"_hasShrinkwrap":false},"2.2.0":{"name":"@polyn/blueprint","version":"2.2.0","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","pre-push":"npm test && node pre-push.js","test":"node test.js && npm run test:ts","test:ts":"tsc -p ./tsconfig.json && node examples-typescript.js","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"pre-push":["pre-push"],"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"~7.4.4","@babel/preset-env":"~7.4.4","@types/chai":"~4.1.7","chai":"~4.2.0","eslint":"~5.16.0","eslint-config-standard":"~12.0.0","eslint-plugin-import":"~2.17.2","eslint-plugin-node":"~8.0.1","eslint-plugin-promise":"~4.1.1","eslint-plugin-standard":"~4.0.0","nodemon":"~1.19.0","pre-push":"~0.1.1","supposed":"~0.2.0","terminal-adventure":"~1.0.2","typescript":"~3.4.5"},"dependencies":{},"gitHead":"f6774b2817d951f7f8761391cd13aaa20d1b2bc7","_id":"@polyn/blueprint@2.2.0","_nodeVersion":"10.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-UnNpLUvWU8ggQFAmDV9q/0Zab3s8Fn8B42LN9KJ0dlfKuzatE2afZp5R0JUEj8jj7DaWnKR98qUxThKp8l4OHg==","shasum":"1b50d6809482a94456aa2eeee69a78518631d03a","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.2.0.tgz","fileCount":14,"unpackedSize":110367,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc6MO+CRA9TVsSAnZWagAAOtIQAIj2EI9iSJ8WraUo2UnC\nkZX3l7meHDrjLt4GsHzIEmUwvGfUWQ5ZhpJN/aO7oMcPRQwOv7JJTFblXwT0\nlUwuTWHpI3s/7ErvffTLiMyMJVa4xI7iY1Cu/HtZfyOAr2t+6v3h4L6HxJbA\nzm+kDn5wgvrbepk4Zdta1FsENWq9tzUUhHPnG4y/JxGILZ75hckYHYbAXKUo\nhtr72n+mbx/jVRR2/khBcwVQ0ZHHZY24ucFLjxdQXBmvQIjxK4aRl31fOfGC\nx+knpk32+fDYC2lSiiDO0czP/9+2qSSmZwjPxpx3+qYSyd1ih4cMqEcE8QZQ\n4YDXfgtHjMMgGA8jlv2otO5m6+LPxyUPUr9cfRyMfGtSPSg+mzcl1fpcjgRd\ni+bOX6opRkxQB4V9qcOgkCmOaOuXUEahCHTJ6wYk9ddtqoQpNVzQKg/jRwpG\nKnjoWuchFcYBXp2pkQToZBdPNu3odOhoncN2o56u9ry3sfNEMvaSlaxFy4hu\nVgulY+UEHY/KDKvuJ8LjtYEjCUZISrZSZ5nCfTPO2ZWkDc5PFZxPyeoIaDLV\nVEqAwXB+sl/KV+N/C2krTQQxs+VEv6V/OD0aotvcrMUcExlW1N0jCDdXRKIk\nFhXDSagbnufOxo+ef4jMnijW6w3ywBngedZ/T32AJwaVHH6HltZ/CXR2bbA8\n6OLp\r\n=EfKl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDknVmUhcYougkRUfsUJpc6EmJQBvE/5xsEQRc5t1z5zwIhAPvhkXAmlCvbJihdn07dBSsMQrlIr0T3eRA9PsxpKacL"}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.2.0_1558758333477_0.6794399968597609"},"_hasShrinkwrap":false},"2.3.0":{"name":"@polyn/blueprint","version":"2.3.0","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","pre-push":"npm test && node pre-push.js","test":"node test.js && npm run test:ts","test:ts":"tsc -p ./tsconfig.json && node examples-typescript.js","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"pre-push":["pre-push"],"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"~7.4.4","@babel/preset-env":"~7.4.4","@types/chai":"~4.1.7","chai":"~4.2.0","eslint":"~5.16.0","eslint-config-standard":"~12.0.0","eslint-plugin-import":"~2.17.2","eslint-plugin-node":"~8.0.1","eslint-plugin-promise":"~4.1.1","eslint-plugin-standard":"~4.0.0","nodemon":"~1.19.0","pre-push":"~0.1.1","supposed":"~0.2.0","terminal-adventure":"~1.0.2","typescript":"~3.4.5"},"dependencies":{},"gitHead":"0701b4cdedda34eec4f6c818e319f786b92c0c97","_id":"@polyn/blueprint@2.3.0","_nodeVersion":"10.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-bWlRBKXNsvLVwneL7yYDriIMGxngyE8YUy7EzKdLw1VNgO211O4jT4uITbYSP+TmmsB/Q01hNTX6uI63qYr0fg==","shasum":"c642b8fe6ccc353c656b5c7144eb5f4740336f50","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.3.0.tgz","fileCount":14,"unpackedSize":113562,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc6VLPCRA9TVsSAnZWagAAERAP/jBy4KD0OdYofZGr2JF4\nYRxgwT7pAzrDYzKjKBu1VhvoRMcv291ImuTIOaooeaoOKtToWc+4kPOtTAcL\n09CS0Qt4kHlqiy0QE05NBQGT/9kZ0fyfGUU3EzpPzx+pxHAKzXiCc75MQmKR\ngVgadaD8343x0rsdYSElPfxjjmDuMhn4hPvVWcxBNiyla0umBE9dFuCd0UJE\nM2iOVA2bx2BQjHjlnZE0y6r5kMET0rpZdqQ3qT7YHY81WSoaavY4pPbPl+wd\nIgKOjMmaPErbCm7ryvqFsMLywhEV1TiB1Z1VaR7ee3wQfQTgTcldze/2VAZv\nvKkofR9zg1gU9+Ua4OdXS0HlGBvcd1KKAnoYuCSxsk74LaBIIhswfXyB7mVP\nlGFjL+qbVGcki1NxhzTsDNww4sNJaKzQJNYUHO56qY8B87xsZD5rLjkaLmG/\n/CYl3rI+P0+cD5xTcT7OVKik9FvEEG0VOzOfpxpbdwo3vKK3k84jhWA5GvSY\nrYYjUEQEv7gvsvUWmL96ABGWCSlktEB5vGUCDcCwfvgU6EZDvBoXP8DVBR9R\nJJUST6vNdhbik6D/t+dCDr5oFQ7XvqarFc4kMZOQHaTyj6s2rC+9s1STnE/6\nL4R3rTWFxR+lBBYVxzEecDXLdknHnmKg5KbQPx/mejr6GuDknW7mD0TeiDk2\nrENy\r\n=+BP1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRVbAanshJx0EtJU61D9mqtXX0xkpdXIrU0xDsmrFNJwIhAIVuZvLIkIbG/BE7NErAFJCiL25E+5HUY8DxGuluGifV"}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.3.0_1558794958925_0.9786477235261464"},"_hasShrinkwrap":false},"2.4.0":{"name":"@polyn/blueprint","version":"2.4.0","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","pre-push":"npm test && node pre-push.js","test":"node test.js && npm run test:ts","test:ts":"tsc -p ./tsconfig.json && node examples-typescript.js","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"pre-push":["pre-push"],"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"~7.4.4","@babel/preset-env":"~7.4.4","@types/chai":"~4.1.7","chai":"~4.2.0","eslint":"~5.16.0","eslint-config-standard":"~12.0.0","eslint-plugin-import":"~2.17.2","eslint-plugin-node":"~8.0.1","eslint-plugin-promise":"~4.1.1","eslint-plugin-standard":"~4.0.0","nodemon":"~1.19.0","pre-push":"~0.1.1","supposed":"~0.2.0","terminal-adventure":"~1.0.2","typescript":"~3.4.5"},"dependencies":{},"gitHead":"4ce148914317bd5a4f42985bb6aeb2545b878e3f","_id":"@polyn/blueprint@2.4.0","_nodeVersion":"10.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Q4ImcAWHHrfuiTltzwTwzomAFx/cDZxND0fOKLqG/tXIs2k2sjhjbloaZetDXzkxsiFT/DNYPoaEv1tVqr9ByA==","shasum":"df0f2458c7c81266a487f6cda0a0c076204eebd0","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.4.0.tgz","fileCount":14,"unpackedSize":120560,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdEbQrCRA9TVsSAnZWagAA4b4P/jeD2brwr4dF9xZ7W8rm\nrn33Igb0fDnoNGBIdaPQH6qw6qgmM6K1M3rQZjq6Wix9xtycG5XOLHKGfJOX\n0dj/V6MHR30MV1FHX/InqlyKJpYzV81B4KBJ5vecnXtrytOArtK7MKpI26Vh\nziH8PlcNdY1cfnt52FxZW5LR4UHFH+XQhIT6i1HadwDaLXjFEpPhbNWw2gIv\nvR1u/ST+phegBX0Phr89sWzbHtQGsh0W2vHaUY3U7OeDs1iFG3kB1Tv/Nn+r\nyu6yAazbokC2AjdF/FAbz2jUHHbaim46/UwFGxtdg0FPypgy25ACUOYZzzce\nLxMsfqODq2B2L2QzGualXmrUSn99aIwWtFa4SxSOU67s5maS/ujaYYb4kyUf\noA4WonSp0aNJiM8zP0Rf95Rebpe6jUmABBAKbqQg/0SbLFyRbKvm1t9n4Zh3\nldruKFdTOXQ4ilyPp8bpS9ccrFc5kFMt2YSBWvgWnGk8vaIAjwfP03NOauuJ\nt/uTKWzMcFIwG4jF7JCY5sgB3WKvY5lV9W/rdMk7TFVGs2SES6+6Pf2xgOrS\nUMCIA3+7hPB0tC8JojmXkUPiXzRUmCbreB4xiApx/WpQxniaghvx7Z/wWAEA\n4N7CdtFjDjWCz9YfCa8u9LlBtaGlg+d/Yw2CJP0kYCEpnfn0yYu2ZxM1BioD\nTbNo\r\n=lOuW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDcBy11X8rQPTDYlOV65v+2/4lTTSFYMxkUuyfD9i0BZgIhAKu+JZc1Ju/1xiDD5dkJS9MJ4PW4BNpxmrYLOBFixmLw"}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.4.0_1561441322923_0.7544482301032842"},"_hasShrinkwrap":false},"2.4.1":{"name":"@polyn/blueprint","version":"2.4.1","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","pre-push":"npm test && node pre-push.js","test":"node test.js && npm run test:ts","test:ts":"tsc -p ./tsconfig.json && node examples-typescript.js","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"pre-push":["pre-push"],"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"~7.4.4","@babel/preset-env":"~7.4.4","@types/chai":"~4.1.7","chai":"~4.2.0","eslint":"~5.16.0","eslint-config-standard":"~12.0.0","eslint-plugin-import":"~2.17.2","eslint-plugin-node":"~8.0.1","eslint-plugin-promise":"~4.1.1","eslint-plugin-standard":"~4.0.0","nodemon":"~1.19.0","pre-push":"~0.1.1","supposed":"~0.2.0","terminal-adventure":"~1.0.2","typescript":"~3.4.5"},"dependencies":{},"gitHead":"14ee0625feaade2fe4e2ad622d6a8cf9aab7d5ea","_id":"@polyn/blueprint@2.4.1","_nodeVersion":"10.6.0","_npmVersion":"6.10.1","dist":{"integrity":"sha512-egpGS3uN4RjgOemQC47PipCIzuIePC91zBNScS0VD/8oaHup79RwIU6rCpJnNb1yMMObyJw6YSvmfYhFKUUQOg==","shasum":"0288abb1a5eb27886a4ab9a76b9d786885e5cb1d","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.4.1.tgz","fileCount":14,"unpackedSize":120560,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdKfpUCRA9TVsSAnZWagAAcVwQAIFf1f0Yo2A3UiNX04ak\nmhGnlwO1rnILO8hyN74u7mBsaDEhGNfk934v+CyZBGjuikMNbRSqce/nNKhB\nVCYP5IquRRJTrkF4IGAgCuB8xgYkQ7ozEnwP9PGOz0nUe4ujQQU2i7qZDbkS\ndCucwJ2Rpdw5pfGnvXjMy0w8SmfKO53IeAPux+Y2XFel2xzSH2QUEYyOnV7B\nMuOlK4jP0qVPFH2N1injxxv46lTMwHY3NLBkIBaMPzvs0aH0Ok4Q375RGaEC\n5sL1QShcwQn5rJG+LLVcuUQ2+LjYXOBv53Q7RteN/s2T/DxZJ9bbEjbyfQBK\nT6gQEj/lQSQ9kyQuntL4O1AQ2OPfK1feqy0He9uiJn5OEIBRjs4uqZG/ICFF\nYuu1gtoW2wjL9h+e+NyWI2LgMRjreKe2aRkCwv8x/m76NqRk3K21EgNkCW+L\nUdYZMo0HzZ5hagUa+oud+bXv8CvRTyO3F4DRe7XxV7HDi+dM/tHArksP4aoA\nKxZYNxbA+4IxDrolNQneUMz4yUSkwkLxYJyfAPMHEiTlW6+5fxggSZ4qCB2Y\nMBChXZNiReauaXLPQaGrOlXLC/Ig9lK37PYX1awMOELt85SYQWLt83hVAZLe\neLuWIwXIatDQjiKbQKuZjc35lo/Tf7CDl0CJB12NHLfddfZc7c7pM7EH+iHC\nU0jC\r\n=KyK3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFV1VQMB8OO+dkxUgsnZF8M4VTVugRQ0Vd1MYnN9e/uKAiAEtTbJOFOz5uEbsO7p65TMNepS6FFmMXDEMYU1RUKkWQ=="}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.4.1_1563032147414_0.567665978545401"},"_hasShrinkwrap":false},"2.4.2":{"name":"@polyn/blueprint","version":"2.4.2","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","pre-push":"npm test && node pre-push.js","test":"node test.js && npm run test:ts","test:ts":"tsc -p ./tsconfig.json && node examples-typescript.js","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"pre-push":["pre-push"],"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"^7.5.5","@babel/preset-env":"^7.5.5","@types/chai":"^4.2.0","chai":"^4.2.0","eslint":"^6.2.2","eslint-config-standard":"^14.0.1","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^9.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^4.0.1","nodemon":"^1.19.1","pre-push":"^0.1.1","supposed":"^0.3.1","terminal-adventure":"^1.0.2","typescript":"^3.5.3"},"dependencies":{},"gitHead":"e81fcf4e39be4ec0159e4ad91fa7a3d5e9586796","_id":"@polyn/blueprint@2.4.2","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-bPNTiEoZQOup0rpifzbQaPSwbeUZe4K2kBSzA1UIaVY6gmdjIjzwzBpZEwlIDokP4LL2yjqrQbevcTPl9jy4/g==","shasum":"50b07b1e1ab9e5168e10b566aaa87e7c7f20acae","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.4.2.tgz","fileCount":14,"unpackedSize":121249,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdZTUtCRA9TVsSAnZWagAAgKMQAIWpAUwRPVK2U12c5qb/\nOaYi1/N3areincY4WMeiLb2Hq/zqrW1szShrXG+hyUxevN+mRbYGPmDzxtAQ\nqdY2536rXP6NBrs9J5iLMmbrB+EeZtZe2oU4953mpAoAzhcoBSUchaZhEKEI\npllPRAc3l1tP46Ds1LOB3GB1fERk2YfR3ZMI5MJdU6XHt0/vXWESTHtZ0eKY\nh8/tnB0wNPEtBrewSLE3MKpGNQuK7xoFOaVUXskdxYiZBHK4t3TZDXnnIB4o\n21ZmCs3lUMIOEUgFqUXATk/tcv1MBQzgUL7bQtaQN5sEo4FI0tjusHMgzDUN\nKsPGlca0AHdmQ8ocw+lQrROpOrayb4rnJGztO8NPDG1PRkvZykvZiXcYScdS\njYkS4cKnh4RVr6FTGaSi7P9By2Itk8hWHBTsFbp1kZwoEsVnlmNL0M62LPDz\nMyCRigJ+DCMN+HjoLIk3Oa93CdmFZ6MgZcuV7lGgYnNJxnBhurmNCs/Tcert\nEjtwMcaf6IXPBuFAQOzkQHjlpfpdSSusb4tIxu0wEqFHTdM3TJm6qzucvNA/\n9jYwa/mm0IG3Ze2CJH91ixsEubjh3PJJfhLyGt++lHuo9kp0dl8MFIe6D2Tb\n9TXwAii+S4fRkf51ilPii7Y1vRyz7ReAd47hXS3wDgemjb/uLzObdPodXDeR\nAo+3\r\n=Rkpp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCreO3iRSx9lYDDJWWM2A2M8WhJ8NbpU4EGTnne+8otcAIhAP4qGM6xSFHbvsmFyom1Uv1XEzfOsf+RAmRgvUF/WiZt"}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.4.2_1566913836261_0.00858907139927556"},"_hasShrinkwrap":false},"2.5.0":{"name":"@polyn/blueprint","version":"2.5.0","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","pre-push":"npm test && node pre-push.js","test":"node test.js && npm run test:ts","test:ts":"tsc -p ./tsconfig.json && node examples-typescript.js","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"pre-push":["pre-push"],"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"^7.5.5","@babel/preset-env":"^7.5.5","@polyn/blueprint":".","@types/chai":"^4.2.0","chai":"^4.2.0","eslint":"^6.2.2","eslint-config-standard":"^14.0.1","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^9.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^4.0.1","nodemon":"^1.19.1","pre-push":"^0.1.1","supposed":"^0.3.1","terminal-adventure":"^1.0.2","typescript":"^3.5.3"},"dependencies":{},"gitHead":"afb60769442a86333d46cc5f55e96d2bfd9c098f","_id":"@polyn/blueprint@2.5.0","_nodeVersion":"10.16.3","_npmVersion":"6.11.3","dist":{"integrity":"sha512-aUiCz0rA2E2Eg5WZjlzGdQ5ohBncxZZ12zWvUheZ3WD0XFq8Uh1WBm0R7WQo/Y9TDVxJc9a/UUrVRC5x3HMYEw==","shasum":"32887ed10fc3fd565532327ce37a6b74bade25d7","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.5.0.tgz","fileCount":14,"unpackedSize":122503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdeS1lCRA9TVsSAnZWagAA1mQP/1Bv88g6JILBslhQL2MX\nasAzgaetqVfRAfgaL9JaRfoogo2Mwi1zxSlAK/OloHCjje7cfOejkQtOPI9E\n/kONS2POHE4B0nbPBZ4I83z6gRtCm8tRVl1vZkdK1Ghjwotrm5l0q96BJb/i\nk3szbJCLldOwIlAPuA8C1RJPJo/VHReQzjep8yXLAMmMqSwQYQcoboupLhly\nNSedDpokhp19+RvW0+GqbHcWw/q8iyv1ozF/YCRea5pniOyw6vtKRRIHI35G\nDFsvdlC/h+JbHUo65epZIlPk8e0Kx+HuYPzVFJCPBOzWcRQ8QNYjwTi1HXup\nRE0TY+S1RBexWWIkFLVP7p5UlcMUydVVBLUQlAsFslVCl5Y+1vurutBGcPYG\nb9Fz+QwyyGSvscCK+9W1Iq7ybJ91ztJGOp7CryV8SuU7KE9y+RhPKICnIEly\nrb0PN7s2m+2lwCUDzjvLcF1tVW0uEjpNrDPVme4pPR4F2hEvSARRDx/6V5pR\nUxr6w2ihNpeQLgAIl5Ov/wfeYywijCeF8NriSxCioaJu4JP2THREO7tWyVtW\ni6XVfayIxFpENJaoYGBr/2WQbE2ckxW48Vv6U/9SRgO/hziZ49znDAV1wKNz\nqv5JWPXodKVbsNA1SwrJeM1qhj+kA2GManoUii+ZHmO3rNpyFdVGAxikihXj\nZ5Oo\r\n=Cw9R\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCE8frlnV9Gb4sM/ImWzzkHXu4AglK6FGZh34ISNV1p/wIhAM6f+ozhtbClw84oDgZn1U5kQD+HBLRqkSNCRbfQJqGq"}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.5.0_1568222565029_0.5886409135477497"},"_hasShrinkwrap":false},"2.5.1":{"name":"@polyn/blueprint","version":"2.5.1","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","pre-push":"npm test && node pre-push.js","test":"node test.js && npm run test:ts","test:ts":"tsc -p ./tsconfig.json && node examples-typescript.js","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"pre-push":["pre-push"],"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"^7.5.5","@babel/preset-env":"^7.5.5","@polyn/blueprint":".","@types/chai":"^4.2.0","chai":"^4.2.0","eslint":"^6.2.2","eslint-config-standard":"^14.0.1","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^9.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^4.0.1","nodemon":"^1.19.1","pre-push":"^0.1.1","supposed":"^0.3.1","terminal-adventure":"^1.0.2","typescript":"^3.5.3"},"dependencies":{},"gitHead":"40dfeac331d40f3ed49da38e80adcb38a1ced37a","_id":"@polyn/blueprint@2.5.1","_nodeVersion":"10.16.3","_npmVersion":"6.11.3","dist":{"integrity":"sha512-LT4m+ndCzWFu3sNs7yAnHDRtRvd3Y3JojF2M+hacePu7a0WYcv3QjsxuMg2dr6CG+am4opLrCzlunjITK2lm1A==","shasum":"a765e22fcee9f612d2491e07c867cb05f3af1fec","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.5.1.tgz","fileCount":14,"unpackedSize":122595,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdeTYvCRA9TVsSAnZWagAAglAP/RYSW66IooSK3T1GgF2K\nW88Kvk9hehSEeoAkj1a6JloLRxnvhOOCCvQQgyD9nnN9JbEWA+VLqr64V8//\n7BZ5DbdQLkPSK0fieDKUVWbeDj4iceI1jqR/G5eMDrjz95GGKwPwFrEhRV3l\n/9U5NW3x0efsNpKPAIlY2u4a8CMwLeYtHwUgV0Vpl3/BwyQd7uVYpumH68TB\nrmkfOx7Vg0aznisQJ/fov2RMv0N4Z94DE+ah/vRNV1zqwsVaGueg8JiwcwmO\n3dfgA+FgtvPbGbpMC8zdVNR+hLxBcAw5pXslJsL1pJCQZ9VeMTNBpyF0n7Yj\nvXUEasmQ9er/M2cg2cj/swW6HR3Qoj2c66q4QrxXxvl+Gmwcrrn+g8fm5are\nQFnpUD3TWFD+PXgsJAlKXatuBCLQ+ovfujHMi3PHNTufQDQWtGtOgZqhj7on\n6OwANbdST6yrPK2uFqG0r95Z929Wl/IwJD4Pz8A6gnnzjWtySzqqatS6R0/u\n7Atlup/P3n1MDoMwV59MmxhM+pjD7ctZU+pw9OP3I4C7nTuJPvquns0zjp4f\nIMezURdSf/YAqFZ89LpXBMz7Oxm+ocINC3e7OmObSBSHnoKAM4tC5DEiH40/\nG9/UI+u/mi5BeMH4qB4FlGzGlhx2fhsWZp1o3JD78jLrrYcIy/5iJkKy8xli\nBoD5\r\n=yCyS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB4qWBwldG6eVB30viDWe19QkAzTKiUFaqJ1th8ZxQBhAiEA3aJXanjmwsIdJpC5gUnvqwlnifgjzN2JMzvI5MVYBVs="}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.5.1_1568224814308_0.33421564674458293"},"_hasShrinkwrap":false},"2.5.3":{"name":"@polyn/blueprint","version":"2.5.3","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","pre-push":"npm run lint && npm test && node pre-push.js","lint":"eslint .","lint:fix":"eslint . --fix","test":"node test.js -r nyan && node test-browser.js -r nyan && npm run test:ts","test:ts":"tsc -p ./tsconfig.json && node examples-typescript.js","test:coverage":"nyc node test.js","test:coverage:ci":"mkdir ./coverage && touch ./coverage/lcov.info && node test-browser.js -r tap && npm run test:ts && nyc node test.js -r tap,summary && nyc report --reporter=text-lcov > ./coverage/lcov.info","test:coveralls":"nyc node test.js && nyc report --reporter=text-lcov | coveralls","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"pre-push":["pre-push"],"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"~7.8.7","@babel/preset-env":"~7.8.7","@polyn/blueprint":".","@types/chai":"~4.2.11","chai":"~4.2.0","coveralls":"~3.0.11","eslint":"~6.8.0","eslint-config-standard":"~14.1.0","eslint-plugin-import":"~2.20.1","eslint-plugin-node":"~11.0.0","eslint-plugin-promise":"~4.2.1","eslint-plugin-standard":"~4.0.1","nodemon":"~2.0.2","nyc":"~15.0.0","pre-push":"~0.1.1","puppeteer":"~2.1.1","supposed":"~1.0.7-beta.1","terminal-adventure":"~1.0.2","typescript":"~3.8.3"},"dependencies":{},"gitHead":"6ee579a8a21325a1d9272180e153aec0e6726da9","_id":"@polyn/blueprint@2.5.3","_nodeVersion":"12.16.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-Ypxvv/CtqQBlsc11MjCzhzFaBDe4iu39FzF5v4mQkyDJvcBg6/FjcXOBs3c0MlB3q2/gD+Jqd7KTKNYwZ3uQKg==","shasum":"4a2a719db40199da101707a5f442c0efbf2b4c2b","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.5.3.tgz","fileCount":14,"unpackedSize":123215,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefCT7CRA9TVsSAnZWagAAOIUP/jFqpJs6O9HKRzHhnCNn\nRs6GyKQ6r0dPMcarTTpSXXyXOObFmtI0F5qQ1i3nv1C9wNahkcYhRSo0pPYx\nu1S00WC0XQZh0jsdCJQAWQxKbGX5fpPpFrg4kL2aoFglV4BzT01DWJ2eIXJP\niPvso3Qf2JxUBaAbbRzXi5d8T0TtX6Vh0uBt7j/7F+A3GnS8CccMwRX2jcOO\nQmSUy5wTg6Rw5Okg+3SQbdUR7X77YaLzxa4Bl5GIkrqKr0NjJMQv4bPbicfD\n8idZWmxjJkt3IW35q78Q5UbSWPIR1e3u3Jr2VKiaorFjkjQFs1zWzD2pkoS7\neb/1wwnl+Iz5r9QoL9KbBFN4kogj4i+YaqegtCtf7X+L2IgyUFsqXlkyPN09\nwWic76tvfEQ4GBFl6/Sif2+ODq5/WIvN1gpdYMfUdaDie5DEbDTHjpo8IP55\nT5WnPvyHPBFudYBm86Vw4SL/sP2g7NfCMoBpDLYdmzVcZNJijnu/Ty0Zr7s+\nqVqnKWXWfIE7Jmzg085xuJIIABKCgpUOjL5ugxA2CPSr53aEeqYl3t7zLjEW\nzHJxiNOW9CCVgMWj1Nd6noeCvL/k5OsM6tnCUL2DymJX7V4RmG1SR1smxUTo\ncJ6SJdoxZYg/PTvMd2FXnwGEyW9auAKwd/603p33L8GJ/r0RI+6hvePckEaB\n1stb\r\n=Z0bu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwcjp1bHwiN0D/n/o5PoVfvyi7A2OEiiXDLoxH2AxHHwIgWTPX13noQWaIjpHpZkWG8ULUHZG7kEeIMJBcI0PZFcA="}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.5.3_1585194234576_0.13640470923819192"},"_hasShrinkwrap":false},"2.5.4":{"name":"@polyn/blueprint","version":"2.5.4","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","pre-push":"npm run lint && npm test && node pre-push.js","lint":"eslint .","lint:fix":"eslint . --fix","test":"node test.js -r nyan && node test-browser.js -r nyan && npm run test:ts","test:ts":"tsc -p ./tsconfig.json && node examples-typescript.js","test:coverage":"nyc node test.js","test:coverage:ci":"mkdir ./coverage && touch ./coverage/lcov.info && node test-browser.js -r tap && npm run test:ts && nyc node test.js -r tap,summary && nyc report --reporter=text-lcov > ./coverage/lcov.info","test:coveralls":"nyc node test.js && nyc report --reporter=text-lcov | coveralls","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"pre-push":["pre-push"],"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"~7.8.7","@babel/preset-env":"~7.8.7","@polyn/blueprint":".","@types/chai":"~4.2.11","chai":"~4.2.0","coveralls":"~3.0.11","eslint":"~6.8.0","eslint-config-standard":"~14.1.0","eslint-plugin-import":"~2.20.1","eslint-plugin-node":"~11.0.0","eslint-plugin-promise":"~4.2.1","eslint-plugin-standard":"~4.0.1","nodemon":"~2.0.2","nyc":"~15.0.0","pre-push":"~0.1.1","puppeteer":"~2.1.1","supposed":"~1.0.7-beta.1","terminal-adventure":"~1.0.2","typescript":"~3.8.3"},"dependencies":{},"gitHead":"a6d62ae50dc5a1413612b2351c719f49052721ac","_id":"@polyn/blueprint@2.5.4","_nodeVersion":"12.16.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-ZF5beugLT07cptk7fAnx3QeAo1CSOfphwMHdNN58eHFQdJfVrVWW771PBhQQK7cVd+jk6IIA8umHPQ2zOdZdeQ==","shasum":"83911f341b236c51fe2ca4ab51e7a69c4ec8ea1b","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.5.4.tgz","fileCount":13,"unpackedSize":123170,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefDouCRA9TVsSAnZWagAAAe0QAIHBjGjecWw+gpjuZz6X\nLKPjbYkrbADBrLztfVlv4Lp+FlXXnJDAzu51OOOEmKutrQKT8e1AcO39OjuC\nxPSymFi/VDTJ0SRw5nNQtbwljE7+eBBNWV8PberM5ovkwCKa11NOVxJAEzhB\nDmbWEOeU/0q+If9I2jkE4DfSJrlx6JdFIMtvcSn4mCjwsujjZCgyzFIqpbU2\nNp5Z1QNqbxGHRCO/PvMbr9i6Q/0bjhEyNFhP9yFbmtrAePHm0oRwa5CF1Gdh\nu4viucudPnYNkLCwsnZueGFr0KgGd5sritvSqS8fznKSBca8fzIhxiy4zcU5\nQsV9/x0S32lhXn+e8pGfyzPBxR6o5uhu/lt/xwUfpgV/uc+cTlDndZE1XCTw\nwnrRwNQaUtD+CgqmPP6+JfTK5QWYCINfbvp20ZP/JiP96rHbpEQgcs2ZWWej\nbjVyyJK0Z7f9RPvBEuiF+E3l1mP8G/Pu3vs352kDejedrAE69PlHf/yadnin\nVHOawsOaXGfTdX6Aunb+JvvlpS4g6NfYx0V3oW1RFU7/Rm+qstRvpIReNIOI\ndgmMKcNEz7/2ceOPWCe8nnZLJZViy434VePGXP4uXkL8WNdl1qjLKbmlVuE8\nmOQ5ouS2fsq35HT3C59OJMp9r8uvEwvOEw/NYppLmZ3Ap9LYl7+Q9lyMlatb\nk7kd\r\n=Ry3E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEgu2jhADPsdWk8GKQoRvOeel8sU5+xKtvbZLvyFD4HzAiEAmfTm1ipiSHW+ciqwyBeOHpZRxGJMIan8EUhMQIk2+x8="}]},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.5.4_1585199662149_0.2536798266965916"},"_hasShrinkwrap":false},"2.6.0":{"name":"@polyn/blueprint","version":"2.6.0","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","main":"index.js","types":"index.d.ts","scripts":{"build":"node build.js","pre-push":"npm run lint && npm test && node pre-push.js","lint":"eslint .","lint:fix":"eslint . --fix","test":"node test.js -r nyan && node test-browser.js -r nyan && npm run test:ts","test:ts":"tsc -p ./tsconfig.json && node examples-typescript.js","test:coverage":"nyc node test.js","test:coverage:ci":"mkdir ./coverage && touch ./coverage/lcov.info && node test-browser.js -r tap && npm run test:ts && nyc node test.js -r tap,summary && nyc report --reporter=text-lcov > ./coverage/lcov.info","test:coveralls":"nyc node test.js && nyc report --reporter=text-lcov | coveralls","watch":"nodemon -e js --exec 'node test.js --tap | tap-nyan'"},"pre-push":["pre-push"],"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"~7.13.14","@babel/preset-env":"~7.13.12","@polyn/blueprint":"link:","@types/chai":"~4.2.15","chai":"~4.3.4","coveralls":"~3.1.0","eslint":"~7.23.0","eslint-config-standard":"~16.0.2","eslint-plugin-import":"~2.22.1","eslint-plugin-node":"~11.1.0","eslint-plugin-promise":"~4.3.1","nodemon":"~2.0.7","nyc":"~15.1.0","pre-push":"~0.1.1","puppeteer":"~8.0.0","supposed":"~1.1.0","terminal-adventure":"~1.0.2","typescript":"~4.2.3"},"gitHead":"26e4a80ae0d5a7039328b2389567beee027147d2","_id":"@polyn/blueprint@2.6.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-8WFzs2G8IVCuTGtO8NBbn7yiIwdZIac5/9QrqSdEA8Jobum/k0sHERbO2ayrl655svMDBIR3IeDC9mIAw1NEzA==","shasum":"95b7939b7e0f675f804f074c76389ffd90f731bc","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.6.0.tgz","fileCount":14,"unpackedSize":264143,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZiHYCRA9TVsSAnZWagAAHi0P/0AE1N6vbCSQyIQcCUwH\nxbq2a2zbEYONSiSGq/fuGna5BfN0V5WjN5QtTBnS7OJ7g/u+/JqV+S5LWvmZ\nCrtyIBJU+6dlG2LoUwU33CwSzle+kudBLh6hNN4oHuoCxwTEvD5rSp0/zHMf\nWQDdBYQ7OxYVllx50jQxLP70VafTYIL8qykSwvm0YPqltsjJsMVilHLZ63uQ\nbGdtA2iyy6etUlNjNJgCRI6gq0sN6r9UdMMY2ovBm09Jh8vzexdngIFF8p+c\n14WrwefVTYqwIoyyBh7FuNI2b/nYglibk2VPFfoJG+0GzIbl8QpMl571DRkH\nxhabAdzKZ00jQ0x/PYTVst8Q1Du/H7q9i5zlux7xBVv8K4Nl1lfMryz1reWL\nsAVHbZ4gtXtM8ujfmfVoln5mwfAGJfXu/sGMqrUnOgsjqSg9wPg1aMSiv00f\nc31ijky4af4RZ4LtNiYW52r2P9/jyU2fnSuLmtvCOKGBWdPRGAGAnBo0mfW6\nb0NDvtZC4gEU8Yhzg1OJCqUg3LF4XnVZPlHKJvsSSgk6AqUntTPuUnEtwp91\n6OM1QhGqZxl8KF+KDnXJqHZBNi7w0SBfq0jSW36zY9rOk6lSLL0cMOkDn+Yl\n17YsIY7e5lBZi0Wsbi2gruIcwu9239KvhBWJwB2Ay4Tr9Pxyot+c9wsRboEw\nWerU\r\n=d63K\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCnREJBVzogvFKlem9idjZ8fws6nxKfPrPm0YQZJnhTzAIgaD3uKfFdS4A5CDbsN/A08Yq1mCotrWbU9gSGTVQDRSY="}]},"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.6.0_1617306071771_0.3416117113879107"},"_hasShrinkwrap":false},"2.7.0":{"name":"@polyn/blueprint","version":"2.7.0","description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","types":"index.d.ts","exports":{"node":{"import":"./index-esmodule.mjs","require":"./index.cjs"},"browser":{"import":"./index-esmodule.mjs","require":"./index.cjs","default":"./dist/blueprint.min.js"},"default":"./index.cjs"},"pre-push":["lint","test:ci"],"scripts":{"// dev":"json comment =============================================","build":"node build.js","pre-push":"pnpm run lint && pnpm test && node pre-push.js","// lint":"json comment =============================================","lint":"eslint .","lint:fix":"eslint . --fix","// test":"json comment =============================================","dev":"nodemon -e js --exec 'pnpm run test:cjs'","test":"pnpm run test:cjs && pnpm run test:mjs:default && pnpm run test:mjs:exports && pnpm run test:browser && pnpm run test:ts","test:ci":"pnpm run test:ts && pnpm run test:mjs:default:ci && pnpm run test:mjs:exports:ci && pnpm run test:browser:ci && pnpm run test:coverage","test:browser":"node --conditions=browser test-browser.js -r nyan","test:browser:ci":"node --conditions=browser test-browser.js -r tap,summary --no-color","test:cjs":"node test.cjs -r nyan","test:cjs:ci":"node test.cjs -r tap,summary --no-color","test:mjs:default":"node test-default.mjs -r nyan","test:mjs:default:ci":"node test-default.mjs -r tap,summary --no-color","test:mjs:exports":"node test-exports.mjs -r nyan","test:mjs:exports:ci":"node test-exports.mjs -r tap,summary --no-color","test:ts":"tsc -p ./tsconfig.json && node examples-typescript.js","// coverage":"json comment =============================================","test:coverage":"nyc --reporter=text --reporter=text-summary pnpm run test:cjs:ci","test:coverage:ci":"mkdir -p ./coverage && touch ./coverage/lcov.info; nyc report --reporter=text-lcov > ./coverage/lcov.info","test:coveralls":"pnpm run test:coverage; nyc report --reporter=text-lcov | coveralls"},"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"license":"MIT","bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"devDependencies":{"@babel/core":"^7.21.0","@babel/preset-env":"^7.20.2","@polyn/blueprint":"link:","@types/chai":"^4.3.4","chai":"^4.3.7","coveralls":"^3.1.1","eslint":"^8.34.0","eslint-config-standard":"^17.0.0","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^15.6.1","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^6.1.1","nodemon":"^2.0.20","nyc":"^15.1.0","pre-push":"^0.1.4","puppeteer":"^19.7.2","supposed":"^1.1.6","terminal-adventure":"^1.0.2","typescript":"^4.9.5"},"gitHead":"1bf69253f9e2f87a42f440f0a43db16fe7816e75","_id":"@polyn/blueprint@2.7.0","_nodeVersion":"18.14.1","_npmVersion":"9.3.1","dist":{"integrity":"sha512-stT0ZnqUoD4MvH1p6mzXiX7R8z0WlJGjNnC8IQMMZwzpTEfgLzH5SE2JpHEKXr58qW93fc3SUFJaxCHuBNe42g==","shasum":"9c4e409ff8731bf17fa21dca600f5389fa89bb5a","tarball":"https://registry.npmjs.org/@polyn/blueprint/-/blueprint-2.7.0.tgz","fileCount":14,"unpackedSize":129704,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCIxt5niW4T/GcWlE6UCqcY3Ny7WiUjn3tZ9w9zCKGoygIgWhX/xwPy8IpqwIO706me9epa8UAedqoBLFv0YyZ6b4o="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+BVyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmppmA//WTWAjQnxhH5qjV1xfNbqXNoVXD40zk0MiCrJk3w73kRBvSV0\r\nlPTLbiGWRyy5nQdby/t/fmKH/YoPG1ndlbiBQlWPGPYmEAXO9NSlsmlDi1ED\r\nfK/LV+wRwj0KQE9judB1bDQZbMnDeOXeFELlFLLKuhFaABlPa2ii25TGhdP0\r\nmO15ee+rbanjgY6XoVqzLFoHY415lqSlQIUbGxQNLTkvIzezPKiMgdyrQQlq\r\nvqr9BZhKj7w8mwN5D73S6xoeG01mK7ZhsXTzZG79MpWgsqbdP+i/9wH0aOWP\r\ni+eE4bnfJhd/uUM/eNkTOsjx9DoGy9iaq4JILPzsc80hD5iOoCbMQz/WqDMh\r\nUFFYIrRTOa5MUwBF/GBevdJpUg9eJow2qrWZheS6d5wwzuObDZmGTRYYvpEo\r\n48lrfOs+6oHR3aTazzmYFft7GB8PmtZIKtDGWX+Uie5K96977wPXG8H4fxra\r\nmauS0YM/w6TQf77j9+wQ72SggmGOUxRm/Mehdp1IO2sXWbnAOFtSYWeBfLaS\r\nA7gUKqo+apZtgGTckpCvlFLunxvfXoHvvHTqt3ivweWH+J3CgIjJbIL0pF0k\r\niq1/5Z/Dzsq7VUP4+g99c771SnLHcNZjpBcDlKru1uHLqMFBPS1xM7o9b2g3\r\nW2Vrn+VeTz71K1lxKWmFx+LPV5IDcxCMEjA=\r\n=qk8w\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"losandes","email":"andes.collab@gmail.com"},"directories":{},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/blueprint_2.7.0_1677202802163_0.5948769918013419"},"_hasShrinkwrap":false}},"time":{"created":"2019-04-24T15:52:19.003Z","0.1.0":"2019-04-24T15:52:19.340Z","modified":"2023-02-24T01:40:02.581Z","0.2.0":"2019-04-24T18:09:33.706Z","0.2.1":"2019-04-24T18:14:59.962Z","0.3.0":"2019-04-24T18:21:51.548Z","0.3.1":"2019-04-24T18:27:33.497Z","1.0.0":"2019-05-02T19:04:19.874Z","2.0.0":"2019-05-07T17:23:44.107Z","2.0.1":"2019-05-10T04:11:20.896Z","2.0.2":"2019-05-10T04:22:46.563Z","2.0.4":"2019-05-12T16:11:27.187Z","2.0.5":"2019-05-13T14:32:06.513Z","2.1.0":"2019-05-16T04:03:39.812Z","2.1.1":"2019-05-16T04:42:10.091Z","2.1.2":"2019-05-16T12:53:26.471Z","2.1.3":"2019-05-17T14:13:27.497Z","2.1.4":"2019-05-20T15:38:59.451Z","2.2.0":"2019-05-25T04:25:33.621Z","2.3.0":"2019-05-25T14:35:59.088Z","2.4.0":"2019-06-25T05:42:03.044Z","2.4.1":"2019-07-13T15:35:47.587Z","2.4.2":"2019-08-27T13:50:36.397Z","2.5.0":"2019-09-11T17:22:45.197Z","2.5.1":"2019-09-11T18:00:14.505Z","2.5.3":"2020-03-26T03:43:54.709Z","2.5.4":"2020-03-26T05:14:22.330Z","2.6.0":"2021-04-01T19:41:11.939Z","2.7.0":"2023-02-24T01:40:02.395Z"},"maintainers":[{"name":"losandes","email":"andes.collab@gmail.com"}],"description":"An easy to use, flexible, and powerful validation library for nodejs and browsers","homepage":"https://github.com/losandes/polyn-blueprint#readme","keywords":["polymorphism","interface","class","blueprint","hilary"],"repository":{"type":"git","url":"git+https://github.com/losandes/polyn-blueprint.git"},"author":{"name":"Andy Wright","email":"andes.collab@gmail.com","url":"https://github.com/losandes"},"bugs":{"url":"https://github.com/losandes/polyn-blueprint/issues"},"license":"MIT","readme":"# @polyn/blueprint\n\n![tests](https://github.com/losandes/polyn-blueprint/workflows/tests/badge.svg)\n[![Coverage Status](https://coveralls.io/repos/github/losandes/polyn-blueprint/badge.svg?branch=master)](https://coveralls.io/github/losandes/polyn-blueprint?branch=master)\n\n@polyn/blueprint is an easy to use, extensible, and powerful validation library for nodejs and browsers.\n\nWhile @polyn/blueprint can be used on it's own, it really shines when you use it with [@polyn/immutable](https://github.com/losandes/polyn-immutable).\n\nIf you use the `value` property that is returned from @polyn/blueprint's `validate` function, it also mitigates parameter/property pollution attacks at the model level: only properties that exist on the schema are returned, and only if they meet the validation you expressed.\n\n* [Getting Started with Node](#node)\n* [Getting Started with the Browser](#browser)\n* [Types / Validators](#types-validators)\n* [Custom Validators](#custom-validators)\n  * [Inline Custom Validators](#inline-custom-validators)\n  * [Registering Validators](#registering-validators)\n  * [Registering Types](#registering-types)\n  * [Registering Regular Expressions](#registering-regular-expressions)\n  * [Registering Blueprints](#registering-blueprints)\n  * [Intercepting Values](#intercepting-values)\n* [TypeScript Support](#typescript-support)\n* [Cookbook](#cookbook)\n\n> @polyn/blueprint has 0 production dependencies. If you ever see vulnerability alerts in github, they only reflect on dev-dependencies.\n\n## Usage\n\n### Node\n\n```Shell\n$ npm install --save @polyn/blueprint\n```\n\n```JavaScript\nconst {\n  blueprint,\n  registerValidator,\n  registerBlueprint\n} = require('@polyn/blueprint')\n\nconst actual = blueprint('requestBody', {\n  name: 'string',\n  age: 'number',\n  favoriteMovie: {  // nested definitions are also validated\n    title: 'string',\n    director: 'string',\n    year: 'number'\n  }\n}).validate({\n  name: 'Aiden',\n  age: 20,\n  favoriteMovie: {\n    title: 'Citizen Kane',\n    director: 'Orson Welles',\n    year: 1941\n  }\n})\n\nif (actual.err) {\n  throw actual.err\n}\n\nassert.strictEqual(actual.value.name, 'Aiden')\nassert.strictEqual(actual.value.age, 20)\n```\n\n### Browser\nBlueprint works the same in the browser, and is packaged in the `dist` folder. You can find all of blueprint's features on `window.polyn.blueprint`.\n\n```Shell\n$ npm install --save @polyn/blueprint\n```\n\n```HTML\n<script src=\"./node_modules/@polyn/blueprint/dist/blueprint.min.js\" />\n<script>\n  const {\n    blueprint,\n    registerValidator,\n    registerBlueprint\n  } = window.polyn.blueprint\n\n  const actual = blueprint('requestBody', {\n    name: 'string',\n    // ...\n  }).validate({\n    name: 'Aiden'\n    // ...\n  })\n\n  if (actual.err) {\n    throw actual.err\n  }\n\n  console.log(actual.value.name)\n</script>\n```\n\n## Types / Validators\n`blueprint` comes with several types/validators already supported. You can also register your own validators. First let's look at what's already there:\n\n```JavaScript\nconst {\n  blueprint,\n  gt, gte, lt, lte, range\n} = require('@polyn/blueprint')\n\nconst allTheTypes = blueprint('allTheTypes', {\n  // strings\n  requiredString: 'string',\n  optionalString: 'string?',\n  requiredArrayOfStrings: 'string[]',\n  optionalArrayOfStrings: 'string[]?',\n\n  // numbers\n  requiredNumber: 'number',\n  optionalNumber: 'number?',\n  requiredArrayOfNumbers: 'number[]',\n  optionalArrayOfNumbers: 'number[]?',\n  gt10: gt(10),\n  gte10: gte(10),\n  lt10: lt(10),\n  lte10: lte(10),\n  between10And20: range({ gte: 10, lte: 20 }), // supports gt, gte, lt, lte\n\n  // booleans\n  requiredBoolean: 'boolean',\n  optionalBoolean: 'boolean?',\n  requiredArrayOfBooleans: 'boolean[]',\n  optionalArrayOfBooleans: 'boolean[]?',\n\n  // dates\n  requiredDate: 'date',\n  optionalDate: 'date?',\n  requiredArrayOfDates: 'date[]',\n  optionalArrayOfDates: 'date[]?',\n\n  // regular expressions as values\n  requiredRegExp: 'regexp',\n  optionalRegExp: 'regexp?',\n  requiredArrayOfRegExps: 'regexp[]',\n  optionalArrayOfRegExps: 'regexp[]?',\n\n  // regular expressions as validators\n  requiredEnum: /^book|magazine$/,\n\n  // functions\n  requiredFunction: 'function',\n  optionalFunction: 'function?',\n  requiredArrayOfFunctions: 'function[]',\n  optionalArrayOfFunctions: 'function[]?',\n\n  // async functions / promises (validation is the same)\n  requiredAsyncFunction: 'asyncFunction',\n  optionalAsyncFunction: 'asyncFunction?',\n  requiredArrayOfAsyncFunctions: 'asyncFunction[]',\n  optionalArrayOfAsyncFunctions: 'asyncFunction[]?',\n  requiredAsyncPromise: 'promise',\n  optionalAsyncPromise: 'promise?',\n  requiredArrayOfAsyncPromises: 'promise[]',\n  optionalArrayOfAsyncPromises: 'promise[]?',\n\n  // objects\n  requiredObject: 'object',\n  optionalObject: 'object?',\n  requiredArrayOfObjects: 'object[]',\n  optionalArrayOfObjects: 'object[]?',\n\n  // any\n  requiredAny: 'any',\n  optionalAny: 'any?',\n  requiredArrayOfAny: 'any[]',\n  optionalArrayOfAny: 'any[]?',\n\n  // weakly typed arrays\n  requiredArray: 'array', // same as any[]\n  optionalArray: 'array?', // same as any[]?\n\n  // decimals\n  requiredDecimal: 'decimal',\n  optionalDecimal: 'decimal?',\n  requiredArrayOfDecimals: 'decimal[]',\n  optionalArrayOfDecimals: 'decimal[]?',\n\n  // decimal places (up to 15 decimal places)\n  requiredDecimalTo1Place: 'decimal:1',\n  optionalDecimalTo1Place: 'decimal:1?',\n  requiredDecimalTo15Places: 'decimal:15',\n  optionalDecimalTo15Places: 'decimal:15?',\n\n  requiredPrimitive: 'primitive',\n  optionalPrimitive: 'primitive?',\n  requiredArrayOfPrimitives: 'primitive[]',\n  optionalArrayOfPrimitives: 'primitive[]?',\n\n  // inline custom validators\n  someProperty: ({ key, value, input, root }) =>\n    root.productType === 'book' && typeof value === 'string'\n})\n```\n\n### Optionals\nThe `optional` function allows you to make any validator, even function, and expression based validators, optional. It also supports default values, which are used in the even that the given inputs are null, or undefined. If an input is defined, and it doesn't pass validation, the default value is not used: an error will still be produced.\n\n> `withDefault` also accepts functions, and will execute them if they are used as the value, so your default values can be factories (i.e. to generate ids, calculate based on local scope, etc.)\n\n```JavaScript\nconst uuid = require('uuid/v4')\nconst { blueprint, gt, optional } = require('@polyn/blueprint')\nconst UUID_REGEX = /^[0-9A-F]{8}-[0-9A-F]{4}-[4][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i\n\nconst optionalValues = blueprint('optionalValues', {\n  idOrNewId: optional(UUID_REGEX).withDefault(uuid), // will generate a new uuid as default\n  stringOrDefault: optional('string').withDefault('foo'),\n  maybeGt20: optional(gt(20)),\n  gt20OrDefault: optional(gt(20)).withDefault(42),\n  maybeEnum: optional(/^book|magazine$/),\n  enumOrDefault: optional(/^book|magazine|product$/).withDefault('product'),\n  maybeCustom: optional(({ value }) => typeof value === 'string')\n    .withDefault('custom')\n})\n```\n\n### Unpacking\nThe `optional`, and `required` functions can be used to map the input values to different output properties, by using `from`. With `optional`, `from` can be chained with `withDefault`. This is particularly useful when accepting input with a different model than the intended output.\n\n```JavaScript\nconst { blueprint, gt, optional } = require('@polyn/blueprint')\n\nconst unpackedValues = blueprint('UnpackedValues', {\n  requiredString: required('string')\n    .from(({ input }) => input.something.string),\n  requiredGt: required(gt(10))\n    .from(({ input }) => input.something.twelve),\n  requiredExp: required(/^book|magazine$/)\n    .from(({ input }) => input.something.type),\n  stringFrom: optional('string')\n    .from(({ input }) => input.something.string),\n  stringOrDefault: optional('string')\n    .from(({ input }) => input.something.string)\n    .withDefault('foo')\n})\n```\n\n## Custom Validators\nBlueprint supports multiple ways for defining your own validators.\n\n* [Inline Custom Validators](#inline-custom-validators)\n* [Registered validators](#registering-validators)\n* [Registered types](#registering-types)\n* [Registered expressions](#registering-regular-expressions)\n* [Registered blueprints](#registering-blueprints)\n\n### Custom Validator Return Values\n_Inline custom validators_, _registered validators_, and _registered types_ support passing your own function to perform the validation. Your functions must return one of two types to work. The following examples will use inline custom validators for the example, but the same approach can be used when registering validators, or types.\n\n#### Return boolean\nYour validator can simply return `true`, or `false`. This is the least verbose of all approaches.\n\n```JavaScript\nconst { blueprint } = require('@polyn/blueprint')\n\nconst something = blueprint('something', {\n  someProperty: ({ value }) => typeof value === 'string'\n```\n\n#### Return `ValueOrError`\nIf you've used _callbacks_ in JavaScript, or programmed in Go, this should be familiar. Your validator can return an object that includes either an `err` property, or a `value` property. The `value` property is used to populate `value` on the output of `blueprint.validate` (@alsosee [Intercepting Values](#intercepting-values)).\n\n```JavaScript\nconst { blueprint } = require('@polyn/blueprint')\n\nconst something = blueprint('something', {\n  someProperty: ({ key, value, input, root }) => {\n    if (typeof value === 'string') {\n      return { err: new Error(`${key} must be a string`) }\n    }\n\n    return {\n      value\n    }\n  }\n})\n```\n\n#### Both Return Types Let You Throw an Error\nFor both return types, if you `throw`, blueprint will assume the value is not valid, and use the error to populate the validation output.\n\n```JavaScript\nconst { blueprint } = require('@polyn/blueprint')\n\nconst something = blueprint('something', {\n  someProperty: ({ key, value, input, root }) => {\n    if (typeof value === 'string') {\n      throw new Error(`${key} must be a string`)\n    }\n\n    // You MUST return either boolean\n    return true\n    // or:\n    // return {\n    //   value\n    // }\n  }\n})\n```\n\n> NOTE that when registering custom validators, blueprint does NOT protect it's own type definitions, so you can override them. For instance, if you register a validator with the name 'string', blueprint will use your validator for strings from that point on, instead of it's own.\n\n### Inline Custom Validators\nWhen defining the schema for your blueprint, you can define the property type with a function. Blueprint will execute, and pass context to this function when you call `validate`. The context includes other properties on the object that is being validated, so you can perform complex validation.\n\n* _@param {string}_ **key** - the name of the property that is being validated\n* _@param {any}_ **value** - the value being validated (i.e. `input[key]`)\n* _@param {any}_ **input** - the object that is being validated\n* _@param {any}_ **root** - the root object that is being validated (different than input when the input is nested in another object)\n* _@param {any}_ **output** - the current state of the `value` property for the `IValueOrError` that is returned by `validate`. You can use this to validate the values of other properties that were already processed, and to mutate the output (the latter is not recommended).\n* _@param {object}_ **schema** - the schema for this validation context\n\nIn this example, we require the given property based on the value of another property:\n\n```JavaScript\nconst { blueprint } = require('@polyn/blueprint')\n\nconst product = blueprint('product', {\n  // require the ISBN if the productType is 'book'\n  ISBN: ({ key, value, input, root }) =>\n    root.productType === 'book' && typeof value === 'string' && value.length\n})\n```\n\n> @alsosee [Custom Validator Return Values](#custom-validator-return-values) for information on supported return values\n\n### Registering Validators\nSometimes we need to use custom validators in more than one blueprint. In the spirit of DRY, you can register your custom validators, so they can be added to multiple blueprints by name.\n\n> If your validator returns an object, you MUST return the value on that object - it will be used to populate `blueprint.validate`'s `value` property.\n\n```JavaScript\nconst { blueprint, registerValidator } = require('@polyn/blueprint')\n\nregisterValidator('gt0', ({ key, value }) => {\n  return is.number(value) && value > 0\n    ? { value }\n    : { err: err: new Error('The value must be greater than 0') }\n})\n\nconst actual = blueprint('requestBody', {\n  age: 'gt0'\n}).validate({\n  age: 20\n})\n\nassert.ifError(actual.err)\nassert.strictEqual(actual.value.age, 20)\n```\n\n> @alsosee [Custom Validator Return Values](#custom-validator-return-values) for information on supported return values\n\n### Registering Types\nIf you want to support nulls and arrays for the validator you are registering, use `registerTypes` instead. For instance, to register the following:\n\n```\nchar\nchar?\nchar[]\nchar[]?\n```\n\nYou can register the type `'char'` like so:\n\n```JavaScript\nconst { blueprint, registerType } = require('@polyn/blueprint')\n\nregisterType('char', ({ value }) =>\n  typeof value === 'string' && value.length === 1\n)\n\nconst actual = blueprint('requestBody', {\n  oneChar: 'char',\n  maybeChar: 'char?',\n  chars: 'char[]',\n  maybeChars: 'char[]?'\n})\n```\n\n> @alsosee [Custom Validator Return Values](#custom-validator-return-values) for information on supported return values\n\n### Registering Regular Expressions\nRegistering regular expressions works similarly to registering types, except you pass in a RegExp, or string expression as the second argument.\n\n```JavaScript\nconst { blueprint, registerExpression } = require('@polyn/blueprint')\n\nregisterExpression('productType', /^book|movie$/)\nregisterExpression('movieType', '^comedy|drama$')\n\nconst actual = blueprint('requestBody', {\n  type: 'productType',\n  maybeType: 'productType?',\n  types: 'productType[]',\n  maybeTypes: 'productType[]?',\n\n  movieType: 'movieType',\n  maybeMovieType: 'movieType?',\n  movieTypes: 'movieType[]',\n  maybeMovieTypes: 'movieType[]?'\n})\n```\n\n### Registering Blueprints\nSometimes it's useful to register another blueprint as a validator. `registerBlueprint` accepts the same arguments as constructing one, and stores the blueprint as a validator, so it can be used like a type. It includes support for nulls and arrays.\n\n```JavaScript\nconst { blueprint, registerBlueprint } = require('@polyn/blueprint')\n\nconst personBlueprint = registerBlueprint('person', {\n  firstName: 'string',\n  lastName: 'string'\n})\n\n// it returns the blueprint so you can use it\n// the same as when you use `blueprint`\npersonBlueprint.validate({\n  firstName: 'John',\n  lastName: 'Doe'\n})\n\n// it registers the blueprint by name,\n// so you can reference it in other models\nconst actual = blueprint('requestBody', {\n  person: 'person',\n  optionalPerson: 'person?',\n  people: 'person[]',\n  optionalPeople: 'person[]?'\n}).validate({\n  person: {\n    firstName: 'John',\n    lastName: 'Doe'\n  },\n  people: [{\n    firstName: 'John',\n    lastName: 'Doe'\n  }]\n})\n\nassert.ifError(actual.err)\nassert.strictEqual(actual.value.person.firstName, 'John')\nassert.strictEqual(actual.value.person.lastName, 'Doe')\n// ...\n```\n\n### Intercepting Values\n_Inline custom validators_, _registered validators_, and _registered types_ provide the ability to intercept/modify the values that are returned by blueprint.validate.\n\nBoth of these examples trim the strings that are written to the `value` property\n\n```JavaScript\nregisterValidator('string1', ({ key, value }) => {\n  return is.string(value)\n    ? { value: value.trim() }\n    : { err: new Error(errorMessage('string')(key)) }\n}) // registers string1 on blueprint\n\nconsole.log(\n  blueprint('string1-test', {\n    name: 'string1'\n  })\n  .validate({\n    name: '  whitespace '\n  })\n  .value\n)\n\n// prints { name: 'whitespace' }\n\nregisterType('string2', ({ key, value }) => {\n  return is.string(value)\n    ? { value: value.trim() }\n    : { err: new Error(errorMessage('string')(key)) }\n}) // registers string2, string2?, string2[], and string2[]? on blueprint\n\nconsole.log(\n  blueprint('string2-test', {\n    requiredName: 'string2',\n    optionalName: 'string2?',\n    requiredArray: 'string2[]',\n    optionalArray: 'string2[]?'\n  })\n  .validate({\n    requiredName: '  whitespace ',\n    optionalName: '  whitespace ',\n    requiredArray: ['  whitespace '],\n    optionalArray: ['  whitespace ']\n  })\n  .value\n)\n\n// prints\n// {\n//   requiredName: 'whitespace',\n//   optionalName: 'whitespace',\n//   requiredArray: ['whitespace'],\n//   optionalArray: ['whitespace']\n// }\n```\n\n## TypeScript Support\nThis library exports types. A brief example is shown here. If you'd like to see more, there are several examples in [examples-typescript.ts](./examples-typescript.ts).\n\n```TypeScript\nconst { blueprint, gt } = require('@polyn/blueprint')\n\nconst personBlueprint: IBlueprint = blueprint('Person', {\n  firstName: 'string',\n  lastName: 'string',\n  age: gt(0)\n})\n\nconst result: IValueOrError = personBlueprint.validate({\n  firstName: 'John',\n  lastName: 'Doe',\n  age: 21\n})\n\nconsole.log(result.err)\n// prints null\n\nconsole.log(result.value)\n// prints { firstName: 'John', lastName: 'Doe', age: 21 }\n```\n\n## Cookbook\n\n* [Schema Inheritance](#schema-inheritance)\n\n### Schema Inheritance\n\n```JavaScript\nconst { blueprint, registerBlueprint } = require('@polyn/blueprint')\n\nconst productBp = blueprint('Product', {\n  id: 'string',\n  title: 'string',\n  description: 'string',\n  price: 'decimal:2',\n  type: /^book|magazine|card$/,\n  metadata: {\n    keywords: 'string[]'\n  }\n})\n\nregisterBlueprint('Author', {\n  firstName: 'string',\n  lastName: 'string'\n})\n\nconst bookBp = blueprint('Book', {\n  ...productBp.schema,\n  ...{\n    metadata: {\n      ...productBp.schema.metadata,\n      ...{\n        isbn: 'string',\n        authors: 'Author[]'\n      }\n    }\n  }\n})\n\nconsole.dir(productBp.validate({\n  id: '5623c1263b952eb796d79e02',\n  title: 'Happy Birthday',\n  description: 'A birthday card',\n  price: 9.99,\n  type: 'card',\n  metadata: {\n    keywords: ['bday']\n  }\n}), { depth: null })\n\nconsole.dir(bookBp.validate({\n  id: '5623c1263b952eb796d79e03',\n  title: 'Swamplandia',\n  description: 'From the celebrated...',\n  price: 9.99,\n  type: 'book',\n  metadata: {\n    keywords: ['swamp'],\n    isbn: '0-307-26399-1',\n    authors: [{\n      firstName: 'Karen',\n      lastName: 'Russell'\n    }]\n  }\n}), { depth: null })\n```\n\n## Why @polyn/blueprint? Why not JSON Schema\nThere's nothing wrong with JSON Schema. In many cases it makes more sense to use that, particularly in cases where the schema is meant to be shared across organizational boundaries. I started writing this library years ago when JSON Schema was in it's infancy. So why keep improving and maintaining it?\n\nIt's simple. It's less verbose than JSON Schema. It's functional (we can write validators as functions, instead of configurations). Because of that it's easily extensible, and it's easy to write complex/dependency-based validations (i.e. _isbn is required if productType === 'book'_).\n","readmeFilename":"README.md"}