{"_id":"@aminnairi/jsonvalidator","_rev":"9-a68c990346ffdc2b7d21912dedd15966","name":"@aminnairi/jsonvalidator","dist-tags":{"latest":"1.0.0"},"versions":{"0.1.0":{"bugs":{"url":"https://github.com/aminnairi/javascript-jsonvalidator/issues"},"description":"A sane validator for your insane JSON data","homepage":"https://github.com/aminnairi/javascript-jsonvalidator","keywords":["json","validator","schema"],"license":"GPL-3.0-or-later","main":"index.js","name":"@aminnairi/jsonvalidator","types":"index.d.ts","version":"0.1.0","scripts":{"types":"tsc --declaration --emitDeclarationOnly --outDir . ./sources/index.ts","build":"rollup -c","test":"jest"},"devDependencies":{"@rollup/plugin-typescript":"8.2.1","@types/jest":"26.0.23","@types/node":"15.12.1","jest":"27.0.4","rollup":"2.50.6","rollup-plugin-terser":"7.0.2","ts-jest":"27.0.2","ts-node":"10.0.0","typescript":"4.3.2"},"gitHead":"6102a6a8aa0e05000f33c2a57aa6b01935e27ebf","_id":"@aminnairi/jsonvalidator@0.1.0","_nodeVersion":"16.0.0","_npmVersion":"7.10.0","dist":{"integrity":"sha512-QeQMAG3zubcTB5lgZr+7BU2jgha6BabCCi2AVf8JqF5dGRPlii3/zNtOHpU80u4cDPPH3BCyjvUPm97XZQM+LA==","shasum":"b48829562b191151335ae410f7073fa64233293e","tarball":"https://registry.npmjs.org/@aminnairi/jsonvalidator/-/jsonvalidator-0.1.0.tgz","fileCount":6,"unpackedSize":45861,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvdkgCRA9TVsSAnZWagAATZoP/ibczjdI1XkktCzRMcUP\nclJbSkWxJ11OSoF5MW7i2TvSdrjT282j25aXhoFV+kkxJGXtvcxNNRTWe7kY\nGJbDBLnnvQCfGoP7wIu6Zj+gj0JkUD/OYqz7Od+G8M02W0OYiqTHBfwgRGrM\n6mvx5Xn1RELrBAo14zKX4cFKjWhta76Pdg0C860ZYxwG9sKJAT6sCKzA65j4\n+ipNidzfIvbO3R5U0EEDPy1EdzKYiyLKQ0cfR0U35xYBdROO+Zuk9WrvnNZl\nLvmRS070hGZ3+j0PABdEVtS3P6AYJqkktexXCRWL5LIrzr5vVwSOo33Vr5U2\nvXkp7rqFLL3W0OGQgqrbhFSsj7hPj6EYlV2K4nEDTTTCLGJh0Fzzc0CYG4fz\nrQlwLO9McldHKCMZeByMLgALs89Oza0wxY01e9BCvfZ3KSN8Izu6/5gVfQK6\nvhTfP+8e4lMJj6AK4esdJuZLJw1yI1SPwSXetq1Crw8X7+Wu1YAVXWqq7ARq\nvxE8siT5iYA5R5conTKhJLnQKi483SsQdWNqyQgkXZTNrjSuGCq/y2POPuY0\nrFnh5KC2Y5FdQ9ZKMYmc5BJIsu36Nyjhwdt8QLKUVZUMOufcjofCHM9Upc3h\nuKC+Q7DtyhfVcGvsUCbFCAx3JXmmhLSTOzPP3Ffn819ZGWtwkppq8FCSyeGW\nJx8l\r\n=rZ8L\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkdOz6AVLiJUY7IXVr5pqYKY6zY6sC8JKBeE7wXYONXQIhAOYxUZ4Kn0SIuQAK/iI4kKAU5skeng7zHryAziZ36P+p"}]},"_npmUser":{"name":"aminnairi","email":"nairi.amin@gmail.com"},"directories":{},"maintainers":[{"name":"aminnairi","email":"nairi.amin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/jsonvalidator_0.1.0_1623054624223_0.3000069977593933"},"_hasShrinkwrap":false},"0.2.0":{"bugs":{"url":"https://github.com/aminnairi/javascript-jsonvalidator/issues"},"description":"A sane validator for your insane JSON data","homepage":"https://github.com/aminnairi/javascript-jsonvalidator","keywords":["json","validator","schema"],"license":"GPL-3.0-or-later","main":"index.js","module":"index.mjs","name":"@aminnairi/jsonvalidator","types":"index.d.ts","version":"0.2.0","scripts":{"types":"tsc --declaration --emitDeclarationOnly --outDir . ./sources/index.ts","build":"rollup -c","test":"jest"},"devDependencies":{"@rollup/plugin-typescript":"8.2.1","@types/jest":"26.0.23","@types/node":"15.12.1","jest":"27.0.4","rollup":"2.50.6","rollup-plugin-terser":"7.0.2","ts-jest":"27.0.2","ts-node":"10.0.0","typescript":"4.3.2"},"gitHead":"6de927a44a764efedc47d83e64443ea2a69e7626","_id":"@aminnairi/jsonvalidator@0.2.0","_nodeVersion":"16.0.0","_npmVersion":"7.10.0","dist":{"integrity":"sha512-1dpjSx53nm6TxHjB3jxEp0vyRTcnQNhEX6D2yx4TQyfbUxLbd+Im1jBS8xsZLbfsuv0E0CSxafbzFMYuAQMldQ==","shasum":"2947ddbdac459d01b147cad40e4adc0e36e8cbf9","tarball":"https://registry.npmjs.org/@aminnairi/jsonvalidator/-/jsonvalidator-0.2.0.tgz","fileCount":7,"unpackedSize":49699,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgveTICRA9TVsSAnZWagAAsp0P/0c+pODToIgJH0P1nt2B\nrIwrMF7DEEcz49m6Z6GHecW4avyD0xHipnkkCucfKv8gGDBcaVJS5JMQdV2i\nyV1fdBv1UpKS7YEuN+GZ9+97yHrm7eFw41sH9PyZ6zJ3E+50U3b8ijV/mmf6\nBF6f5P4Dx+7HA2dcX0iZBZwbn59IYMz1C0Rw6y8iUMXqOTrs+yIqEL8AYcA4\nJ5H4fUN3xEyPSzKtda0g1WywHt4kgCw3t+0MJXu5qyepXPHJKWr6ed24xbCg\n9h3wB5oOaC9vQvKMj6LU+00hniVxhE+DtkBmsnLJJURd82SuKmZUD62QnCrF\nwwfSl5tLS1SM1lj1YiRP74RMA+PZeb7Vsd4Fp/EkhAoX3wgOIKe6/yUU8qev\npEHswb8u6VLhWWSsw8pQbPwR6UWvHezXqRRxr9xqdsqwTzDFN8iNn5xIfop6\nx8Rxsrsais+kdEHtyfVvL242R3TwsS+8nzwiNZSgRjgg+p8DF+G6x7kbCayO\n/4aJ/BTSi1NwN6IaEGFYI7wqLDWomCivwV2U9lCC54ONoZpSRvg3jrybwO1i\nVu0vp+Lfds4rZO9IBkDTN+Y2uKw/LDak3wH/5MTlpyunj0HmXdPTpyqs7l89\nd+rXhwBVl1NGIiYKTIuaxZieUFhUQ2L9EKIQi8VWHWEN6Hs8LrtHuPnmenMb\nKvhm\r\n=ej1F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbK2+N2aqn0HIt3eOiEbfFZP0IimMwNLT6Tpgsm0qemwIgDoTsL8LAlU0Vde+pb4XQQlejTpFaQXqiEe0pvVbjstM="}]},"_npmUser":{"name":"aminnairi","email":"nairi.amin@gmail.com"},"directories":{},"maintainers":[{"name":"aminnairi","email":"nairi.amin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/jsonvalidator_0.2.0_1623057608326_0.8996200483652135"},"_hasShrinkwrap":false},"0.3.0":{"bugs":{"url":"https://github.com/aminnairi/javascript-jsonvalidator/issues"},"description":"A sane validator for your insane JSON data","homepage":"https://github.com/aminnairi/javascript-jsonvalidator","keywords":["json","validator","schema"],"license":"GPL-3.0-or-later","main":"index.js","module":"index.mjs","name":"@aminnairi/jsonvalidator","types":"index.d.ts","version":"0.3.0","scripts":{"types":"tsc --declaration --emitDeclarationOnly --outDir . ./sources/index.ts","build":"rollup -c","test":"jest"},"devDependencies":{"@rollup/plugin-typescript":"8.2.1","@types/jest":"26.0.23","@types/node":"15.12.1","jest":"27.0.4","rollup":"2.50.6","rollup-plugin-copy":"3.4.0","rollup-plugin-terser":"7.0.2","ts-jest":"27.0.2","ts-node":"10.0.0","typescript":"4.3.2"},"gitHead":"34f4cd39ab539c64de199d3e1279cd56bb7a9db7","_id":"@aminnairi/jsonvalidator@0.3.0","_nodeVersion":"16.0.0","_npmVersion":"7.10.0","dist":{"integrity":"sha512-zHTSkyiGMgSrv1TDTAcY1NzHv8o70ABiMJsrJDea4A/Z2rLwN906oQAQfs3qEQfHystczAfD6QlfKslOoJDWJw==","shasum":"bb22191cf8349d1f587ca77435c5e30647877ad7","tarball":"https://registry.npmjs.org/@aminnairi/jsonvalidator/-/jsonvalidator-0.3.0.tgz","fileCount":8,"unpackedSize":56523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvpM1CRA9TVsSAnZWagAAxhMQAIF8x2FZvsUK95SKE36c\n+AtUSKheZSDoWTINp0o30fPp/sQBZh77voF+Lj0DUlwifx61lXBEfOo/rYRP\n7ZMW+EqUHDyxvWigbxn2Yk+2eA5me/Ogi/NVkLpXAZUgBdtDcVQxzwK2mL8w\njMzrvjkyFBwr8XCe4F63OYL4LOwoCgx56pkbyxZX/no0xsjm6VmAUh3u2xqR\n65l5u4GbLAA9sIsI71XZKPYu3j0ct2WraBK1FLbikgbJ58Tx1fch+isAvrKx\n0TLhcrqgBQCUoGdqnT7v/nOqRjrftuHhOVn/ojLwj8t+0NygWJf1Dxxangmm\niHNAsg2Jv9wMZ3wBCwhMXRv5dCupWsQv7byVIYhojWJflKgkrz5/YBAHaHgh\n5tQ/f/YPMAKlnGGQM4Eiq6to54UKRPbdBeEyV/QMlzT9u2nijXK3Kzt5PMI+\nKq/vU5eKUw1uEXcB16Am4nHuWe+2Cxj9k6Iq7u6nnWDPLH+Cm+A4r23ozr5S\n0cFAzX7lGKBkh1NuR99B93u2u/3vGL3dO8Jro+naq9FBQCfZ36pNZb4SSnNQ\nUqQr8NL4VeZbLrzAKOo2nIffh29mYAByp0dyoxXL97FNB8+cgNKRXavd74rA\nXWkcWcDFDaJDxUdlAx7SoWqB1oeCAZbPJbifANwYuIdIhG2R3FblXnQO2eg9\nyNAs\r\n=vfGO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAM371QXMw6iIU/lt8I41AOq9NetO6eUF3xSxWB4vKfBAiBAb/zeU5axGNpo+SdT1ahUVrTCgZa8fA1FapW2eG3A3A=="}]},"_npmUser":{"name":"aminnairi","email":"nairi.amin@gmail.com"},"directories":{},"maintainers":[{"name":"aminnairi","email":"nairi.amin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/jsonvalidator_0.3.0_1623102261275_0.3711205358507288"},"_hasShrinkwrap":false},"0.4.0":{"bugs":{"url":"https://github.com/aminnairi/javascript-jsonvalidator/issues"},"description":"A sane validator for your insane JSON data","homepage":"https://github.com/aminnairi/javascript-jsonvalidator","keywords":["json","validator","schema"],"license":"GPL-3.0-or-later","main":"index.js","module":"index.mjs","name":"@aminnairi/jsonvalidator","types":"index.d.ts","version":"0.4.0","scripts":{"coverage":"coveralls < coverage/lcov.info","types":"tsc --declaration --emitDeclarationOnly --outDir . ./sources/index.ts","build":"rollup -c","test":"jest"},"devDependencies":{"@rollup/plugin-typescript":"8.2.1","@types/jest":"26.0.23","@types/node":"15.12.1","coveralls":"3.1.0","jest":"27.0.4","rollup":"2.50.6","rollup-plugin-copy":"3.4.0","rollup-plugin-terser":"7.0.2","ts-jest":"27.0.2","ts-node":"10.0.0","typescript":"4.3.2"},"gitHead":"ff46a39fe1a8734edcb720036a2f571600681050","_id":"@aminnairi/jsonvalidator@0.4.0","_nodeVersion":"16.0.0","_npmVersion":"7.10.0","dist":{"integrity":"sha512-oFZXveqA5fNspoQK3BzZedX6Ylf8qjnq4D8zRsiT7qzCr8Wqng32RniExtnQX40riviM1BteXeSAQYwqU6zBfQ==","shasum":"03f6750ce4b42760be6429034cc7404af9dbce04","tarball":"https://registry.npmjs.org/@aminnairi/jsonvalidator/-/jsonvalidator-0.4.0.tgz","fileCount":8,"unpackedSize":56396,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgv0VSCRA9TVsSAnZWagAAXAAQAI8/SbpQ+Ft7eqIMSmCD\nOpdp7bGZJqZNiS1XqPs3t8ZdejeqBIEH1E3OHFZfa2mulKZp1dAY+CsWZZ5H\nvUZKHKEtd/eFqgTZgFlxWnZw1GBBk5BeetyTFJQ0olXv7+FZY7OE0jUqgnEC\nYCoiEmWVdPgmedkTaIunIHALQzy4lB5rrdWlFHXgVksile775cf5AIzkYziR\nnRH8hWddfLIldIpA2p6d1OwJeOei8nk4egJY0tQ4YvrkP2H9LWs0xxPbmNAD\nany9zVCRsJbYADoTvb8m+E0MtgdzJki+dgS5OjiCApIs7YD34Zfg6wW5EHYP\nkDzGse5fYhxAW/nREhv64VJ90xdPRQyRRBqWK5TehUO3fvVq3bf29WTsiniO\nWXFnebBK8PhWZrMVBkInu92lW30M67znBHkQjfSWsf/HyDCez7OR8IZU5VHh\nLA5wutKwJPX4F01x912RbXKwoBn3WuO2vqmC13MZBonn0bKRnOoJXM6RlpuL\n1OC6+8sYvRMZ5VgwAQ0+kh4wL++gtCyxaBGsTx3rg2nO5ekojqoRhCGbkDCG\njO+Io7wRp0lwfyiMTlSQXu3dzJEErEcHStGcCxd0JDEZtQZMYjGrRSiujcxy\nwUAuvyMWwHBr/J5hnotviYrgfy+xf2eoARrUey9WuEpI0p3p5nQBjZn/Kdio\nfczh\r\n=TL1c\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCyImk8j6Rb2BsSP4Zjcw3WEabN5JTiJ3bU+TfDloAx1gIhALJghYp1xg3AgiAJ3xdd3Q4P2peIQ+gxCOoUWmVB08ZT"}]},"_npmUser":{"name":"aminnairi","email":"nairi.amin@gmail.com"},"directories":{},"maintainers":[{"name":"aminnairi","email":"nairi.amin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/jsonvalidator_0.4.0_1623147857926_0.36652609363108146"},"_hasShrinkwrap":false},"0.5.0":{"bugs":{"url":"https://github.com/aminnairi/javascript-jsonvalidator/issues"},"description":"A sane validator for your insane JSON data","homepage":"https://github.com/aminnairi/javascript-jsonvalidator","keywords":["json","validator","schema"],"license":"GPL-3.0-or-later","main":"index.js","module":"index.mjs","name":"@aminnairi/jsonvalidator","types":"index.d.ts","version":"0.5.0","sideEffects":false,"scripts":{"coverage":"coveralls < coverage/lcov.info","types":"tsc --declaration --emitDeclarationOnly --outDir . ./sources/index.ts","build":"rollup -c","test":"jest"},"devDependencies":{"@rollup/plugin-typescript":"8.2.1","@types/jest":"26.0.23","@types/node":"15.12.1","coveralls":"3.1.0","jest":"27.0.4","rollup":"2.50.6","rollup-plugin-copy":"3.4.0","rollup-plugin-terser":"7.0.2","ts-jest":"27.0.2","ts-node":"10.0.0","typescript":"4.3.2"},"gitHead":"607af33b720bc31fd51711722fe24c5f0c1685f8","_id":"@aminnairi/jsonvalidator@0.5.0","_nodeVersion":"16.0.0","_npmVersion":"7.10.0","dist":{"integrity":"sha512-BOoRHdai77vfKpix7QPrthubbeRGSdhI3pNCx/ta6CsKskYVVe7C+tLIdt57bCJVV0BRzM/3h4Jr5I6VSZv5fA==","shasum":"a42b49a0b14b1c0e12f7b86fd04f632bd748942c","tarball":"https://registry.npmjs.org/@aminnairi/jsonvalidator/-/jsonvalidator-0.5.0.tgz","fileCount":8,"unpackedSize":56625,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgv0rvCRA9TVsSAnZWagAAZeUP/jMWSsdqhcHhh6cSdOlq\nktYtbrqfnTGPl1Gl3W3y6ry73YdNReZpFcKYh9Xz+MrVrrBfItzqTSTOWqdP\nLBGtMceik7gsc9N17g8vfwBDBjHFxt1+ivkWwrpbYtuRnjTmFKn55N1CqJvk\nxntyhbWsWCKclU3f2zayggs4zWgBlTMZn22LisB9Pe4lxpb+28xwYmgAwyfC\nYeOKBAcLbxuCC1VZlQ5/eBw9O0YDT69cNYyvwKXjjTHgWS11ICjfkq0HOuXV\nfgC1MUUmQBU7FUg9eg09nQevbm5vqoz2iN+SL0xzR+KJ7suzAbbb8u5uXzcf\njWqYUOOT2hNnZspFjbeknBPLCphTHYL3zQYNj15eiCl5mc7vdFUo27lIbmAi\nHWSLWUxfWJ9jenJiByW3DGCVU7eUGRpmbk2ngVslgCv/2/riJYU1dA5mMEPC\n4x0waD79KlX/Isddr60Q3hP7xNF2P554n8hufpN77yWiDRFahnFdvwIJNnZt\nUBgMw1jaLANLooDWkiZrF4hNwjdzhEiXWQhDqpF6fcCuoo4fttBrgFfNdYnz\n+y9rGNfinObIc1gmn/ILl7K1QJ5evjHsyBHnwxeaM7lK7yYoR6Di6ZiJGIt1\n3Xm2TXrmJc4jOZ8rODQdJNS8/Tl17vsvl4hJBXrgMmDimIauaYNKs/XzTtQc\nmwnB\r\n=r7IM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBmr6S2AYZeLT5siDxO9uK3VQ10qvA+N7BfAB4SX5r88AiEA+WLdv6bCw3DiNWaNBUGymExQ8sM6lJJuhcLx57YVLvU="}]},"_npmUser":{"name":"aminnairi","email":"nairi.amin@gmail.com"},"directories":{},"maintainers":[{"name":"aminnairi","email":"nairi.amin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/jsonvalidator_0.5.0_1623149295835_0.8709924051852402"},"_hasShrinkwrap":false},"0.5.1":{"bugs":{"url":"https://github.com/aminnairi/javascript-jsonvalidator/issues"},"description":"A sane validator for your insane JSON data","homepage":"https://github.com/aminnairi/javascript-jsonvalidator","keywords":["json","validator","schema"],"license":"GPL-3.0-or-later","main":"index.js","module":"index.mjs","name":"@aminnairi/jsonvalidator","types":"index.d.ts","version":"0.5.1","sideEffects":false,"scripts":{"coverage":"coveralls < coverage/lcov.info","types":"tsc --declaration --emitDeclarationOnly --outDir . ./sources/index.ts","build":"rollup -c","test":"jest"},"devDependencies":{"@rollup/plugin-typescript":"8.2.1","@types/jest":"26.0.23","@types/node":"15.12.1","coveralls":"3.1.0","jest":"27.0.4","rollup":"2.50.6","rollup-plugin-copy":"3.4.0","rollup-plugin-terser":"7.0.2","ts-jest":"27.0.2","ts-node":"10.0.0","typescript":"4.3.2"},"gitHead":"c29ceb3d0e19668165d21febb200c09df619969a","_id":"@aminnairi/jsonvalidator@0.5.1","_nodeVersion":"16.0.0","_npmVersion":"7.10.0","dist":{"integrity":"sha512-lwEsxkoQ9E2DAWGXmun1wco0iNqRgLT23DKAJ27Szbj+9awKtX32CF/OEnSNX+htKK5p3rWHMqXpYCjaKh7phw==","shasum":"973ce88b225069b2c7dfa39b611d018c32d197f1","tarball":"https://registry.npmjs.org/@aminnairi/jsonvalidator/-/jsonvalidator-0.5.1.tgz","fileCount":8,"unpackedSize":56820,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgv7i7CRA9TVsSAnZWagAAhCsQAJtrRIcdXco+KUnPHaRS\n+tesnmej7c2vit0mhRYGgBrlVvbz8hI3IONAPKZ1dr5asEviHoVNtcmiFyS2\naLLRO/LwrSJM103WNNYhM25t1IRQk8qRFZKBDkevtxUbbnKwmE3iplWDrbEn\n3jtu6VvvEfomDhE+UPO/a4Gjpt+9bLGPkI5Dk/Qv3SIq0M21pXC0EL1g2I9L\nRLYCJbaiqFh59v4jxDucpReGiuIDU5h1n7HcScsBqJoy3tlz8C03AlhHXm5w\nwyk1irPwExvpdIPqyvRhSyeYI2bRJ1/75HYzM0cWQxQOi1+Va79oDEtN2fvL\nTV+sPhM+VEyBb8Lgn43Eux5qZVo4U6Tx4vbdq+wg9MHnuSmwIdKe11mFEy7d\n80Fpkv0iLer6O84wxYZPLp4WAocbD4A7dr+hcHLLyhoRPh5NodcVH655eBUt\nO/FSX8WW/VSsdZlBk/jk/rkQBktFfivSxKftP1PgZlf+dys0HFVbeI8QKB7T\nuGoWxBw74RsNbToryCoOna9wh7e7vYH79CcC+QoGLXg448fyd4iNXZDUpgoJ\nY6x3b2hsHW2LTkaHXbI8V7yYWABgwtqmnRbmJiIyPGZmBwDWFR4oSaPsoXY8\n0/qKBAk1Klmm/7m0yr6AvNiW0IOcO8biaDQ705IDpr0nkXmbUSVFEYHKVSNu\nOiay\r\n=3/L4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqWWGCcqTgbjY9953a9ro64eFxHDjVj9CnITETagYhrwIhAPHnIBcgQz4a4Ur+Xy9x8NAaL0Dmnka4dxNG4ZrbttwD"}]},"_npmUser":{"name":"aminnairi","email":"nairi.amin@gmail.com"},"directories":{},"maintainers":[{"name":"aminnairi","email":"nairi.amin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/jsonvalidator_0.5.1_1623177403245_0.6941640810473857"},"_hasShrinkwrap":false},"0.6.0":{"bugs":{"url":"https://github.com/aminnairi/javascript-jsonvalidator/issues"},"description":"A sane validator for your insane JSON data","homepage":"https://github.com/aminnairi/javascript-jsonvalidator","keywords":["json","validator","schema"],"license":"GPL-3.0-or-later","main":"index.js","module":"index.mjs","name":"@aminnairi/jsonvalidator","types":"index.d.ts","version":"0.6.0","sideEffects":false,"scripts":{"coverage":"coveralls < coverage/lcov.info","types":"tsc --declaration --emitDeclarationOnly --outDir . ./sources/index.ts","build":"rollup -c","test":"jest"},"devDependencies":{"@rollup/plugin-typescript":"8.2.1","@types/jest":"26.0.23","@types/node":"15.12.1","coveralls":"3.1.0","jest":"27.0.4","rollup":"2.50.6","rollup-plugin-copy":"3.4.0","rollup-plugin-terser":"7.0.2","ts-jest":"27.0.2","ts-node":"10.0.0","typescript":"4.3.2"},"gitHead":"91a4afadfa718775af47545f78cd61683913602e","_id":"@aminnairi/jsonvalidator@0.6.0","_nodeVersion":"16.0.0","_npmVersion":"7.10.0","dist":{"integrity":"sha512-UY5yfp+R0pUhrk5DFx+9vBr9zpiI59bllp6B0h1CqWhPHkFi7/gjt2iWL6Yy7opoQHLbABZkzzLl8f/kD8VxMw==","shasum":"d1bb0f3dfd6980898f3e27725420fa0b67107d9b","tarball":"https://registry.npmjs.org/@aminnairi/jsonvalidator/-/jsonvalidator-0.6.0.tgz","fileCount":8,"unpackedSize":57178,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgv8MJCRA9TVsSAnZWagAAQywQAKHlcSEoCaUCt/lS+QRd\ncefniRwpqBWSaEB8TkD2WEeMKo/5ArNaE/bHaVx6xCeKX3581TOzAEVnqdp1\n9QLFJamXuAZJenT3HlBf72hSUrSEfvtpJdK1RB1dOwOA7GJ78vO1kKrCKi27\ni8sYD9OWega/n51K4J1GBYpwJLPcbkynotT3IyzQFKmGuSRxZIsl4p1LNAV1\n90A9SVcrSH2TWAgrZreD6eduL20cgheS54m1T+w8Lz/MbNIDlXFy8zS8x3R9\n68gpmvNUZTzR295vfH0zBcC/pqUazubnCIb3KNqyPzUKtgkea/qq549aO89c\n/BJ93y5j1jff8dd/DtWGActimpLBvpgu8B+ILHsC7WM5y9elKQCc+AziNVfm\neXK0HsbyNVs26TromWpZOJejQ2WPjIokTvDTyAVBD83AVexhxYH8NZ2oKjAZ\n20uwAyzI7z/rApz1Qc8Af41R639/EcvcIPtjUI5ToI1PS0PYhSCkrKBxAzFt\nLUbXidp09+nD3cwvEhqJN8pttOo/WoGb7hG8m4aCUvUqgm3ZiRiydthzueMN\n18d3qM7MU0GZC/PXDGpGrdQiO5MJ/evpEUCO2rdYBha0c+pWPeFjjwPtAsKC\nJg5bMkG0kUPYKwnK8pYC/o2hYFiowon84j7RwwspTaUhlWkpR2hgb/KFqdgv\n6A2R\r\n=pXVN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHkOZhZC1HXhcPGWADl+5IZX7XdM4M50Ye5UT9MYKzjYAiARa8FvB6YQiy8g/4lskxgc7Jq4rhtm5yOBvbkcP4nOVQ=="}]},"_npmUser":{"name":"aminnairi","email":"nairi.amin@gmail.com"},"directories":{},"maintainers":[{"name":"aminnairi","email":"nairi.amin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/jsonvalidator_0.6.0_1623180041501_0.8390465028225806"},"_hasShrinkwrap":false},"0.7.0":{"bugs":{"url":"https://github.com/aminnairi/javascript-jsonvalidator/issues"},"description":"A sane validator for your insane JSON data","homepage":"https://github.com/aminnairi/javascript-jsonvalidator","keywords":["json","validator","schema"],"license":"GPL-3.0-or-later","main":"index.js","module":"index.mjs","name":"@aminnairi/jsonvalidator","types":"index.d.ts","version":"0.7.0","sideEffects":false,"scripts":{"coverage":"coveralls < coverage/lcov.info","types":"tsc --declaration --emitDeclarationOnly --outDir . ./sources/index.ts","build":"rollup -c","test":"jest"},"devDependencies":{"@rollup/plugin-typescript":"8.2.1","@types/jest":"26.0.23","@types/node":"15.12.1","coveralls":"3.1.0","jest":"27.0.4","rollup":"2.50.6","rollup-plugin-copy":"3.4.0","rollup-plugin-terser":"7.0.2","ts-jest":"27.0.2","ts-node":"10.0.0","typescript":"4.3.2"},"gitHead":"827e44cf4eebfd2a41412a1bf787adbb87653e0f","_id":"@aminnairi/jsonvalidator@0.7.0","_nodeVersion":"16.0.0","_npmVersion":"7.10.0","dist":{"integrity":"sha512-zgBBtVrEpBw7A8sqjxHlEFXE3K53yV44Ht7SI3lxWv3T+WqDGfxqucxBgq/H3vxY3H5jow2EvDhQh18+Qk9JnQ==","shasum":"adb2048e07569a0f3276786a0399999a484a981e","tarball":"https://registry.npmjs.org/@aminnairi/jsonvalidator/-/jsonvalidator-0.7.0.tgz","fileCount":8,"unpackedSize":56958,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwJ9eCRA9TVsSAnZWagAAceIP/3j1yi9z4Z5nHNIIWWj0\na96uFqxq5oPwn4eh7mtznRBr2SB8kcnqb9la3VilCX8CxpoJ89qY7b050+ft\nAG5at4UUzi2mAD0ZsrRiYiTeubHhnqCV+rPo43xiuWmi5cfndWEhU4We+rKO\nrA9VyQaUNaLk0Es0Kub9u8XST0J0Xe84PYQv/cx7dBL5YZ5D3my/K8x739gR\nnoLjKVuNZXt54JEQa1irOFHubrk8K3fkfAKyFzKi0HZgOCNVGJj9HwZuFb0F\ng7XjGdoJuUKCctA0NkISQn9E2f6IRTU7dfKuf+BmmNNrF321v8sz9fZtz63I\nFmho9u6PVXrQXYxud3gAsZ5BE/sCwcGIsEj475Z3DX9e3DbMCm4A4LbhPBqU\nGkIaDRnqJDy62s/ls5dcS8FDjnOKa6B5Fz9Fz06kThIrPDhmHio6VYjkDw+D\n/s2G3l/5YU6DmQ+wNHHWaw1UwdK2ngH7k+rIfwmqdH2RPrlNSV881uMjsaok\nS07Pv3DpgQ868+F26jtgwhufI5pwKiWn1jl83DIOV4niqbNBDeV1/LKG+B4X\nKBmoyL6K3s4c0Muo/9WGMZMfwzXiguVuR+I7Frx97XPDRknmxM93RjHbSEUp\nneaqZYYxL7Ei8v30y2UZItZekb8+9LdFcqYG2+OSlf2AXA1q2MZwVR0xVj2Y\nHmEC\r\n=Latn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF4JOOUpg4J186D4l6yHzr9IHGrH+SdJx5rDSmT/3z9UAiBq5LPb55z5cgOR545x31TvRwtv6LEjwSxP16ytzibLfw=="}]},"_npmUser":{"name":"aminnairi","email":"nairi.amin@gmail.com"},"directories":{},"maintainers":[{"name":"aminnairi","email":"nairi.amin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/jsonvalidator_0.7.0_1623236446169_0.0874715050389605"},"_hasShrinkwrap":false},"1.0.0":{"bugs":{"url":"https://github.com/aminnairi/javascript-jsonvalidator/issues"},"description":"A sane validator for your insane JSON data","homepage":"https://github.com/aminnairi/javascript-jsonvalidator","keywords":["json","validator","schema"],"license":"GPL-3.0-or-later","main":"index.js","module":"index.mjs","name":"@aminnairi/jsonvalidator","types":"index.d.ts","version":"1.0.0","sideEffects":false,"scripts":{"coverage":"coveralls < coverage/lcov.info","types":"tsc --declaration --emitDeclarationOnly --outDir . ./sources/index.ts","build":"rollup -c","test":"jest"},"devDependencies":{"@rollup/plugin-typescript":"8.2.1","@types/jest":"26.0.23","@types/node":"15.12.1","coveralls":"3.1.0","jest":"27.0.4","rollup":"2.50.6","rollup-plugin-copy":"3.4.0","rollup-plugin-terser":"7.0.2","ts-jest":"27.0.2","ts-node":"10.0.0","typescript":"4.3.2"},"gitHead":"5e830284ec852789550e8413dd613fc52b452e7a","_id":"@aminnairi/jsonvalidator@1.0.0","_nodeVersion":"16.0.0","_npmVersion":"7.10.0","dist":{"integrity":"sha512-bM7pbj9FFVfomLXSy9IC9IajiPdAyn+6w9pcsc/u43eBvOSHO8yYGqdwn8LMSQNp2QQH15ezH5wFh2WwABEEEw==","shasum":"fa847bc0a57f20111bdf659dabced30f5a194d46","tarball":"https://registry.npmjs.org/@aminnairi/jsonvalidator/-/jsonvalidator-1.0.0.tgz","fileCount":8,"unpackedSize":62356,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwcNgCRA9TVsSAnZWagAASpgQAIHM2L2VNnpqpPhOoFAm\n6qW94j/rjhqus6tkxXyDHFxq8rikeXNcFAzjXq20Jukbja+TeFyYmtikhEFa\nI7+FrPXqrkQkznWI1fPrGkY6aZYkvpaB96D+Vk6JIbsWTHFcOVrhJ3WW2EAU\neSjTUd+tCISLNcJi7efvjJa5UJkwxz9kaAehyvXf3XYCXXEsxqqfk2YsalxX\nwxE3479H2NAjEwoeHqdTckWHnFaIzZPwsAadGMKSJVpxkgOGSQ2BMSrn+xPB\nqfYUv87JWRIoYPjc0HUZ17zTqkFxkcaX5MPhXPr+77X1Yvfgufy54nnJyau5\nDMJKyGqNfN69EE/5fUBwcoFB1G14NAulsC82GHJrPtc7L9a7sBvZPSUfutuZ\nXdG/ARtazA+euveSL/5qhp7ESxxBe/udZBqeTyeSgeXwvAAdY8Unc79kAgIY\nMlYHWAyyX/Mhnkn2mJOfnC4XROJpShJ/imkDMQgA0ccNIUNOxyuZ/rd6AAK+\nrfzojVnNx+7UdQw9nswQ5f/lge/hARfnVGq57qzg+/xkjX9E8YryRk1Hx5Mv\nJ5W81iy6A5s7lRpL3dYNGpWkOfhaDcM0p2+/COpo6PyfwIOYIQ6rVsAcdBMj\nDrgtuzpimGPqqqp9o4oqbmK923P42BEE0lA/mqdCF22OxrNeEu1ZeK9SpRxH\ncnlD\r\n=NJPK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDm+xp9Y3jPmjvEvJ8i8GfbHhe5iX6pWpXJPeSAUJZFfAIhAM1b5pThZqnxK4qsEMrARICfnHmihZeHN03s3t1tATSe"}]},"_npmUser":{"name":"aminnairi","email":"nairi.amin@gmail.com"},"directories":{},"maintainers":[{"name":"aminnairi","email":"nairi.amin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/jsonvalidator_1.0.0_1623311199956_0.8579722180972795"},"_hasShrinkwrap":false}},"time":{"created":"2021-06-07T08:30:24.174Z","0.1.0":"2021-06-07T08:30:24.388Z","modified":"2022-04-04T13:49:19.272Z","0.2.0":"2021-06-07T09:20:08.533Z","0.3.0":"2021-06-07T21:44:21.406Z","0.4.0":"2021-06-08T10:24:18.118Z","0.5.0":"2021-06-08T10:48:15.952Z","0.5.1":"2021-06-08T18:36:43.467Z","0.6.0":"2021-06-08T19:20:41.602Z","0.7.0":"2021-06-09T11:00:46.357Z","1.0.0":"2021-06-10T07:46:40.084Z"},"maintainers":[{"name":"aminnairi","email":"nairi.amin@gmail.com"}],"description":"A sane validator for your insane JSON data","homepage":"https://github.com/aminnairi/javascript-jsonvalidator","keywords":["json","validator","schema"],"bugs":{"url":"https://github.com/aminnairi/javascript-jsonvalidator/issues"},"license":"GPL-3.0-or-later","readme":"# @aminnairi/jsonvalidator\n\nA sane validator for your insane JSON data\n\n[![NPM package version](https://badgen.net/npm/v/@aminnairi/jsonvalidator)](https://www.npmjs.com/package/@aminnairi/jsonvalidator) [![TypeScript typing included status](https://badgen.net/npm/types/@aminnairi/jsonvalidator)](https://github.com/aminnairi/javascript-jsonvalidator/blob/latest/sources/index.ts) [![Code coverage in percent](https://badgen.net/coveralls/c/github/aminnairi/javascript-jsonvalidator/latest)](https://coveralls.io/github/aminnairi/javascript-jsonvalidator) [![minified + gzipped package size](https://badgen.net/bundlephobia/minzip/@aminnairi/jsonvalidator)](https://bundlephobia.com/package/@aminnairi/jsonvalidator) [![tree-shaking support status](https://badgen.net/bundlephobia/tree-shaking/@aminnairi/jsonvalidator)](https://bundlephobia.com/package/@aminnairi/jsonvalidator) [![vulnerabilities count](https://badgen.net/snyk/aminnairi/javascript-jsonvalidator)](https://snyk.io/advisor/npm-package/@aminnairi/jsonvalidator)\n\n## Summary\n\n- [Usage](#usage)\n- [Installation](#installation)\n  - [Deno](#deno)\n    - [ECMAScript Module](#ecmascript-module)\n    - [TypeScript](#typescript)\n  - [Node](#node)\n    - [ECMAScript](#ecmascript)\n    - [CommonJS](#commonjs)\n    - [TypeScript](#typescript-1)\n  - [Browser](#browser)\n    - [Script](#script)\n    - [ECMAScript Module](#ecmascript-module-1)\n- [API](#api)\n  - [validate](#validate)\n  - [string](#string)\n  - [number](#number)\n  - [boolean](#boolean)\n  - [nil](#nil)\n  - [array](#array)\n  - [object](#object)\n  - [oneOf](#oneof)\n- [Changelog](#changelog)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Usage\n\n```typescript\nimport {validate, array, object, property, string, number} from \"@aminnairi/jsonvalidator\";\n\nconst schema = array(object([\n  property(\"id\", number),\n  property(\"languages\", array(string))\n]));\n\nconst data = [\n  {id: 1, languages: [\"javascript\", \"php\", \"python\", \"ruby\"]},\n  {id: 2, languages: [\"haskell\", \"purescript\", \"elm\", null]}\n];\n\nconst validation = validate(schema, data);\n\nif (validation.error) {\n  console.error(validation.error);\n}\n```\n\n```console\nexpected null to be of type \"string\", at index 3 of [\n  \"haskell\",\n  \"purescript\",\n  \"elm\",\n  null\n], for property \"languages\" of {\n  \"id\": 2,\n  \"languages\": [\n    \"haskell\",\n    \"purescript\",\n    \"elm\",\n    null\n  ]\n}, at index 1 of [\n  {\n    \"id\": 1,\n    \"languages\": [\n      \"javascript\",\n      \"php\",\n      \"python\",\n      \"ruby\"\n    ]\n  },\n  {\n    \"id\": 2,\n    \"languages\": [\n      \"haskell\",\n      \"purescript\",\n      \"elm\",\n      null\n    ]\n  }\n]\n```\n\n[Back to summary](#summary)\n\n## Installation\n\n### Deno\n\n#### ECMAScript Module\n\n```typescript\nimport {validate, string} from \"https://unpkg.com/@aminnairi/jsonvalidator?module\";\n\nconst validation = validate(string, null);\n\nif (validation.error) {\n  console.error(validation.error);\n}\n```\n\n[Back to summary](#summary)\n\n#### TypeScript\n\n```typescript\nimport {validate, string} from \"https://unpkg.com/@aminnairi/jsonvalidator/index.ts\";\n\nconst validation = validate(string, null);\n\nif (validation.error) {\n  console.error(validation.error):\n}\n```\n\n[Back to summary](#summary)\n\n### Node\n\n```console\n$ npm install @aminnairi/jsonvalidator\n```\n\n[Back to summary](#summary)\n\n#### ECMAScript\n\n```typescript\nimport jsonvalidator from \"@aminnairi/jsonvalidator\";\n\nconst {validate, string} = jsonvalidator;\n\nconst validation = validate(string, null);\n\nif (validation.error) {\n  console.error(validation.error);\n}\n```\n\n[Back to summary](#summary)\n\n#### CommonJS\n\n```javascript\n\"use strict\";\n\nconst {validate, string} = require(\"@aminnairi/jsonvalidator\");\n\nconst validation = validate(string, null);\n\nif (validation.error) {\n  console.error(validation.error);\n}\n```\n\n[Back to summary](#summary)\n\n#### TypeScript\n\n```typescript\nimport {validate, string} from \"@aminnairi/jsonvalidator\";\n\nconst validation = validate(string, null);\n\nif (validation.error) {\n  console.error(validation.error);\n}\n```\n\n[Back to summary](#summary)\n\n### Browser\n\n#### Script\n\n```html\n<!DOCTYPE html>\n<html>\n  <body>\n    <script src=\"https://unpkg.com/@aminnairi/jsonvalidator\"></script>\n    <script>\n      \"use strict\";\n      \n      const {validate, string} = window.aminnairi.jsonvalidator;\n\n      const validation = validate(string, null);\n\n      if (validation.error) {\n        console.error(validation.error);\n      }\n    </script>\n  </body>\n</html>\n```\n\n[Back to summary](#summary)\n\n#### ECMAScript Module\n\n```html\n<!DOCTYPE html>\n<html>\n  <body>\n    <script type=\"module\">\n      import {validate, string} from \"https://unpkg.com/@aminnairi/jsonvalidator?module\";\n      \n      const validation = validate(string, null);\n\n      if (validation.error) {\n        console.error(validation.error);\n      }\n    </script>\n  </body>\n</html>\n```\n\n[Back to summary](#summary)\n\n## API\n\n### validate\n\nCheck that an input is valid according to a given schema. Throws an error if it does not.\n\n```typescript\nexport interface SucceededValidation {\n  error: false\n}\n\nexport interface FailedValidation {\n  error: string;\n}\n\nexport type Validation\n  = SucceededValidation\n  | FailedValidation\n\nexport type Schema\n  = StringSchema\n  | NumberSchema\n  | BooleanSchema\n  | NullSchema\n  | ArraySchema\n  | ObjectSchema\n  | OneOfSchema\n\nexport const validate = (schema: Schema, input: unknown): Validation;\n```\n\n```typescript\nimport {validate, number} from \"@aminnairi/jsonvalidator\";\n\nconst schema = number;\n\nconst validation = validate(schema, \"123\");\n\nif (validation.error) {\n  console.error(validation.error);\n}\n```\n\n[Back to summary](#summary)\n\n### string\n\nSchema for a string.\n\n```typescript\nexport interface StringSchema {\n  type: \"string\";\n}\n\nexport const string: StringSchema;\n```\n\n```typescript\nimport {validate, string} from \"@aminnairi/jsonvalidator\";\n\nconst schema = string;\n\nconst validation = validate(schema, \"string\");\n\nif (validation.error) {\n  console.error(validation.error);\n}\n```\n\n[Back to summary](#summary)\n\n### number\n\nSchema for a number.\n\n```typescript\nexport interface NumberSchema {\n  type: \"number\";\n}\n\nexport const number: NumberSchema;\n```\n\n```typescript\nimport {validate, number} from \"@aminnairi/jsonvalidator\";\n\nconst schema = number;\n\nconst validation = validate(schema, 123);\n\nif (validation.error) {\n  console.error(validation.error);\n}\n```\n\n[Back to summary](#summary)\n\n### boolean\n\nSchema for a boolean.\n\n```typescript\nexport interface BooleanSchema {\n  type: \"boolean\";\n}\n\nexport const boolean: BooleanSchema;\n```\n\n```typescript\nimport {validate, boolean} from \"@aminnairi/jsonvalidator\";\n\nconst schema = boolean;\n\nconst validation = validate(schema, true);\n\nif (validation.error) {\n  console.error(validation.error);\n}\n```\n\n[Back to summary](#summary)\n\n### nil\n\nSchema for null values.\n\n```typescript\nexport interface NullSchema {\n  type: \"null\";\n}\n\nexport const nil: NullSchema = {\n```\n\n```typescript\nimport {validate, nil} from \"@aminnairi/jsonvalidator\";\n\nconst schema = nil;\n\nconst validation = validate(schema, null);\n\nif (validation.error) {\n  console.error(validation.error);\n}\n```\n\n[Back to summary](#summary)\n\n### array\n\nSchema for an array. It accepts either another schema or an array of index schema. An index schema is a special schema that only works for arrays and can validate data for a wanted array index.\n\n```typescript\nexport interface IndexSchema {\n  type: \"index\";\n  index: number;\n  schema: Schema;\n}\n\nexport interface ArraySchema {\n  type: \"array\";\n  values: Schema | Array<IndexSchema>;\n}\n\nexport const array = (schema: Schema | Array<IndexSchema>): ArraySchema;\n\nexport const index = (i: number, schema: Schema): IndexSchema;\n```\n\n```typescript\nimport {validate, array, number} from \"@aminnairi/jsonvalidator\";\n\nconst schema = array(number);\n\nconst validation = validate(schema, [123, 456]);\n\nif (validation.error) {\n  console.error(validation.error);\n}\n```\n\n```typescript\nimport {validate, array, index, number} from \"@aminnairi/jsonvalidator\";\n\nconst schema = array([index(0, string), index(1, number)]);\n\nconst validation = validate(schema, [123, 456]);\n\nif (validation.error) {\n  console.error(validation.error);\n}\n```\n\n[Back to summary](#summary)\n\n### object\n\nSchema for an object. It accepts an array of property schema or optional property schema. A property schema is a special schema that allows the validation of a data for a wanted property. An optional property schema is similar to a property schema, except the data can be missing. A missing data is simply a data that is not present in the JSON data. Null values are not considered missing data.\n\n```typescript\nexport interface PropertySchema {\n  type: \"property\";\n  key: string;\n  schema: Schema;\n}\n\nexport interface OptionalPropertySchema {\n  type: \"optionalProperty\";\n  key: string;\n  schema: Schema;\n}\n\nexport interface ObjectSchema {\n  type: \"object\";\n  properties: Array<PropertySchema | OptionalPropertySchema>;\n}\n\nexport const object = (properties: Array<PropertySchema | OptionalPropertySchema>): ObjectSchema;\n\nexport const property = (key: string, schema: Schema): PropertySchema;\n\nexport const optionalProperty = (key: string, schema: Schema): OptionalPropertySchema;\n```\n\n```typescript\nimport {validate, object, property, number} from \"@aminnairi/jsonvalidator\";\n\nconst schema = object([property(\"x\", number), property(\"y\", number)]);\n\nconst validation = validate(schema, {x: 1, y: 2});\n\nif (validation.error) {\n  console.error(validation.error);\n}\n```\n\n```typescript\nimport {validate, object, optionalProperty, string} from \"@aminnairi/jsonvalidator\";\n\nconst schema = object([optionalProperty(\"token\", string)]);\n\nconst validation = validate(schema, {});\n\nif (validation.error) {\n  console.error(validation.error);\n}\n```\n\n[Back to summary](#summary)\n\n### oneOf\n\nSchema for validating multiple possible schema for one data. It accepts an array of schema, excepted the special schemas mentioned above.\n\n```typescript\nexport interface OneOfSchema {\n  type: \"oneOf\";\n  schemas: Array<Schema>;\n}\n\nexport const oneOf = (schemas: Array<Schema>): OneOfSchema;\n```\n\n```typescript\nimport {validate, oneOf, number, string} from \"@aminnairi/jsonvalidator\";\n\nconst schema = oneOf([number, string]);\n\nconst validation = validate(schema, 123);\n\nif (validation.error) {\n  console.error(validation.error);\n}\n```\n\n[Back to summary](#summary)\n\n## Changelog\n\nSee [`CHANGELOG.md`](./CHANGELOG.md).\n\n[Back to summary](#summary)\n\n## Contributing\n\nSee [`CONTRIBUGING.md`](./CONTRIBUTING.md).\n\n[Back to summary](#summary)\n\n## License\n\nSee [`LICENSE`](./LICENSE).\n\n[Back to summary](#summary)\n","readmeFilename":"README.md"}