{"_id":"@jarenjs/validate","_rev":"30-c24f4909283a683852d3acc2d20976b0","name":"@jarenjs/validate","dist-tags":{"latest":"0.91.4"},"versions":{"0.8.2":{"name":"@jarenjs/validate","version":"0.8.2","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.8.2","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"3c457651727dc290e81a672c4376d0a7445f37f6","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.8.2.tgz","fileCount":6,"integrity":"sha512-oLrBUCC/vJKbRRCbQ1O2+1fiVh+3cm3lRftDS6XtTQ/Z3HcxJBkEfgN12BB6WPvPT997mTfVZZ7zMPaGvsiu1Q==","signatures":[{"sig":"MEUCIAJXSPde6/ctrc6N9ZnVtVj9QQ1SXOQF0c5FNeVDyxmAAiEA673wmsmN2JsdZTPcrooHL1SiJi4A+eJHu/r548xhpGw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":418822},"main":"./dist/index.js","type":"module","gitHead":"4c799828838a8c33e54bc14c039ea56279a8d762","private":false,"scripts":{"build":"node esbuild.config.js"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"10.8.2","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"_nodeVersion":"22.7.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.23.1"},"_npmOperationalInternal":{"tmp":"tmp/validate_0.8.2_1726755098902_0.8072054099300576","host":"s3://npm-registry-packages"}},"0.8.3":{"name":"@jarenjs/validate","version":"0.8.3","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.8.3","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"ca7e6e8ed4b5bb09ca7af21240bd81c8da90e488","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.8.3.tgz","fileCount":6,"integrity":"sha512-dnSGue3YV2FtMeLa1rONa5MLa6wFfi3Yh67CZbA7NqBLSTqcCm/BGi5k+7wq4li8HQtBg6g+NEjDJjHTJyb/gA==","signatures":[{"sig":"MEQCIDVonkEFWah9v8IsKVRLweXBAomvoTHDwpnhDhTxyw1BAiBIYb8nk4PbsCiB2Lzh7bkRNn80memgjf3UcyA2rfW0LA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":418758},"main":"./dist/index.js","type":"module","gitHead":"b3c732cbe21e1b430a2f334df0eb14218f2bffc4","private":false,"scripts":{"build":"node esbuild.config.js"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"10.8.2","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"_nodeVersion":"22.7.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.23.1"},"_npmOperationalInternal":{"tmp":"tmp/validate_0.8.3_1727094953498_0.1290756994368294","host":"s3://npm-registry-packages"}},"0.8.4":{"name":"@jarenjs/validate","version":"0.8.4","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.8.4","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"49e3bbe98b0646ef36373981bc264846520a074b","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.8.4.tgz","fileCount":6,"integrity":"sha512-fAC+dK7T6U94BWV+4JAeoRJCveRisvPyrK+qFoSjhp0RXV1lBWQLsTgwIYr/JeMR8AQj5jBi+de/sHzsY8bj1w==","signatures":[{"sig":"MEUCIDO3KYDBO7dUR9XKMFI6Zz6Zl8kUku8E7h1A9fflAbXRAiEAolWM78INiZGUmOw1jKz4XdOJQ13KuJlTmjXjfO/HDP8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":447674},"main":"./dist/index.js","type":"module","gitHead":"3f3dbe5b0f48605dccfac265a0b6b5e5249bfa4f","private":false,"scripts":{"build":"node esbuild.config.js"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"10.8.2","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"_nodeVersion":"22.7.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.23.1"},"_npmOperationalInternal":{"tmp":"tmp/validate_0.8.4_1727557995909_0.1540535014134219","host":"s3://npm-registry-packages"}},"0.9.2":{"name":"@jarenjs/validate","version":"0.9.2","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.9.2","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"473e5af2c1fd9a465d61a3b6fd733306ba6f2a4b","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.9.2.tgz","fileCount":44,"integrity":"sha512-8Snw6zuRHT3NCV17y0d1UW6ZidN744Y5Hz+JHmeZAw+seFDArQVwHTlNdjkhSUWXXt5A7UzM2zXqxh2jAyYhAw==","signatures":[{"sig":"MEYCIQCjBjDKeRgLE4of6LAP4ZnHMqo3gW0d0mmOzqXfeKWv8wIhAOHvC2vlEWee2f7ZZ8VP2ypQOeadelNNzilIHOd/l7cx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":357489},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./package.json":"./package.json"},"gitHead":"f189a33a97d152a1e13ca0c8e55e8af1a062adb8","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"10.9.7","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"@jarenjs/core":"^0.9.2","@jarenjs/json":"^0.9.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.9.2_1784299378980_0.5490300213858095","host":"s3://npm-registry-packages-npm-production"}},"0.34.0":{"name":"@jarenjs/validate","version":"0.34.0","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.34.0","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"bba4abc4f5f44ebfe9613725e9f4a8f2ca6c03c1","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.34.0.tgz","fileCount":49,"integrity":"sha512-XbKWOH0onLG1MQiI+taEMqLm6UWmuBwilW2jpYbzrsaaGLiNq9LnR2EIlq/zr+L03bhoZ87Ttny1Ws3KtwFYjg==","signatures":[{"sig":"MEUCIAJE+Q1Q5PAG6CunOUi+NwcG91q/xUtW5UvvWtYALNKEAiEAyCnsRBeFImwp6hVifrSASWCQujWwMd6GRuRQ3OlVw0Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":462306},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"2c2376a53a0905e8adbca04e3cc2510c358d3462","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"@jarenjs/core":"^0.34.0","@jarenjs/json":"^0.34.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.34.0_1786632467002_0.39481471820394254","host":"s3://npm-registry-packages-npm-production"}},"0.34.2":{"name":"@jarenjs/validate","version":"0.34.2","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.34.2","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"c76669e4c3b705e8daad12e8924cd55083a09872","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.34.2.tgz","fileCount":49,"integrity":"sha512-/8wi2aWzb6iPIESwUBAnaPBXYpczJGrwwkciy7QVvOG/lMpRF4n83Zt2v6tTVyAZwrgAFGuid9JPCjtiU9s8EQ==","signatures":[{"sig":"MEYCIQDtDSnjhLK6J2gCSXrjBC8dQu84DrXW05EdN+bNznpbyQIhAPLcHQh4mGrfZ4yRbe662GdeCkRcLyNDXvLonZVlzMTp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":462306},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"50d115c4d4a0cdf96f0a9775bb55cd3ec1f1aeab","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"@jarenjs/core":"^0.34.2","@jarenjs/json":"^0.34.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.34.2_1786889742149_0.8672936199008967","host":"s3://npm-registry-packages-npm-production"}},"0.43.1":{"name":"@jarenjs/validate","version":"0.43.1","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.43.1","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"299ec5cc315a3bdb840302c9de86584557a8587a","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.43.1.tgz","fileCount":49,"integrity":"sha512-WnRDkuSQuYZYdozFnZTojM9yD6JeuzWfn2zypsR1F9wcOoMBGzWom4mRUBhxfKddP41C3L6vWQurOld8hFJz5Q==","signatures":[{"sig":"MEUCIAqnYhJgDP4jY72eS3wTAuCjFCAIvx+7B1UQjqM+JU5VAiEAhS96WsyJygJxVUSRu/k9IUUudhHp8XpyHSM+LoyYHMI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":464378},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"6e03d18fb68dd79a80c58f04f47901641901a2ec","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"@jarenjs/core":"^0.43.1","@jarenjs/json":"^0.43.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.43.1_1787481675789_0.12193350792497548","host":"s3://npm-registry-packages-npm-production"}},"0.43.3":{"name":"@jarenjs/validate","version":"0.43.3","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.43.3","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"72eb8336c2162cab3fd5d72b967ce1614e5d4393","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.43.3.tgz","fileCount":49,"integrity":"sha512-mSLPKHlVATl8LQp1GujnwWXNDNePjMHXlO6rrt0b7cN612z++waFEzRKncHBH73lDwZMYUz14n2tMfThO/tf6w==","signatures":[{"sig":"MEUCIEdoNM+09JDRkCtyArBEQtTMs/J4j7zztdP5iQcomfI1AiEA+mWq6terWjuGb7EIJBpSIUF6uB9fcEUl3PFk0QTISyY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":465914},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"efd18dec49c026ddd9dd301cb17eb97e5feb1288","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"@jarenjs/core":"^0.43.3","@jarenjs/json":"^0.43.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.43.3_1787588962957_0.2963904253142584","host":"s3://npm-registry-packages-npm-production"}},"0.46.4":{"name":"@jarenjs/validate","version":"0.46.4","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.46.4","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"1a37d6fece126adcefad4fcaf8c710436b751085","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.46.4.tgz","fileCount":49,"integrity":"sha512-E/5Ee8AH2i3dcOm1yaHZyxoO3cwBXusOskNqJz5DgU3HCX6sBMYr5zqY5jMLRALSVS4PtId6B/cS/YKwARcwKg==","signatures":[{"sig":"MEQCIBP4xKAjtemtgZSlcvHlLWAlcWVgUh9ncMzYwaUIBrIaAiBiRxiOw1/yMq352JUVdi4DjVHfkCsZ4iKOZS4tLDIYpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":465914},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"e1dc4417ddc0acc42402e7486f45bbc5bff2cb41","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"@jarenjs/core":"^0.46.4","@jarenjs/json":"^0.46.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.46.4_1787728801255_0.986201799580795","host":"s3://npm-registry-packages-npm-production"}},"0.46.5":{"name":"@jarenjs/validate","version":"0.46.5","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.46.5","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"7fe4c780da53e0fc3c506bfcfe3b919db73be66f","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.46.5.tgz","fileCount":49,"integrity":"sha512-gUj1M7Ixa6Kjn51S+xtpHBKpIvmUH47Is5NNlaIACNejh2hdwe9Dpy8FrMl5tlgynKqbH752UwxjORcxXU5BAA==","signatures":[{"sig":"MEYCIQDPzr9iErNwVcDTWhmaJZeHx3Ppcv7vGivC6Ehgyi8+yQIhAKyXUwfhac0RTe4oKvH59MM4qIMboseSBcorL/1sNJfh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":465914},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"0df1ef3a27b39e1408acf1ba2e63eed34b1c8621","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"@jarenjs/core":"^0.46.5","@jarenjs/json":"^0.46.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.46.5_1787734441615_0.7300211870206956","host":"s3://npm-registry-packages-npm-production"}},"0.49.2":{"name":"@jarenjs/validate","version":"0.49.2","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.49.2","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"d9bac42b6f9fecf5ea6d179dcd53d9061d48a7ca","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.49.2.tgz","fileCount":49,"integrity":"sha512-gXiwoMHryWiNxFwy5l6hIpOQ/3bqCtVO9Zn60tRoikjG3nNXymhk2eyU/i1xQdkLYBi96ekIWANqT3YG+W8Yvw==","signatures":[{"sig":"MEUCIQCvsEwTDJ0L6EUN4wg67h7RoiSgN57ZnAD+k2Mqkagx5QIgCmSP7ozw+iaDcwjWX7LLrh1WqFufWmZUqtKX9wx8i9o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":466776},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"15e048f0cba387991c17758f689e8fd3b306dea8","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"@jarenjs/core":"^0.49.2","@jarenjs/json":"^0.49.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.49.2_1787775756045_0.6047116628502305","host":"s3://npm-registry-packages-npm-production"}},"0.56.0":{"name":"@jarenjs/validate","version":"0.56.0","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.56.0","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"435a96e53a0c1a11c5fab2f7d597320bcfeb5840","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.56.0.tgz","fileCount":49,"integrity":"sha512-s6zQRbsC75X9dfIsB02uaQ9Sezu0mMcvmQhAn0qg3B6N5KvnM11pwkCRpma5V6nmaByZpUyeaArpQxLtS1Rsmw==","signatures":[{"sig":"MEYCIQCotOjk1tV52PwUPAF2GawXc7/V4sXPrrloXqL3tm8Q8gIhALyRD67xh3fbvYJIgWGOIheirwvHyFLOeyIwezKCdcIX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":466776},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"74f70f52b57410763dab4c52173cf037da601e70","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"@jarenjs/core":"^0.56.0","@jarenjs/json":"^0.56.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.56.0_1788053681853_0.20094370200765033","host":"s3://npm-registry-packages-npm-production"}},"0.66.1":{"name":"@jarenjs/validate","version":"0.66.1","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.66.1","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"488072e43b27449e5c1e590f55219df5516fc8fe","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.66.1.tgz","fileCount":51,"integrity":"sha512-i33zKXVo9Yvc6BikNcvSgnuV7D/vr3FEkf8gMghW3RWcT1WE7ZOftPVAleVVjz9OLfjjLZtAIv/YVwVuP4iJhg==","signatures":[{"sig":"MEUCIE0V/Fe5KcTCXAOgH8m6eYIiw/ywd56dx0JRAesLqP8uAiEAv+wzKEJy4JHUPz3tJtDDF0+hBRh6xZbGj/9dtVEO0gM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":469789},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"38bd730da099aff22b13944f85b691b0bd399bec","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@jarenjs/core":"^0.66.1","@jarenjs/json":"^0.66.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.66.1_1788890786198_0.6376629138372618","host":"s3://npm-registry-packages-npm-production"}},"0.67.0":{"name":"@jarenjs/validate","version":"0.67.0","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.67.0","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"21a526885fcdc7602d51e28b4cd8ae32e6aa9aff","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.67.0.tgz","fileCount":51,"integrity":"sha512-nCq7SOVBn45Lq0iL8bJPJHFZZfde4+SCQXnLlMU0W8vugi+Buq+VFFU+CsBx4iHO0kM6KH4OBIuZZXU/bLQpeQ==","signatures":[{"sig":"MEYCIQDPqeQmDkdSdCQFuc1LiSC0Q1WDZJHlQkR4S5d5rptZcQIhAIbXOIyur8CEgwSX6SAy3dmKLrNSsg5UH7yjGozYQWfw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":469789},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"78082760da582ed92ccb3f4dedbf550090f1f18f","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@jarenjs/core":"^0.67.0","@jarenjs/json":"^0.67.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.67.0_1788896657062_0.8839521616930393","host":"s3://npm-registry-packages-npm-production"}},"0.72.0":{"name":"@jarenjs/validate","version":"0.72.0","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.72.0","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"babff23126cccd43126301c96641115c02cac3a0","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.72.0.tgz","fileCount":51,"integrity":"sha512-dWDxUlmslUd+VZf0r+ZnaAPlSWM3aFkF/6yHRphZ7pAYgTZQBjF7MHS2QKipHXAFwgo/LcqQWMjI0Tbxe96wrA==","signatures":[{"sig":"MEYCIQDzOE4Kema6wwF70XH365+iNwd1tFtfMHQ/bh18CX6APAIhAPb7ndkmXMXmznNZZko+m51mtftsk20ZoZ2nqxa2hUbz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":469926},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"661647bcd8ec149b3d466d3929ba3b5e7a2d267d","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@jarenjs/core":"^0.72.0","@jarenjs/json":"^0.72.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.72.0_1788952123044_0.20564525986693716","host":"s3://npm-registry-packages-npm-production"}},"0.72.2":{"name":"@jarenjs/validate","version":"0.72.2","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.72.2","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"34081f2877bc5c69d0fae40444c009d75a3af4cb","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.72.2.tgz","fileCount":51,"integrity":"sha512-zL8SlMI+ziHZTvVr7YWXLoXg3TfnKTIHfzccthP9lPsZB+WI6D/383CC+NnuUNVmHkfEg0sEMkl5zj3Er1FY/g==","signatures":[{"sig":"MEYCIQDn9x0ICwr5LQ19lwrKICxaylfaae6tXwKI/4O1pvBq7wIhAJgaK8LHIwMtOPmWkRPMvgplRJu1RgovYsL+pEztghP3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":473706},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"fe4a5f69ee8d59552c53795c279c46091aa3ff8c","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@jarenjs/core":"^0.72.2","@jarenjs/json":"^0.72.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.72.2_1788964312018_0.2107923280046955","host":"s3://npm-registry-packages-npm-production"}},"0.72.3":{"name":"@jarenjs/validate","version":"0.72.3","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.72.3","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"e558e85dd6ad0a5873d7a9dbe4fb0425ea214e95","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.72.3.tgz","fileCount":51,"integrity":"sha512-eplQoDbVfc0XRunQJMWhgDREVEHxp2wrPMH3OoWzJgqHMwLoUkRZelAD3OJCkChNm0/NUx6HUbxu+6ib1G7HeA==","signatures":[{"sig":"MEUCIEgl0I7BZsfHpa3/1gyloHGpgU952BBrM+ISgz1xeUM0AiEAsq47QN7TwerhSERwINQQ24n8dOudyNnJ8Cb9m4qkqeA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":473902},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"a5ef0d342fdb56b58f5bd1301af4a23d0cc3ec00","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@jarenjs/core":"^0.72.3","@jarenjs/json":"^0.72.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.72.3_1788973959416_0.19193565625569065","host":"s3://npm-registry-packages-npm-production"}},"0.73.0":{"name":"@jarenjs/validate","version":"0.73.0","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.73.0","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"ccfb5e636bd14787091d11ad8d3c6c3405f1b653","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.73.0.tgz","fileCount":51,"integrity":"sha512-nUpn5MvAiNo+MNtWl0xk1ol2KgcaMmd0vCJGHeYhGF5hKfMUSNqe01rBAtIrmCZyZsLf9uY5suZuXJSHyH+k5A==","signatures":[{"sig":"MEYCIQCtEVLP08pUB1sDdxKG1Lnxag8SbdPjm6uiNoyS/vfgkAIhALV6Wo+p4rlAOfgPTSOOeNaBhVIwfHqnWV3cr7LRd5BC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":473902},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"7f700942ad404a8203452f3b263b05c2aec2fe05","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@jarenjs/core":"^0.73.0","@jarenjs/json":"^0.73.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.73.0_1788980300315_0.18408028106971464","host":"s3://npm-registry-packages-npm-production"}},"0.75.0":{"name":"@jarenjs/validate","version":"0.75.0","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.75.0","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"787347a1eb8d99d9bca020821493a93de4e194a8","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.75.0.tgz","fileCount":51,"integrity":"sha512-dG3Lo2locjphXfySvRDPd5BhEMrLB3zUMN9+F5/8OKGyWZFd9vihgeTd5++LwydUuvS3x0GzTCm2G5FtFBGgaw==","signatures":[{"sig":"MEYCIQCldGjF3S/6e8B59hes0f60cdWoXWKEvpB7R3ktdqI94AIhAMGyA+hJlqj5thwBb/CvPf1IqoouB0vIsIBM2g2FY8j1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":473902},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"a50e9c57bc3e867529c18433a448178559d20c85","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@jarenjs/core":"^0.75.0","@jarenjs/json":"^0.75.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.75.0_1788994268041_0.6042614553078929","host":"s3://npm-registry-packages-npm-production"}},"0.83.2":{"name":"@jarenjs/validate","version":"0.83.2","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.83.2","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"b07a224d3dcb99133b3bf7ac9dd2804dc0a3ad24","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.83.2.tgz","fileCount":51,"integrity":"sha512-bx8qEf39JnPd+r1421MaDeE3fwiJ/V5BlmDVswU5Esr8E4i90gJz0l06JXkZJ6BMtenNJUuqEFil/TA+lizr6g==","signatures":[{"sig":"MEQCIBSiCOL1J3P2PQFWf/tG/zbO/oBEMSsLZv3IGB9RleGJAiAj9Zn3RNhi/OqTLbyROnuq9J4DlreQRZuCyKE8iQZHHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":473902},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"f21b18fa123a6c72a0ca31dbad374ec5a8bf78ff","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@jarenjs/core":"^0.83.2","@jarenjs/json":"^0.83.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.83.2_1789113166266_0.13876669052080515","host":"s3://npm-registry-packages-npm-production"}},"0.83.3":{"name":"@jarenjs/validate","version":"0.83.3","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.83.3","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"01850125ee230a2aa6f6111b972f05e2238e1919","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.83.3.tgz","fileCount":51,"integrity":"sha512-jELbngWEIz583v5HbjA8Czt653H6PKD0dOqG8yxlCnQcDnXG+9ymDqdMog8UxgCcYAVSOQBp1+H09s5ZwX2IqA==","signatures":[{"sig":"MEQCIHh/N5dp2SrTxY2l9wjCvgO7XIz/s9aHrZsxva8HI0rqAiA2zlh6c+yAX/ja/Aaq5a3Mv23CZyTSPkA/90qbG6e7uQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":473902},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"3491513e164dc30e429c84e709bd738841f4df16","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@jarenjs/core":"^0.83.3","@jarenjs/json":"^0.83.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.83.3_1789132077758_0.6491731331507598","host":"s3://npm-registry-packages-npm-production"}},"0.84.3":{"name":"@jarenjs/validate","version":"0.84.3","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.84.3","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"1998553d78f1b4c025af255a63e9755c66e2fad1","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.84.3.tgz","fileCount":51,"integrity":"sha512-Gg8tCHot1PS5ISFd2FsSbNRkPQ3JrCG/H2jU64zAhRKFI9PiSx7S/Kdwbfs/cRKjRYs1pf1mMUTD9Y9ZLM1prg==","signatures":[{"sig":"MEUCIGlVXAH2QXjU7ALl69QSN4j9GoVlvh0EtP9LoUC2yUEmAiEAz93xU4+0mBs9iLtfmWty58o1WixXQtOG85xA3I/wt5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":473863},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"ac8749711f5d058251f72842ce7e0095b389403f","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@jarenjs/core":"^0.84.3","@jarenjs/json":"^0.84.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.84.3_1789191864663_0.7702107011448496","host":"s3://npm-registry-packages-npm-production"}},"0.85.0":{"name":"@jarenjs/validate","version":"0.85.0","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.85.0","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"564c0d9fb41dd6391798a051955714b1051f8444","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.85.0.tgz","fileCount":51,"integrity":"sha512-nioMJOGDgIoIlb+tLdRWNrAry+GKL4Xz40ZUrM1nBd7OCVV/6Ty9CCuZ4jtRark/cwBzAZw/02MuhJLaIlvcsg==","signatures":[{"sig":"MEQCIF/FOEjXH/T5Ixe/8oaO0jKhrrqr56qMBFzHI0j0B3AJAiBLz641agDKVFLCcuklwr3QJ9PE5rHJsRd+v8xOLVumeg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":473863},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"5765fba5ab5c1d390dc28316a4255b47cd0f6f8a","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@jarenjs/core":"^0.85.0","@jarenjs/json":"^0.85.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.85.0_1789213857615_0.5150665841041062","host":"s3://npm-registry-packages-npm-production"}},"0.86.0":{"name":"@jarenjs/validate","version":"0.86.0","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.86.0","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"5a4088b775e5dd7076e657e390eb66e0139a4839","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.86.0.tgz","fileCount":51,"integrity":"sha512-qmR0Q58+FUmE+G5r1/0QVOpiAzQJNPVFZ7fdqhYwh4oHqlMF2AMzUXdrGfQGzWBZcWUAT95U4z2KuKZ9P5jGPg==","signatures":[{"sig":"MEUCIFLPuuQvEhxMx1iVS+beFIUDHziXkqYFX84Z1mAK2uNmAiEAr1AGK0qj88UvLibIebF4j6LC89FYprUV1PurHUOLYDA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":473863},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"ce489546f21a176a2574169b65b95f9dc15461f7","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@jarenjs/core":"^0.86.0","@jarenjs/json":"^0.86.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.86.0_1789221836922_0.35470760637330523","host":"s3://npm-registry-packages-npm-production"}},"0.87.0":{"name":"@jarenjs/validate","version":"0.87.0","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.87.0","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"10f20796db59a9bd46ab13866dfe69d4297fbff1","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.87.0.tgz","fileCount":51,"integrity":"sha512-2FQW0r9j02RYWAjhKT4Ol2FeojIOFz+8MH+PP/CgCAc5Q81Dff+Oy37OOkZNGT6bHHqsuUp2RaqJp3hRyKTOHA==","signatures":[{"sig":"MEYCIQD6+9imYry1qclrxf9quUjXsKfifSqjeME310lBhZQ74AIhAPUlts2tpNyYwSDlalfcErLi9sgVFGR/7RmFUWCTX7zh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":473863},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"9b67ed8cb88d2dbe95cb3eb5fe0ac88cfb70f347","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@jarenjs/core":"^0.87.0","@jarenjs/json":"^0.87.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.87.0_1789243250279_0.8068390794574092","host":"s3://npm-registry-packages-npm-production"}},"0.89.0":{"name":"@jarenjs/validate","version":"0.89.0","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.89.0","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"8a6e5bea11a7d93a961876662dff1a4295dd665e","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.89.0.tgz","fileCount":51,"integrity":"sha512-dAphD0Ztu1NIt/inEx1R2oFqDm0s12rFyS8UfXg59MZJg3Fvv4SPjyTWEM11BxrPZzP0gMso5N9AYqniFt6J9w==","signatures":[{"sig":"MEQCIHHA7nquf1yKaOhvnjZ4/VtFzQM5nS1JaP8zF6hm1SGgAiBg9Biu7a/0Pc8s/O+MryuSaWKagkA7nt0oli7lNqrlPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":474869},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"41f5a36eccd43591d7c04d9116a6d210617e9146","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@jarenjs/core":"^0.89.0","@jarenjs/json":"^0.89.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.89.0_1789288670013_0.05722273534872735","host":"s3://npm-registry-packages-npm-production"}},"0.90.6":{"name":"@jarenjs/validate","version":"0.90.6","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.90.6","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"60e245bf5234422d607c29f8c7ba61ebde71599e","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.90.6.tgz","fileCount":51,"integrity":"sha512-YMjMwMLu3omJCNAmmqFmyVh1SNwpcyN2BnOlr/8fJWNi/fBxowciCo3x14KTt4fIr1UqHAlGNlgZQj0Eq1V5/A==","signatures":[{"sig":"MEUCIEZt7EIVVlMkn3XvO4WbYBXd8QRRaGDnGBlzRlq8uQm5AiEA+wDddZsiJW1GFrIPhfC1ElUfa2otsfpSfKSUW7GO45A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCCBKCdwkZlEhMipHEmGK9RGstTfLJfj/tk2m0lVRysMgIhAPYU9EEQxqx0w7JwBVgHNizg6u8t0H8WL3XUxbfcth/m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":474869},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"37ba1676dab7868b168858b413a3ec647eebefdd","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@jarenjs/core":"^0.90.6","@jarenjs/json":"^0.90.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.90.6_1789444504432_0.6843211066875827","host":"s3://npm-registry-packages-npm-production"}},"0.91.2":{"name":"@jarenjs/validate","version":"0.91.2","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.91.2","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"d8c67fc7b4c5f1237fd184f238e0392a9d37e08c","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.91.2.tgz","fileCount":51,"integrity":"sha512-Ocmt4CCwDMuYZVKjyU7Up//HS9/8tAq6gMqEt65j5fD7O1mxyELlxEor+xZY8IxFgjFatyvlrbLliAmMQr4xrA==","signatures":[{"sig":"MEYCIQCbbFC4Mb+WlhAIN/gDcJcs6SJ0I5FZNgtX+FzDKIAwzAIhALHMvMcaHf8mBmDHnzq9RpQ2quJldy4TfK2Eov53AulX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD8zOnRXzR+F90e4SgAo/Jv/NMom84ulz6W0yJ9oWxibwIgGwUK2bzNOV5cd8eVW4yTkFsUpEtYwwGsfX91HPJ5xKE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":474869},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"74036c063c5a4efa8c41aa878713d405223cc464","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@jarenjs/core":"^0.91.2","@jarenjs/json":"^0.91.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.91.2_1789572403531_0.23753554681886402","host":"s3://npm-registry-packages-npm-production"}},"0.91.3":{"name":"@jarenjs/validate","version":"0.91.3","keywords":["jaren","json","schema","validate","validator"],"author":{"name":"joham"},"license":"MIT","_id":"@jarenjs/validate@0.91.3","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"homepage":"https://github.com/jklarenbeek/jarenjs#readme","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"835c6561427c9bf7c3babc1a1008d4b5214a19bd","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.91.3.tgz","fileCount":51,"integrity":"sha512-kHtmAUqOJwKxAU7iswPNwasgRWCNKivpc+rbuvPT5pJHMJkagJozKW6/4cf+6qs5MAlkn7ps/XHSRemhaCRYNQ==","signatures":[{"sig":"MEQCIAzjj2graZgf9WVow5oxuQIsCGX5NIqj50k+x5O8u9g1AiAVgVelJvoTi4CAM2K1xoSLyZb9lJrz2DiFrdew+EjuVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICUesbhVB1fRMgZUEmeyCNqJJ/mivx4M8Hb1fnbiG8YiAiEAqniusVLy8nk0wlFJG6uMXvIcSIk/IbVaGS8ZZekqMX4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":474869},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"1577600d98b9ef23381843911958aab10728707f","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@jarenjs/core":"^0.91.3","@jarenjs/json":"^0.91.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/validate_0.91.3_1789659287799_0.5137615766996895","host":"s3://npm-registry-packages-npm-production"}},"0.91.4":{"_id":"@jarenjs/validate@0.91.4","bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"dist":{"shasum":"46c2aebd669c76ded1f0b6a72949413b4fb0bf0b","tarball":"https://registry.npmjs.org/@jarenjs/validate/-/validate-0.91.4.tgz","fileCount":51,"integrity":"sha512-nk23dpRmEohxj9LUT1989Fy4bDfwcWrXqlic8hCHbQVYG0bVt/AfvDvhaMnD/QYSnsKY/eN1cgwK8p+GurG4/w==","signatures":[{"sig":"MEQCICiEr18egChFH0OjicKdAcL1eTCSI5Nz6R3P02tXr1RCAiADJ7JBv+BwN26ihuJvZ3Cu5lDhNUt/grM/HYl6yY+QFg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB/dFslcvpILpAHzl0sEOsb//BmwJf7z+TYesrsULYvyAiEA0i466AZ7GwnSj9wpFR2xjQYi5xm+pCRN9AelgNO8lr4="}],"unpackedSize":474869},"main":"./src/index.js","name":"@jarenjs/validate","type":"module","types":"./dist/types/index.d.ts","author":{"name":"joham"},"engines":{"node":">=24"},"exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./query":{"types":"./dist/types/query.d.ts","default":"./src/query.js"},"./normalize":{"types":"./dist/types/normalize.d.ts","default":"./src/normalize.js"},"./package.json":"./package.json"},"gitHead":"30ec046081c02c80ad1916569c45e134e33fb82b","license":"MIT","private":false,"scripts":{"build":"node esbuild.config.js && npm run build:types","prepack":"npm run build:types","build:types":"tsc -p tsconfig.json"},"version":"0.91.4","_npmUser":{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"},"homepage":"https://github.com/jklarenbeek/jarenjs#readme","keywords":["jaren","json","schema","validate","validator"],"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"_npmVersion":"11.12.1","description":"Jaren is a JavaScript JSON Schema Validator","directories":{},"maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@jarenjs/core":"^0.91.4","@jarenjs/json":"^0.91.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/validate_0.91.4_1789820619143_0.4891440099476134"}}},"time":{"created":"2024-09-19T14:11:38.798Z","modified":"2026-09-19T12:23:39.398Z","0.8.2":"2024-09-19T14:11:39.223Z","0.8.3":"2024-09-23T12:35:53.960Z","0.8.4":"2024-09-28T21:13:16.130Z","0.9.2":"2026-07-17T14:42:59.117Z","0.34.0":"2026-08-13T14:47:47.169Z","0.34.2":"2026-08-16T14:15:42.292Z","0.43.1":"2026-08-23T10:41:15.937Z","0.43.3":"2026-08-24T16:29:23.099Z","0.46.4":"2026-08-26T07:20:01.453Z","0.46.5":"2026-08-26T08:54:01.758Z","0.49.2":"2026-08-26T20:22:36.264Z","0.56.0":"2026-08-30T01:34:42.019Z","0.66.1":"2026-09-08T18:06:26.333Z","0.67.0":"2026-09-08T19:44:17.200Z","0.72.0":"2026-09-09T11:08:43.175Z","0.72.2":"2026-09-09T14:31:52.150Z","0.72.3":"2026-09-09T17:12:39.556Z","0.73.0":"2026-09-09T18:58:20.458Z","0.75.0":"2026-09-09T22:51:08.241Z","0.83.2":"2026-09-11T07:52:46.400Z","0.83.3":"2026-09-11T13:07:57.922Z","0.84.3":"2026-09-12T05:44:24.804Z","0.85.0":"2026-09-12T11:50:57.751Z","0.86.0":"2026-09-12T14:03:57.074Z","0.87.0":"2026-09-12T20:00:50.419Z","0.89.0":"2026-09-13T08:37:50.151Z","0.90.6":"2026-09-15T03:55:04.519Z","0.91.2":"2026-09-16T15:26:43.632Z","0.91.3":"2026-09-17T15:34:47.900Z","0.91.4":"2026-09-19T12:23:39.228Z"},"bugs":{"url":"https://github.com/jklarenbeek/jarenjs/issues"},"author":{"name":"joham"},"license":"MIT","homepage":"https://github.com/jklarenbeek/jarenjs#readme","keywords":["jaren","json","schema","validate","validator"],"repository":{"url":"git+https://github.com/jklarenbeek/jarenjs.git","type":"git","directory":"packages/validate"},"description":"Jaren is a JavaScript JSON Schema Validator","maintainers":[{"name":"jklarenbeek","email":"jklarenbeek@gmail.com"}],"readme":"# @jarenjs/validate\n\nThe JSON Schema validating compiler at the heart of [Jaren](https://github.com/jklarenbeek/jarenjs). It compiles JSON Schemas into optimized validation functions and fully supports `draft-06`, `draft-07`, `draft 2019-09` and `draft 2020-12` — passing the official [JSON-Schema-Test-Suite](https://github.com/json-schema-org/JSON-Schema-Test-Suite) for draft-07, 2019-09 and 2020-12, including the `$dynamicRef` scope cases.\n\n## Usage\n\n```javascript\nimport { JarenValidator } from '@jarenjs/validate';\n\nconst jaren = new JarenValidator();\n\nconst validate = jaren.compile({\n  type: 'object',\n  properties: {\n    name: { type: 'string' },\n    age: { type: 'integer', minimum: 0 }\n  },\n  required: ['name']\n});\n\nvalidate({ name: 'John', age: 30 }); // true\n```\n\nKey entry points:\n\n- `new JarenValidator(options)` — create a validator instance\n- `.addSchema(schema, key)` — register schemas for `$ref` resolution\n- `.addMetaSchema(schemas, key)` — register (custom) meta-schemas, honoring `$vocabulary`\n- `.addFormats(formats)` — register format validators (see [`@jarenjs/formats`](../formats))\n- `.compile(schema)` — compile a schema into a validation function\n\nHighlights:\n\n- Annotation-based `unevaluatedProperties`/`unevaluatedItems`\n- Spec-compliant dynamic scope for `$dynamicRef`/`$dynamicAnchor` and `$recursiveRef`/`$recursiveAnchor`\n- Per-document draft handling for cross-draft references\n- `$vocabulary`-aware keyword selection and per-draft `format`/content assertion defaults\n- Instance-data references via the `data` keyword (json-everything data-ref) and Ajv-style `$data`\n- Cross-field assertions via the `$query` extension keyword (a [Jaren JSON Query](../json/docs/QUERY-FORMAT.md) inside the schema)\n\nSchema registrations accept boolean schemas when supplied an explicit key.\nDocument URIs with or without an empty `#` fragment are aliases; replacing a\nregistration replaces both aliases. Named anchor fragments remain distinct.\n`addMetaSchema` accepts the bundles from `@jarenjs/refs` without mutating them,\nand `validateSchema` always returns a boolean. A schema with no `$schema`\nuses draft-07 for both compilation and meta-schema validation.\n\n## 🔑 JSON Schema validation keywords\n\nJaren supports the full set of JSON Schema validation keywords. Here's a quick overview:\n\n- JSON data type: `type`, `nullable`, `required`\n- Numbers: `maximum`, `minimum`, `multipleOf`\n- Strings: `maxLength`, `minLength`, `pattern`\n- Content: `contentEncoding`, `contentMediaType`\n- Arrays: `maxItems`, `minItems`, `uniqueItems`, `items`, `prefixItems`, `contains`, `unevaluatedItems`\n- Objects: `maxProperties`, `minProperties`, `required`, `properties`, `patternProperties`, `unevaluatedProperties`\n- All types: `enum`, `const`\n- Compound: `not`, `oneOf`, `anyOf`, `allOf`, `if/then/else`\n- Meta: `$schema`, `$id`, `$ref`, `$anchor`, `$dynamicRef`/`$dynamicAnchor`, `$recursiveRef`/`$recursiveAnchor`, `$vocabulary`\n- **Non-standard**: `data` (json-everything's [data-ref](https://docs.json-everything.net/schema/examples/data-ref/) proposal), Ajv-style `$data` references, and the [`$query` keyword](#query--cross-field-assertions) below\n\n<details>\n<summary>🔥 For a complete list of supported keywords and their implementation status, click here</summary>\n\n### 🔑 JSON data type\n\n- type\n- nullable | _(OpenAPI)_\n- required | _as boolean: rejects `undefined` when this schema is invoked; object member presence is declared with the parent's `required` array_\n\n### 🔑 Keywords for numbers\n\n- maximum / minimum<br />or exclusiveMaximum / exclusiveMinimum\n- multipleOf\n\nBigInt instance values are supported too: `maximum`/`minimum`/`exclusiveMaximum`/`exclusiveMinimum` and `multipleOf` compile dedicated BigInt comparators when the data is a `bigint`.\n\n### 🔑 Keywords for strings\n\n- maxLength / minLength\n- pattern\n\n### 🔑 Keywords for content\n\n- contentEncoding | asserts in `draft7`, annotation-only from `draft2019` on (spec default), controlled by the `contentValidation` option\n- contentMediaType | same assertion defaults; `application/json` content is parse-checked\n- ❌ contentSchema | annotation only (never asserted)\n\nBase64 JSON content validation decodes UTF-8 in both browser and Node runtimes;\nit does not require Node's `Buffer` global.\n\n### 🔑 Keywords for format\n\n- format\n- formatMinimum / formatMaximum<br />or formatExclusiveMinimum / formatExclusiveMaximum\n\n### 🔑 Keywords for array\n\n- maxItems / minItems\n- uniqueItems\n- items\n  - items | as schema or tuple _deprecated in `draft2020`_\n  - items | as schema only _new `draft2020`_\n- prefixItems | as tuple _new `draft2020`_\n- additionalItems | as schema _deprecated in `draft2020`_\n- contains\n- maxContains / minContains | _new `draft2019`_\n- unevaluatedItems | _new `draft2019`_\n\n### 🔑 Keywords for object\n\n- maxProperties / minProperties\n- required | _as array!_\n- properties\n- patternProperties\n- additionalProperties\n- dependencies | _deprecated in `draft2019`_\n- dependentRequired | _new `draft2019`_\n- dependentSchemas | _new `draft2019`_\n- propertyNames\n- unevaluatedProperties | _new `draft2019`_\n- ❌ [propertyDependencies](https://github.com/json-schema-org/json-schema-spec/blob/main/proposals/propertyDependencies.md)\n\n### 🔑 Keywords for all types\n\n- enum\n- const\n\n### 🔑 Compound keywords\n\n- not\n- oneOf\n- anyOf\n- allOf\n- if / then / else\n\nSee also:\n- [Schema Composition](https://json-schema.org/understanding-json-schema/reference/combining)\n- [Applying Subschemas Conditionally](https://json-schema.org/understanding-json-schema/reference/conditionals)\n\n### 🔑 Meta keywords\n\n- $schema | used for draft detection, vocabulary selection and cross-draft references\n- $id\n- $ref\n- $anchor\n- $recursiveRef | _new `draft2019` &amp; deprecated in `draft2020`_\n- $recursiveAnchor | _new `draft2019` &amp; deprecated in `draft2020`_\n- $dynamicRef | _new `draft2020`_\n- $dynamicAnchor | _new `draft2020`_\n- $data | _(Ajv specific)_\n- [$vocabulary](https://github.com/json-schema-org/json-schema-spec/blob/main/proposals/vocabularies.md) | _new `draft2019`_ - a custom metaschema that omits the validation vocabulary turns keywords like `type` and `minimum` into annotations; a metaschema that declares the `format-assertion` vocabulary turns format assertion on\n\n### 🔑 Non-standard keywords\n\n- `data` | json-everything's [data-ref](https://docs.json-everything.net/schema/examples/data-ref/) proposal\n\n  The `data` keyword allows you to reference values from the instance being validated, enabling dynamic constraints based on other parts of the data.\n\n  **Example - Requiring B >= A:**\n  ```json\n  {\n    \"type\": \"object\",\n    \"properties\": {\n      \"A\": { \"type\": \"number\" },\n      \"B\": {\n        \"type\": \"number\",\n        \"data\": {\n          \"minimum\": \"/A\"\n        }\n      }\n    }\n  }\n  ```\n  - Passes: `{ \"A\": 5, \"B\": 10 }` (10 >= 5)\n  - Fails: `{ \"A\": 15, \"B\": 10 }` (10 < 15)\n\n  **Example - Enum from instance array:**\n  ```json\n  {\n    \"type\": \"object\",\n    \"properties\": {\n      \"color\": {\n        \"data\": {\n          \"enum\": \"/validColors\"\n        }\n      },\n      \"validColors\": {\n        \"type\": \"array\",\n        \"items\": { \"type\": \"string\" }\n      }\n    }\n  }\n  ```\n\n  **Supported keywords within `data`:**\n  - Number constraints: `minimum`, `maximum`, `exclusiveMinimum`, `exclusiveMaximum`, `multipleOf`\n  - String constraints: `minLength`, `maxLength`, `pattern`, `format`\n  - Array constraints: `minItems`, `maxItems`\n  - Object constraints: `minProperties`, `maxProperties`\n  - Value constraints: `enum`, `const`\n\n  Both absolute JSON Pointers (e.g., `/A`, `/limits/min`) and relative JSON Pointers (e.g., `0/parent`, `1/sibling`) are supported.\n\n- `$data` | Ajv-style instance references (`{ \"minimum\": { \"$data\": \"1/limit\" } }`) — supports every keyword the `data` list above supports, plus `uniqueItems` and `required`. Takes the same three reference forms: empty for the whole instance, an absolute JSON Pointer (`/limit`), or a Relative JSON Pointer (`1/limit`). Refs compile once at schema compile time through the compiled pointer engine of `@jarenjs/json`, and a reference that cannot be compiled **fails the compile** rather than quietly resolving to nothing — a constraint that disables itself is worse than a rejected schema.\n\n- `$query` | Jaren's cross-field assertion keyword — see [below](#query--cross-field-assertions)\n\n### 🔑 Miscellaneous keywords\n\n- ❌ strict\n- ❌ strictFormat\n- ❌ strictTuple\n- errorMessage | author-supplied messages that override text (never structure) — see [Error messages &amp; i18n](#error-messages--i18n)\n- definitions | used by initial schema traversal _deprecated in `draft2019`_\n- $defs | used by initial schema traversal _new `draft2019`_\n- components | _(OpenAPI)_\n\n</details>\n\n## 🛠️ Notable capabilities\n\n### 👉 Modelling Inheritance with JSON Schema\n\nJaren fully supports `unevaluatedProperties`, so the inheritance patterns from the [Modelling Inheritance](https://json-schema.org/blog/posts/modelling-inheritance) blog post work out of the box. Annotations flow from `properties`, `patternProperties`, `additionalProperties` and every in-place applicator (`allOf`/`anyOf`/`oneOf`/`if-then-else`/`$ref`/`dependentSchemas`), with annotations from failed branches correctly discarded.\n\nSee also:\n- [json-schema-core](https://json-schema.org/draft/2020-12/json-schema-core#name-unevaluatedproperties)\n- [Combining unevaluatedProperties and ref: # #375](https://github.com/orgs/json-schema-org/discussions/375)\n\n### 👉 Express array constraints more cleanly\n\nJaren fully supports `unevaluatedItems`, covering the array patterns from the 2020-12 [release notes](https://json-schema.org/draft/2020-12/release-notes#contains-and-unevaluateditems): items evaluated by `items`, `prefixItems`, `additionalItems` and (in 2020-12) `contains` are tracked, and everything left over is validated by the `unevaluatedItems` schema.\n\n### 👉 Using Dynamic References to Support Generic Types\n\nJaren fully supports `$dynamicRef`/`$dynamicAnchor` (2020-12) and `$recursiveRef`/`$recursiveAnchor` (2019-09), including the generic-type patterns from the [dynamicRef and generics](https://json-schema.org/blog/posts/dynamicref-and-generics) blog post. Resolution follows the specification's dynamic-scope rules: entering a schema resource brings all of its dynamic anchors into scope, and a `$dynamicRef` resolves to the anchor in the outermost resource of the dynamic scope.\n\nSee also:\n- [Understanding lexical dynamic scopes](https://json-schema.org/blog/posts/understanding-lexical-dynamic-scopes)\n- [$dynamicRef and $dynamicAnchor](https://json-schema.org/draft/2020-12/release-notes#dollardynamicref-and-dollardynamicanchor)\n\n### 👉 Runtime schema manipulation of constraints\n\nJaren supports the `data-ref` proposal from json-everything through the `data` keyword, plus Ajv-style `$data` references. Both allow a schema constraint to take its value from the instance being validated:\n\n- Absolute JSON Pointers (e.g., `/A`, `/limits/min`)\n- Relative JSON Pointers (e.g., `0/parent`, `1/sibling`)\n- All common constraint keywords: `minimum`, `maximum`, `exclusiveMinimum`, `exclusiveMaximum`, `multipleOf`, `minLength`, `maxLength`, `pattern`, `format`, `enum`, `const`, `minItems`, `maxItems`, `minProperties`, `maxProperties`\n\nThe refs compile once at schema compile time through the compiled pointer engine of [`@jarenjs/json`](../json) and resolve allocation-free per validation.\n\nDynamic `const` and `enum` use the same structural object/array equality as\ntheir static forms. Dynamic string bounds honor the compiler's `useGrapheme`\noption as well.\n\nSee also:\n- [$data](https://github.com/json-schema-org/json-schema-spec/issues/51)\n- [Ajv $data spec](https://github.com/ajv-validator/ajv/tree/master/spec/extras/%24data)\n- [data-ref](https://docs.json-everything.net/schema/examples/data-ref/)\n\n### 👉 Vocabularies and cross-draft references\n\nA schema's `$schema` declaration is honored per document: referenced documents that declare a different draft are processed with that draft's keyword set (a draft-07 document ignores `dependentRequired`; a 2019-09 document ignores `prefixItems`). Custom metaschemas with `$vocabulary` are respected — omitting the validation vocabulary turns validation keywords into annotations, and declaring `format-assertion` turns format assertion on.\n\nModern reference chains preserve supported sibling assertions, including\ndependent schemas and dynamic references. Draft-07 retains its reference-only\nbehavior, ignoring siblings beside `$ref`.\n\n## `$query` — cross-field assertions\n\n`$query` is a **Jaren extension keyword**: its value is a\n[Jaren JSON Query](../json/docs/QUERY-FORMAT.md) document, compiled once at\nschema compile time and evaluated per validation against the current instance\nlocation. The instance is valid when the query result's\n[effective boolean value](../json/docs/QUERY-FORMAT.md#22-effective-boolean-value-ebv)\nis true. This gives JSON Schema the class of constraint it is notoriously bad\nat — cross-field arithmetic, ordering, aggregate consistency, quantification —\nthrough the query engine that already sits underneath the stack. Other\nvalidators treat `$query` as an unknown-keyword annotation, so schemas using\nit stay portable; the constraint simply only asserts here.\n\nAn invoice whose `total` must equal the sum of its line amounts:\n\n```javascript\nconst validate = jaren.compile({\n  type: 'object',\n  properties: {\n    lines: { type: 'array', items: { type: 'object' } },\n    total: { type: 'number' }\n  },\n  $query: { $eq: ['$.total', { $sum: '$.lines[*].amount' }] }\n});\n\nvalidate({ lines: [{ amount: 12.5 }, { amount: 7.5 }], total: 20 }); // true\nvalidate({ lines: [{ amount: 12.5 }, { amount: 7.5 }], total: 21 }); // false\n```\n\nDate ordering (`$le` compares strings by code points, QUERY-FORMAT §8.4 —\nexactly right for ISO dates):\n\n```javascript\njaren.compile({ $query: { $le: ['$.start', '$.end'] } });\n```\n\nQuantification over items:\n\n```javascript\njaren.compile({\n  $query: { $every: { l: '$.lines[*]' }, $satisfies: { $gt: ['$l.qty', 0] } }\n});\n```\n\nTwo external parameters are bound on every evaluation: `root` — the instance\nroot — and `path` — the current instance location as a JSON pointer string.\n(The JSLT template layer reserves the same two names with one twist: its\nmatching language is JSONPath, so its `path` is an RFC 9535 *normalized\npath*, not a pointer — see [JSLT-FORMAT §8.2](../json/docs/JSLT-FORMAT.md).)\nSo a subschema can reach across the document:\n\n```javascript\njaren.compile({\n  type: 'object',\n  properties: {\n    lines: {\n      type: 'array',\n      items: {\n        type: 'object',\n        // every line's currency must match the document-level currency\n        $query: { $eq: ['$.currency', '$root.currency'] }\n      }\n    }\n  }\n});\n```\n\nSemantics and composition:\n\n- `$query` works at **any subschema level** and composes like every other\n  keyword: under `properties`/`items` the query's `$` is that location's\n  value, `$path` its pointer (`/lines/0`, ...), `$root` the whole document.\n- A bare JSONPath string is the degenerate query: `{ \"$query\": \"$.approved\" }`\n  asserts the **EBV** of that member, not its mere existence: existence would\n  let `$.approved` pass on a literal `false`, exactly the case the constraint\n  means to reject (missing → empty sequence → false either way).\n- `$query` is a **validation keyword**, so under 2019-09 and 2020-12 it\n  asserts as a sibling of `$ref` (both apply together). Under draft-07 the\n  `$ref`-overrides-siblings rule stands, so a `$query` written beside a `$ref`\n  is ignored on that node.\n- Query **runtime** errors (`JQ2xxx` — e.g. arithmetic on a non-number, the\n  EBV of a multi-item result) are validation **failures**, never throws; in\n  `collectErrors` mode the error params carry the `code` and the query\n  `docPath`. Malformed query documents and free externals other than\n  `root`/`path` fail fast at `compile()`.\n- Schema literals inside the query (`$valid`/`$assert`/`$as`,\n  QUERY-FORMAT §8.11) compile against the **same validator instance**, so\n  their `$ref`s resolve to your `addSchema` registrations. The bridge\n  (`createTypeTestCompiler`) accepts nothing (a fresh default instance), a\n  `JarenValidator` instance, or a zero-arg factory, and probes the compiled\n  validator's return shape **once per schema literal** — so even a\n  `collectErrors` instance is unwrapped into a boolean predicate.\n\nA schema literal in `$query` has its own document scope; its local `$ref`s do\nnot reach the enclosing schema's `$defs`. Register shared schema documents with\n`addSchema` and reference their IDs. Recursive compilation through such a query\nliteral is refused at compile time instead of repeatedly opening another root;\nordinary recursive `$ref` validation remains supported.\n\n## Compatibility settings\n\nFive options decide answers that differ between validators, between JSON\nSchema drafts, or between Jaren and the library you are migrating from. Each\none is a deliberate default, and each one is worth setting explicitly in a\nshared factory rather than inheriting.\n\n| Option | Default | What it decides |\n|---|---|---|\n| `collectErrors` | `false` | Whether the compiled validator returns a boolean or `{ valid, errors }` |\n| `skipErrors` | `!collectErrors` | Whether validation stops at the first failure |\n| `useGrapheme` | **`true`** | Whether `minLength`/`maxLength` count grapheme clusters or UTF-16 code units |\n| `formatAssertion` | auto by draft | Whether `format` asserts or only annotates |\n| `contentValidation` | auto by draft | Whether `contentEncoding`/`contentMediaType` assert |\n\n### The return shape is `collectErrors`\n\n`collectErrors` is the *only* switch between the two return shapes, and it is\noff by default:\n\n```javascript\nnew JarenValidator().compile(schema)(data);\n// => true | false\n\nnew JarenValidator({ collectErrors: true }).compile(schema)(data);\n// => { valid: false, errors: [ /* ValidationError */ ] }\n```\n\nSetting `collectErrors: true` implies `skipErrors: false` (collecting errors\nmeans recording them), so you do not need to set both. Set `skipErrors`\nyourself only to keep first-failure short-circuiting while still collecting.\n\nRead errors from the returned object. The `JarenValidator` instance has no\n`errors` property. A compiled function retains a legacy `errors` getter exposing\nits internal last-call diagnostics; that getter is not the public\n`ValidationError[]` result and should not be used as a request's error record.\n\nEach `ValidationError` carries six fields:\n\n```javascript\n{\n  keyword: 'format',                 // the JSON Schema keyword that failed\n  instancePath: '/email',            // RFC 6901 JSON Pointer into the DATA\n  schemaPath: 'https://…#/properties/email',  // absolute URI into the SCHEMA\n  params: { format: 'email' },       // raw structured values, never prose\n  msgid: 'format',                   // stable catalog key for i18n\n  message: 'must match format \"email\"'\n}\n```\n\nTwo notes for anyone diffing this against another validator's output. The\ndata location is `instancePath`, a **JSON Pointer string** — not the dotted\n`dataPath` of Ajv v6, and not an array path. `parseJSONPointerPath` from\n[`@jarenjs/json`](../json/README.md) converts it to the `(string|number)[]`\npath shape that Zod's `issue.path` and most diffing tools use, narrowing\ncanonical array indexes to numbers:\n\n```javascript\nimport { parseJSONPointerPath } from '@jarenjs/json';\n\nparseJSONPointerPath('/items/0/id');   // ['items', 0, 'id']\n```\n\nAnd for `additionalProperties: false`, Jaren points `instancePath` at the\noffending member (`/nested/extra`) where Ajv points at the parent object —\ndeliberate, and spec-truer.\n\n**Collected errors are exhaustive across independent keywords.** Every\nkeyword that can fail independently reports its own fault, rather than the\nfirst failure hiding the rest: keyword groups on one node (`enum` beside\n`minLength`), `minProperties` beside `required`, a numeric bound beside\n`multipleOf`, `minItems` beside `uniqueItems` and beside failing items, every\n`allOf` branch, independent applicator groups, and every absent `required`\nproperty. Boolean mode still stops at the first failure — that is the whole\npoint of it — so the two modes deliberately differ in how much work they do:\n\n```javascript\nconst contract = {\n  type: 'object',\n  properties: { slug: { type: 'string', minLength: 3, pattern: '^[a-z]+$' } },\n  required: ['name', 'slug'],\n};\n\ncollecting.compile(contract)({ slug: '!' }).errors;\n// required at '', minLength at '/slug', pattern at '/slug'  — three issues\n```\n\n**A speculative applicator never reports.** An `anyOf`/`oneOf` branch that was\nnot the one that matched, the subschema of a `not`, an `if` condition, and a\n`contains` candidate that is not the match are all probes — the document was\nnever required to satisfy them, so their failures are rolled back rather than\nhanded to your caller. What survives is what genuinely explains the failure:\nif *no* `anyOf` branch matched, every branch's errors are kept, because then\nthey are the reason.\n\n```javascript\ncollecting.compile({\n  type: 'string', minLength: 5,\n  anyOf: [{ type: 'number' }, { type: 'string' }],\n})('x').errors;\n// [minLength]  — not a type error from the number branch that was never required\n```\n\nA `required` error points at the **owning object**, not at the absent member\n(there is no location for something that is not there); the missing name is in\n`params.missingProperty`, which is what an adapter appends to build a\nZod-style path.\n\n### String lengths count graphemes by default\n\n`useGrapheme` defaults to **`true`**, so `minLength`/`maxLength` count\nuser-perceived characters. Setting it to `false` makes this package count\nUTF-16 code units instead:\n\n```javascript\nconst family = '👨‍👩‍👧‍👦';   // 1 grapheme cluster, 11 UTF-16 code units\n\nnew JarenValidator().compile({ type: 'string', maxLength: 2 })(family);\n// => true   (1 grapheme)\n\nnew JarenValidator({ useGrapheme: false })\n  .compile({ type: 'string', maxLength: 2 })(family);\n// => false  (11 code units)\n```\n\n**If you are migrating from a validator that counts code units, set\n`useGrapheme: false`,** or strings containing emoji, combining marks, flags\nor astral-plane characters will silently change validity at the boundaries.\nGrapheme mode is not expensive — ASCII takes a `str.length` fast path and\nmost Unicode takes a code-point count; only cluster-forming strings reach\n`Intl.Segmenter` — so the default is about correctness, not speed, and\nswitching to it later is a product decision rather than a performance one.\n\n### `format` and content assertion follow the draft\n\nBoth are annotation-only in the drafts that say so, and both take an explicit\noverride:\n\n- **`format`** asserts through draft 2019-09 and is annotation-only from\n  draft 2020-12 on, per spec. It also turns on automatically when the\n  schema's meta-schema declares the `format-assertion` vocabulary.\n- **`contentEncoding`/`contentMediaType`** assert through draft-07 and are\n  annotation-only from 2019-09 on.\n\n```javascript\nconst schema = { $schema: 'https://json-schema.org/draft/2020-12/schema',\n                 type: 'string', format: 'email' };\n\nnew JarenValidator().addFormats(formats.stringFormats)\n  .compile(schema)('nope');                       // => true  (annotation only)\n\nnew JarenValidator({ formatAssertion: true }).addFormats(formats.stringFormats)\n  .compile(schema)('nope');                       // => false (asserted)\n```\n\n### Formats are never registered implicitly — and an unregistered one is an error\n\n`@jarenjs/validate` does not depend on `@jarenjs/formats`, so a fresh\nvalidator has an **empty format registry**. Registering the groups you use is\nthe whole setup:\n\n```javascript\nimport * as formats from '@jarenjs/formats';\n\nconst jaren = new JarenValidator()\n  .addFormats(formats.stringFormats)     // email, uri, uuid, hostname, iban, ...\n  .addFormats(formats.dateTimeFormats)   // date-time, date, time, duration\n  .addFormats(formats.numberFormats)     // int32, double, decimal, ...\n  .addFormats(formats.jsonFormats)       // json-pointer, json-path, regex, ...\n  .addFormats(formats.geoFormats);       // geohash, lat-long, ...\n```\n\n**An unregistered format name asserts nothing, and by default says nothing** —\nthat is the specification's rule (\"implementations MUST NOT fail validation or\ncease processing due to an unknown format attribute\"), and it is the default\nbecause a library has to be able to compile a schema it did not write. The\ncost is a real trap: a `format: 'date-time'` you believed was checking\ntimestamps, checking nothing, and looking exactly like one that works.\n\n**`unknownFormats: 'error'` turns that into a compile-time throw.** Set it for\nschemas you own:\n\n```javascript\nnew JarenValidator({ unknownFormats: 'error' })\n  .compile({ type: 'string', format: 'date-time' });\n// => Error: Unknown format 'date-time': no compiler is registered for it,\n//    so this schema would accept every value for that keyword. Register one\n//    (addFormats(dateTimeFormats) …), or pass { unknownFormats: 'ignore' } …\n```\n\nInstance validation is untouched either way — **no data is ever invalidated by\nan unknown format**, so `'error'` stays inside the specification's letter: it\nreports to the schema's *author*, at compile time, where a missing\nregistration is a fact about the setup rather than about the data. The\nofficial suite's `optional/format/unknown.json` (unknown format, assertion\nforced on, everything must validate) passes on the default and is the one\nthing `'error'` would fail, which is why it is opt-in.\n\nThis repository sets `'error'` for every schema it ships, and a gate\n(`test/validate/our-schema-formats.test.js`) fails if any of them names a\nformat `@jarenjs/formats` does not implement. It is worth copying: the\npublished `jaren-query` grammar declared `format: \"json-path\"` from the day it\nwas written, nothing that compiled it registered `jsonFormats`, and so no path\nstring was ever checked by that keyword. Nothing failed. That is the shape of\nthis bug.\n\nWhere **not** to reach for `'error'`: a schema a user hands you. Refusing to\ncompile a stranger's valid schema over a format you happen not to implement is\nyour problem presented as theirs — this repo keeps the default for the\nvalidator playground's input and for project files in the studio, and uses\n`'error'` only for its own grammars. A portable schema may put a `pattern` beside an annotation-only `format` to enforce its lexical constraint without requiring a format registry.\n\nTwo things `'error'` deliberately leaves alone. It does not fire where\n`format` is annotation-only anyway (draft 2020-12 without the format-assertion\nvocabulary) — nothing is lost there, so there is nothing to report. And\n**meta-schemas** are exempt: every JSON Schema meta-schema declares\n`format: \"uri-reference\"` on `$id`, and nobody registers formats in order to\ncheck that a *schema* is well-formed, so `addMetaSchema` compiles with\n`unknownFormats: 'ignore'` regardless.\n\nRegistering a format with something that is **not a compiler** throws under\neither setting, because that mistake is never intentional:\n\n```javascript\nnew JarenValidator().addFormats(formats.formatTesters)   // testers, not compilers\n  .compile({ type: 'string', format: 'email' });\n// => Error: Format 'email' failed to compile: … Register the format COMPILERS\n//    (stringFormats, dateTimeFormats, …) rather than the raw testers.\n```\n\n`formatTesters` and `stringFormats` are both objects full of functions, so the\nmistake registers cleanly and then checks nothing. Only the **compilers** take\n`(schemaObj, jsonSchema)` and return the per-value validator.\n\nRegistration never overwrites an existing name, so register your own\noverrides *before* a bundled group if you want them to win.\n\n### Recipe: migrating from Zod\n\nZod counts UTF-16 code units, always reports every issue, and always\nasserts formats. This factory reproduces those three answers:\n\n```javascript\nimport { JarenValidator } from '@jarenjs/validate';\nimport * as formats from '@jarenjs/formats';\n\nexport const jaren = new JarenValidator({\n  collectErrors: true,     // { valid, errors } instead of a boolean\n  useGrapheme: false,      // UTF-16 code units, like Zod's .min()/.max()\n  formatAssertion: true,   // assert format even under draft 2020-12\n  contentValidation: true, // assert contentEncoding/contentMediaType\n})\n  .addFormats(formats.stringFormats)\n  .addFormats(formats.dateTimeFormats);\n```\n\nWhat this recipe does **not** give you is Zod's output normalization: a\ncompiled validator is a pure predicate and never modifies its input. That\nboundary does not move — but the normalization itself ships beside it, as a\nseparately compiled pass. See [Normalization](#normalization) below.\n\n## Normalization\n\nValidation answers a question; it does not change your data. When you need\nthe *normalized output* that a parse-and-transform library returns —\nmaterialized defaults, decoded transport values, stripped unknown members —\ncompile a normalizer from the same schema and run it first:\n\n```javascript\nimport { compileNormalizer } from '@jarenjs/validate/normalize';\n\nconst normalize = compileNormalizer(schema, {\n  useDefaults: true,       // fill absent properties from `default`, recursively\n  removeAdditional: true,  // drop members the schema forbids\n  coerceTypes: true,       // '9000' -> 9000 where the schema says integer\n  trimStrings: true,       // '  jaren  ' -> 'jaren'\n});\n\nconst shaped = normalize(input);   // a NEW value; `input` is untouched\nconst result = validate(shaped);\n```\n\nEvery option is **off by default** — each one changes what your data means,\nso each is a decision you make rather than one you inherit.\n`compileNormalizer(schema)` with no options is the identity.\n\n### Per-field control, not just a global switch\n\n`useDefaults`, `coerceTypes` and `trimStrings` each accept a **predicate**\n`(schemaNode) => boolean` in place of a boolean. It runs once per node during\ncompilation, so it decides per field and costs nothing at runtime:\n\n```javascript\nconst normalize = compileNormalizer(schema, {\n  trimStrings: (node) => node['x-trim'] === true,\n});\n```\n\nThis matters more than it looks. A contract typically trims a handful of its\nstring fields and must leave the rest byte-for-byte as supplied — a timezone\nname, a deliberately padded identifier, a field whose whitespace is data.\n`trimStrings: true` would quietly rewrite all of them. The predicate reads\nwhatever you put in the schema (an `x-` annotation, a `format`, a name\npattern), which keeps the policy next to the field it governs and portable\nwith the schema.\n\n### It never mutates, and it shares what it can\n\nAjv's `useDefaults`/`coerceTypes` write into the document you hand them.\nThis does not: it is a copy-on-write walk, so the input is exactly as it was\nafterwards — you can normalize a frozen document, or keep the original as an\naudit record, without defensive copying.\n\nThe other half of that design is identity. A subtree that needs no change is\nreturned by reference, and a document that needs no change at all returns the\ninput itself:\n\n```javascript\nnormalize(alreadyClean) === alreadyClean;   // true\n```\n\nSo a no-op costs nothing, and downstream memoization keyed on identity keeps\nworking.\n\n### What it walks, and what it deliberately does not\n\nWalked: `properties`, `patternProperties`, `additionalProperties`,\n`items`/`prefixItems`/`additionalItems` (both tuple spellings), same-document\n`$ref` including recursive ones, and `allOf` — whose branches compose, with\nstripping disabled inside them because one branch cannot know what a sibling\ndeclares.\n\nSame-document references use the fragment forms `#`, `#/pointer` and `#anchor`;\nabsolute URI spellings are not followed by the normalizer. Defaults materialize\nonly on directly annotated, absent properties: an own property set to\n`undefined` remains present, and a default found only behind a `$ref` does not\ncreate an absent property. A supplied value still follows that reference.\n\nTuple tail normalization starts after the declared prefix, including prefix\npositions that need no changes. Same-document anchors are collected from schema\npositions; anchor-looking keys in defaults, constants and examples are data.\n\nPattern strings use the validator's syntax, including `/pattern/flags`.\nGlobal and sticky flags cannot retain a cursor between members or calls.\n\nMember schemas **compose the way JSON Schema says they do**: a member covered\nby `properties` *and* by one or more matching `patternProperties` is\nnormalized by every one of them, in that order, and `additionalProperties`\napplies only to a member nothing else covered. A materialized `default` runs\nthrough its own property's normalizer too, so a defaulted `{ port: '8080' }`\nis shaped exactly like a supplied one rather than keeping its string.\n\nNot walked: `anyOf`, `oneOf`, `if`/`then`/`else`, `not`. Which branch applies\nis only known after validating, and normalizing under one branch can change\nwhich branch validates — so guessing would be worse than declining. There is\nalso no transform hook: an arbitrary transform is application code, not\nschema semantics, and belongs on your side of the boundary.\n\n### The coercion table\n\nCoercion exists to decode transport encodings — query strings, form fields,\nenvironment variables, CSV cells — where everything arrives as a string. It\nis conservative on purpose: a value it cannot convert unambiguously is passed\nthrough unchanged, so validation reports the type error instead of the\nnormalizer hiding it.\n\n| Declared `type` | Converted | Left alone |\n|---|---|---|\n| `number` | a string that is exactly a JSON number (`'1e5'`, `'-0.5'`) | `'0x10'`, `'1_000'`, `''`, `'Infinity'` |\n| `integer` | as `number`, when the result is a safe integer | `'4.5'`, integer strings outside ±(2⁵³−1) |\n| `boolean` | `'true'`, `'false'` | `'yes'`, `'1'`, `0` |\n| `string` | finite numbers and booleans | objects, arrays, `null` |\n| `null` | `'null'` | `''`, `0`, `false` |\n\nA union `type` (`['string', 'number']`) gives no single target, so coercion is\nskipped rather than guessed. Trimming runs before coercion, so `'  42  '`\ndecodes for an integer field.\n\n## Error messages & i18n\n\nEvery collected error carries a stable message key (`msgid`) and raw\nstructured `params` next to its rendered `message` — prose is produced at\nreport time from a **catalog** (a plain object of closures), never on the\nvalidation hot path. The normative spec is\n[ERROR-MESSAGES.md](./docs/ERROR-MESSAGES.md).\n\n### The `errorMessage` keyword\n\nAuthor-supplied messages that override *text*, never structure (no error\naggregation or removal — the deliberate divergence from ajv-errors, whose\ntwo official plugins are mutually incompatible). Registered at schema\ncompile time, resolved only over the failed set at report time — zero\nvalidation-time cost.\n\n```javascript\n// string form: covers the node AND its subtree (quiet oneOf noise)\n{ \"type\": \"string\", \"minLength\": 8, \"errorMessage\": \"Use at least 8 characters\" }\n\n// map form: per failing keyword, '_' as the node catch-all\n{ \"type\": \"integer\", \"minimum\": 18,\n  \"errorMessage\": { \"minimum\": \"Must be an adult\", \"_\": \"Invalid age\" } }\n\n// required: per missing property\n{ \"required\": [\"vatId\", \"name\"],\n  \"errorMessage\": { \"required\": { \"vatId\": \"VAT id is required for business accounts\" } } }\n\n// $query: EBV-false default and per runtime code\n{ \"$query\": { \"$le\": [\"$.start\", \"$.end\"] },\n  \"errorMessage\": { \"$query\": {\n    \"default\": \"start must not be after end\",\n    \"JQ2003\": \"start/end must be single values\" } } }\n```\n\nTemplates interpolate params: `\"errorMessage\": \"needs {limit} characters\"`.\n\n### `$msgid` — translatable authored messages\n\nAn `errorMessage` (or forms `x-form.message`) may be a **MessageSpec**\nobject pointing into the catalog space instead of inline text — that keeps\nschema-authored messages translatable:\n\n```javascript\n{ \"type\": \"number\",\n  \"errorMessage\": { \"type\": {\n    \"$msgid\": \"checkout.total-invalid\",       // catalog key\n    \"message\": \"Total must be a number\"       // fallback when no catalog covers it\n  } } }\n```\n\n### Locale packs\n\n```javascript\nimport { JarenValidator, compileMessageCatalog, localizeErrors } from '@jarenjs/validate';\nimport { nl } from '@jarenjs/locales';\n\nconst catalog = compileMessageCatalog(nl);\nconst validator = new JarenValidator({ collectErrors: true });\nconst validate = validator.compile({ type: 'string', minLength: 2 });\n\nconst result = validate('x');                 // English messages\nlocalizeErrors(result.errors, catalog);       // Dutch, re-rendered from msgid + params\n// 'mag niet minder dan 2 tekens bevatten'\n```\n\nThe locale is chosen at **report time**; switching locale never recompiles\nanything. Catalog entries are plain functions, so packs use the platform's\n`Intl.PluralRules`/`Intl.NumberFormat` — see\n[`@jarenjs/locales`](../locales/README.md) for the pack-authoring guide.\n\n### `messages: false`\n\nFor applications that render exclusively through `localizeErrors` (or\ntheir own resolver), skip English rendering entirely:\n\n```javascript\nconst validator = new JarenValidator({ collectErrors: true, messages: false });\n// errors arrive with message: '', params and msgid still set\n```\n\n## Exports\n\nEvery subpath a consumer can import, derived from the manifest by\n`npm run docs:derive` (`npm run docs:check` fails when the two drift):\n\n<!--fact:exports.validate-->\n| Import | Kind | Declarations |\n|---|---|---|\n| `@jarenjs/validate` | JavaScript | declared |\n| `@jarenjs/validate/query` | JavaScript | declared |\n| `@jarenjs/validate/normalize` | JavaScript | declared |\n| `@jarenjs/validate/package.json` | metadata | — |\n<!--/fact-->\n\n## Development\n\nUnit tests live in `test/validate/` at the repository root (`npm run test:validate`). Performance against Ajv is measured over the official test suite with the [benchmark workspace](../../benchmark/README.md) (`node benchmark/profiler.js --profile-all`), which also houses the test-failure debugger, coverage and call-graph tools.\n\nThis package's internals — the four-phase compile pipeline, ref flattening, annotation tracking, dynamic scope — are described in its own [ARCHITECTURE](./ARCHITECTURE.md) document. For practical usage recipes (options, lightweight setups, custom formats, pitfalls) see the repository [HOWTO](../../docs/HOWTO.md); for the monorepo picture see the repository [README](../../README.md) and [ARCHITECTURE](../../docs/ARCHITECTURE.md); for what is planned next see the [ROADMAP](../../docs/ROADMAP.md).\n","readmeFilename":"README.md"}