{"_id":"tosijs-schema","_rev":"37-5921074cc241f63148810d44cb49a034","name":"tosijs-schema","dist-tags":{"latest":"1.13.0"},"versions":{"0.0.1":{"name":"tosijs-schema","version":"0.0.1","license":"MIT","_id":"tosijs-schema@0.0.1","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"783c5e1958493979fff0f56395c2a199077dce2b","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-0.0.1.tgz","fileCount":6,"integrity":"sha512-vH8WHzVjW8O/kelwaVXv+gjmfsQt1RV+8MX22MhYL9WlCjtZbtU07Z90w4qKR5daOCykNRlEOffpSTH+3dkKWg==","signatures":[{"sig":"MEQCHzRheIFVIghP+Uo25u9ZQqCgF/E9E8aFBRB9Ddgmv10CIQDc8dJ1zWyGLcj1IfNoaDzIJurzrvBVFI7Kae/8WpoCLQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11727},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"783c5e1958493979fff0f56395c2a199077dce2b","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"pack":"bun test && bun build index.ts --outdir=dist && tsc index.ts --declaration --emitDeclarationOnly --outDir dist","test":"bun test","latest":"rm -rf node_modules && bun install","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-vH8WHzVjW8O/kelwaVXv+gjmfsQt1RV+8MX22MhYL9WlCjtZbtU07Z90w4qKR5daOCykNRlEOffpSTH+3dkKWg==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_0.0.1_1763751095148_0.3350280821000684","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"tosijs-schema","version":"0.0.2","license":"MIT","_id":"tosijs-schema@0.0.2","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"1f8cb6db747ce6455fa89889b579e905a333f70b","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-0.0.2.tgz","fileCount":6,"integrity":"sha512-YavEE6+dd+HQZICvfKGspzoF7k1lAm859qMWiyeTsrQL9L6+FcWFHnV+FxSnXgqR+pSSg3h9rDw4JW0PpZkHKA==","signatures":[{"sig":"MEUCIG3QCKkql4XAB+bZwBJarXLiQr8ZLIYGnYsdvQYdp7hzAiEAmUihVHpCbvFo44nFnyrJZ+RuCysqKYY4DD2p+iOY5hM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13869},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"1f8cb6db747ce6455fa89889b579e905a333f70b","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"pack":"bun test && bun build index.ts --outdir=dist && tsc index.ts --declaration --emitDeclarationOnly --outDir dist","test":"bun test","latest":"rm -rf node_modules && bun install","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-YavEE6+dd+HQZICvfKGspzoF7k1lAm859qMWiyeTsrQL9L6+FcWFHnV+FxSnXgqR+pSSg3h9rDw4JW0PpZkHKA==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_0.0.2_1763764245617_0.45521685989865746","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"tosijs-schema","version":"0.0.3","license":"MIT","_id":"tosijs-schema@0.0.3","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"0285c463fb7887657f11ada4d6a15f44fcca8962","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-0.0.3.tgz","fileCount":6,"integrity":"sha512-36MlytG1OyrOiUSxGup58Jflex8DAYOsQ0kW52XQXOHdKNZ06uc7ZSf5HoLXcYREkiZ3LpJ4QhE3HdDpeDaoxA==","signatures":[{"sig":"MEQCIH5QJe2kU5jRNAbdz86cGOtoWkrnWYmtP6EBQZv8jjXBAiAt67EQmEHQ+7SmMItjwmIwuv7pj3MKR6QCvGDPuOO5OA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14244},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"0285c463fb7887657f11ada4d6a15f44fcca8962","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"pack":"bun test && bun bench.ts && bun build index.ts --outdir=dist && tsc index.ts --declaration --emitDeclarationOnly --outDir dist","latest":"rm -rf node_modules && bun install","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-36MlytG1OyrOiUSxGup58Jflex8DAYOsQ0kW52XQXOHdKNZ06uc7ZSf5HoLXcYREkiZ3LpJ4QhE3HdDpeDaoxA==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_0.0.3_1763767183967_0.7565750379999672","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"tosijs-schema","version":"0.0.4","license":"MIT","_id":"tosijs-schema@0.0.4","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"3eff50e12b842795abec9cd4a92379fe9c91ddac","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-0.0.4.tgz","fileCount":6,"integrity":"sha512-NC3gW+qTVxysg5/vv5Pvmy2F/AwIB+x83zbPUBTlXFknlOJkjQwdq8RiHxLXTmy3IymI1OXGaJsKtvLH3hXFeQ==","signatures":[{"sig":"MEYCIQC+8K5r5SgCBLSfqY5Qmh7hWqCNQq5eYk/CV3i39sjfHgIhAMJxYmJVOlBsBUudiQWXQZpLDm4wto8B1mFTLKRS+iPD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12422},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"3eff50e12b842795abec9cd4a92379fe9c91ddac","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"pack":"bun test && bun bench.ts && bun build index.ts --minify --outdir=dist && tsc index.ts --declaration --emitDeclarationOnly --outDir dist","latest":"rm -rf node_modules && bun install","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-NC3gW+qTVxysg5/vv5Pvmy2F/AwIB+x83zbPUBTlXFknlOJkjQwdq8RiHxLXTmy3IymI1OXGaJsKtvLH3hXFeQ==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_0.0.4_1763768428301_0.6622175607448815","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"tosijs-schema","version":"0.0.5","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@0.0.5","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"9fd9b5649fe1fcc6962e407f5d7979146346e456","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-0.0.5.tgz","fileCount":7,"integrity":"sha512-RpmeRX3nHsyPU46lU5TtjQqhhqUVsBKTInehGSGt30GeJqOYivAcB/mTrypR+6cBkZDtZFKJywr/wrLxtgvpmQ==","signatures":[{"sig":"MEQCIB+A8vO/lcrem3iR72+RVwsYnSY9f0L77pTljxPeMytcAiAuOKjuWLeLpqQyFEoYtOaDeFQkT1pbavWGAnxeF9OLog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22917},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"9fd9b5649fe1fcc6962e407f5d7979146346e456","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"pack":"bun test && bun bench.ts && bun build index.ts --outdir=dist && tsc index.ts --declaration --emitDeclarationOnly --outDir dist","latest":"rm -rf node_modules && bun install","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-RpmeRX3nHsyPU46lU5TtjQqhhqUVsBKTInehGSGt30GeJqOYivAcB/mTrypR+6cBkZDtZFKJywr/wrLxtgvpmQ==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_0.0.5_1763817879289_0.3001059995340729","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"tosijs-schema","version":"0.0.6","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@0.0.6","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"aeb489fdcb7ef371f1f7d234a65a9aa2cc27ae5f","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-0.0.6.tgz","fileCount":6,"integrity":"sha512-DmATgH4VZ97RUUSCjxb4FoZ40aeXm37vkT39VASVo89RKa/ZoH3IoCE05cZEwpaIm5XIRJCM5H9CfE/bw6zLfQ==","signatures":[{"sig":"MEUCIEXhtGnZutoMPXgjX9FUTI6cmCGYoGg6Gze6XgUCMohiAiEAkaulrmFpn4sIA490fAvgDZqaAnINPQk2K2t6aaor0AA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21944},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"aeb489fdcb7ef371f1f7d234a65a9aa2cc27ae5f","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"pack":"bun test && bun bench.ts && bun build index.ts --outdir=dist && tsc index.ts --declaration --emitDeclarationOnly --outDir dist","latest":"rm -rf node_modules && bun install","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-DmATgH4VZ97RUUSCjxb4FoZ40aeXm37vkT39VASVo89RKa/ZoH3IoCE05cZEwpaIm5XIRJCM5H9CfE/bw6zLfQ==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_0.0.6_1763827330786_0.5242899591538819","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"tosijs-schema","version":"0.0.7","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@0.0.7","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"6c8b9115551b794f6e01d8a4160530033fc75f12","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-0.0.7.tgz","fileCount":6,"integrity":"sha512-qmeWkQXQvYNK8OscXYNqKuxsewr6kEHi1BuUs6IIK1+Z99smsqIOO2XiXTx5FJ3jfzKV2wV53U9dPrUwDTihWw==","signatures":[{"sig":"MEQCIFq+snQI4NkINi5KxU+VqcMONZ5rDV/5CYZ9XQ7mZpLWAiAYMvzASISWbXSXH4dTMn2pBdP666g/XCSVuPHsYi52BA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21983},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"6c8b9115551b794f6e01d8a4160530033fc75f12","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"pack":"bun test && bun bench.ts && bun examples.ts > examples.md && bun build index.ts --outdir=dist && tsc index.ts --declaration --emitDeclarationOnly --outDir dist","latest":"rm -rf node_modules && bun install","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-qmeWkQXQvYNK8OscXYNqKuxsewr6kEHi1BuUs6IIK1+Z99smsqIOO2XiXTx5FJ3jfzKV2wV53U9dPrUwDTihWw==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_0.0.7_1763828936487_0.06226444255826613","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"tosijs-schema","version":"0.0.8","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@0.0.8","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"1a53d1377d9905df4399b32e8310cd4308086c69","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-0.0.8.tgz","fileCount":6,"integrity":"sha512-1ckchukScIYMfVIb92Emsqeg8FmJTxOkrXXHCEl1wsRwk2SFx0Ai5Yssi1BSIHB2DG1ucSGWxEs4lAR8YXynVg==","signatures":[{"sig":"MEUCIHOO+FAo5M/penkeF1WHax8CZQlfYglVT6ZDR9wuMUEQAiEAhcBj4zLZfYobN95rJT1NIz6Py0wMdeQ2FK/ESJ7yjq8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26959},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"1a53d1377d9905df4399b32e8310cd4308086c69","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun build index.ts --outdir=dist && tsc index.ts --declaration --emitDeclarationOnly --outDir dist","latest":"rm -rf node_modules && bun install","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-1ckchukScIYMfVIb92Emsqeg8FmJTxOkrXXHCEl1wsRwk2SFx0Ai5Yssi1BSIHB2DG1ucSGWxEs4lAR8YXynVg==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_0.0.8_1763904084209_0.0875166861847394","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"tosijs-schema","version":"0.0.9","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@0.0.9","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"b89a43782ac38bbabeca9992f52fb396b14bb3c3","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-0.0.9.tgz","fileCount":8,"integrity":"sha512-ES25Z9czQvL/7EHFTF/M98klYsfBb8c9HJ+xm6+/9A1M/+XLUIkSgdVeAhBEkz6+9UWTEF03jP7Q0YIsQE3BqQ==","signatures":[{"sig":"MEYCIQClevofpk0elkrfx8Q4DmuNn7UoTVBuNd7vTt+RnpPeEQIhAI2NgpSM36UVro03lkoarpHFvwYtenI5kOq4eLoGM1G5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55673},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"b89a43782ac38bbabeca9992f52fb396b14bb3c3","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun build index.ts --sourcemap=linked --minify --outdir=dist && tsc index.ts --declaration --emitDeclarationOnly --outDir dist","latest":"rm -rf node_modules && bun install","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-ES25Z9czQvL/7EHFTF/M98klYsfBb8c9HJ+xm6+/9A1M/+XLUIkSgdVeAhBEkz6+9UWTEF03jP7Q0YIsQE3BqQ==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_0.0.9_1765806819241_0.6331981543530603","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"tosijs-schema","version":"0.10.0","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@0.10.0","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"43e2a6b25a29f85ceb273d90133993a65b9809be","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-0.10.0.tgz","fileCount":8,"integrity":"sha512-7g6X+wfPWH8jWbNAcOFwJk+/GVxHUKMRdpvrk3h6ZCnWjf+jJ07yVIYreZEzTZpA/YEbYcIEEyd+Kd9/AJe+qA==","signatures":[{"sig":"MEUCIE7XeDnZ/BOH/oLwCLGkSqVVjDLMad0ZpjS+4CAwAXuQAiEA61s6Hw2kbmFDsnyVDHMywovmsKk4kaJ77fN7jCrE39s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56816},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"43e2a6b25a29f85ceb273d90133993a65b9809be","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun build index.ts --sourcemap=linked --minify --outdir=dist && tsc index.ts --declaration --emitDeclarationOnly --outDir dist && bun run show-size","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && ls -lh dist/index.js.gz && rm dist/index.js.gz","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-7g6X+wfPWH8jWbNAcOFwJk+/GVxHUKMRdpvrk3h6ZCnWjf+jJ07yVIYreZEzTZpA/YEbYcIEEyd+Kd9/AJe+qA==","deprecated":"monads","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_0.10.0_1765812760706_0.5442970128401707","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"tosijs-schema","version":"1.0.0","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.0.0","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"49412a05288ce6a5a10661083d220c161d2eff89","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.0.0.tgz","fileCount":8,"integrity":"sha512-wY+3nyp8mk25GDDmv72MXipFH/f/Er2iYLrB8L1CvscIxVb7ifHH0cg81MSXIuq8/4tQmOT0KWpA7BeW64gbFg==","signatures":[{"sig":"MEUCIHZzshoHD/fr0lO2SxWbKJNqQFH2Nu+Tui0nsiweo/ynAiEA8zmuEZVaLvt4G5b1qZUvxJZt10uJK+CpBOD26CAyQs8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56815},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"49412a05288ce6a5a10661083d220c161d2eff89","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun build index.ts --sourcemap=linked --minify --outdir=dist && tsc index.ts --declaration --emitDeclarationOnly --outDir dist && bun run show-size","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && ls -lh dist/index.js.gz && rm dist/index.js.gz","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-wY+3nyp8mk25GDDmv72MXipFH/f/Er2iYLrB8L1CvscIxVb7ifHH0cg81MSXIuq8/4tQmOT0KWpA7BeW64gbFg==","deprecated":"monads","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.0.0_1765813341207_0.9358941324213328","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"tosijs-schema","version":"1.0.1","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.0.1","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"82f1a9a412240c9e5e006bda1a903983f6313894","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.0.1.tgz","fileCount":8,"integrity":"sha512-xbV1ucuXYl5MRJ9XYJb5GQbmghKxHdOHhDZg/HBYcBiKpzxIuaEFvmmzt/gz7Bejlh5KBCOolxMzL/mjZtHkZg==","signatures":[{"sig":"MEUCIQDWwRBPHBLpiKuVQeZWCrxN7phdBfNXfYKNJ6nZEAwUZAIgEjkTiqhslHny1qYRVc1SRgcj8eXp1FhwVkQNKRKRE0M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57246},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"82f1a9a412240c9e5e006bda1a903983f6313894","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun build index.ts --sourcemap=linked --minify --outdir=dist && tsc index.ts --declaration --emitDeclarationOnly --outDir dist && bun run show-size","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && ls -lh dist/index.js.gz && rm dist/index.js.gz","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-xbV1ucuXYl5MRJ9XYJb5GQbmghKxHdOHhDZg/HBYcBiKpzxIuaEFvmmzt/gz7Bejlh5KBCOolxMzL/mjZtHkZg==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.0.1_1765815828488_0.278972685123436","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"tosijs-schema","version":"1.0.2","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.0.2","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"0073ccccb5d22138125a02a6dfa4e0c94e762f4e","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.0.2.tgz","fileCount":9,"integrity":"sha512-6dZNgxGk+KYmsywQdFqi148BLWkxpSnbKJB8g6lCdJuWX8VHeEBUmw0N9liyNOzZY/9ZyaRkJv3LI7NDaz5icg==","signatures":[{"sig":"MEQCIF3AIWmSTSY2Es5ra/IH7Ch1hjG9sh92/DdvhfUlEK2kAiBojPY/0WUArC/o61W15qbFytrOYuKIB/MYSns+m6yrPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72460},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"0073ccccb5d22138125a02a6dfa4e0c94e762f4e","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"pack":"bun test && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --outDir dist --skipLibCheck && bun run show-size","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && ls -lh dist/index.js.gz && rm dist/index.js.gz","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-6dZNgxGk+KYmsywQdFqi148BLWkxpSnbKJB8g6lCdJuWX8VHeEBUmw0N9liyNOzZY/9ZyaRkJv3LI7NDaz5icg==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.0.2_1767558771248_0.36198465100262056","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"tosijs-schema","version":"1.0.3","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.0.3","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"aca7168a26b87d1e4d65f7875b380a19b86e24c0","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.0.3.tgz","fileCount":9,"integrity":"sha512-WDXhXxjNOsq4ZX+pM2ij7NvK36OEzEGTDl3fEKSC95IIf6Fb+WdcjOOKVLP0fDzg8ZahdkXhOPmFLvD0aUj5mQ==","signatures":[{"sig":"MEUCIQDzVOTMT/rtXMJP5ct3NKUi7IpEiP3rTqvW5DodrxCVYQIgbXjNwm5qlsW4HTN22wS7s6bY53e+bysy+zp2bwRj58g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90030},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"aca7168a26b87d1e4d65f7875b380a19b86e24c0","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"pack":"bun test && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --outDir dist --skipLibCheck && bun run show-size","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && ls -lh dist/index.js.gz && rm dist/index.js.gz","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-WDXhXxjNOsq4ZX+pM2ij7NvK36OEzEGTDl3fEKSC95IIf6Fb+WdcjOOKVLP0fDzg8ZahdkXhOPmFLvD0aUj5mQ==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.0.3_1767719558201_0.6174574526855172","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"tosijs-schema","version":"1.1.0","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.1.0","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"eebf03b1a0dc2fbed16a8b7eddd8d2e7cfacff2f","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.1.0.tgz","fileCount":9,"integrity":"sha512-IE+yPS1eCZht90n0Q3h7KIBKAE1VhtMRnNT7QN9CJ9TOMUbUIXaRNd5eWlVjXPCRkCpPnAgb5kRPKWwK5zqsvg==","signatures":[{"sig":"MEUCIQDCRw1wIFi41OWtXFTN4cBwpKFs0c8KWkfS/K4APUHYjwIgITnNPnbm2KlYVXiDixa2Ox2z5rUpggyyi4xl35PZAnU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70471},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"eebf03b1a0dc2fbed16a8b7eddd8d2e7cfacff2f","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun make-context.ts && bun build index.ts --sourcemap=linked --minify --outdir=dist && tsc index.ts --declaration --emitDeclarationOnly --outDir dist && bun run show-size","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && ls -lh dist/index.js.gz && rm dist/index.js.gz","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-IE+yPS1eCZht90n0Q3h7KIBKAE1VhtMRnNT7QN9CJ9TOMUbUIXaRNd5eWlVjXPCRkCpPnAgb5kRPKWwK5zqsvg==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.1.0_1767985877319_0.36450008087315333","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"tosijs-schema","version":"1.1.1","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.1.1","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"d491a53d98c59e01400b04d321ec487b6c1afd98","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.1.1.tgz","fileCount":10,"integrity":"sha512-029nmX7yf/ImzmpGaVbmkLTPNlSuxpsNQ1skZOyhsXma3Nccna9NGZ91TLa4uXS8Vpb7Ywn65WgA7Mt4TdstFA==","signatures":[{"sig":"MEYCIQDpyStUbl3AG8K9gh8HYoV93F3BctWipgOsTuQTaAk7iwIhALGMHCYnoeVtjK25mjn5UOanEN3+jnrSUj3UVFJL6ZKn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87881},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"d491a53d98c59e01400b04d321ec487b6c1afd98","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --outDir dist --skipLibCheck && bun run show-size","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && ls -lh dist/index.js.gz && rm dist/index.js.gz","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-029nmX7yf/ImzmpGaVbmkLTPNlSuxpsNQ1skZOyhsXma3Nccna9NGZ91TLa4uXS8Vpb7Ywn65WgA7Mt4TdstFA==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.1.1_1767986634939_0.38642444562448874","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"tosijs-schema","version":"1.1.2","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.1.2","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"572f19ead579087f21546be8ef80de9e5521b6b8","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.1.2.tgz","fileCount":10,"integrity":"sha512-4lgEdheUES00P6ZB1sDMjWKZ9zso2Q1Z9wx43hC56aAGPnRegjqlexZjX2Dvs/V/gdI8GJly4wuC3es5gd+hrw==","signatures":[{"sig":"MEQCIEK9gri0YgZYR/f2EfSTVXRd5wfl54Y7l3tamkfPsFqoAiBAN650/dfOs8WZaaPtcWkJSsdOLbGRMYeMqxfrPvo2XQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91019},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"572f19ead579087f21546be8ef80de9e5521b6b8","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --outDir dist --skipLibCheck && bun run show-size","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && ls -lh dist/index.js.gz && rm dist/index.js.gz","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-4lgEdheUES00P6ZB1sDMjWKZ9zso2Q1Z9wx43hC56aAGPnRegjqlexZjX2Dvs/V/gdI8GJly4wuC3es5gd+hrw==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.1.2_1767987285062_0.06819619269539068","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"tosijs-schema","version":"1.1.3","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.1.3","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"92feafc5bf387dad55d3ed3676fd5c8686b407fe","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.1.3.tgz","fileCount":10,"integrity":"sha512-yUenlWe26s/ht/A8RYShU2jr58jEmOLG/8fNPrCsNOkCH/jvKmxsHPHAQxjT8QsmUfJ+Hiz6Mo8sGEaOCTgEXw==","signatures":[{"sig":"MEQCIGauciSpt6scgiIEU5n/B8+bxqxAzjpndP41vYrZOczAAiAqbfX7Zqvg0xwc7Yvo5OX28jZm2VejX8BmjcKhkTIcLQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93486},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"92feafc5bf387dad55d3ed3676fd5c8686b407fe","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --outDir dist --skipLibCheck && bun run show-size","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && ls -lh dist/index.js.gz && rm dist/index.js.gz","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-yUenlWe26s/ht/A8RYShU2jr58jEmOLG/8fNPrCsNOkCH/jvKmxsHPHAQxjT8QsmUfJ+Hiz6Mo8sGEaOCTgEXw==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.1.3_1767992355437_0.16767928836634227","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"tosijs-schema","version":"1.2.0","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.2.0","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"b2ce0d909a1274b20919a4b3e45be34b2e80274e","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.2.0.tgz","fileCount":10,"integrity":"sha512-03RP2ka3scNTw4WV06GfYmAiwZt1Z6+rRKcZsyJsjKYtw9lqnIO+KwKI5xsySBYh/RqnRrPK4F68Ars2lH2NSw==","signatures":[{"sig":"MEUCICOuK41WOzI3ezoqGd9GpOjtvJeNHnf/3O3F/PmNRxVHAiEA4QDpBqom+UOLAWBY7JH0nlZN6AhzGlFsMtCU4TSz2z0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91467},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"b2ce0d909a1274b20919a4b3e45be34b2e80274e","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --outDir dist --skipLibCheck && bun run show-size","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && ls -lh dist/index.js.gz && rm dist/index.js.gz","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-03RP2ka3scNTw4WV06GfYmAiwZt1Z6+rRKcZsyJsjKYtw9lqnIO+KwKI5xsySBYh/RqnRrPK4F68Ars2lH2NSw==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.2.0_1768383152008_0.5280017975119145","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"tosijs-schema","version":"1.3.0","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.3.0","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"a382ffdff26ec4df3f79f44e23bc4ff08a3f5879","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.3.0.tgz","fileCount":10,"integrity":"sha512-ocCu3dcRw9ANsIyMYkEKP0lC0EVtwMPStFs5KbXFhoXDyixplsNWvUH1umtrx3XkbsBE1jdr37yyjDTqwCV3dA==","signatures":[{"sig":"MEUCIQDy7NcoEM1JLMEvt4riFCXgcZgpB4aX5PWj0Q+nyTJrZAIgPEyQnwezQcf7K540tcbquVYeCmyvBmq0uFqs8VpdlDM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99042},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"a382ffdff26ec4df3f79f44e23bc4ff08a3f5879","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --outDir dist --skipLibCheck && bun run show-size","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && ls -lh dist/index.js.gz && rm dist/index.js.gz","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-ocCu3dcRw9ANsIyMYkEKP0lC0EVtwMPStFs5KbXFhoXDyixplsNWvUH1umtrx3XkbsBE1jdr37yyjDTqwCV3dA==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5","@sinclair/typebox":"^0.34.47"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.3.0_1768547159952_0.9924811235583724","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"tosijs-schema","version":"1.4.0","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.4.0","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"7e23a92ffe474b8b7171089b28c7faebd091664e","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.4.0.tgz","fileCount":10,"integrity":"sha512-ESNQNw3dcCU3hMhrMLQvzPP+mRth+cew/YMjQt4Y6z8Hth2AMYCVRk/uc/MXcSoLiZhmhL0bF2hu66xlIsjZCQ==","signatures":[{"sig":"MEQCIA92DfsyqXBJXTddBvRpNLitnFUHDB6TxjBLstPB+rPSAiBbdsZfdt5PR2KRVLYsOORlsD4Pra4qrEJeGhACLeGVag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103742},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"7e23a92ffe474b8b7171089b28c7faebd091664e","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --outDir dist --skipLibCheck && bun run show-size","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && ls -lh dist/index.js.gz && rm dist/index.js.gz","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-ESNQNw3dcCU3hMhrMLQvzPP+mRth+cew/YMjQt4Y6z8Hth2AMYCVRk/uc/MXcSoLiZhmhL0bF2hu66xlIsjZCQ==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5","@sinclair/typebox":"^0.34.47"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.4.0_1783096660556_0.9799732754449859","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"tosijs-schema","version":"1.5.0","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.5.0","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"2ce193b0c2f1ca89577e828c2c0176a808184426","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.5.0.tgz","fileCount":13,"integrity":"sha512-BYElbSs4s0qKBrCgg+7A/dIhx0lYsJs7lKoxZdBX0m3DjCYH2z5NJy9wm+4Ms6VhKlf9G1u6vkhhamu/bKqXnQ==","signatures":[{"sig":"MEUCIC/XrXrFGqVU056kUduydjs6fG1YgSmMBNsK1dmQPoclAiEAiKRcPl9X4odyZ8exyXgl0PTAihmHOxNtEaodgnnvTBw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":196892},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"2ce193b0c2f1ca89577e828c2c0176a808184426","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun make-context.ts && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --outDir dist --skipLibCheck && bun run show-size","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && ls -lh dist/index.js.gz && rm dist/index.js.gz","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-BYElbSs4s0qKBrCgg+7A/dIhx0lYsJs7lKoxZdBX0m3DjCYH2z5NJy9wm+4Ms6VhKlf9G1u6vkhhamu/bKqXnQ==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5","@sinclair/typebox":"^0.34.47"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.5.0_1786076621850_0.2181307151027505","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"tosijs-schema","version":"1.5.1","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.5.1","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"2b3a6efdc0437b06003218f1cf9549104680c369","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.5.1.tgz","fileCount":13,"integrity":"sha512-ovWLISVLE8LBHQhX8mr3JKH2/fYFDs55fbdpIUxuXQCYB0ugSu1pTj9wA4zhQtdkxHH+MBXT1Zo7yQrtm6zQKg==","signatures":[{"sig":"MEUCIQCs2pacIqYetVrfnsPtidfXqY1RZjRbttynredrMdhyNAIgFAw3mNJFp5C6X1SYosIfCKXyYk8oy9N194RiEcfzHG0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":198590},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"2b3a6efdc0437b06003218f1cf9549104680c369","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun make-context.ts && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --outDir dist --skipLibCheck && bun run show-size","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && ls -lh dist/index.js.gz && rm dist/index.js.gz","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-ovWLISVLE8LBHQhX8mr3JKH2/fYFDs55fbdpIUxuXQCYB0ugSu1pTj9wA4zhQtdkxHH+MBXT1Zo7yQrtm6zQKg==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5","@sinclair/typebox":"^0.34.47"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.5.1_1786263898881_0.9780151057176629","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"tosijs-schema","version":"1.6.0","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.6.0","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"d3a16d8dc7ddd774f90cc42611b441a2fa958072","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.6.0.tgz","fileCount":18,"integrity":"sha512-pmOIZxGRIetPeKABRG3fAirqJFUYsofgF7/1RZ1s7/r69R01X2oio9XBzvkQbrQ+xKL/clubINaEXrhkt2bewA==","signatures":[{"sig":"MEYCIQCwmq+xPxo8UO4O5kSkspXppxYRvUelXwoCJyAnYR3z4wIhAMbLzz3mWz6eI83OZh8cC5tGNdrEPtFZyf5AWxDdE1e/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263937},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"d3a16d8dc7ddd774f90cc42611b441a2fa958072","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./infer":{"types":"./dist/src/infer.d.ts","import":"./dist/infer.js","default":"./dist/infer.js","require":"./dist/infer.cjs"}},"scripts":{"pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun make-context.ts && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build src/infer.ts --target=node --format=cjs --outfile=dist/infer.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bun build src/infer.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --outDir dist --skipLibCheck && bun run show-size","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && gzip -9 -k dist/infer.js && ls -lh dist/index.js.gz dist/infer.js.gz && rm dist/index.js.gz dist/infer.js.gz","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-pmOIZxGRIetPeKABRG3fAirqJFUYsofgF7/1RZ1s7/r69R01X2oio9XBzvkQbrQ+xKL/clubINaEXrhkt2bewA==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5","@sinclair/typebox":"^0.34.47"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.6.0_1787117759144_0.37694359260180255","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"tosijs-schema","version":"1.6.1","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.6.1","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"581896e08e186c137c753acb5548214c4a85734f","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.6.1.tgz","fileCount":18,"integrity":"sha512-SDG4Ahod0BMWKXvpBjliYOPakNPfevy/8JojjzT65rgOxX8vGPVv5gi1q0Vd1/NqLpDFL/BO6VUcDQfzJY+n5Q==","signatures":[{"sig":"MEQCIHOKiVvhPWtHUqji7qlxUvU9HkKJNmSPGqcj1dPKvAwrAiAw6M2Kka04coiOSBhpUKQdEtLaocKgZQS/2uNKeezFGg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270597},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"581896e08e186c137c753acb5548214c4a85734f","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./infer":{"types":"./dist/src/infer.d.ts","import":"./dist/infer.js","default":"./dist/infer.js","require":"./dist/infer.cjs"}},"scripts":{"pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun make-context.ts && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build src/infer.ts --target=node --format=cjs --outfile=dist/infer.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bun build src/infer.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --outDir dist --skipLibCheck && bun run show-size","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && gzip -9 -k dist/infer.js && ls -lh dist/index.js.gz dist/infer.js.gz && rm dist/index.js.gz dist/infer.js.gz","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-SDG4Ahod0BMWKXvpBjliYOPakNPfevy/8JojjzT65rgOxX8vGPVv5gi1q0Vd1/NqLpDFL/BO6VUcDQfzJY+n5Q==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5","@sinclair/typebox":"^0.34.47"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.6.1_1787122444110_0.8404103800083673","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"tosijs-schema","version":"1.7.0","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.7.0","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"c449f7a1c5260583b1c24175a8348edfa4390a5a","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.7.0.tgz","fileCount":18,"integrity":"sha512-dwnu3coxQo0PdEjDHYCV9wjI3AKKpN54gMtFowt4ueC1dIgECtTIcGh56WghThRpbnjL1XR8/0uUkCuwRbLzWg==","signatures":[{"sig":"MEYCIQDteGCFHPnUtaLg49yiH1OuIASWWVNhNfY/sYg6lIBWfgIhAJQ+IO9TqN4I+ntpIYgEF8iRR1P0srsU3uDpLJHdFN3/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":281086},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"c449f7a1c5260583b1c24175a8348edfa4390a5a","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./infer":{"types":"./dist/src/infer.d.ts","import":"./dist/infer.js","default":"./dist/infer.js","require":"./dist/infer.cjs"}},"scripts":{"pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun make-context.ts && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build src/infer.ts --target=node --format=cjs --outfile=dist/infer.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bun build src/infer.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --outDir dist --skipLibCheck && bun run show-size","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && gzip -9 -k dist/infer.js && ls -lh dist/index.js.gz dist/infer.js.gz && rm dist/index.js.gz dist/infer.js.gz","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-dwnu3coxQo0PdEjDHYCV9wjI3AKKpN54gMtFowt4ueC1dIgECtTIcGh56WghThRpbnjL1XR8/0uUkCuwRbLzWg==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5","@sinclair/typebox":"^0.34.47"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.7.0_1787129863455_0.6934086275485245","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"tosijs-schema","version":"1.8.0","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.8.0","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"4f58144aa4e6568542bd3f0357f8dacbdbefab81","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.8.0.tgz","fileCount":19,"integrity":"sha512-pHZdUsgQWKrtMmqSFZKbgD6n0a4yD12PPvSuBR9xofdpDcT40Tzk06vhYAVxW77vyax3fTeVinGaD7a83REeHw==","signatures":[{"sig":"MEUCIG8CfWSu+tw6rkHlev+NLaGq8NQ2pzXhLjglpbRT5doJAiEAt9KncJW9SSSxWIpovxvArRmwzEcDgp1X8b+pecpbXTw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300155},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"4f58144aa4e6568542bd3f0357f8dacbdbefab81","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./infer":{"types":"./dist/src/infer.d.ts","import":"./dist/infer.js","default":"./dist/infer.js","require":"./dist/infer.cjs"}},"scripts":{"pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun make-context.ts && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build src/infer.ts --target=node --format=cjs --outfile=dist/infer.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bun build src/infer.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --outDir dist --skipLibCheck && bun run show-size","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && gzip -9 -k dist/infer.js && ls -lh dist/index.js.gz dist/infer.js.gz && rm dist/index.js.gz dist/infer.js.gz","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-pHZdUsgQWKrtMmqSFZKbgD6n0a4yD12PPvSuBR9xofdpDcT40Tzk06vhYAVxW77vyax3fTeVinGaD7a83REeHw==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5","@sinclair/typebox":"^0.34.47"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.8.0_1787568135459_0.38955478903967444","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"tosijs-schema","version":"1.8.1","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.8.1","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"b0752f2707a7e03920421bc20af1dd99eb049d52","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.8.1.tgz","fileCount":19,"integrity":"sha512-ygx1+yaGYzGtnAdlS43b/0+R99FL8Teui+UHqiRP2YK6Nhfr4M1gxtNF2RrbxDCU6DGSxltgihLlN3BvxiGVnQ==","signatures":[{"sig":"MEUCIHdKRDJohaQx4q2GfB+GRz2YDXHh5xY9+BG/pSQaKNpYAiEAzC/K7ntS0Q8/vOHjR66oU3656dHHzu5CKIhpRFNfe0o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301945},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"b0752f2707a7e03920421bc20af1dd99eb049d52","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./infer":{"types":"./dist/src/infer.d.ts","import":"./dist/infer.js","default":"./dist/infer.js","require":"./dist/infer.cjs"}},"scripts":{"pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun make-context.ts && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build src/infer.ts --target=node --format=cjs --outfile=dist/infer.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bun build src/infer.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --outDir dist --skipLibCheck && bun run show-size && bun make-coverage.ts","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && gzip -9 -k dist/infer.js && ls -lh dist/index.js.gz dist/infer.js.gz && rm dist/index.js.gz dist/infer.js.gz","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-ygx1+yaGYzGtnAdlS43b/0+R99FL8Teui+UHqiRP2YK6Nhfr4M1gxtNF2RrbxDCU6DGSxltgihLlN3BvxiGVnQ==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5","@sinclair/typebox":"^0.34.47"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.8.1_1787681547154_0.4638375936836874","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"tosijs-schema","version":"1.9.0","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.9.0","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"216edb4b31591a523a5cd24aebd10f42e440788e","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.9.0.tgz","fileCount":19,"integrity":"sha512-+7SOtcHAYzdUF6nGuaCuMP5TbL+r3pmuYUejUFZPOz1YNU6/rMSF+DodQfTvlubD2h2C68wcXVJwg5UzMxBUKw==","signatures":[{"sig":"MEYCIQCyjGBxTcYmqV4TIx0aHE/LgnG2W+ds8pguiRBbpTG/gQIhAJQWDjKR0ME2feJuTPaZ2ePlsDQS39eWMm9kA5LHhcMH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":305678},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"216edb4b31591a523a5cd24aebd10f42e440788e","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./infer":{"types":"./dist/src/infer.d.ts","import":"./dist/infer.js","default":"./dist/infer.js","require":"./dist/infer.cjs"}},"scripts":{"pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun make-context.ts && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build src/infer.ts --target=node --format=cjs --outfile=dist/infer.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bun build src/infer.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --outDir dist --skipLibCheck && bun run show-size && bun make-coverage.ts","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && gzip -9 -k dist/infer.js && ls -lh dist/index.js.gz dist/infer.js.gz && rm dist/index.js.gz dist/infer.js.gz","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-+7SOtcHAYzdUF6nGuaCuMP5TbL+r3pmuYUejUFZPOz1YNU6/rMSF+DodQfTvlubD2h2C68wcXVJwg5UzMxBUKw==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5","@sinclair/typebox":"^0.34.47"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.9.0_1788257702850_0.2858173793843739","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"tosijs-schema","version":"1.10.0","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.10.0","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"81ea9ad5e08c090f61294e1ae6078bf4ec16a65e","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.10.0.tgz","fileCount":19,"integrity":"sha512-gCWq+bTFu1KBUJ88+GBOKPqUNVa6PszXZn7fRRaRYc9c9Oj2EtHcq4yZXkWS41Mfh4atRQ7DtYC2MCZGaeMwDg==","signatures":[{"sig":"MEQCIDxE7qvkY1Cft+hv6ahddAvNfx0GK/j3Vd0eO2T161UZAiAewH435rPcjq5xcAiFF6DCuG7qJEWshyWDohhoWuVgCQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIETtiz0GxJH0GOeSKi6YHVMSs8r6/g3yQNzOcSaf/m6/AiEAlbrxPdZDJffXO/8IdYvSybfL7QfxAWHGX/cFk1uSsrU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":331635},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"81ea9ad5e08c090f61294e1ae6078bf4ec16a65e","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./infer":{"types":"./dist/src/infer.d.ts","import":"./dist/infer.js","default":"./dist/infer.js","require":"./dist/infer.cjs"}},"scripts":{"make":"bun run pack","pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun make-context.ts && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build src/infer.ts --target=node --format=cjs --outfile=dist/infer.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bun build src/infer.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --outDir dist --skipLibCheck && bun run show-size && bun make-coverage.ts && bun smoke.ts","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && gzip -9 -k dist/infer.js && ls -lh dist/index.js.gz dist/infer.js.gz && rm dist/index.js.gz dist/infer.js.gz","typecheck":"bun tsc --noEmit","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-gCWq+bTFu1KBUJ88+GBOKPqUNVa6PszXZn7fRRaRYc9c9Oj2EtHcq4yZXkWS41Mfh4atRQ7DtYC2MCZGaeMwDg==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5","@sinclair/typebox":"^0.34.47"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.10.0_1789242775356_0.14755724503780576","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"tosijs-schema","version":"1.10.1","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.10.1","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"ba98a63a00eeb22c696483eb90691b46299d6618","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.10.1.tgz","fileCount":18,"integrity":"sha512-2f+RjZX262bZdiLowuLCthCzlPDlCkP90Uq2F3ymof1I4dqEJwwhDu9TROB9XZopqCNWIX3rbwp9AdWOzdKXHA==","signatures":[{"sig":"MEQCIBQ3JfVzvbPzTAjQ/hNyCAxdFhoU5+mdGv7aacI/LM+wAiBZKwhQVwrU8nFZUsbWq7FpqQ5xtdUIaJGkSf/M6ms5jg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFIGosLRL1LiAHeGApYZW2rMZGjXM9FCKawhDw8S3G9VAiEAhqoc3/ir47zc5LXb2PvCFpVygBj3+3McH/pq7E0hJ3g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333752},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"ba98a63a00eeb22c696483eb90691b46299d6618","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./infer":{"types":"./dist/src/infer.d.ts","import":"./dist/infer.js","default":"./dist/infer.js","require":"./dist/infer.cjs"}},"scripts":{"make":"bun run pack","pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun make-context.ts && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build src/infer.ts --target=node --format=cjs --outfile=dist/infer.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bun build src/infer.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --outDir dist --skipLibCheck && bun run show-size && bun make-coverage.ts && bun smoke.ts","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && gzip -9 -k dist/infer.js && ls -lh dist/index.js.gz dist/infer.js.gz && rm dist/index.js.gz dist/infer.js.gz","typecheck":"bun tsc --noEmit","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-2f+RjZX262bZdiLowuLCthCzlPDlCkP90Uq2F3ymof1I4dqEJwwhDu9TROB9XZopqCNWIX3rbwp9AdWOzdKXHA==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5","@sinclair/typebox":"^0.34.47"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.10.1_1789246385616_0.7250350552127212","host":"s3://npm-registry-packages-npm-production"}},"1.10.2":{"name":"tosijs-schema","version":"1.10.2","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.10.2","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"dist":{"shasum":"a28ffeb4691b4dc429cf43cfe688e47838628ba2","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.10.2.tgz","fileCount":19,"integrity":"sha512-qD55unAQzsWwJoKr/83B4EF1Bww4U/mC/fnSzjEuaOQgqG+yo0fsH6WVvne+eVeKeuzOc8m9vbYmgzeYMVPVKw==","signatures":[{"sig":"MEYCIQDZI5xi2hVo7S5XXP90bmtK+9ewUit2aohCwAyuawHJhwIhAIU+g3X7aHnDXKkP3/9C1TVnXTYUfOdvxcK0GWrpEHqk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDsv+ymJCGu7h4j036eql04KzceUK/M9hEdJx2L4xxZUAIhALL7jN9bzzmBYzNbMg4HB5oPOsJ1uLq3oZJ3e+JxmHdu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338726},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"a28ffeb4691b4dc429cf43cfe688e47838628ba2","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./infer":{"types":"./dist/src/infer.d.ts","import":"./dist/infer.js","default":"./dist/infer.js","require":"./dist/infer.cjs"}},"scripts":{"make":"bun run pack","pack":"bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun make-context.ts && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build src/infer.ts --target=node --format=cjs --outfile=dist/infer.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bun build src/infer.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --outDir dist --skipLibCheck && bun run show-size && bun make-coverage.ts && bun smoke.ts","latest":"rm -rf node_modules && bun install","show-size":"gzip -9 -k dist/index.js && gzip -9 -k dist/infer.js && ls -lh dist/index.js.gz dist/infer.js.gz && rm dist/index.js.gz dist/infer.js.gz","typecheck":"bun tsc --noEmit","prepublishOnly":"bun run pack"},"_npmUser":{"name":"tonioloewald","email":"tonio@loewald.com"},"_integrity":"sha512-qD55unAQzsWwJoKr/83B4EF1Bww4U/mC/fnSzjEuaOQgqG+yo0fsH6WVvne+eVeKeuzOc8m9vbYmgzeYMVPVKw==","repository":{"url":"https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5","@sinclair/typebox":"^0.34.47"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.10.2_1789530233629_0.50809163800783","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"tosijs-schema","version":"1.11.0","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.11.0","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"homepage":"https://github.com/tonioloewald/tosijs-schema#readme","bugs":{"url":"https://github.com/tonioloewald/tosijs-schema/issues"},"dist":{"shasum":"5db832c212e5da1198ac5bccc7644d203f3aface","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.11.0.tgz","fileCount":18,"integrity":"sha512-qrO/YuQ0FIl8Uv4w1K42D3DOXsJLsCpCcde2MetSUxV4KvcUgn0WCyB7+/kDVHEWxfxt45ItoVNq9/cLEH4k5Q==","signatures":[{"sig":"MEYCIQC9pbjtpWgrqEAYJd0Pd/6Hol/zbB2h2QSuTqVG67LC2wIhAJZ5rUfOJuUb3BM67L7LOvpm6EyhR761jqnXiDf3X0RK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tosijs-schema@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":355206},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/pack/tosijs-schema-1.11.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./infer":{"types":"./dist/src/infer.d.ts","import":"./dist/infer.js","default":"./dist/infer.js","require":"./dist/infer.cjs"}},"scripts":{"make":"bun run pack","pack":"bun run check-bun && rm -rf dist && bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun make-context.ts && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build src/infer.ts --target=node --format=cjs --outfile=dist/infer.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bun build src/infer.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --outDir dist --skipLibCheck && bun run show-size && bun make-coverage.ts && bun smoke.ts","latest":"rm -rf node_modules && bun install","check-bun":"node -e \"const w=require('fs').readFileSync('.bun-version','utf8').trim(),h=process.versions.bun||require('child_process').execSync('bun --version').toString().trim();if(w!==h){console.error('Bun '+h+' but .bun-version pins '+w+' — dist/ would not reproduce in CI');process.exit(1)}\"","show-size":"gzip -9 -k dist/index.js && gzip -9 -k dist/infer.js && ls -lh dist/index.js.gz dist/infer.js.gz && rm dist/index.js.gz dist/infer.js.gz","typecheck":"bun tsc --noEmit","prepublishOnly":"bun run pack"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","approver":{"name":"tonioloewald","email":"tonio@loewald.com"},"trustedPublisher":{"id":"github","oidcConfigId":"oidc:80fdc53d-2a4c-417b-b428-a01ae680d820"}},"_resolved":"/home/runner/work/_temp/pack/tosijs-schema-1.11.0.tgz","_integrity":"sha512-qrO/YuQ0FIl8Uv4w1K42D3DOXsJLsCpCcde2MetSUxV4KvcUgn0WCyB7+/kDVHEWxfxt45ItoVNq9/cLEH4k5Q==","repository":{"url":"git+https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"11.20.0","description":"[npm](https://www.npmjs.com/package/tosijs-schema) | [github](https://github.com/tonioloewald/tosijs-schema) | [discord](https://discord.gg/ramJ9rgky5) | [examples](./examples.md)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5","@sinclair/typebox":"^0.34.47"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.11.0_1790446828461_0.6614581942788469","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"tosijs-schema","version":"1.12.0","keywords":["typescript","javascript","json","schema","validation","inference"],"license":"MIT","_id":"tosijs-schema@1.12.0","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"homepage":"https://github.com/tonioloewald/tosijs-schema#readme","bugs":{"url":"https://github.com/tonioloewald/tosijs-schema/issues"},"dist":{"shasum":"c2a78f27129bc687de3d262ac9ff7a0b088483a9","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.12.0.tgz","fileCount":18,"integrity":"sha512-wC6B/lMCSqr4/CMDej5puV8Wk7alwgUvL6pO2LUNQmEQvGQgeZdr3v8itUiuw+7u7jBIte6m12aGdRmBsFOznw==","signatures":[{"sig":"MEQCIEjAnjQmy6uRMUeSbg+dxcCo4YdG6MHz8URPdKoP3mFuAiAbKqRAxeedJctTrZCRtmYjSeTgzQEUZEcZIil2uTselg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tosijs-schema@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":368792},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/pack/tosijs-schema-1.12.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./infer":{"types":"./dist/src/infer.d.ts","import":"./dist/infer.js","default":"./dist/infer.js","require":"./dist/infer.cjs"}},"scripts":{"make":"bun run pack","pack":"bun run check-bun && rm -rf dist && bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun make-context.ts && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build src/infer.ts --target=node --format=cjs --outfile=dist/infer.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bun build src/infer.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --stripInternal --outDir dist --skipLibCheck && bun run show-size && bun make-coverage.ts && bun smoke.ts","latest":"rm -rf node_modules && bun install","check-bun":"node -e \"const w=require('fs').readFileSync('.bun-version','utf8').trim(),h=process.versions.bun||require('child_process').execSync('bun --version').toString().trim();if(w!==h){console.error('Bun '+h+' but .bun-version pins '+w+' — dist/ would not reproduce in CI');process.exit(1)}\"","show-size":"gzip -9 -k dist/index.js && gzip -9 -k dist/infer.js && ls -lh dist/index.js.gz dist/infer.js.gz && rm dist/index.js.gz dist/infer.js.gz","typecheck":"bun tsc --noEmit","prepublishOnly":"bun run pack"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","approver":{"name":"tonioloewald","email":"tonio@loewald.com"},"trustedPublisher":{"id":"github","oidcConfigId":"oidc:80fdc53d-2a4c-417b-b428-a01ae680d820"}},"_resolved":"/home/runner/work/_temp/pack/tosijs-schema-1.12.0.tgz","_integrity":"sha512-wC6B/lMCSqr4/CMDej5puV8Wk7alwgUvL6pO2LUNQmEQvGQgeZdr3v8itUiuw+7u7jBIte6m12aGdRmBsFOznw==","repository":{"url":"git+https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"11.20.0","description":"[npm](https://www.npmjs.com/package/tosijs-schema) | [github](https://github.com/tonioloewald/tosijs-schema) | [discord](https://discord.gg/ramJ9rgky5) | [examples](./examples.md)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5","@sinclair/typebox":"^0.34.47"},"_npmOperationalInternal":{"tmp":"tmp/tosijs-schema_1.12.0_1790454681204_0.1340109386286492","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"_id":"tosijs-schema@1.13.0","bugs":{"url":"https://github.com/tonioloewald/tosijs-schema/issues"},"dist":{"shasum":"7d05183de2a256db78eb34d61440142d404c6fbe","tarball":"https://registry.npmjs.org/tosijs-schema/-/tosijs-schema-1.13.0.tgz","integrity":"sha512-OMdt5CnyvfOKEYIQiWMZp5yzHBmybuARz9j0qG8i9gT97jyENJn0Yk2kn2wmYVhm84rdxVzmxn7DSz7illEoDA==","fileCount":18,"unpackedSize":389128,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tosijs-schema@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDNWruW7ozP5PyJckOgdBiBWYx6Mqgoko++/BXob3tWoAIgLEuHk8BJUIY68XPAr3Hw3166ASzVW8Al2QBnY79ufpY="}]},"main":"./dist/index.js","name":"tosijs-schema","type":"module","_from":"file:/home/runner/work/_temp/stage/tosijs-schema-1.13.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./infer":{"types":"./dist/src/infer.d.ts","import":"./dist/infer.js","default":"./dist/infer.js","require":"./dist/infer.cjs"}},"license":"MIT","scripts":{"make":"bun run pack","pack":"bun run check-bun && rm -rf dist && bun test && bun tsc --noEmit && bun bench.ts && bun examples.ts > examples.md && bun make-context.ts && bun build index.ts --target=node --format=cjs --outfile=dist/index.cjs && bun build src/infer.ts --target=node --format=cjs --outfile=dist/infer.cjs && bun build index.ts --sourcemap=linked --minify --outdir=dist && bun build src/infer.ts --sourcemap=linked --minify --outdir=dist && bunx tsc index.ts --declaration --emitDeclarationOnly --stripInternal --outDir dist --skipLibCheck && bun run show-size && bun make-coverage.ts && bun smoke.ts","latest":"rm -rf node_modules && bun install","check-bun":"node -e \"const w=require('fs').readFileSync('.bun-version','utf8').trim(),h=process.versions.bun||require('child_process').execSync('bun --version').toString().trim();if(w!==h){console.error('Bun '+h+' but .bun-version pins '+w+' — dist/ would not reproduce in CI');process.exit(1)}\"","show-size":"gzip -9 -k dist/index.js && gzip -9 -k dist/infer.js && ls -lh dist/index.js.gz dist/infer.js.gz && rm dist/index.js.gz dist/infer.js.gz","typecheck":"bun tsc --noEmit","record-sizes":"bun make-coverage.ts --record-sizes","prepublishOnly":"bun run pack"},"version":"1.13.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"80fdc53d-2a4c-417b-b428-a01ae680d820"},"approver":{"name":"tonioloewald","email":"tonio@loewald.com"}},"homepage":"https://github.com/tonioloewald/tosijs-schema#readme","keywords":["typescript","javascript","json","schema","validation","inference"],"_resolved":"/home/runner/work/_temp/stage/tosijs-schema-1.13.0.tgz","_integrity":"sha512-OMdt5CnyvfOKEYIQiWMZp5yzHBmybuARz9j0qG8i9gT97jyENJn0Yk2kn2wmYVhm84rdxVzmxn7DSz7illEoDA==","repository":{"url":"git+https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"_npmVersion":"11.21.0","description":"[npm](https://www.npmjs.com/package/tosijs-schema) | [github](https://github.com/tonioloewald/tosijs-schema) | [discord](https://discord.gg/ramJ9rgky5) | [examples](./examples.md)","directories":{},"maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"sideEffects":false,"_nodeVersion":"22.23.3","devDependencies":{"zod":"^4.1.12","@types/bun":"latest","typescript":"^5","@sinclair/typebox":"^0.34.47","tosijs-schema-1-11":"npm:tosijs-schema@1.11.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tosijs-schema_1.13.0_1790916852920_0.6316775313123413"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-21T18:51:35.147Z","modified":"2026-10-02T04:54:13.299Z","0.0.1":"2025-11-21T18:51:35.370Z","0.0.2":"2025-11-21T22:30:45.817Z","0.0.3":"2025-11-21T23:19:44.185Z","0.0.4":"2025-11-21T23:40:28.527Z","0.0.5":"2025-11-22T13:24:39.474Z","0.0.6":"2025-11-22T16:02:10.988Z","0.0.7":"2025-11-22T16:28:56.696Z","0.0.8":"2025-11-23T13:21:24.394Z","0.0.9":"2025-12-15T13:53:39.403Z","0.10.0":"2025-12-15T15:32:40.871Z","1.0.0":"2025-12-15T15:42:21.349Z","1.0.1":"2025-12-15T16:23:48.628Z","1.0.2":"2026-01-04T20:32:51.409Z","1.0.3":"2026-01-06T17:12:38.346Z","1.1.0":"2026-01-09T19:11:17.462Z","1.1.1":"2026-01-09T19:23:55.125Z","1.1.2":"2026-01-09T19:34:45.237Z","1.1.3":"2026-01-09T20:59:15.580Z","1.2.0":"2026-01-14T09:32:32.152Z","1.3.0":"2026-01-16T07:06:00.089Z","1.4.0":"2026-07-03T16:37:40.678Z","1.5.0":"2026-08-07T04:23:41.997Z","1.5.1":"2026-08-09T08:24:59.032Z","1.6.0":"2026-08-19T05:35:59.289Z","1.6.1":"2026-08-19T06:54:04.265Z","1.7.0":"2026-08-19T08:57:43.609Z","1.8.0":"2026-08-24T10:42:15.619Z","1.8.1":"2026-08-25T18:12:27.352Z","1.9.0":"2026-09-01T10:15:02.987Z","1.10.0":"2026-09-12T19:52:55.447Z","1.10.1":"2026-09-12T20:53:05.696Z","1.10.2":"2026-09-16T03:43:53.750Z","1.11.0":"2026-09-26T18:20:28.547Z","1.12.0":"2026-09-26T20:31:21.295Z","1.13.0":"2026-10-02T04:54:13.021Z"},"bugs":{"url":"https://github.com/tonioloewald/tosijs-schema/issues"},"license":"MIT","homepage":"https://github.com/tonioloewald/tosijs-schema#readme","keywords":["typescript","javascript","json","schema","validation","inference"],"repository":{"url":"git+https://github.com/tonioloewald/tosijs-schema.git","type":"git"},"description":"[npm](https://www.npmjs.com/package/tosijs-schema) | [github](https://github.com/tonioloewald/tosijs-schema) | [discord](https://discord.gg/ramJ9rgky5) | [examples](./examples.md)","maintainers":[{"name":"tonioloewald","email":"tonio@loewald.com"}],"readme":"# tosijs-schema\n\n[npm](https://www.npmjs.com/package/tosijs-schema) | [github](https://github.com/tonioloewald/tosijs-schema) | [discord](https://discord.gg/ramJ9rgky5) | [examples](./examples.md)\n\n[![npm](https://badge.fury.io/js/tosijs-schema.svg)](https://www.npmjs.com/package/tosijs-schema)\n[![size](https://deno.bundlejs.com/?q=tosijs-schema&badge=)](https://bundlejs.com/?q=tosijs-schema&badge=)\n\nA **schema-first** validation library. Define schemas, infer TypeScript types, validate efficiently.\n\n## Versioning & stability\n\n**Validation getting *stricter* is a breaking change**, and we treat it as one — even though semver's letter would call it additive. A validator that starts rejecting data it used to accept fails a consumer's next `npm install` with no change on their side, which is indistinguishable from a break from where they sit. So, for this library:\n\n- **Tightening** (enforcing something previously ignored, closing a hole) is called out as **BREAKING** in the [CHANGELOG](./CHANGELOG.md) with a migration note, and lands in a release the changelog marks as breaking. This project carries breaking changes in **minor** bumps (it is past 1.0 but still fast-moving); the changelog is the source of truth for what broke, not the version letter.\n- **Loosening** (accepting more, a new opt-in) and **new API** are **patches by default** — a new export or a small additive feature does not earn a minor just for being technically additive. A **minor** is a *coherent body* of work landing together (what the patches were building toward), or a breaking change.\n- **Adding a required member to an exported interface a consumer might implement** (e.g. `AgentContract`) is **breaking** for implementers, whose code stops compiling, even though callers only gain an API. Such members ship optional first, or in a breaking release. (1.9.1 added a required `AgentContract.affectedRoots` in a patch, which is the case that taught this.)\n- We **deprecate before we remove**, and keep a migration table in the CHANGELOG — which ships in the npm tarball, so it's reachable from what you installed.\n\n**Why we break toward correctness rather than hold compatibility:** a schema validator that accepts data the spec rejects — or that leaves a declared constraint unenforced — is wrong in a way that quietly corrupts everything downstream (schemas that don't travel, gates that don't gate). We'd rather refuse that data loudly, in a documented release, than carry the incorrectness forward. The one distinction we hold: a **fail-open** fix (the old behavior was a hole) is never softened with a \"legacy-loose\" option — that would just be an opt-in to the bug; a **spec-conformance** tightening is the kind we'd consider a flag for if there were ever demand.\n\nPin an exact version (or use a lockfile) if you cannot absorb a validation change on install. Each breaking release has an \"Upgrading\" section below and a changelog entry naming exactly what changed.\n\n## Upgrading\n\n### To 1.13.0 (from 1.12.x) — `filter` and unions\n\n`filter` now applies the keywords beside an `anyOf`/`oneOf`, as `validate` always has, so data it used to refuse or strip wrongly now filters correctly. That changes its output in two narrow ways when a schema has a union. `validate` is unchanged.\n\n| Case | ≤ 1.12.x | 1.13.0 |\n| --- | --- | --- |\n| a union beside `properties`, `additionalProperties` unset, data with an undeclared key | key kept | key **stripped**, the same as for an object without a union |\n| both `anyOf` and `oneOf`, invalid data, a key only the `oneOf` branch declares | key silently dropped, data returned | **`Error`**, as `oneOf`-only schemas already did |\n\n**Migration:** to keep undeclared keys, declare them or set `additionalProperties: true` (`.open`). For the second row, handle the `Error`, since the old result had silently dropped a field.\n\nAlso new: types resolve under `moduleResolution: \"nodenext\"`. Before this release a TypeScript Node project got no types at all.\n\n### To 1.12.0 (from 1.11.x) — no more guessing what `validate` was handed\n\n`validate`, `filter` and `M.func` take a builder **or** a plain schema. Until now any object with a `schema` key was treated as a wrapper and replaced by that key's value, so a plain schema carrying a stray `schema` key (usually a `$schema` typo) validated **everything**. Builders are now branded, so detection is a fact, and a non-builder object with a `schema` key is **refused** as ambiguous instead of guessed at.\n\n| Second argument | ≤ 1.11.0 | 1.12.0 |\n| --- | --- | --- |\n| a builder (`s.object(…)`) or a plain schema | validates | unchanged |\n| `{ type:'object', required:['a'], schema:true }` (stray key) | **accept-all** | refused |\n| a wrapper, e.g. `{ name, strict, schema }` (the OpenAI `json_schema` envelope) | unwrapped to `schema` | refused |\n| `s.array({ type: 'string' })` (plain schema into a combinator) | built an array with **no `items`** (any elements pass) | throws, naming the argument |\n\nRefused means `validate` returns `false` (with an `onError` reason naming the problem), `filter` returns an `Error`, and `M.func` throws when you construct it — never a silent pass. The refusal applies only to the argument you pass; inside a schema tree a `schema` key is an ordinary unknown keyword and is ignored (as are all unknown keywords — `unenforcedKeywords()` lists them).\n\n**Migration:** pass the schema itself — `validate(data, envelope.schema)` rather than `validate(data, envelope)`. For a stray key, delete it. For a combinator, pass a builder (`s.string`, not `{ type: 'string' }`) — `s.array`, `s.object`, `s.record`, `s.tuple` and `s.union` now throw a `TypeError` naming the offending property or index. TypeScript callers can't hit this; JS, `as any` and deserialized config could. Builders from another installed copy of tosijs-schema still work (the brand is a `Symbol.for` registry symbol, and pre-brand builders are recognised by their `validate` method).\n\n### To 1.11.0 (from 1.10.x) — the fail-open sweep\n\nFour earlier releases each closed one member of this class as it was reported. This closes the rest together, so the migration is one read instead of four.\n\n| Case | ≤ 1.10.2 | 1.11.0 |\n| --- | --- | --- |\n| a **non-enumerable** own property vs `additionalProperties: false` | passes as though absent | **fails** |\n| a non-enumerable property under `additionalProperties: <schema>` | never validated | **validated** |\n| a non-enumerable property vs `min`/`maxProperties` | uncounted | **counted** |\n\n**Who this affects:** almost nobody validating JSON — `JSON.parse` cannot produce a non-enumerable property. It affects code validating **live JS objects**, which is what `agentContract` receives. The old behavior was that *no check happened*, so a new failure is a check that finally ran.\n\n**Migration:** for `Unexpected <key>`, strip the hidden property (`filter()` already drops them), declare it, or use `.open`.\n\n\nOn cost: the enumeration change measured **10–20% faster** than the `for..in` + per-key `hasOwnProperty` loop it replaced (a 1000-key object under `additionalProperties`). One trade-off is real, though: `maxProperties` no longer short-circuits at `max + 1`, because a correct count has to include keys `for..in` skips — so a huge object with a small declared ceiling now enumerates once instead of stopping early.\n\n### To 1.10.0 (from 1.9.x) — one `agentContract` fail-open closed\n\n**Only affects `agentContract` construction.** `validate`, `filter` and `inferSchema` are unchanged.\n\n| Case | ≤ 1.9.0 | 1.10.0 |\n| --- | --- | --- |\n| a gate schema carrying a stray `schema` key | constructs — and becomes an **accept-all gate** | **throws** at construction |\n| `{ strict: 0 }` / `{ strict: '' }` (e.g. from a parsed config) | silently builds a **sampling** gate | **throws** |\n\n**Migration:** if construction throws naming `root.schema`, remove that key — it was never enforced. If it throws on `strict`, pass a real boolean.\n\nAlso new (additive, from [#10](https://github.com/tonioloewald/tosijs-schema/issues/10)): `affectedRoots(path)` to ask which contracted roots a write touches, and `{ unknownPath: 'refuse' }` to make the fail-closed posture explicit — see [Agent Contracts](#agent-contracts).\n\n### To 1.9.0 (from 1.8.x) — closes a fail-open; `maxProperties` newly enforced\n\n`validate` now enforces **`maxProperties`** in its default (non-strict) path, which it previously *ignored* — a strict-only \"ghost constraint\" ([#9](https://github.com/tonioloewald/tosijs-schema/issues/9)). This is a validation tightening, so it's breaking:\n\n| Schema | ≤ 1.8.1 (default `validate`) | 1.9.0 |\n| --- | --- | --- |\n| `{ maxProperties: 1 }` on `{ a: 1, b: 2 }` | pass (ignored) | **fail** (too many props) |\n\nOnly affects schemas that declare `maxProperties`. The check short-circuits at `max + 1`, so it's O(min(N, max+1)) — cheap for normal ceilings, and objects without the keyword are untouched. `{ strict: true }` and `agentContract` already enforced it, so anything gated through them is unchanged. **`filter()` shares this enforcement** — it re-validates its stripped result, so filtering an over-ceiling object against a `maxProperties` schema now returns an `Error` where 1.8.x returned the (still-over-ceiling) data (`filter` strips unknown keys, not surplus dictionary entries). If a schema was leaning on the old skip, drop the `maxProperties` keyword or raise the ceiling. Everything else is additive.\n\n### To 1.8.0 (from 1.7.x) — closes a fail-open; two keywords newly enforced\n\n`validate` now enforces **`oneOf`** and **`exclusiveMinimum`/`exclusiveMaximum`**, which it previously *ignored* (returning `true` for values they forbid — [#8](https://github.com/tonioloewald/tosijs-schema/issues/8)). This is a validation tightening, so it's breaking:\n\n| Schema | ≤ 1.7.0 | 1.8.0 |\n| --- | --- | --- |\n| `{ oneOf: [{type:'string'}] }` on `42` | pass (ignored) | **fail** (matches no branch) |\n| `{ exclusiveMinimum: 0 }` on `0` | pass (ignored) | **fail** |\n| a value matching **two** `oneOf` branches | pass | **fail** (oneOf = exactly one) |\n\nIf you were relying on `oneOf` being a no-op, note it now has real exactly-one-match semantics (a value matching two branches is rejected — prefer `anyOf` for discriminated unions). New in this release: `unenforcedKeywords(schema)` to detect keywords still outside the enforced set, and `setWarnings(false)` to silence the `oneOf` cost warning. Everything else is additive.\n\n### To 1.7.0 (from 1.6.x) — one BREAKING validation change\n\n`format: 'date-time'` now enforces **RFC 3339** instead of `Date.parse`. Strings that aren't valid RFC 3339 date-times now fail — they were accepted before but a conforming validator (Ajv, etc.) always rejected them, so schemas carrying them never travelled.\n\n| Value under `format: 'date-time'` | ≤ 1.6.1 | 1.7.0 | Fix |\n| --- | --- | --- | --- |\n| `2020-01-01T10:00:00Z` | pass | pass | — |\n| `2020-01-01` (date only) | pass | **fail** | use the new `s.date` (`format: 'date'`) |\n| `2020-01-01 10:00:00` (space) | pass | **fail** | make it a `T`: `2020-01-01T10:00:00Z` |\n| `Jan 1 2020` | pass | **fail** | normalise to RFC 3339, or drop `format` |\n\nAlso new: **`format: 'date'`** (RFC 3339 full-date) is now enforced — previously it was an ignored annotation, so a non-date string with `format: 'date'` now fails. And `inferSchema(…, { formats: true })` labels date-only columns `date` (not the invalid `date-time` 1.6.x emitted). Everything else is additive.\n\n### To 1.6.0 (from 1.5.x)\n\nAdditive — nothing that validated before is rejected now. New: [`inferSchema`](#infer-a-schema-from-data), open objects (`.open`), and multi-type `type` arrays now validate as unions. Optional-but-recommended: if you `inferSchema`, note its output now carries `$inferred: true` at the root (pass `{ marker: false }` to omit).\n\n### To 1.5.0 (from 1.4.x) — BREAKING\n\n**1.5.0 makes `validate` enforce what your schemas already declared.** Several fail-open validator bugs were fixed, and data that previously slipped through is now refused:\n\n| Before (≤ 1.4.0) | 1.5.0+ | If you relied on the old behavior |\n| --- | --- | --- |\n| `additionalProperties: false` ignored — extra keys passed | extra keys rejected (incl. `constructor`, `__proto__`) | model open objects with **`.open`** or `s.record(s.any)`; or strip extras with `filter()` first |\n| `minItems`/`maxItems` ignored without an `items` schema | enforced | intended, no action |\n| `strict` didn't reach into `anyOf` branches | it does | intended, no action |\n\nThis shipped as a minor (see policy above), which broke consumers whose schemas were *accidentally* open (they had no way to spell an intentionally-open object until `.open` in 1.6.0 — that gap is why it bit hard). If you can't adopt yet, pin `1.4.0`; note that pinning retains a known validation bypass, so treat it as a short migration window.\n\n## Why Not Zod?\n\n### Schema-First vs TypeScript-First\n\n**Zod's premise**: TypeScript is the source of truth → derive validation → convert to JSON Schema when needed\n\n**Schema-first premise**: The schema IS the source of truth → derive both types AND validation\n\nIf your data crosses any boundary—API, LLM, database, another language, documentation—you need a schema. If you need a schema anyway, why isn't that the source of truth?\n\n```\nZod:           TypeScript → Zod → zod-to-json-schema → OpenAPI/LLMs\ntosijs-schema: JSON Schema → Types + Validation (single source of truth)\n```\n\n**JSON Schema is a universal standard.** The same schema that validates data in your TypeScript app can:\n- Generate types for Python, Go, Rust, Java, C# (via codegen tools)\n- Define your OpenAPI/Swagger documentation\n- Configure LLM structured outputs (OpenAI, Anthropic)\n- Be stored in a database and shared across services\n- Be understood by any language or tool that speaks JSON Schema\n\n**Schemas are serializable data.** Your types can travel with your data, enabling self-documenting APIs and pipelines. An endpoint can return its own schema. A message queue can include the schema for its payload. A pipeline step can advertise its input/output types. No separate documentation to maintain—the types *are* the documentation.\n\nWith Zod or TypeBox, TypeScript is your source of truth—other languages get second-class derived artifacts. With tosijs-schema, JSON Schema is your source of truth and TypeScript is just one of many consumers.\n\n### Cleaner Syntax\n\n```typescript\n// tosijs-schema\nconst User = s.object({\n  id: s.integer,\n  email: s.email,\n  name: s.string.min(1),\n  role: s.enum(['admin', 'user']),\n})\n\n// Zod\nconst User = z.object({\n  id: z.number().int(),\n  email: z.string().email(),\n  name: z.string().min(1),\n  role: z.enum(['admin', 'user']),\n})\n```\n\nFormats are first-class citizens (`s.email`) not method chains (`z.string().email()`).\n\n### Lighter Schemas\n\n```typescript\n// tosijs-schema: s.email.schema\n{ \"type\": \"string\", \"format\": \"email\" }\n\n// Zod: z.string().email()\nZodString {\n  _def: { checks: [...], typeName: 'ZodString', coerce: false },\n  spa: [Function], superRefine: [Function], optional: [Function],\n  // ... 30+ methods and properties\n}\n```\n\n| 100 schemas | tosijs-schema | Zod |\n|-------------|---------------|-----|\n| Memory | ~20KB | ~300-500KB |\n| JSON serializable | Yes | No |\n| Can send over wire | Yes | No |\n| Can store in DB | Yes | No |\n\n### Test Coverage That Actually Covers Your Schemas\n\ntosijs-schema schemas are **data** (JSON). Zod schemas are **code** (class instances).\n\nThis matters: our ~97% test coverage covers **every schema you'll ever write** because your schemas are just JSON objects that flow through the same tested validation code.\n\nZod's test coverage only covers Zod's internals. Your specific Zod schemas—your method chains, your compositions—are untested code. That's on you.\n\n```typescript\n// tosijs: this is data, covered by library tests\ns.object({ email: s.email, age: s.integer.min(0) })\n\n// Zod: this is code, YOU must test it\nz.object({ email: z.string().email(), age: z.number().int().min(0) })\n```\n\n### Direct Comparison\n\n| Aspect | tosijs-schema | Zod | TypeBox |\n|--------|---------------|-----|---------|\n| Philosophy | Schema-first | TypeScript-first | JSON Schema + JIT |\n| Output | Native JSON Schema | Proprietary | Native JSON Schema |\n| JSON Schema spec | Practical subset | N/A (not JSON Schema) | Draft 2020-12 compliant |\n| Syntax | `s.email` | `z.string().email()` | `Type.String({ format: 'email' })` |\n| Bundle | ~9kB (or ~1.5kB, `/infer` only) | ~14kB | ~64kB |\n| Schema objects | Plain JSON (~200B) | Class instances (~3-5KB) | JSON Schema objects |\n| Runtime deps | 0 | 0 | 0 |\n| Performance | ~2x faster + O(1) sampling | O(n) | JIT compiled (~27x faster full scan) |\n| Runtime schemas | **Yes (direct)** | No | Yes (with preprocessing) |\n| Uses `eval` / `new Function()` | No | No | Optional (JIT compiler) |\n| Test coverage | ~97% (covers YOUR schemas) | Battle-tested | Battle-tested |\n| Ecosystem | Small | Large (tRPC, etc.) | Growing (Fastify, Elysia) |\n\n### Runtime Schema Support\n\nA key architectural difference: **tosijs-schema validates plain JSON schemas directly with zero overhead.**\n\n```typescript\n// Receive a schema over the wire, from a database, or from user input\nconst schemaFromServer = await fetch('/api/schema').then(r => r.json())\n\n// tosijs-schema: works immediately, no preprocessing\nvalidate(data, schemaFromServer) // ✅\n\n// Zod: impossible - schemas must be defined with z.object(), z.string(), etc.\n\n// TypeBox: requires preprocessing to inject Kind symbols, then optional JIT compile\nconst injected = injectTypeBoxKind(schemaFromServer)  // ~0.2ms overhead\nconst compiled = TypeCompiler.Compile(injected)        // ~1.0ms overhead\ncompiled.Check(data)\n```\n\n**Runtime schema benchmark (100k items):**\n```\ntosijs (direct):     0.2ms   ← zero preprocessing\nTypeBox (injected):  1.2ms overhead + 2.5ms validation\nZod:                 not possible\n```\n\nThis matters for:\n- **Dynamic systems** where schemas are stored in databases or config\n- **Multi-tenant apps** where each tenant defines their own data shapes\n- **Schema registries** that serve schemas to multiple services\n- **AI/LLM pipelines** where schemas are generated or modified at runtime\n- **Plugin systems** where extensions define their own validation rules\n\n### JSON Schema Coverage\n\ntosijs-schema implements a **practical subset** of JSON Schema - the features that cover real-world use cases, not the full specification. This is a deliberate tradeoff: ~9kB bundle (tree-shakeable — see below) vs spec compliance.\n\n**Supported:** `type`, `properties`, `required`, `items`, `enum`, `const`, `anyOf` (unions), `oneOf` (exactly-one), `minimum`, `maximum`, `exclusiveMinimum`, `exclusiveMaximum`, `multipleOf`, `minLength`, `maxLength`, `pattern`, `minItems`, `maxItems`, `minProperties`, `maxProperties`, `additionalProperties`, `format` (`email`, `uuid`, `uri`, `ipv4`, `date`, `date-time` — RFC 3339, `emoji`), boolean schemas (`true`/`false`), `$predicate` (with a registered evaluator), `default`, `title`, `description`\n\n**Not supported:** `$ref` / `$defs`, `if` / `then` / `else`, `dependentRequired`, `patternProperties`, `unevaluatedProperties`, `allOf`, `not`, `uniqueItems`, `contains`, `prefixItems`, `propertyNames`, and other advanced keywords.\n\n**Stepping outside the subset is detectable — that's the point.** `validate` silently ignores unsupported keywords (they pass through untouched, like any unknown key), which means a schema using `allOf` or `not` gets a `true` that didn't actually check them. So the enforced set is exported (`ENFORCED_KEYWORDS`), `agentContract` **refuses** a schema outside it at construction (a gate must not fail open), and `unenforcedKeywords(schema)` returns the tree-paths a schema uses that `validate` won't enforce — so a consumer can *warn* (\"this schema uses `allOf`, which isn't validated\") rather than imply a check that never happened. A documented subset is fine; a subset you can't tell you've left is not.\n\n```typescript\nimport { unenforcedKeywords } from 'tosijs-schema'\n\nunenforcedKeywords({ type: 'object', allOf: [{ type: 'object' }] })\n// ['root.allOf']   — validate() ignores it; render a warning next to the field\nunenforcedKeywords({ oneOf: [{ type: 'string' }] })\n// []               — oneOf IS enforced\n```\n\n> **`oneOf` is enforced but expensive.** Unlike `anyOf` (which stops at the first matching branch), `oneOf` must try *every* branch to confirm exactly one matches. It emits a console warning (once per process — the nudge is generic, so it doesn't re-fire per node or per request even when schemas are parsed fresh over the wire) nudging you toward `anyOf` for discriminated unions; silence it with `setWarnings(false)` — note that toggle is process-global (and re-enabling re-arms the one-time warning).\n\nIf you need full JSON Schema Draft 2020-12 compliance and `eval` is acceptable in your environment, TypeBox or Ajv are options. If you need the 80% of features that cover 99% of real-world schemas in a tiny, eval-free package, use tosijs-schema.\n\n**A note on `eval` and security:** JSON Schema exists to define safe data contracts for interchange between untrusted parties. Ajv uses `new Function()` to generate validators - executing dynamically constructed code strings. TypeBox's JIT compiler (`TypeCompiler`) also uses `new Function()`, but offers an interpreted mode (`Value.Check()`) that works without eval - albeit ~18x slower than JIT. Ajv offers build-time pre-compilation as a workaround for static schemas. For sandboxed environments, edge functions, or anywhere CSP restricts `unsafe-eval`, tosijs-schema and TypeBox's interpreted mode both work without code generation.\n\n### When to Use Zod\n\n- You need tRPC, react-hook-form, or other Zod ecosystem integrations\n- You want transforms/refinements in your schema layer\n- Ecosystem momentum matters more than architecture\n\n### When to Use TypeBox\n\n- You need full JSON Schema Draft 2020-12 compliance\n- You have a fixed set of schemas known at startup (compile once, validate millions)\n- You need maximum validation throughput (high-traffic APIs, real-time pipelines)\n- You're building with Fastify or Elysia (native TypeBox support)\n- Bundle size isn't a primary concern (~64kB vs ~6kB)\n- Note: JIT mode uses `new Function()`, but interpreted mode (`Value.Check()`) works in CSP environments at ~18x slower\n\n### When to Use tosijs-schema\n\n- You need to validate against **dynamic/runtime schemas** (from DB, API, user input)\n- You need a **sandboxed environment** where `eval` / `new Function()` is not allowed\n- You need JSON Schema output (OpenAPI, LLMs, code generators)\n- Bundle size matters (edge functions, serverless cold starts)\n- Supply chain security matters (zero dependencies)\n- Schemas are data that flows through your system, not static configurations\n- Sampling-based validation is acceptable (statistical confidence for large datasets)\n\n## Installation\n\n```bash\nnpm install tosijs-schema\n```\n\nNeeds an ES2020 runtime (any current browser, Node 14+, Bun, Deno). The published types use `ReadonlySet`, so a TypeScript consumer needs `lib` ES2015 or later, which every non-ES5 `target` already includes. The release smoke test typechecks a consumer at `target: es2020` with `skipLibCheck` off.\n\n## Quick Start\n\n```typescript\nimport { s, validate, type Infer } from 'tosijs-schema'\n\n// Define schema\nconst User = s.object({\n  id: s.integer,\n  email: s.email,\n  role: s.enum(['admin', 'user']),\n  tags: s.array(s.string).optional,\n})\n\n// Infer TypeScript type\ntype User = Infer<typeof User>\n\n// Validate\nvalidate(data, User) // returns boolean\n\n// Get the JSON Schema\nconsole.log(User.schema)\n// { type: 'object', properties: { ... }, required: [...], additionalProperties: false }\n```\n\n## API\n\n### Primitives\n\n```typescript\ns.string          s.number          s.integer         s.boolean\ns.null            s.undefined       s.any\n```\n\n### Formats (First-Class)\n\n```typescript\ns.email           s.uuid            s.url             s.ipv4\ns.date            s.datetime        s.emoji           s.pattern(/.../)\n```\n\n`s.date` (RFC 3339 full-date) and `s.datetime` (RFC 3339 date-time) validate against the same predicates a conforming validator (Ajv) uses, so the schemas travel.\n\n### Complex Types\n\n```typescript\ns.object({ key: s.string })     // Object with specific properties (strict — no extra keys)\ns.object({ key: s.string }).open // …plus unknown keys (additionalProperties: true)\ns.array(s.number)               // Array of numbers\ns.record(s.string)              // Record<string, string>\ns.tuple([s.string, s.number])   // Fixed-length tuple\ns.enum(['a', 'b', 'c'])         // String enum\ns.union([s.string, s.number])   // Union type\ns.const('literal')              // Literal value\n```\n\n`.open` (or `s.object(props, { additionalProperties: true })`) keeps the declared `properties` and `required` but admits unknown keys — reach for it when the shape belongs to a protocol you don't control (e.g. an LLM chat message a provider keeps adding fields to). A runtime schema should reject what's *wrong*, not what's merely *newer than you are*.\n\n### Constraints\n\n```typescript\ns.string.min(1).max(100)        // String length\ns.number.min(0).max(100)        // Numeric range\ns.number.step(0.5)              // Multiple of\ns.array(s.string).min(1).max(10) // Array length\ns.record(s.number).min(1)       // Min properties\ns.string.optional               // Nullable\n```\n\n### Metadata\n\n```typescript\ns.string\n  .title('Username')\n  .describe('Unique identifier')\n  .default('anonymous')\n  .meta({ examples: ['alice', 'bob'] })\n```\n\n## Validation\n\n### Default (Fast)\n\n```typescript\nvalidate(data, schema) // boolean\n```\n\nUses stride sampling for large arrays/objects (O(1) for >97 items).\n\n### Strict (Full)\n\n```typescript\nvalidate(data, schema, { strict: true })\n```\n\nValidates every item (no stride sampling). `maxProperties` is enforced in every mode as of v1.9.0, so `strict` no longer changes it.\n\n### Error Handling\n\n```typescript\nvalidate(data, schema, (path, msg) => {\n  console.error(`${path}: ${msg}`)\n})\n\n// Or with options\nvalidate(data, schema, {\n  strict: true,\n  onError: (path, msg) => console.error(path, msg)\n})\n```\n\n## Filter\n\nStrip extra properties from data:\n\n```typescript\nimport { filter } from 'tosijs-schema'\n\nconst clean = filter(dirtyData, schema)\n// Returns filtered data or Error if validation fails\n\nconst clean = filter(dirtyData, schema, { skipValidation: true })\n// Skip validation, just filter\n```\n\n`skipValidation` makes `filter` best-effort. Where it can't fit the data to a union branch (`anyOf` / `oneOf`), it leaves that part unstripped, and nothing tells you. Without `skipValidation`, that same case comes back as an `Error`. Validate the result yourself if it matters.\n\n## Diff\n\nDetect schema changes:\n\n```typescript\nimport { diff } from 'tosijs-schema'\n\ndiff(schemaV1.schema, schemaV2.schema)\n// { field: { error: 'Type mismatch: string vs number' } }\n// or null if identical\n```\n\n## Infer a schema from data\n\n`inferSchema(sample, opts?)` goes the other direction from `Infer<S>` — **data → schema, at runtime**. Point it at a pile of JSON and get a starting schema to refine.\n\n```typescript\nimport { inferSchema } from 'tosijs-schema'\n// tree-shakers can import the ~1.5kB module directly:\n// import { inferSchema } from 'tosijs-schema/infer'\n\ninferSchema([{ id: 1, tag: 'a' }, { id: 2 }])\n// { type: 'array', items: {\n//     type: 'object',\n//     properties: { id: { type: 'integer' }, tag: { type: 'string' } },\n//     required: ['id'],              // tag absent from row 2 → optional\n//     additionalProperties: true } } // OPEN — describes a sample, not a contract\n```\n\nDesign choices that keep it honest:\n\n- **Unifies across *every* element**, never just `sample[0]` — a key missing from the first row keeps its column. Presence decides `required` (in every element → required; in some → optional). `null` contributes `'null'` to the type union rather than being treated as absent.\n- **Structure only.** It never infers `minimum`/`maxLength`/etc. from a sample's observed range — those extremes are not the domain's, and baking them in would reject valid future data.\n- **Objects are open** (`additionalProperties: true`): an inferred schema describes a sample, not a contract. Closing it would make `filter(data, schema)` silently strip any field that happened not to appear.\n- **Off by default, opt-in when you want them:** `{ formats: true }` sniffs `date-time`/`date`/`email`/`uri`, but only when *every* value matches; `{ enums: true }` proposes `enum` only for genuinely low-cardinality fields (so a 3-row fixture doesn't turn an id column into an enum of three ids); `{ sampleSize, onTruncate }` caps sampling and tells you when it truncated.\n- **Deterministic** (stable key order — these schemas get committed and diffed) and **total** on empty/degenerate input (`[]`, `[null, null]`, `undefined` → a minimal schema, never a throw).\n- **Marked as observed, not authored.** The root carries `$inferred: true` so a reader (an agent, a form editor, a gate reading `describe()`) can tell \"a sample looked like this\" from \"someone promised this\" — the same `{ type: 'integer' }` otherwise. It's a pure annotation (`validate` ignores it, `agentContract` allows it through). Pass `{ marker: false }` for a clean schema to hand-edit; promoting an inferred schema to a declaration means dropping the marker.\n\nGuarantee: `validate(sample, inferSchema(sample))` is always `true` — an inferred schema accepts its own sample.\n\n> The builder also has a legacy `s.infer(value)` — it samples only the first array element and closes objects. Prefer `inferSchema`, which is the corrected, spec-followed version.\n\n## Tree-shaking & bundle size\n\nImport only what you use. The package is `sideEffects: false` and each concern is a separate module, so a modern bundler drops the rest. Measured, minified + gzipped:\n\n| You import | Pulls in | gzipped |\n| --- | --- | --- |\n| `inferSchema` (from `tosijs-schema/infer`) | just inference | **~1.5 kB** |\n| `validate` | the validator | ~4.0 kB |\n| `s` (builder) | builder + validator | ~3.9 kB |\n| `filter` | validator + filter | ~4.9 kB |\n| `diff` | validator + schema diff | ~4.3 kB |\n| `agentContract` | validator + contract layer | ~5.7 kB |\n| everything | the whole library | ~9.2 kB |\n\n`inferSchema` is also published as a self-contained subpath, `tosijs-schema/infer`, so it stays ~1.5 kB even where a bundler can't tree-shake the pre-bundled main entry. The other pieces share the validator core (one module), so importing `validate`, `s`, `filter`, or `diff` all land in the same 3.9–5.7 kB range — you pay for the core once, not per import. Every figure in the table is **measured at build time** and regenerated by `bun run pack`, so it cannot drift from what you actually get.\n\n## Agent Contracts\n\n`agentContract(schemas)` adapts a map of root path → schema into the contract seam consumed by capability-gated write paths (e.g. [tosijs](https://github.com/tonioloewald/tosijs)'s agent surface): `check()` judges a proposed whole-root value and returns `true` or an `Error` carrying the refusal reason; `describe()` returns the serializable per-root contract.\n\n```typescript\nimport { agentContract } from 'tosijs-schema'\n\nconst contract = agentContract({\n  'app.order': s.object({ item: s.string, qty: s.number }),\n})\n\ncontract.check('app.order.qty', 'x', {\n  root: 'app.order',\n  proposed: { item: 'yuzu', qty: 'x' },\n})\n// Error: contract violation at app.order.qty — qty: Expected number\n\ncontract.describe() // plain JSON Schemas — \"what's legal\", shippable over the wire\n```\n\nDeep writes are judged as the whole root they would produce, so `required` on siblings, cross-field constraints, and root-level `$predicate`s all participate. Validation is strict by default (a gate that samples isn't a gate); pass `{ strict: false }` to opt into sampled validation for huge roots.\n\n**Uncontracted paths: know which `true` you got.** `check()` returns `true` both for *\"this write is valid\"* and for *\"this path touches nothing I contract\"* — deliberate, since a surface may contract only a subset. But the two are indistinguishable at the call site, so the natural `if (verdict !== true) refuse()` performs **no validation at all** over every uncontracted root. Two ways to be explicit:\n\n```typescript\n// 1. ask which roots a path touches — the matcher check() itself uses\ncontract.affectedRoots('app.order[0].qty')  // ['app.order']  ← bracket form included\ncontract.affectedRoots('app.orderX')        // []             ← not a root\nif (contract.affectedRoots(path).length === 0) { /* your call */ }\n\n// 2. or make the gate cover the whole surface\nconst gate = agentContract(schemas, { unknownPath: 'refuse' })\ngate.check('not.contracted', 1) // Error: … touches no contracted root\n```\n\nUse `affectedRoots()` rather than hand-rolling `path === root || path.startsWith(root + '.')`: that misses **bracket indexing**, so `app.order[0].qty` reads as uncontracted and skips the gate — a bug invisible to any test suite written in dotted form. Note `affectedRoots` **throws** `TypeError` on a non-string path (answering \"touches no roots\" to a question it cannot evaluate would fail open in the `length === 0` posture above); `check()` returns an `Error` for the same input, since never-throwing is its contract, not this helper's.\n\n**Know the grammar it matches.** A path matches a root when it equals the root or continues it with `.` or `[`, so **any spelling of the subtree under a root matches** (`app.x`, `app[0].x`, `app[\"x\"]`, `app.0.x` all match root `app`). The gap is in the **root's own spelling**: a multi-segment root (`app.billing`) is recognized only when the path spells those segments identically, so `app[\"billing\"].rate` reads as *uncontracted*. A leading bracket (`[\"app\"].x`) and a JSON Pointer (`/app/billing/rate`) also read as uncontracted. So if any contracted root has more than one segment, or your applier accepts alternate notations, use **`{ unknownPath: 'refuse' }`** — it closes every spelling regardless. (A canonicalizing matcher was built for 1.10.0 and reverted — see the CHANGELOG; the real fix is a tokenizer, tracked separately.)\n\n**What a check costs, and how to call it.** `check()` validates the whole proposed root, strictly, on every call, so each write is O(size of the root). Two consequences:\n- **Send one proposal per transaction, not one per path.** A surface that applies N field writes to one root and checks each one separately pays O(N × root size) to say the same thing N times. Assemble the new root once, then `check` it once.\n- **Contract fine-grained roots.** `app.order` is cheaper to judge per write than `app`, and a huge root that rarely changes as a whole is the case `{ strict: false }` exists for (sampled validation: O(1) on arrays and dictionaries over 97 items, at the cost of exhaustiveness).\n\n**`describe()` output carries this library's extension keys.** The plain-JSON contract keeps `$predicate`, `$counterexamples`, `$inferred` and any `x-*` keys, so a remote reader sees everything the gate enforces. Most JSON Schema tools ignore unknown keywords, but Ajv's default `strict` mode throws on them. Construct it with `new Ajv({ strict: false })` (or `strictSchema: false`), or strip `$`-prefixed keys before handing the contract to a strict validator. Stripping `$predicate` means that validator won't enforce what the gate does.\n\n**The gate fails closed.** Schemas are deep-copied at construction and again out of `describe()`, so mutating either the original schema object or `describe()`'s return value cannot change what `check()` enforces. Construction validates every schema key against an **allowlist** — the `ENFORCED_KEYWORDS` set `validate` actually implements, plus annotations (`title`, `description`, `default`, `examples`, `$counterexamples`, …) and `x-*` extensions. Anything else — `allOf`/`not`/`$ref`, unimplemented spec keywords, even typos like `minumum` — is refused with an `Error`: a constraint that ships in `describe()` as \"what's legal\" but is never enforced would be a silent hole; express such constraints via `$predicate` instead. Value-level holes are refused too: `format` outside `ENFORCED_FORMATS`, invalid `pattern` regexes, tuple `items` without an exact `maxItems` cap, non-primitive `const`/`enum` members, and multi-type arrays. Boolean schemas are legal and enforced (`properties: { key: false }` forbids the key). Protocol breaches fail closed as well: any write touching a contracted root — at it, under it, or above it — without a proposal for that exact root, a mismatched `proposal.root`, and ancestor writes spanning several contracted roots are all refused with an `Error` naming the breach.\n\n### Examples as tests\n\nTwo conventions make a contract self-proving:\n\n- **`examples`** (standard keyword) — values the schema must accept\n- **`$counterexamples`** (our convention) — values it must refuse; a gate that never says no isn't a gate\n\n`checkExamples(schema)` lints the whole schema tree at definition time: every example must pass its own node, every counterexample must fail. It returns findings (empty = the spec doesn't lie); a counterexample that passes structurally but sits under a `$predicate` with no evaluator registered is reported as `unverifiable` rather than `accepted`.\n\nNote: the `$predicate` *source format* is defined by whatever evaluator you register via `setPredicateEvaluator()` — this library treats the string as opaque. A canonical format specification is pending in tjs-lang (see `UPSTREAM.md`).\n\n**Extension-key guarantee:** `validate` ignores — and never mutates — unrecognized `$`-prefixed keys (and `x-*` keys), so conventions like `$counterexamples` and future `$exercise` metadata are safe to standardize on and travel with the schema.\n\n## Monadic Pipelines\n\nType-safe function chains with schema validation:\n\n```typescript\nimport { M, createM } from 'tosijs-schema'\n\nconst greet = M.func(\n  s.object({ name: s.string }),\n  s.object({ greeting: s.string }),\n  (input) => ({ greeting: `Hello, ${input.name}` })\n)\n\nconst pipeline = createM({ greet, ... })\n\nconst result = await pipeline\n  .greet({ name: 'World' })\n  .anotherStep()\n  .result()\n```\n\n## LLM / OpenAI Integration\n\nWorks directly with OpenAI Structured Outputs:\n\n```typescript\nconst response = await openai.chat.completions.create({\n  model: 'gpt-4o',\n  messages: [...],\n  response_format: {\n    type: 'json_schema',\n    json_schema: {\n      name: 'extraction',\n      strict: true,\n      schema: MySchema.schema, // Direct - no conversion needed\n    },\n  },\n})\n```\n\nNo `zod-to-json-schema`. No conversion artifacts. Fewer tokens.\n\n## Performance\n\n```\n[Array 1M items]                        Hot JIT\n  tosijs (sampling):   0.3ms            (1273x vs Zod, 23x vs TypeBox JIT)\n  tosijs (strict):     188ms            (2x vs Zod)\n  TypeBox (JIT):       6.8ms            (57x vs Zod)\n  TypeBox (interp):    122ms            (3x vs Zod)\n  Zod:                 392ms\n\n[Dict 100k keys]                        Hot JIT\n  tosijs (sampling):   2.0ms            (29x vs Zod, 3x vs TypeBox JIT)\n  tosijs (strict):     22ms             (2.6x vs Zod)\n  TypeBox (JIT):       5.6ms            (10x vs Zod)\n  TypeBox (interp):    17ms             (3.5x vs Zod)\n  Zod:                 58ms\n```\n\n**Key insight:** TypeBox's JIT compilation produces the fastest full-scan validation. tosijs-schema's stride sampling trades exhaustive checking for O(1) performance on large datasets. Choose based on your requirements: maximum throughput with full coverage (TypeBox) vs minimal overhead with statistical sampling (tosijs).\n\n## Design Decisions\n\n| Decision | Rationale |\n|----------|-----------|\n| Stride sampling (97) | Prime number, checks ~1% of large collections, always verifies first/last |\n| `maxProperties` enforced in every mode (v1.9.0) | O(N) in own keys, counting non-enumerable ones too (v1.11.0 — the earlier `max+1` short-circuit can't see keys `for..in` skips); only schemas that declare a count keyword pay it |\n| `additionalProperties: false` enforced (since v1.5.0) | Unknown keys are refused; previously a falsy-check bug skipped this — use `filter()` for lenient intake that strips extras instead |\n\n## Test Coverage\n\n<!-- coverage:readme (generated by make-coverage.ts — do not hand-edit) -->\n```\nFile             | % Funcs | % Lines | Uncovered Line #s\n-----------------|---------|---------|-------------------\nAll files        |   99.76 |   99.21 |\n src/contract.ts |  100.00 |   99.21 | 666-667,695\n src/formats.ts  |  100.00 |  100.00 |\n src/infer.ts    |  100.00 |  100.00 |\n src/monad.ts    |  100.00 |  100.00 |\n src/schema.ts   |   98.80 |   96.84 | 389-395,540,1207-1208,1341,1361-1362,1385-1394,1397-1398\n```\n\n360 tests, 1341 assertions.\n<!-- /coverage:readme -->\n\n## License\n\nMIT\n","readmeFilename":"README.md"}