{"_id":"@scalar/validation","_rev":"15-328d8326ee63d8c379f6569a517d322b","name":"@scalar/validation","dist-tags":{"latest":"0.6.5"},"versions":{"0.1.0":{"name":"@scalar/validation","version":"0.1.0","keywords":["validation","coerce","scalar"],"author":{"url":"https://github.com/scalar","name":"Scalar"},"license":"MIT","_id":"@scalar/validation@0.1.0","maintainers":[{"name":"amritkahlon","email":"amritkahlon00@gmail.com"},{"name":"cameronrohani","email":"cam@scalar.com"},{"name":"marclave","email":"marc@scalar.com"},{"name":"scalar_geoff","email":"geoff@scalar.com"},{"name":"hwkr","email":"bn@hwkr.me"},{"name":"hanspagel","email":"mail@hanspagel.com"},{"name":"bgrcs","email":"bruno@grcs.pm"},{"name":"scalar-machine","email":"machine@scalar.com"}],"homepage":"https://github.com/scalar/scalar","bugs":{"url":"https://github.com/scalar/scalar/issues/new/choose"},"dist":{"shasum":"af18152d66ce45af36807f182834582fc21d0688","tarball":"https://registry.npmjs.org/@scalar/validation/-/validation-0.1.0.tgz","fileCount":35,"integrity":"sha512-nsLnxIGMCupkPB/PZc4R8v/WZS4zcPgxirXZ3tVBsS3PYnGclrLgvwxyRZpNi33suEcETXi03tTBonx2L6DcfQ==","signatures":[{"sig":"MEQCIHALB1mdMR+9pJCl5DSh4Y+a89BBBjXZMK14zhX7Qz1cAiBtEglApr7pr1mdi0LHOslOoU5f2myMuHV5xS0LxwbkHA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@scalar%2fvalidation@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":100439},"type":"module","_from":"file:scalar-validation-0.1.0.tgz","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsx playground/index.ts","test":"vitest","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json","types:check":"tsc --noEmit"},"_npmUser":{"name":"hanspagel","email":"mail@hanspagel.com"},"_resolved":"/tmp/c5c3b4b702e6c3b52f3f95c192cd3ca6/scalar-validation-0.1.0.tgz","_integrity":"sha512-nsLnxIGMCupkPB/PZc4R8v/WZS4zcPgxirXZ3tVBsS3PYnGclrLgvwxyRZpNi33suEcETXi03tTBonx2L6DcfQ==","repository":{"url":"git+https://github.com/scalar/scalar.git","type":"git","directory":"packages/validation"},"_npmVersion":"11.9.0","description":"A lightweight, schema-first validation library for Scalar","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"vite":"8.0.0","vitest":"4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/validation_0.1.0_1774445130699_0.6495302478199596","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@scalar/validation","version":"0.2.0","keywords":["validation","coerce","scalar"],"author":{"url":"https://github.com/scalar","name":"Scalar"},"license":"MIT","_id":"@scalar/validation@0.2.0","maintainers":[{"name":"amritkahlon","email":"amritkahlon00@gmail.com"},{"name":"cameronrohani","email":"cam@scalar.com"},{"name":"marclave","email":"marc@scalar.com"},{"name":"scalar_geoff","email":"geoff@scalar.com"},{"name":"hwkr","email":"bn@hwkr.me"},{"name":"hanspagel","email":"mail@hanspagel.com"},{"name":"bgrcs","email":"bruno@grcs.pm"},{"name":"scalar-machine","email":"machine@scalar.com"}],"homepage":"https://github.com/scalar/scalar","bugs":{"url":"https://github.com/scalar/scalar/issues/new/choose"},"dist":{"shasum":"1dd269721cf5d37fed5914c378785db1c9545203","tarball":"https://registry.npmjs.org/@scalar/validation/-/validation-0.2.0.tgz","fileCount":40,"integrity":"sha512-nWW319vw6hLDT0l+JD0Vw8e2WUE+uGuOTR3HavWsqXGAA9EyrO8dgsNL1QrLO/ccOpBZ/wapSK+1+V3vCC60gQ==","signatures":[{"sig":"MEYCIQCbylnm2DFr828ZirrLYbMA51YOM0C4TjYGcioIbYw01AIhAJn7XM3GxSv2msSqyxsuzkO7L7sPGYbkssGA5GwlnGqc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@scalar%2fvalidation@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":148361},"type":"module","_from":"file:scalar-validation-0.2.0.tgz","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsx playground/index.ts","test":"vitest","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json","types:check":"tsc --noEmit"},"_npmUser":{"name":"hanspagel","email":"mail@hanspagel.com"},"_resolved":"/tmp/aff73ed88de6cdf0fe3ef5c797d0522b/scalar-validation-0.2.0.tgz","_integrity":"sha512-nWW319vw6hLDT0l+JD0Vw8e2WUE+uGuOTR3HavWsqXGAA9EyrO8dgsNL1QrLO/ccOpBZ/wapSK+1+V3vCC60gQ==","repository":{"url":"git+https://github.com/scalar/scalar.git","type":"git","directory":"packages/validation"},"_npmVersion":"11.9.0","description":"A lightweight, schema-first validation library for Scalar","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"vite":"8.0.0","vitest":"4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/validation_0.2.0_1774966931095_0.31206247854522506","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@scalar/validation","version":"0.3.0","keywords":["validation","coerce","scalar"],"author":{"url":"https://github.com/scalar","name":"Scalar"},"license":"MIT","_id":"@scalar/validation@0.3.0","maintainers":[{"name":"amritkahlon","email":"amritkahlon00@gmail.com"},{"name":"cameronrohani","email":"cam@scalar.com"},{"name":"marclave","email":"marc@scalar.com"},{"name":"scalar_geoff","email":"geoff@scalar.com"},{"name":"hwkr","email":"bn@hwkr.me"},{"name":"hanspagel","email":"mail@hanspagel.com"},{"name":"bgrcs","email":"bruno@grcs.pm"},{"name":"scalar-machine","email":"machine@scalar.com"}],"homepage":"https://github.com/scalar/scalar","bugs":{"url":"https://github.com/scalar/scalar/issues/new/choose"},"dist":{"shasum":"2f173993599c2a4f9ea5daad2fa474fb08a153ff","tarball":"https://registry.npmjs.org/@scalar/validation/-/validation-0.3.0.tgz","fileCount":40,"integrity":"sha512-4X/AP3JO23DuYxs1MMjn6IlT9gyrKPCuZj8ybTB9QIjC+3tSJLpQOwZg7HEyyz2HoVwOt9jdef2jO3RXW7DqTw==","signatures":[{"sig":"MEUCIQDMSH0aNoXwiFjaxMBYEVh1iF925v9UUPLSWWlDfXBB1gIgYynkbmVN4ev8kLCybP7sbrgjAMi2/pW4059HMUsOuOA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@scalar%2fvalidation@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":150468},"type":"module","_from":"file:scalar-validation-0.3.0.tgz","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsx playground/index.ts","test":"vitest","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json","types:check":"tsc --noEmit"},"_npmUser":{"name":"hanspagel","email":"mail@hanspagel.com"},"_resolved":"/tmp/50beef8d07b0f845e1c60323d90c4128/scalar-validation-0.3.0.tgz","_integrity":"sha512-4X/AP3JO23DuYxs1MMjn6IlT9gyrKPCuZj8ybTB9QIjC+3tSJLpQOwZg7HEyyz2HoVwOt9jdef2jO3RXW7DqTw==","repository":{"url":"git+https://github.com/scalar/scalar.git","type":"git","directory":"packages/validation"},"_npmVersion":"11.11.0","description":"A lightweight, schema-first validation library for Scalar","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"vite":"8.0.0","vitest":"4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/validation_0.3.0_1775236491746_0.9605542354126224","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@scalar/validation","version":"0.3.1","keywords":["validation","coerce","scalar"],"author":{"url":"https://github.com/scalar","name":"Scalar"},"license":"MIT","_id":"@scalar/validation@0.3.1","maintainers":[{"name":"amritkahlon","email":"amritkahlon00@gmail.com"},{"name":"cameronrohani","email":"cam@scalar.com"},{"name":"marclave","email":"marc@scalar.com"},{"name":"scalar_geoff","email":"geoff@scalar.com"},{"name":"hwkr","email":"bn@hwkr.me"},{"name":"hanspagel","email":"mail@hanspagel.com"},{"name":"bgrcs","email":"bruno@grcs.pm"},{"name":"scalar-machine","email":"machine@scalar.com"}],"homepage":"https://github.com/scalar/scalar","bugs":{"url":"https://github.com/scalar/scalar/issues/new/choose"},"dist":{"shasum":"7a9930bebf09209d048b50ddc2f04b15c7c89c67","tarball":"https://registry.npmjs.org/@scalar/validation/-/validation-0.3.1.tgz","fileCount":25,"integrity":"sha512-qW9038szH1MFCVa8Lsp/bGfR9aNEXNXeut85B5d0wCC2e4vkzVGjCnB0UyrfYQNc6+VA/4CoTPpQFI858gkLrw==","signatures":[{"sig":"MEQCIBb7IKYfzPtpyXi5AU5Lqg7jTpUkM8VcvXZYVMfJcb7EAiBdpB4OH1TW9og36eBbjK3ZAcQM8b7kcOHC3tPtuEo8Zg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@scalar%2fvalidation@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54707},"type":"module","_from":"file:scalar-validation-0.3.1.tgz","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsx playground/index.ts","test":"vitest --run","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json","types:check":"tsc --noEmit"},"_npmUser":{"name":"hanspagel","email":"mail@hanspagel.com"},"_resolved":"/tmp/cf4247489226d03dd90a58e42f4efd73/scalar-validation-0.3.1.tgz","_integrity":"sha512-qW9038szH1MFCVa8Lsp/bGfR9aNEXNXeut85B5d0wCC2e4vkzVGjCnB0UyrfYQNc6+VA/4CoTPpQFI858gkLrw==","repository":{"url":"git+https://github.com/scalar/scalar.git","type":"git","directory":"packages/validation"},"_npmVersion":"11.11.0","description":"A lightweight, schema-first validation library for Scalar","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"vite":"8.0.0","vitest":"4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/validation_0.3.1_1777484480671_0.7859981655869057","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@scalar/validation","version":"0.3.2","keywords":["validation","coerce","scalar"],"author":{"url":"https://github.com/scalar","name":"Scalar"},"license":"MIT","_id":"@scalar/validation@0.3.2","maintainers":[{"name":"amritkahlon","email":"amritkahlon00@gmail.com"},{"name":"cameronrohani","email":"cam@scalar.com"},{"name":"marclave","email":"marc@scalar.com"},{"name":"scalar_geoff","email":"geoff@scalar.com"},{"name":"hwkr","email":"bn@hwkr.me"},{"name":"hanspagel","email":"mail@hanspagel.com"},{"name":"bgrcs","email":"bruno@grcs.pm"},{"name":"scalar-machine","email":"machine@scalar.com"}],"homepage":"https://github.com/scalar/scalar","bugs":{"url":"https://github.com/scalar/scalar/issues/new/choose"},"dist":{"shasum":"b25bd88a9bb9dc674ac3e93665c8db9efcf3168b","tarball":"https://registry.npmjs.org/@scalar/validation/-/validation-0.3.2.tgz","fileCount":25,"integrity":"sha512-iepw5zfpne2mNsCQdN/pST4HEfGwp7LMTb/f1sRuIN25SEXbdeUDvZnk1eoEPxol2TgGJUR3QXfaHQ4f8p6wHw==","signatures":[{"sig":"MEUCIQCA/0Y2dkSSsFOfMgUOHg4C8mvudIfF5wy/tnFH6GsjAgIgI+pozhtfwWgri0U+XjC8SOltx8aREOdej+fHahAaQVQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@scalar%2fvalidation@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54841},"type":"module","_from":"file:scalar-validation-0.3.2.tgz","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsx playground/index.ts","test":"vitest --run","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json","types:check":"tsc --noEmit"},"_npmUser":{"name":"hanspagel","email":"mail@hanspagel.com"},"_resolved":"/tmp/c6b4cf319de3fa66694378bc8be4a369/scalar-validation-0.3.2.tgz","_integrity":"sha512-iepw5zfpne2mNsCQdN/pST4HEfGwp7LMTb/f1sRuIN25SEXbdeUDvZnk1eoEPxol2TgGJUR3QXfaHQ4f8p6wHw==","repository":{"url":"git+https://github.com/scalar/scalar.git","type":"git","directory":"packages/validation"},"_npmVersion":"11.11.0","description":"A lightweight, schema-first validation library for Scalar","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"vite":"8.0.0","vitest":"4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/validation_0.3.2_1777498346999_0.1490915622690907","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@scalar/validation","version":"0.5.0","keywords":["validation","coerce","scalar"],"author":{"url":"https://github.com/scalar","name":"Scalar"},"license":"MIT","_id":"@scalar/validation@0.5.0","maintainers":[{"name":"cameronrohani","email":"cam@scalar.com"},{"name":"marclave","email":"marc@scalar.com"},{"name":"scalar_geoff","email":"geoff@scalar.com"},{"name":"hwkr","email":"bn@hwkr.me"},{"name":"hanspagel","email":"mail@hanspagel.com"},{"name":"bgrcs","email":"bruno@grcs.pm"},{"name":"scalar-machine","email":"machine@scalar.com"}],"homepage":"https://github.com/scalar/scalar","bugs":{"url":"https://github.com/scalar/scalar/issues/new/choose"},"dist":{"shasum":"9beb0de44bf876c2a11a2c20ceda1cedfa9054ea","tarball":"https://registry.npmjs.org/@scalar/validation/-/validation-0.5.0.tgz","fileCount":25,"integrity":"sha512-48CS1B0C7im57RQCHhS0GKt+qDLxB34IX8rO91jZj9D+Y/OosQZG3Gy57gJdHqZoD7l0sPUZtF8tVYry3BxRtw==","signatures":[{"sig":"MEQCIB1q9dcQeo89zbCt6cply43ENtVtjYQj4uBHu3cqVkurAiB0YSqSDjfEhIFqXPnyZSjfySEi7qNIjmpZmBO7YQRZWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@scalar%2fvalidation@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":60007},"type":"module","_from":"file:scalar-validation-0.5.0.tgz","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsx playground/index.ts","test":"vitest --run","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json","types:check":"tsc --noEmit"},"_npmUser":{"name":"hanspagel","email":"mail@hanspagel.com"},"_resolved":"/tmp/1ff348a60e10c38d2534f1b3c63c9f17/scalar-validation-0.5.0.tgz","_integrity":"sha512-48CS1B0C7im57RQCHhS0GKt+qDLxB34IX8rO91jZj9D+Y/OosQZG3Gy57gJdHqZoD7l0sPUZtF8tVYry3BxRtw==","repository":{"url":"git+https://github.com/scalar/scalar.git","type":"git","directory":"packages/validation"},"_npmVersion":"11.12.1","description":"A lightweight, schema-first validation library for Scalar","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"vite":"8.0.0","vitest":"4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/validation_0.5.0_1778784743637_0.5096806711851376","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@scalar/validation","version":"0.6.0","keywords":["validation","coerce","scalar"],"author":{"url":"https://github.com/scalar","name":"Scalar"},"license":"MIT","_id":"@scalar/validation@0.6.0","maintainers":[{"name":"cameronrohani","email":"cam@scalar.com"},{"name":"marclave","email":"marc@scalar.com"},{"name":"scalar_geoff","email":"geoff@scalar.com"},{"name":"hwkr","email":"bn@hwkr.me"},{"name":"hanspagel","email":"mail@hanspagel.com"},{"name":"bgrcs","email":"bruno@grcs.pm"},{"name":"scalar-machine","email":"machine@scalar.com"}],"homepage":"https://github.com/scalar/scalar","bugs":{"url":"https://github.com/scalar/scalar/issues/new/choose"},"dist":{"shasum":"70e8b8a7eec6b86fd76f569b614e22bb41209f06","tarball":"https://registry.npmjs.org/@scalar/validation/-/validation-0.6.0.tgz","fileCount":25,"integrity":"sha512-tpmmG+/xRE2Kn9RpflU3AIyZv08v10+E1ZrJCx7z6+/91zHVxy0M73kC1LT4/8PbYNt85ywyC8+n+D99JdMcGA==","signatures":[{"sig":"MEUCIGIr+PlGx8iJ2i8ydAKErsZ54eHq2AZ09Z7eQWA5If+eAiEA9Bw4GRr+U1dQM/itLiq9wpFaISICtr3/1wQ9He8SsIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@scalar%2fvalidation@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":76992},"type":"module","_from":"file:scalar-validation-0.6.0.tgz","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsx playground/index.ts","test":"vitest --run","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json","types:check":"tsc --noEmit"},"_npmUser":{"name":"hanspagel","email":"mail@hanspagel.com"},"_resolved":"/tmp/2fa37ee3cd9b792204dc873fc6e0b344/scalar-validation-0.6.0.tgz","_integrity":"sha512-tpmmG+/xRE2Kn9RpflU3AIyZv08v10+E1ZrJCx7z6+/91zHVxy0M73kC1LT4/8PbYNt85ywyC8+n+D99JdMcGA==","repository":{"url":"git+https://github.com/scalar/scalar.git","type":"git","directory":"packages/validation"},"_npmVersion":"11.12.1","description":"A lightweight, schema-first validation library for Scalar","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"vite":"8.0.0","vitest":"4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/validation_0.6.0_1779388267448_0.5533028288952309","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@scalar/validation","version":"0.6.1","keywords":["validation","coerce","scalar"],"author":{"url":"https://github.com/scalar","name":"Scalar"},"license":"MIT","_id":"@scalar/validation@0.6.1","maintainers":[{"name":"cameronrohani","email":"cam@scalar.com"},{"name":"marclave","email":"marc@scalar.com"},{"name":"scalar_geoff","email":"geoff@scalar.com"},{"name":"hwkr","email":"bn@hwkr.me"},{"name":"hanspagel","email":"mail@hanspagel.com"},{"name":"amritk","email":"amrit+spam@hockey-community.com"},{"name":"bgrcs","email":"bruno@grcs.pm"},{"name":"scalar-machine","email":"machine@scalar.com"}],"homepage":"https://github.com/scalar/scalar","bugs":{"url":"https://github.com/scalar/scalar/issues/new/choose"},"dist":{"shasum":"c4ad3a7f8dbb27b41896366ba75d0e2b2b85f7ba","tarball":"https://registry.npmjs.org/@scalar/validation/-/validation-0.6.1.tgz","fileCount":25,"integrity":"sha512-XeJ+pvxag0rguuRT6hxNSXIsxleB8Gcs6WQ55vFRkB4qo2CCO+wIli+uipzM3pILu5cP7agcL3pgADiZzd1ZNg==","signatures":[{"sig":"MEQCIDDjHeBM4bdMzRjRunPm28zjANXTfnemFj6uw2JB43OHAiBfc8m5X2Y5+I1HtanQB/HOuurV9uq4ZugcueyhbnIAcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@scalar%2fvalidation@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78343},"type":"module","_from":"file:scalar-validation-0.6.1.tgz","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsx playground/index.ts","test":"vitest --run","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json","types:check":"tsc --noEmit"},"_npmUser":{"name":"hanspagel","email":"mail@hanspagel.com"},"_resolved":"/tmp/80480a5b410439167471b887b02224b8/scalar-validation-0.6.1.tgz","_integrity":"sha512-XeJ+pvxag0rguuRT6hxNSXIsxleB8Gcs6WQ55vFRkB4qo2CCO+wIli+uipzM3pILu5cP7agcL3pgADiZzd1ZNg==","repository":{"url":"git+https://github.com/scalar/scalar.git","type":"git","directory":"packages/validation"},"_npmVersion":"11.16.0","description":"A lightweight, schema-first validation library for Scalar","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"vite":"8.0.0","vitest":"4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/validation_0.6.1_1784147942197_0.8947616198234045","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@scalar/validation","version":"0.6.2","keywords":["validation","coerce","scalar"],"author":{"url":"https://github.com/scalar","name":"Scalar"},"license":"MIT","_id":"@scalar/validation@0.6.2","maintainers":[{"name":"cameronrohani","email":"cam@scalar.com"},{"name":"marclave","email":"marc@scalar.com"},{"name":"scalar_geoff","email":"geoff@scalar.com"},{"name":"hwkr","email":"bn@hwkr.me"},{"name":"hanspagel","email":"mail@hanspagel.com"},{"name":"amritk","email":"amrit+spam@hockey-community.com"},{"name":"bgrcs","email":"bruno@grcs.pm"},{"name":"scalar-machine","email":"machine@scalar.com"}],"homepage":"https://github.com/scalar/scalar","bugs":{"url":"https://github.com/scalar/scalar/issues/new/choose"},"dist":{"shasum":"79264de2375b5e21bcabb75e116ab3580fe3666c","tarball":"https://registry.npmjs.org/@scalar/validation/-/validation-0.6.2.tgz","fileCount":25,"integrity":"sha512-Sc1TkcwGV6aVCO51AyKeaGiP8gpwAHxEtO5d3tZzPV+KsnlC/YokQxFxwBrbIXw73k9hmcExnJyGu3k5i6n6VA==","signatures":[{"sig":"MEUCIBPc2FfutAuVVLoim/M+clXfiyB8IquS8Vsi+rV4J9aIAiEAoikhyegOh9xsyHmXAPCdg1YANWrT4J21foULXdGN78E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@scalar%2fvalidation@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78383},"type":"module","_from":"file:scalar-validation-0.6.2.tgz","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsx playground/index.ts","test":"vitest --run","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json","types:check":"tsc --noEmit"},"_npmUser":{"name":"hanspagel","email":"mail@hanspagel.com"},"_resolved":"/tmp/7f7f8caaf28c04d1db960dde2fca905e/scalar-validation-0.6.2.tgz","_integrity":"sha512-Sc1TkcwGV6aVCO51AyKeaGiP8gpwAHxEtO5d3tZzPV+KsnlC/YokQxFxwBrbIXw73k9hmcExnJyGu3k5i6n6VA==","repository":{"url":"git+https://github.com/scalar/scalar.git","type":"git","directory":"packages/validation"},"_npmVersion":"11.16.0","description":"A lightweight, schema-first validation library for Scalar","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"vite":"8.0.0","vitest":"4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/validation_0.6.2_1784239684611_0.23318539919915704","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@scalar/validation","version":"0.6.3","keywords":["validation","coerce","scalar"],"author":{"url":"https://github.com/scalar","name":"Scalar"},"license":"MIT","_id":"@scalar/validation@0.6.3","maintainers":[{"name":"cameronrohani","email":"cam@scalar.com"},{"name":"marclave","email":"marc@scalar.com"},{"name":"scalar_geoff","email":"geoff@scalar.com"},{"name":"hwkr","email":"bn@hwkr.me"},{"name":"hanspagel","email":"mail@hanspagel.com"},{"name":"amritk","email":"amrit+spam@hockey-community.com"},{"name":"scalar-machine","email":"machine@scalar.com"}],"homepage":"https://github.com/scalar/scalar","bugs":{"url":"https://github.com/scalar/scalar/issues/new/choose"},"dist":{"shasum":"810bc7da3b29499718da0ec5ae6d8f66bf5a1c06","tarball":"https://registry.npmjs.org/@scalar/validation/-/validation-0.6.3.tgz","fileCount":25,"integrity":"sha512-j3s9XPv8Wo1EG5/naBi4XGF0uXYQ2A3QZNI0NKWgCMxRHVrDJGlZEYymcHDHY7fquRm73P8U3c8xqJqB5yad6w==","signatures":[{"sig":"MEUCIQDniVIeHMNN4uGqUui/taDvZAfDcchW4kgXIC8NKo5W0AIgZ7uDq46cg8ehiApsS86SApmWqHDSgXNpA0Xxzh4z/kg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCJ8nApp6yQ/XSnXBVIdDaogKc0oDQmZ4oKKjeKj4fmPQIgRvuObw1ujTn0R0Hbl/Gz8b8Yu1mWrKXIs28RL4TYHrE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@scalar%2fvalidation@0.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78557},"type":"module","_from":"file:scalar-validation-0.6.3.tgz","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsx playground/index.ts","test":"vitest --run","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json","types:check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:17652dd8-aa33-4988-b2f4-aa15e6ce99ce"}},"_resolved":"/tmp/02c0aeff0319b04e844663e91e78e78b/scalar-validation-0.6.3.tgz","_integrity":"sha512-j3s9XPv8Wo1EG5/naBi4XGF0uXYQ2A3QZNI0NKWgCMxRHVrDJGlZEYymcHDHY7fquRm73P8U3c8xqJqB5yad6w==","repository":{"url":"git+https://github.com/scalar/scalar.git","type":"git","directory":"packages/validation"},"_npmVersion":"11.17.0","description":"A lightweight, schema-first validation library for Scalar","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"vite":"8.1.5","vitest":"4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/validation_0.6.3_1787260262774_0.8095349198517345","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"@scalar/validation","version":"0.6.4","keywords":["validation","coerce","scalar"],"author":"Scalar (https://github.com/scalar)","license":"MIT","_id":"@scalar/validation@0.6.4","maintainers":[{"name":"cameronrohani","email":"cam@scalar.com"},{"name":"marclave","email":"marc@scalar.com"},{"name":"scalar_geoff","email":"geoff@scalar.com"},{"name":"hwkr","email":"bn@hwkr.me"},{"name":"hanspagel","email":"mail@hanspagel.com"},{"name":"amritk","email":"amrit@scalar.com"},{"name":"scalar-machine","email":"machine@scalar.com"}],"homepage":"https://github.com/scalar/scalar","bugs":"https://github.com/scalar/scalar/issues/new/choose","dist":{"shasum":"85a70f2b93d82c8a63dd3fd5d1030975613cdf76","tarball":"https://registry.npmjs.org/@scalar/validation/-/validation-0.6.4.tgz","fileCount":25,"integrity":"sha512-s93HFX0+N6bLwGjZPKFGVHq/gWiZy1YQkR2+dSflbUdYp+4j2Pg+WDA0gwbFrsOlgtkEjwQbjXtbmBiFTtPYUg==","signatures":[{"sig":"MEQCIBdTyT0CMcS8/JZ2Rsr5SzBMo0OYzx3KFodZ8PygXyd2AiBuEi1vhPFh2Bwy+1WBBp7pQRUm8nMLje4nEvPF7IW+4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD94nVtIOsYtq0eHV+3LJXbu3j2ST3QeP4Zjd2aO5wjfQIgVx7B6/EnhTc+n8WMqrC82+b00DgY+oxiTe+ELoe0QJc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@scalar%2fvalidation@0.6.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78831},"type":"module","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsx playground/index.ts","test":"vitest --run","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json","types:check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:17652dd8-aa33-4988-b2f4-aa15e6ce99ce"}},"repository":{"url":"git+https://github.com/scalar/scalar.git","type":"git","directory":"packages/validation"},"description":"A lightweight, schema-first validation library for Scalar","directories":{},"_hasShrinkwrap":false,"devDependencies":{"vite":"8.1.5","vitest":"4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/validation_0.6.4_1790077291113_0.07851685307781175","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"_id":"@scalar/validation@0.6.5","bugs":"https://github.com/scalar/scalar/issues/new/choose","dist":{"shasum":"6e35bedccbb14817f31ae0e4cfd3104614dbf28f","tarball":"https://registry.npmjs.org/@scalar/validation/-/validation-0.6.5.tgz","fileCount":25,"integrity":"sha512-t/dtbqesbOLsTusFI2kXfiFEQOiZC7+oAY+jZnE82Y64xLamo/1KrZpta8GkuAfIHyeOHOx5bDFid04eO13MIg==","signatures":[{"sig":"MEQCIHDPEJ4oWOCVxNLmya4tnBr9Uvr6ui55QnTFSw1esyRqAiABrvvIry+HnwXwWgD5qjtT2zIO8DnvS71WXITbhauIFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCuw38kdl0UAcofeoCDcFRbYCMXvKk34jgrP6G5kYPB8gIhAOj5bZ3d3amzQ3mz0og9Je0H9s2URSp/DUl0E/AmT0FR"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@scalar%2fvalidation@0.6.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":83993},"name":"@scalar/validation","type":"module","author":"Scalar (https://github.com/scalar)","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"license":"MIT","scripts":{"dev":"tsx playground/index.ts","test":"vitest --run","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json","types:check":"tsc --noEmit"},"version":"0.6.5","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:17652dd8-aa33-4988-b2f4-aa15e6ce99ce"}},"homepage":"https://github.com/scalar/scalar","keywords":["validation","coerce","scalar"],"repository":{"url":"git+https://github.com/scalar/scalar.git","type":"git","directory":"packages/validation"},"description":"A lightweight, schema-first validation library for Scalar","directories":{},"maintainers":[{"name":"cameronrohani","email":"cam@scalar.com"},{"name":"marclave","email":"marc@scalar.com"},{"name":"scalar_geoff","email":"geoff@scalar.com"},{"name":"hwkr","email":"bn@hwkr.me"},{"name":"hanspagel","email":"mail@hanspagel.com"},{"name":"amritk","email":"amrit@scalar.com"},{"name":"scalar-machine","email":"machine@scalar.com"}],"_hasShrinkwrap":false,"devDependencies":{"vite":"8.1.5","vitest":"4.1.10"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/validation_0.6.5_1790249758210_0.48765991302071576"}}},"time":{"created":"2026-03-25T13:25:30.608Z","modified":"2026-09-24T11:35:58.741Z","0.1.0":"2026-03-25T13:25:30.849Z","0.2.0":"2026-03-31T14:22:11.256Z","0.3.0":"2026-04-03T17:14:51.889Z","0.3.1":"2026-04-29T17:41:20.826Z","0.3.2":"2026-04-29T21:32:27.137Z","0.5.0":"2026-05-14T18:52:23.790Z","0.6.0":"2026-05-21T18:31:07.588Z","0.6.1":"2026-07-15T20:39:02.331Z","0.6.2":"2026-07-16T22:08:04.754Z","0.6.3":"2026-08-20T21:11:02.864Z","0.6.4":"2026-09-22T11:41:31.198Z","0.6.5":"2026-09-24T11:35:58.306Z"},"bugs":"https://github.com/scalar/scalar/issues/new/choose","author":"Scalar (https://github.com/scalar)","license":"MIT","homepage":"https://github.com/scalar/scalar","keywords":["validation","coerce","scalar"],"repository":{"url":"git+https://github.com/scalar/scalar.git","type":"git","directory":"packages/validation"},"description":"A lightweight, schema-first validation library for Scalar","maintainers":[{"name":"cameronrohani","email":"cam@scalar.com"},{"name":"marclave","email":"marc@scalar.com"},{"name":"scalar_geoff","email":"geoff@scalar.com"},{"name":"hwkr","email":"bn@hwkr.me"},{"name":"hanspagel","email":"mail@hanspagel.com"},{"name":"amritk","email":"amrit@scalar.com"},{"name":"scalar-machine","email":"machine@scalar.com"}],"readme":"# `@scalar/validation`\n\nSmall, schema-first helpers to **check** unknown data and **coerce** it into predictable shapes. Schemas are plain JavaScript objects (easy to serialize or log), and TypeScript can infer output types with `Static`.\n\n---\n\nScalar is an open-source API platform for teams who want beautiful developer interfaces without vendor lock-in.\n\n- **[API References](https://scalar.com/products/api-references/getting-started)** — Interactive API documentation from OpenAPI and AsyncAPI specs.\n- **[Developer Docs](https://scalar.com/products/docs/getting-started)** — Write in Markdown/MDX, generate API references, sync with two-way Git.\n- **[SDK Generator](https://scalar.com/products/sdk-generator/getting-started)** — Type-safe SDKs and CLIs in TypeScript, Python, Go, PHP, Java, and Ruby.\n- **[API Client](https://scalar.com/products/api-client/getting-started)** — Open-source, offline-first Postman alternative built on OpenAPI.\n\n20M+ monthly npm installs · 15,500+ GitHub stars · MIT licensed · [scalar.com](https://scalar.com)\n\n---\n\n## Install\n\nThis package lives in the Scalar monorepo. In workspace consumers:\n\n```bash\npnpm add @scalar/validation\n```\n\n## Quick start\n\n```ts\nimport { coerce, number, object, string, validate, type Static } from '@scalar/validation'\n\nconst userSchema = object({\n  id: number(),\n  name: string(),\n})\n\ntype User = Static<typeof userSchema>\n\nvalidate(userSchema, { id: 1, name: 'Ada' }) // true\nvalidate(userSchema, { id: 1, name: 2 }) // false\n\n// Best-effort shaping: invalid primitives fall back to defaults\ncoerce(userSchema, { id: 'x', name: 'Ada' }) // { id: 0, name: 'Ada' }\n```\n\n## Concepts\n\n### `validate(schema, value)`\n\nReturns `true` if `value` satisfies `schema`, otherwise `false`.\n\n- **`undefined` schema** — always fails.\n- **`number()`** — finite numbers only (`NaN` and `Infinity` fail).\n- **`object({ ... })`** — value must be a **plain object** (see [Objects and records](#objects-and-records)). Each declared property is validated; **extra properties are not rejected**.\n- **`union([...])`** — matches if **any** branch matches.\n\n### `coerce(schema, value)`\n\nReturns a value typed as `Static<typeof schema>`. It is **not** strict validation: it **normalizes** toward the schema.\n\n- Valid primitives are returned as-is.\n- Invalid **number** → `0`, invalid **string** → `''`, invalid **boolean** → `false`.\n- **`nullable()`** — result is always `null`.\n- **`notDefined()`** — result is always `undefined`.\n- **`literal(x)`** — result is always the schema’s literal `x` (the declared constant).\n- **`array` / `object` / `record`** — built recursively; wrong shapes become empty containers or defaulted fields.\n- **`union`** — picks a branch using a **scoring** heuristic (object shape and literal tags weigh more than “property exists”).\n- Optional third argument: internal **`WeakMap` cache** for cyclic graphs; you normally omit it.\n\nUse **`validate`** when you need a yes/no. Use **`coerce`** when you want a stable default-filled structure (for example normalizing config or parsed JSON).\n\n## Schema builders\n\n| Builder | Validates | `Static` type (idea) |\n|--------|-----------|----------------------|\n| `number()` | Finite `number` | `number` |\n| `string()` | `string` | `string` |\n| `boolean()` | `boolean` | `boolean` |\n| `nullable()` | `null` only | `null` |\n| `notDefined()` | `undefined` only | `undefined` |\n| `any()` | Anything | `any` |\n| `literal(v)` | Strict equality to `v` | `typeof v` |\n| `array(item)` | Array; every item matches `item` | `Static<item>[]` |\n| `record(key, value)` | Plain object; keys and values match | `Record<…, …>` |\n| `object(props)` | Plain object; each key in `props` | Object of static fields |\n| `union([a, b, …])` | Matches any member | Union of branches |\n| `optional(s)` | `undefined` or matches `s` | `Static<s> \\| undefined`; in `object({ … })`, property becomes `key?: Static<s>` |\n| `lazy(() => schema)` | Defers schema (recursion) | Inferred from inner schema |\n| `evaluate(fn, schema)` | Runs `fn(value)` then validates `schema` | `Static<schema>` |\n\n```ts\nimport { lazy, object, string, union, literal } from '@scalar/validation'\n\n// Discriminated-style union\nconst message = union([\n  object({ type: literal('text'), body: string() }),\n  object({ type: literal('ping') }),\n])\n```\n\n### `evaluate` — parse then validate\n\n```ts\nimport { evaluate, number, string } from '@scalar/validation'\n\nconst trimmed = evaluate((v) => (typeof v === 'string' ? v.trim() : v), string())\n\nvalidate(trimmed, '  hi  ') // true (after trim)\n```\n\n## Objects and records\n\n**Plain object** means: not `null`, and prototype is `Object.prototype` or `null`. Arrays, `Date`, and most class instances **do not** count as objects for `object()` / `record()` validation.\n\n**`object`** checks only the keys you list. Missing keys are read as `undefined`, so pair them with `optional(...)` when a field may be absent.\n\n**`record`** during **validation** checks every key against the key schema and every value against the value schema. During **coercion**, entries keep their string keys as-is and only values are coerced.\n\n## TypeScript: `Static` and `Schema`\n\n- **`Static<S>`** — inferred TypeScript type for data that matches schema `S` (depth-limited to avoid infinite recursion on very deep types).\n- **`Schema`** — union of all schema shapes; use when you store or pass schemas around.\n\n## Development\n\n```bash\npnpm --filter @scalar/validation test\npnpm --filter @scalar/validation types:check\npnpm --filter @scalar/validation build\n```\n\n## License\n\nMIT\n","readmeFilename":""}