{"_id":"@danifoldi/spartan-schema","_rev":"6-dcbe285323b93bbd16155fe7bc3b5c78","name":"@danifoldi/spartan-schema","dist-tags":{"latest":"2.1.0"},"versions":{"1.1.0":{"name":"@danifoldi/spartan-schema","version":"1.1.0","description":"A fork of spartan-schema with some new features","type":"module","scripts":{"build":"esbuild src/*.ts --outdir=dist && tsc --emitDeclarationOnly --outdir dist","lint":"eslint --ext .cjs,.js,.json,.mjs,.ts,.vue --cache --cache-file .eslintcache --report-unused-disable-directives .","lintw":"chokidar \"**/*.{cjs,js,json,mjs,ts,vue}\" -i \"{coverage,node_modules,.nuxt,.output}/**\" -c \"npm run lint -- --fix\"","test":"ts-mocha test/**/*.ts","typecheck":"tsc --noEmit"},"license":"BlueOak-1.0.0","devDependencies":{"@danifoldi/eslint-plugin-eslint-presets":"^1.6.0","@types/chai":"^4.3.1","@types/mocha":"^9.1.1","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","chai":"^4.3.6","chokidar-cli":"^3.0.0","esbuild":"^0.14.53","eslint":"^8.21.0","eslint-import-resolver-typescript":"^3.4.0","eslint-plugin-chai-expect":"^3.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-mocha":"^10.1.0","eslint-plugin-unicorn":"^43.0.2","ts-mocha":"^10.0.0","ts-node":"^10.9.1","typescript":"^4.8.0-beta"},"overrides":{"typescript":"^4.8.0-beta"},"gitHead":"b2bd9810776003a112d7eb0b6c40cdbf8de5cc41","_id":"@danifoldi/spartan-schema@1.1.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-kDxhAQE9jvm8870/23odhtIaZ6PYN8iOLa4k9hEms4S611zkHPRB8lkhJDXW+86DwXQ7WB9DupeNLLAAiY1T1Q==","shasum":"7ea8006a8034ef657cff42caf4834c32a70a2a9a","tarball":"https://registry.npmjs.org/@danifoldi/spartan-schema/-/spartan-schema-1.1.0.tgz","fileCount":3,"unpackedSize":15066,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICOz8NPyKLJrVZbDcsl4/lQx55paMeiXOTOlGy7dyagAAiEAs7gLfHw+jQrZbk83WLsQ8g8pQzJW33N7dhKe+Q34208="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7TGyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrFOw//RdRu0YcSP1Lp10qJLvowKE8i/ZJz3bom/T9mDC3Phsfo4jxl\r\nAmDvnEMYanPwjBuoH8+Vb52YIy5mPqJ+vc16zCLpifO0XXKFJMczTwOHEWr2\r\naeD2oeLdNtWMLSM96NxBCTB7nfTeZLOBCwHKjiGiGiQX8Xsu7Ldte9XNF74R\r\n8URDgqpSHNIROMqN2ec8IcOINgwkufvq1CeT0IGZGZJ/ZbKVWefXr+MuN69h\r\nI0LZJrPp52rJ3cbjYICHEWeO826FFmuVSTq0ucniLED4ug4Bm5LM2qYVGFHx\r\nQc2U9X/qBtm1PEUgcCdxwAvInIdtIihHFyWOQQ6AqbOrTeA/PwonW9e3u0Bu\r\nF4BykpUJ7qdJDNDzmluG1zsa8P33CLAWM501nDu/dRwXl6e52obPe/MD2AV/\r\nyPTj4SdsN9nO0w7mBRjoaxq+Lj8qGxuhVR2DUB/GenmDpUGeTq/Khwxzaj5u\r\nfKTuBCmR7d60O0gPu49HYDcklMoVukncjF/Ai8VR9D9VxePhguWyk6A6UGqu\r\npK+dvpbZF8m+AP6n12yLrHiaAtSS2/z4WxIAFj+w/vuU/8q+Xo3IcS4HKgCv\r\nMwmstAfR0RtTx+ueVroNjjEISJ6LTxpE29gEKeBGvWf4q9OeWj2eRVuJ51LS\r\nfL3rgZfka1sMrv3M7caq4oHdaPeuB9p4bRA=\r\n=fMLu\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"danifoldi","email":"dani@stefan.hu"},"directories":{},"maintainers":[{"name":"danifoldi","email":"dani@stefan.hu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spartan-schema_1.1.0_1659711922765_0.532044790059246"},"_hasShrinkwrap":false},"1.1.1":{"name":"@danifoldi/spartan-schema","version":"1.1.1","description":"A fork of spartan-schema with some new features","type":"module","scripts":{"build":"esbuild src/*.ts --outdir=dist && tsc --emitDeclarationOnly --outdir dist","lint":"eslint --ext .cjs,.js,.json,.mjs,.ts,.vue --cache --cache-file .eslintcache --report-unused-disable-directives .","lintw":"chokidar \"**/*.{cjs,js,json,mjs,ts,vue}\" -i \"{coverage,node_modules,.nuxt,.output}/**\" -c \"npm run lint -- --fix\"","test":"ts-mocha test/**/*.ts","typecheck":"tsc --noEmit"},"license":"BlueOak-1.0.0","devDependencies":{"@danifoldi/eslint-plugin-eslint-presets":"^1.6.0","@types/chai":"^4.3.1","@types/mocha":"^9.1.1","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","chai":"^4.3.6","chokidar-cli":"^3.0.0","esbuild":"^0.14.53","eslint":"^8.21.0","eslint-import-resolver-typescript":"^3.4.0","eslint-plugin-chai-expect":"^3.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-mocha":"^10.1.0","eslint-plugin-unicorn":"^43.0.2","ts-mocha":"^10.0.0","ts-node":"^10.9.1","typescript":"^4.8.0-beta"},"overrides":{"typescript":"^4.8.0-beta"},"gitHead":"c173f9545f5a04f948098e52c76c444b38afc6f2","_id":"@danifoldi/spartan-schema@1.1.1","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-DbMCRmbHsMiWJAwUTT4BNTIA17yCQof77AqQjiYK2bRFZM4FUIQoqBpVSgP6hJMnY8iw5lYJYY/9XSAsyncmcA==","shasum":"78c2963c224a48fc32e9e568aa852b35ef869748","tarball":"https://registry.npmjs.org/@danifoldi/spartan-schema/-/spartan-schema-1.1.1.tgz","fileCount":9,"unpackedSize":40450,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGNpzV21exbq2vCuyixdJGCrGuOWduBcT2jHPhx+UQItAiAAkxFObBM2sS2k2rnxLhU2DJ/bMyzMROLTtG7u5lVWxQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7TZQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq8mg//WeMV21H3MAlaMCmmw+U8BRIRrZOp/myuDIy1hQ4mMbaYrqJp\r\nvMfxu76xLP6wWW1PMpGtH7zvdPxiTvJpoNgDUhY7ogHajLgAL4x8reE7AHEd\r\nnTKoneskXkasLjldWMDgD8LnqiIfBxXWfxR7AfDV1a2USslaavCoBK+4N+MA\r\ndivqp7b7H2ZUGrYu5841a6YqsOcr/DltykO+OusBM6RTyN90pnetHd4ReTUF\r\nL3LeC1bGyCoy0QQQxMy3kFBv/ry6Rwq+rv9irwOp3CedwLQFluiuE1l6JjbU\r\nWmTvAhZ9i6guLff+8/0yb16trSE1mGJwCYbcoADTZEDff3pO3Qe6L8iPjYHZ\r\nPXBEm4sZMAwX33yvnrFAozgXMONrUooa9NagVls/hc3QlvBooL+5dsULKwQx\r\nfnESZvrzWpYmenuM5E+m6nGYXQ8jFOHjfxXkDdxLBUcpA7n6fruyVmq3/rW6\r\n4A5d2xPhculQYpSPwQ9qvfkn6gB5MB8OC3uBLa4BK5RIN71G6w6FTTLE72gG\r\nQvMt0cGSbZwHHii7i63b/eZIXKQriwYo803beiADeYUq5DtBY2TpKvQhjkVp\r\nT0VJQw3yvGNmgFvLR6sTgwTaDRBG1+PqCCiXnoK8szUipCCTKGGkkr+xB6Gv\r\n4xR8hFwK5sIzN1Sov2cke8980BQU6FIPYZs=\r\n=QoJg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"danifoldi","email":"dani@stefan.hu"},"directories":{},"maintainers":[{"name":"danifoldi","email":"dani@stefan.hu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spartan-schema_1.1.1_1659713104260_0.823324960038764"},"_hasShrinkwrap":false},"1.1.2-beta":{"name":"@danifoldi/spartan-schema","version":"1.1.2-beta","description":"A fork of spartan-schema with some new features","type":"module","scripts":{"build":"esbuild src/*.ts --outdir=dist && tsc --emitDeclarationOnly --outdir dist","lint":"eslint --ext .cjs,.js,.json,.mjs,.ts,.vue --cache --cache-file .eslintcache --report-unused-disable-directives .","lintw":"chokidar \"**/*.{cjs,js,json,mjs,ts,vue}\" -i \"{coverage,node_modules,.nuxt,.output}/**\" -c \"npm run lint -- --fix\"","test":"ts-mocha test/**/*.ts","typecheck":"tsc --noEmit"},"license":"BlueOak-1.0.0","devDependencies":{"@danifoldi/eslint-plugin-eslint-presets":"^1.6.0","@types/chai":"^4.3.1","@types/mocha":"^9.1.1","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","chai":"^4.3.6","chokidar-cli":"^3.0.0","esbuild":"^0.14.53","eslint":"^8.21.0","eslint-import-resolver-typescript":"^3.4.0","eslint-plugin-chai-expect":"^3.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-mocha":"^10.1.0","eslint-plugin-unicorn":"^43.0.2","ts-mocha":"^10.0.0","ts-node":"^10.9.1","typescript":"^4.8.0-beta"},"exports":{".":"./dist/schema.js","./dist/*":"./dist/*"},"overrides":{"typescript":"^4.8.0-beta"},"gitHead":"fa2cc0bdd3f7bc80da81793b2a915151deb3a085","_id":"@danifoldi/spartan-schema@1.1.2-beta","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-TenOOaRHQqlaIYPUhGxu4Xjxnm8Lol5CL70QNyQSJ34wR9kRnr6MC3Lix7T4mVrU8M3gRo7+5FMyi5U/3vGKSQ==","shasum":"14515c5426c9630e995b1977110d04c4db7d1091","tarball":"https://registry.npmjs.org/@danifoldi/spartan-schema/-/spartan-schema-1.1.2-beta.tgz","fileCount":9,"unpackedSize":40531,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCiP/btuTOeql3oqn9orP7IsQI5VHTfeE4/zP25ecCNBwIgYA94tJdHrAhAyPP82N+m8X1R6HelRHsFw12x5rGf6/o="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7TgmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr7yA//V2u/N03trPHEo4lCOgdXe7SdayHRNgSnPuCofjYu4heI8l6o\r\nLgGEptwh+L0JC3YhPsH56qR5up4w4/LGFVF6YxBw/NRY8bcAGcloAxQEZLP0\r\n4JbvqCd5QREYmk6TomzysJls4c7T+LK98APdPMIYO/L4liKuW2QHcMAQaJoU\r\ndLTPJCpQfwHPVmxn3QeqWIVB5/b9lo5vQK1pD8brIRxQ+A6NptikZQPAp+Nw\r\nmWgU2mN5KwDtW3eFdiL4xBgwZ2ooCUb9+AQzbK/Nl4Re082yj76IEdlX1UnI\r\nHY2z7DHkoepwB5fncERZenoIrqyt40bNGI3Cid65jud/odzNQJDnWtdHShDs\r\nYZjxAKa0eU/tAnVGaftA0w23m4QUUOaCvOZpG4LTZpx1n7yexKBR2ZylE/Jk\r\nPzmDTfNE9QSdOeIsIqw2gqIXA6hrm9jCm2B/jDmOLanyC8zp4qXfa4WwYyXO\r\nNBhOcYpKEfDvijMyBdCpOCxJZVouVdQNoX1Co9PwY4G9Px/uU8sJki65Bg/j\r\nSedPCuVf9vDBfmsM7RTWrl8HaCaX9w6uOctpuNeejG97SEsBHUp3KN+EN6ra\r\nO5ylsOrsWDCZ4LwUWbnB2R5D4ckmV68IG6igUAG7it8v1aVbGU3RYF50jDfl\r\nCno3RvbgaCa4xSxWoJT2wZmhMvAruksKPiA=\r\n=S2+P\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"danifoldi","email":"dani@stefan.hu"},"directories":{},"maintainers":[{"name":"danifoldi","email":"dani@stefan.hu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spartan-schema_1.1.2-beta_1659713573905_0.32030937188444386"},"_hasShrinkwrap":false},"1.1.2":{"name":"@danifoldi/spartan-schema","version":"1.1.2","description":"A fork of spartan-schema with some new features","type":"module","scripts":{"build":"esbuild src/*.ts --outdir=dist && tsc --emitDeclarationOnly --outdir dist","lint":"eslint --ext .cjs,.js,.json,.mjs,.ts,.vue --cache --cache-file .eslintcache --report-unused-disable-directives .","lintw":"chokidar \"**/*.{cjs,js,json,mjs,ts,vue}\" -i \"{coverage,node_modules,.nuxt,.output}/**\" -c \"npm run lint -- --fix\"","test":"ts-mocha test/**/*.ts","typecheck":"tsc --noEmit"},"author":{"name":"ar-nelson"},"contributors":[{"name":"DaniFoldi"}],"bugs":{"url":"https://github.com/DaniFoldi/spartan-schema/issues"},"homepage":"https://github.com/DaniFoldi/spartan-schema#readme","repository":{"type":"git","url":"git+https://github.com/DaniFoldi/spartan-schema.git"},"keywords":["schema","json schema","static schema","schema type","type","typed schema","schema validation","validator","jsonschema","json","json-schema","json validation"],"license":"BlueOak-1.0.0","devDependencies":{"@danifoldi/eslint-plugin-eslint-presets":"^1.6.0","@types/chai":"^4.3.1","@types/mocha":"^9.1.1","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","chai":"^4.3.6","chokidar-cli":"^3.0.0","esbuild":"^0.14.53","eslint":"^8.21.0","eslint-import-resolver-typescript":"^3.4.0","eslint-plugin-chai-expect":"^3.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-mocha":"^10.1.0","eslint-plugin-unicorn":"^43.0.2","ts-mocha":"^10.0.0","ts-node":"^10.9.1","typescript":"^4.8.0-beta"},"exports":{".":"./dist/schema.js","./dist/schema":"./dist/schema.js","./dist/path":"./dist/path.js","./dist/isPlainObject":"./dist/isPlainObject.js"},"overrides":{"typescript":"^4.8.0-beta"},"gitHead":"131a83e38bef590396799f90e3bf0f39a32455df","_id":"@danifoldi/spartan-schema@1.1.2","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-KDZPSMw4v8oRwhQUU+IZ17DEX2HPrqYFqkZ5CYWvXvgxnguKKpaJcrTIoWJBVEnG7bOuS2mICEL+9mIA8kj8Gg==","shasum":"109d37bb9cdf1a237076dcba892dfd9e1b7c792e","tarball":"https://registry.npmjs.org/@danifoldi/spartan-schema/-/spartan-schema-1.1.2.tgz","fileCount":9,"unpackedSize":41184,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDG+hJQtPNYw28MiPUCyJ3yv+yPXLLx0YOgG5ndwqgK2AIhAOgDIg3KcvSlNPTcfhmIFdlS7M6vU07KFDfnVknKb3lg"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7l6qACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoz7w//YE/QMz3w85DNvuBiblzwIYfH5xgg/iHhAN9FfQXdvE9s7JFY\r\ng6jXfpPTuJ2ZSZTg1zfxtuv6torArF1A25NVACXeoY8/ShdKyQ1vy3iKoAdQ\r\nsx40pJqslc7FyHL+u8CWmbCRiOj/SREC0fyr59qqN2j2jK6A4X+cYg4fReR3\r\nKOlZZyphi9igt4/DWP+D/J0nUuG14LSHMSCCXXe508Jb/fKxPo3jx+zf7Ju8\r\nIIsg7V7V5Ra/ek5l9+QO+o6L+O0iYmiCa1t+2o253vAFVf+eRABALt80rFkE\r\nAF9/W2CRENzgsannEwZHo8m6NPcnEuPY7irve2/3AOKDidlF5NFZwfWR+I9z\r\nH5km5ooj8niGcjesoJMujYdBwkdUz800KGHnVa4h5ckDtK3L270x7vTh5WyJ\r\n+2gkZSjyWkAlQyZHxS7fmN8JcY7aMo5yjLmHw2FbQkEmKQAb3j6G/KaCo7z/\r\nebzvOBpokwtAtlRhZiHciVeIPwV8w5/enPtAP4g8vGv8TWrL/6eTFRWaGzKM\r\nUyHdINuMcGm6GfUWlksVAy2X+3ko/+q0gkEVdQow09kmH12UvWabvSgbMgNv\r\njikXRgCn7Is52XHBCPVRAsDANfA+th0EmSXsYQ3DTbFqiAcXbkggs/H5MypI\r\n7/lCMdFo1UYgaF+3a3m+XwuymPP5JzO/whY=\r\n=nDOd\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"danifoldi","email":"dani@stefan.hu"},"directories":{},"maintainers":[{"name":"danifoldi","email":"dani@stefan.hu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spartan-schema_1.1.2_1659788969924_0.5534719885148591"},"_hasShrinkwrap":false},"2.0.0":{"name":"@danifoldi/spartan-schema","version":"2.0.0","description":"A fork of spartan-schema with some new features","type":"module","scripts":{"build":"esbuild src/index.ts --bundle --outfile=dist/index.js --format=esm --target=es2020 && tsc --emitDeclarationOnly --outdir dist","lint":"eslint --ext .cjs,.js,.json,.mjs,.ts,.vue --cache --cache-file .eslintcache --report-unused-disable-directives .","lintw":"chokidar \"**/*.{cjs,js,json,mjs,ts,vue}\" -i \"{coverage,node_modules,.nuxt,.output}/**\" -c \"npm run lint -- --fix\"","test":"mocha","typecheck":"tsc --noEmit --emitDeclarationOnly false"},"author":{"name":"ar-nelson"},"contributors":[{"name":"DaniFoldi"}],"bugs":{"url":"https://github.com/DaniFoldi/spartan-schema/issues"},"homepage":"https://github.com/DaniFoldi/spartan-schema#readme","repository":{"type":"git","url":"git+https://github.com/DaniFoldi/spartan-schema.git"},"keywords":["schema","json schema","static schema","schema type","type","typed schema","schema validation","validator","jsonschema","json","json-schema","json validation"],"license":"BlueOak-1.0.0","devDependencies":{"@danifoldi/eslint-plugin-eslint-presets":"^1.6.0","@types/chai":"^4.3.1","@types/mocha":"^9.1.1","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","chai":"^4.3.6","chokidar-cli":"^3.0.0","esbuild":"^0.14.53","eslint":"^8.21.0","eslint-import-resolver-typescript":"^3.4.0","eslint-plugin-chai-expect":"^3.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-mocha":"^10.1.0","eslint-plugin-unicorn":"^43.0.2","mocha":"^10.0.0","ts-node":"^10.9.1","typescript":"^4.7.4"},"exports":{".":"./dist/index.js"},"types":"./dist/index.d.ts","main":"./dist/index.js","gitHead":"0a4e3961fd1714bff58f274b739f5c9b3c24d349","_id":"@danifoldi/spartan-schema@2.0.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-AwitYhOoL8H7bbG6xQbep3f41DDQvfH5jqU0ED6f0n52VU7ciDHUetwhUSdFZIqT0d9VVQWRApbh4wd0jDSdTw==","shasum":"11ec6b72130a49ea6abfebee01295e7078b68cb8","tarball":"https://registry.npmjs.org/@danifoldi/spartan-schema/-/spartan-schema-2.0.0.tgz","fileCount":9,"unpackedSize":42228,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCMTgDhCrzBPP2V/5djBfYQkBKgrN3hYzOdo89ddj5RAgIhANQI8jI28m+LJW8tXr4zsJQ1+QWZJxAJv140TOEyGLsz"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7oQYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpGxQ//cwKkMIDRfNBeSGCXWBSs7clQilDob3eNzgIqOkvIccNpCQ3g\r\neP9miDEAQ4O+R9C1z51TrFww+0oSjZZBFzoxNt+7uh0z2bqmzfte8ymB84eA\r\n25SONlOnOxgVSIL9W42QMbs0YDTOMLbmvTa2dLsYpZtHxzP7otM+gNEz3FSC\r\nt/hS4lre4tp5t9v5r9YbN0bDXUE9+SE2Df/ymay21v+U6UBhIMxdOBjEQs9v\r\nu180JzgpoI/k+6RYU7IfxLkbPCaI72ls9/CpTOkkd85laVdLWFcpMWX/bgNJ\r\nJQpNYf32WF22fNfmzmfu0rZ6Id0+a8dFKC7bGtIEMlLwEEgG6X8RyZx2yIdB\r\nSbXobN9DZQhCAx2+XT/WCNdD9p7M5dSbixnZukxbMjkYCRCAWtc6Pve4s6Pt\r\nH2Z3/z/eZz+FC/MwejSAqEqFDv1Yi3zFF78DSgtK1ZBzC9k8TNxakFuWo+NQ\r\n/dwypxIJ+SxxtQJrFS1PKMecGS8XUsFLujqgTcFC6ppFcFEvZxviusOhmQh6\r\nO4m/g99ir6oHUvm+O7lsqXKLvufPnmsJkIN+6A8m4FgTX/ZvRCb2lby1I1mV\r\nAj++XTouavb/1071RfZvL3caMjHM0y1OgncBj5m1+6QgSUGqQZ/IV+R+zRsn\r\nNLgbQcfXyHTOW4JfvR34+/TfEH4l4tbwQ7U=\r\n=7L8B\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"danifoldi","email":"dani@stefan.hu"},"directories":{},"maintainers":[{"name":"danifoldi","email":"dani@stefan.hu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spartan-schema_2.0.0_1659798552526_0.028498433870485007"},"_hasShrinkwrap":false},"2.0.1":{"name":"@danifoldi/spartan-schema","version":"2.0.1","description":"A fork of spartan-schema with some new features","type":"module","scripts":{"build":"esbuild src/index.ts --bundle --outfile=dist/index.js --format=esm --target=es2020 && tsc --emitDeclarationOnly --outdir dist","lint":"eslint --ext .cjs,.js,.json,.mjs,.ts,.vue --cache --cache-file .eslintcache --report-unused-disable-directives .","lintw":"chokidar \"**/*.{cjs,js,json,mjs,ts,vue}\" -i \"{coverage,node_modules,.nuxt,.output}/**\" -c \"npm run lint -- --fix\"","test":"mocha","typecheck":"tsc --noEmit --emitDeclarationOnly false"},"author":{"name":"ar-nelson"},"contributors":[{"name":"DaniFoldi"}],"bugs":{"url":"https://github.com/DaniFoldi/spartan-schema/issues"},"homepage":"https://github.com/DaniFoldi/spartan-schema#readme","repository":{"type":"git","url":"git+https://github.com/DaniFoldi/spartan-schema.git"},"keywords":["schema","json schema","static schema","schema type","type","typed schema","schema validation","validator","jsonschema","json","json-schema","json validation"],"license":"BlueOak-1.0.0","devDependencies":{"@danifoldi/eslint-plugin-eslint-presets":"^1.6.0","@types/chai":"^4.3.1","@types/mocha":"^9.1.1","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","chai":"^4.3.6","chokidar-cli":"^3.0.0","esbuild":"^0.15.0","eslint":"^8.21.0","eslint-import-resolver-typescript":"^3.4.0","eslint-plugin-chai-expect":"^3.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-mocha":"^10.1.0","eslint-plugin-unicorn":"^43.0.2","mocha":"^10.0.0","ts-node":"^10.9.1","typescript":"^4.7.4"},"exports":{".":"./dist/index.js"},"types":"./dist/index.d.ts","main":"./dist/index.js","gitHead":"b3e3ac3ac271bd5bf989f255cf3ccefa25fb8446","_id":"@danifoldi/spartan-schema@2.0.1","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-Eyybz7vp7GqN/Tr3E3sn38dRG390VDuugGp4Vxr1VPqFnoBH7yz83qs93Sk+QSi95uyt4gacK9oK4Ik0fVVFqQ==","shasum":"336ff34acb97100fb8f928ecc29cdf28de0b69d8","tarball":"https://registry.npmjs.org/@danifoldi/spartan-schema/-/spartan-schema-2.0.1.tgz","fileCount":9,"unpackedSize":42234,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD0tkg1+yPZUplekJAx49REB6rMaea0d+6a1JVUkPflWQIgPMA2GjE06lTvRawMqQPn2Dg+dCCEpR+O99GCCOrXpQQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi+m54ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpdwA//WHli7NZHUVtzlncyeyLwooySMRF/jA0W22rMo3QHPYmVqOFN\r\nc24yx6CGf37A2GQJKxQpZL6WnD6BZHS0WV1hr5vI8Cf+CtzjJhD+upDf/bwq\r\nmZZ3IGBJU6XCjRq0j4wKTETZR9JUxE1v1iAbToKHsiWGFGFPD5ZBuFew9zkQ\r\nqZguX7xHYlF2rUiYGR5nnljCQQNJ6aZpGvxLj1SO1yNBIa4AbZXR2FT6wNNe\r\nPgfUt9fjRtuaieVzTpr8/t6ria4C1qg4Y5Z0fsgv6lvqKl+3ojOWAZT4yXio\r\n33+tI4EHcB9OFIVLlxx3ad86/B9IL70WPch0rw3DrcKYvc4cB+v8tbXVczFR\r\neiF186YBzzolpCQEaWkYPMgHuEfD+hOtBWrU93w0VQrFTC6HI47uJmtwL7nO\r\nvK8o1ibeBNuvIhF1/3pq2eJRjbEVYIB2oldTp0NMHfYhTxrNvsvQu5rwRhmW\r\nF749pwaMvbWCovfisMLaHcSB6hx79ZgvLAAclhb42X6Z9blX9cYNxBmRUf7i\r\njCFq1kPLYtuYZIbQAspPl40oC3EITJklcAsc96e2i12tX6KwDiWDtQQ7WDKV\r\n+dArDxNJHq16x5q5jZMGBI10CkQyJly1v2B2d5/9CPyYcterRPcZM0qkGe8G\r\nMlXw7TVBOBOg38BZaUPuBmV/heTGK4QvoPI=\r\n=7gDw\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"danifoldi","email":"dani@stefan.hu"},"directories":{},"maintainers":[{"name":"danifoldi","email":"dani@stefan.hu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spartan-schema_2.0.1_1660579448500_0.7936034624246731"},"_hasShrinkwrap":false},"2.1.0":{"name":"@danifoldi/spartan-schema","version":"2.1.0","description":"A fork of spartan-schema with some new features","type":"module","scripts":{"build":"esbuild src/index.ts --bundle --outfile=dist/index.js --format=esm --target=es2020 && tsc --emitDeclarationOnly --outdir dist","lint":"eslint --ext .cjs,.js,.json,.mjs,.ts,.vue --cache --cache-file .eslintcache --report-unused-disable-directives .","lintw":"chokidar \"**/*.{cjs,js,json,mjs,ts,vue}\" -i \"{coverage,node_modules,.nuxt,.output}/**\" -c \"npm run lint -- --fix\"","test":"mocha","typecheck":"tsc --noEmit --emitDeclarationOnly false"},"author":{"name":"ar-nelson"},"contributors":[{"name":"DaniFoldi"},{"name":"NeoAren"}],"bugs":{"url":"https://github.com/DaniFoldi/spartan-schema/issues"},"homepage":"https://github.com/DaniFoldi/spartan-schema#readme","repository":{"type":"git","url":"git+https://github.com/DaniFoldi/spartan-schema.git"},"keywords":["schema","json schema","static schema","schema type","type","typed schema","schema validation","validator","jsonschema","json","json-schema","json validation"],"license":"BlueOak-1.0.0","devDependencies":{"@danifoldi/eslint-plugin-eslint-presets":"^1.6.0","@types/chai":"^4.3.1","@types/mocha":"^9.1.1","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","chai":"^4.3.6","chokidar-cli":"^3.0.0","esbuild":"^0.15.0","eslint":"^8.21.0","eslint-import-resolver-typescript":"^3.4.0","eslint-plugin-chai-expect":"^3.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-mocha":"^10.1.0","eslint-plugin-unicorn":"^43.0.2","mocha":"^10.0.0","ts-node":"^10.9.1","typescript":"^4.7.4"},"exports":{".":"./dist/index.js"},"types":"./dist/index.d.ts","main":"./dist/index.js","gitHead":"3bcc2973621c3bb5985ba908f97080bbd5b94cb4","_id":"@danifoldi/spartan-schema@2.1.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-HCWCPh04nV0B7i14EjcwlU6sxSGAhssXsevuQCRsOiHLCCft/v2aph+/XMlmIkeoTMjCTGkzmJL9kqXe9PLUXA==","shasum":"dcbfa29b8efb3c6f29b7ab2179a3a6f610f267ae","tarball":"https://registry.npmjs.org/@danifoldi/spartan-schema/-/spartan-schema-2.1.0.tgz","fileCount":9,"unpackedSize":42500,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHwKlEW055vLYFfeW5DW3sNGh/jPu9otnf0qRBrEAV1uAiEArpu/iXY+Xlw+BYnzwUNzFENXPnveUCAdPGST+v4czxg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBQViACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpSqBAApO6W4GqzKITXDvc7/VULfiIzTqA6FCuy8z2B4OuY8iocjwit\r\nJ9wkBznV6X1qaXNlpdp7cilPTY/8yU/sHUxcOvU7i6mxlQLTD1xqtdOKa3XO\r\ncXMmZgrDdewsu9cDLqu8wlqOnGfp3ENac/KyJXhpG6E5xIKNBbwNEViAXdib\r\n1VQ3h89krudC+a8J/50QWvCUYlzaR143B9krToeGNBFqreYOFCLRyw+fjjhE\r\nAIKq3EJiOJ2CvYL1FDv1nYMdIdXos4/7YYnj/0L3Ex4vbaWvtPVHM1gPi9Yn\r\nRGwrxFoAX8e6pa4hRhnGrtAaHtDIDWz7nuu5QTSBWCqaH9C1USUIrGMxt95J\r\ngqKaSD7I+u9TZFdtoXWitFpDggpE99Lf7+zi8y8ox1e5YX72cVvtyavIi7mV\r\nI1LE3zxxuutX8Y2UbhRGNrNaE/vi2nCPTc6nE27NAQ93uM4hYpSRqN8WTRNq\r\nSuacdKc8XXW+7f9A+rWkhE6Rg22jxFsunVsYTVl4qrkORh5s9E6n0DioDpyO\r\nulD81NKJnvvoMVRv7DhXPZEPc9wxGxAAQCuj+Jv4qry1CD5OecZPa0H//91B\r\n5BTjQ5a+DbW1f5EWtCaWcRUc54hhldbBdIsmPHgYyFAJrtDHV26gyjQouwCX\r\nhSGi5c/jGDtCF9s5DNsdESgw0BwEpFbVDow=\r\n=s0mx\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"danifoldi","email":"dani@stefan.hu"},"directories":{},"maintainers":[{"name":"danifoldi","email":"dani@stefan.hu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spartan-schema_2.1.0_1661273441784_0.7888289163492954"},"_hasShrinkwrap":false}},"time":{"created":"2022-08-05T15:05:22.702Z","1.1.0":"2022-08-05T15:05:22.932Z","modified":"2022-08-23T16:50:42.104Z","1.1.1":"2022-08-05T15:25:04.418Z","1.1.2-beta":"2022-08-05T15:32:54.078Z","1.1.2":"2022-08-06T12:29:30.035Z","2.0.0":"2022-08-06T15:09:12.794Z","2.0.1":"2022-08-15T16:04:08.717Z","2.1.0":"2022-08-23T16:50:42.011Z"},"maintainers":[{"name":"danifoldi","email":"dani@stefan.hu"}],"description":"A fork of spartan-schema with some new features","license":"BlueOak-1.0.0","readme":"# Spartan Schema\n\n_This is a fork of `spartan-schema`, with changes that better suit my workflow, and added features that I felt like were missing._\n\nAn ultra-minimal, Typescript-compatible alternative to [JSON\nSchema][json-schema], designed as part of [Osmosis][osmosis].\n\n**Spartan Schema is...**\n\n- **Clear**: Spartan Schemas are singificantly simpler than comparable JSON\n  schemas. Here's a schema that will match objects like\n  `{ name: { first: \"Al\", last: \"Yankovic\" }, age: 62 }`:\n\n   ```json\n   {\n     \"schema\": {\n       \"name\": {\n         \"first\": \"string\",\n         \"middle\": [\"optional\", \"string\"],\n         \"last\": \"string\"\n       },\n       \"age\": \"integer\"\n     }\n   }\n   ```\n\n- **Compatible**: Spartan Schema includes `binary` and `date` types, for\n  languages like YAML and MessagePack that support more data types than JSON.\n  The parser expects a JavaScript object, which can be parsed from any JSON-like\n  format, or written directly in JS/TS source.\n\n- **Minimal**: The entire specification fits on a single page. Spartan Schema\n  can describe itself in 20 lines of YAML:\n\n   ```yaml\n   spartan: 1\n   let:\n     EnumValue: [oneof, null, boolean, number, string]\n     Type:\n     - oneof\n     - [enum, null, 'null', boolean, integer, float, number, string, date, binary]\n     - [array, [enum, enum], [ref, EnumValue], [ref, EnumValue]]\n     - [array, [enum, oneof], [ref, Type], [ref, Type]]\n     - [array, [enum, tuple], [ref, Type], [ref, Type]]\n     - [array, [enum, array], [ref, Type], [ref, Type]]\n     - [tuple, [enum, dictionary], [ref, Type]]\n     - [tuple, [enum, ref], string]\n     - - dictionary\n       - - oneof\n         - [tuple, [enum, optional], [ref, Type]]\n         - [ref, Type]\n   schema:\n     spartan: [optional, [enum, 1]]\n     let: [optional, [dictionary, [ref, Type]]]\n     schema: [ref, Type]\n   ```\n\n- **Statically typed**: Spartan Schema uses [Typescript 4.1 recursive\n  conditional types][types] to convert schemas into Typescript type definitions.\n  A schema written directly in source code can be a single source of truth for\n  both compile-time and runtime typechecking.\n\n   ```typescript\n   import { matchesSchema } from 'spartan-schema';\n\n   // Schemas should be defined with 'as const', for typechecking.\n   const personSchema = {\n     schema: {\n       name: {\n         first: 'string',\n         middle: ['optional', 'string'],\n         last: 'string'\n       },\n       age: 'integer'\n     }\n   } as const;\n\n   const isPerson = matchesSchema(personSchema);\n\n   function loadPerson(json: string) {\n     const data = JSON.parse(json);\n     if (!isPerson(data)) {\n       throw new Error(\"JSON data does not match schema\");\n     }\n\n     // The type of `data` is now:\n     //\n     // { name: { first: string, middle?: string, last: string }, age: number }\n     //\n     // This type was derived from `personSchema`!\n\n     console.log(`Hello, ${data.name.first} ${data.name.last}!`);\n   }\n   ```\n\n## Usage\n\nYou can install the package with `npm i @danifoldi/spartan-schema`.\n\n```typescript\nimport {\n  Schema,\n  matchesSchema\n} from 'spartan-schema';\n```\n\n## The Schema Language\n\n### The Root Object\n\nThe root of a Spartan Schema is an object. This object must contain a `\"schema\"`\nproperty, and may optionally contain `\"spartan\"` and `\"let\"` properties. Other\nproperties are allowed, and will be ignored.\n\n- `\"schema\"`: The schema itself. A single schema type.\n- `\"let\"`: An object whose values are schema types. Its properties are defined\n  as *reference types*, which can be accessed with the `\"ref\"` directive type.\n  - For example, `{ \"let\": { \"Foo\": \"string\" }, \"schema\": [\"ref\", \"Foo\"] }` is\n    equivalent to `{ \"schema\": \"string\" }`.\n- `\"spartan\"`: The Spartan Schema major version of this schema. If present, it\n  must be `1`.\n\n### Schema Types\n\n- Primitive types: `\"string\"`, `\"integer\"`, `\"float\"`, `\"number\"`, `\"binary\"`, `\"date\"`,\n  `\"boolean\"`, `null`.\n  - `\"float\"` is an alias for `\"number\"`.\n  - `\"null\"` can also be written as the literal value `null`.\n  - `\"string(min,max)\" is a string with length at least min, and at most max (inclusive).\n  - `\"number(min,max)\" is a number greater than or equal to min, and less than or equal to max.\n  - `\"integer(min,max)\" is an integer greater than or equal to min, and less than or equal to max.\n  - `\"float(min,max)\" is a float greater than or equal to min, and less than or equal to max.\n- Object type: An object whose keys are schema types. Matches an object with\n  all of the included keys, if those keys' values match their schema types.\n  - Unspecified keys are allowed, and will not be checked.\n  - Keys are required by default. To make a key optional, use the directive type\n    `\"optional\"`: `{ \"optionalKey\": [\"optional\", <value type>] }`\n- Directive types: Arrays whose first element is a string. The string is the\n  *name* of the directive, and the rest of the array is the directive's\n  *arguments*.\n  - `\"enum\"` takes an argument list of primitive values (strings, numbers,\n    `true`, `false`, `null`) and matches only those exact values.\n  - `\"oneof\"` takes an argument list of schema types and matches anything that\n    matches at least one of those types.\n  - `\"tuple\"` takes an argument list of schema types and matches an array with\n    that exact length, with each element matching the argument at the same\n    index.\n  - `\"array\"` takes an argument list of schema types.\n    - If it has one argument, it matches an array of any length whose elements\n      all match that argument.\n    - If it has more than one argument, it behaves like `\"tuple\"` with\n      a variable-length suffix: given *N* arguments, `\"array\"` matches an array\n      with at least *N - 1* elements, where each of these elements matches the\n      argument of the same index, followed by 0 or more additional elements\n      which match the last argument.\n  - `\"dictionary\"` takes one schema type argument, and matches an object whose\n    values all match this argument.\n  - `\"ref\"` takes one string argument. Its argument must be a key in the root\n    object's `\"let\"` property. A `\"ref\"` is substituted with the value of the\n    `\"let\"` property that it names.\n    - Recursion is allowed, and `\"ref\"`s can be used inside of `\"let\"` to create\n      infinite types.\n  - `\"optional\"` is only allowed as a value of an object type. It takes one\n    schema type argument. It makes its key in the object type optional, with\n    its argument as the value type.\n\n## Comparison to JSON Schema\n\nSpartan Schema is *much less verbose* than JSON Schema, but has more limited\nfeatures.\n\n(Examples taken from https://json-schema.org/learn/miscellaneous-examples.html)\n\n<table>\n<tr><th>JSON Schema</th><th>Spartan Schema</th></tr>\n<tr>\n<td>\n\n```json\n{\n  \"$id\": \"https://example.com/person.schema.json\",\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"title\": \"Person\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"firstName\": {\n      \"type\": \"string\",\n      \"description\": \"The person's first name.\"\n    },\n    \"lastName\": {\n      \"type\": \"string\",\n      \"description\": \"The person's last name.\"\n    },\n    \"age\": {\n      \"description\": \"Age in years.\",\n      \"type\": \"integer\",\n      \"minimum\": 0\n    }\n  }\n}\n```\n\n</td><td>\n\n```json\n{\n  \"schema\": {\n    \"firstName\": \"string\",\n    \"lastName\": \"string\",\n    \"age\": \"integer\"\n  }\n}\n```\n\nThis schema is much shorter, but does not include names, URLs, or field\ndescriptions, and cannot specify a minimum for `age`.\n\n</td></tr><tr><td>\n\n```json\n{\n  \"$id\": \"https://example.com/arrays.schema.json\",\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"fruits\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      }\n    },\n    \"vegetables\": {\n      \"type\": \"array\",\n      \"items\": { \"$ref\": \"#/$defs/veggie\" }\n    }\n  },\n  \"$defs\": {\n    \"veggie\": {\n      \"type\": \"object\",\n      \"required\": [ \"veggieName\", \"veggieLike\" ],\n      \"properties\": {\n        \"veggieName\": {\n          \"type\": \"string\",\n          \"description\": \"The name of the vegetable.\"\n        },\n        \"veggieLike\": {\n          \"type\": \"boolean\",\n          \"description\": \"Do I like this vegetable?\"\n        }\n      }\n    }\n  }\n}\n```\n\n</td><td>\n\n```json\n{\n  \"let\": {\n    \"Veggie\": {\n      \"veggieName\": \"string\",\n      \"veggieLike\": \"boolean\"\n    }\n  },\n  \"schema\": {\n    \"fruits\": [\"array\", \"string\"],\n    \"vegetables\": [\"array\", [\"ref\", \"Veggie\"]]\n  }\n}\n```\n\nSpartan Schema supports references, using `\"let\"` and `\"ref\"`. All fields are\nrequired unless marked `\"optional\"`.\n\n</td></tr></table>\n\n## API\n\nSpartan Schema defines only a few functions that operate on schema objects.\nA schema object is made up of plain JavaScript objects and arrays that match the\nSpartan Schema spec.\n\n### type `Schema`\n\nThe type of valid Spartan Schemas.\n\nWhen writing schemas directly in Typescript code, you should not use this type;\ninstead, use `as const` and let Typescript infer the exact type of the schema.\n\n### type `MatchesSchema<S extends Schema>`\n\nGiven a type `S` that describes the exact shape of a `Schema`,\n`MatchesSchema<S>` is the type of values that match that schema.\n\nFor example, `MatchesSchema<{ schema: { foo: \"string\" } }>` is\n`{ foo: string }`.\n\n`MatchesSchema` is a complex recursive type, and can easily cause the Typescript\ncompiler to fail with a \"Type instantiation is excessively deep and possibly\ninfinite\" error. It should only be used on schema types that are 100% statically\nknown.\n\n### type `PathArray`\n\n`type PathArray = readonly (string | number)[]`\n\nA path to a specific location in a JSON document.\n\n### function `isSchema(schema, errors?)`\n\nA type predicate that checks whether `schema` is a valid Spartan Schema.\n\n`errors` is a mutable array of `{ message, location }` pairs; if it is present\nand `isSchema` returns false, it will be populated with a list of parsing\nerrors.\n\n### function `matchesSchema(schema)(value)`\n\nA curried function that checks whether `value` matches `schema` and returns\na boolean.\n\nIf `schema` is statically known at typechecking type (defined with `as const`),\nthen the function returned by `matchesSchema(schema)` will be a type predicate.\n\n### function `zeroValue(schema)`\n\nReturns the *zero value* of this schema's root type.\n\n| Type           | Zero value                                    |\n| -------------- | --------------------------------------------- |\n| `null`         | `null`                                        |\n| boolean        | `false`                                       |\n| integer, float | `0`                                           |\n| string         | `\"\"`                                          |\n| binary         | `0`-length `Uint8Array`                       |\n| date           | `new Date(0)` (Jan 1, 1970)                   |\n| object         | object populated with properties' zero values |\n| `oneof`        | zero value of first type                      |\n| `enum`         | first enum value                              |\n| `array`        | `[]`                                          |\n| `tuple`        | array populated with elements' zero values    |\n| `dictionary`   | `{}`                                          |\n\nThis function typechecks the schema it receives. If it is passed a known schema\ntype `S` (defined `as const` in a Typescript file), then its return type will\nbe `MatchesSchema<S>`.\n\nMay throw an exception if the schema type is infinitely recursive.\n\n## License\n\nCopyright &copy; 2021-2022 Adam Nelson<br>\nPortions Copyright &copy; 2022 Dániel Földi\n\nSpartan Schema is distributed under the [Blue Oak Model License][blue-oak]. It\nis a MIT/BSD-style license, but with [some clarifying\nimprovements][why-blue-oak] around patents, attribution, and multiple\ncontributors.\n\n[json-schema]: https://json-schema.org\n[osmosis]: https://github.com/ar-nelson/osmosis-js\n[types]: https://www.typescriptlang.org/docs/handbook/2/conditional-types.html\n[dnt]: https://github.com/denoland/dnt\n[blue-oak]: https://blueoakcouncil.org/license/1.0.0\n[why-blue-oak]: https://writing.kemitchell.com/2019/03/09/Deprecation-Notice.html\n","readmeFilename":"README.md","homepage":"https://github.com/DaniFoldi/spartan-schema#readme","keywords":["schema","json schema","static schema","schema type","type","typed schema","schema validation","validator","jsonschema","json","json-schema","json validation"],"repository":{"type":"git","url":"git+https://github.com/DaniFoldi/spartan-schema.git"},"contributors":[{"name":"DaniFoldi"},{"name":"NeoAren"}],"author":{"name":"ar-nelson"},"bugs":{"url":"https://github.com/DaniFoldi/spartan-schema/issues"}}