{"_id":"@deepseek-ai/schemastery","_rev":"14-b87188c4d861167ff8652b92e4295ade","name":"@deepseek-ai/schemastery","dist-tags":{"dsh-0-2-1-alpha-1":"3.18.5-alpha.1","dsh-0-2-1-alpha-3":"3.18.5-alpha.2","latest":"3.19.0","next":"3.18.6-alpha.2"},"versions":{"3.18.1-rc.1":{"name":"@deepseek-ai/schemastery","version":"3.18.1-rc.1","author":{"name":"Shigma","email":"shigma10826@gmail.com"},"license":"MIT","_id":"@deepseek-ai/schemastery@3.18.1-rc.1","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"674c6c0670f180ce2144f389bb714047224d3347","tarball":"https://registry.npmjs.org/@deepseek-ai/schemastery/-/schemastery-3.18.1-rc.1.tgz","fileCount":8,"integrity":"sha512-gilia4mY6S/j6oFYsn4x2Ve9K6QfvzTgqJntkty0wFsKjTYHQ6e2WDvXLMw48t75WRBhpLt+ZpFm3GHmTWkNMw==","signatures":[{"sig":"MEUCICx4aCN0WOn+0SkFMZju6RbkP4qkLgnoMCdbr7CstMV1AiEAsXrgZBqX6WzXmEjpXU31PJt8Z6+UL/YO+HXEg48HGhw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108035},"main":"lib/index.cjs","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.1-rc.1.tgz","types":"lib/types/index.d.ts","module":"lib/index.mjs","exports":{".":{"types":"./lib/types/index.d.ts","import":"./lib/index.mjs","require":"./lib/index.cjs"},"./src/*":"./src/*","./package.json":"./package.json"},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.1-rc.1.tgz","_integrity":"sha512-gilia4mY6S/j6oFYsn4x2Ve9K6QfvzTgqJntkty0wFsKjTYHQ6e2WDvXLMw48t75WRBhpLt+ZpFm3GHmTWkNMw==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"vendor/schemastery"},"_npmVersion":"11.16.0","description":"Type driven schema validator","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@deepseek-ai/cosmokit":"^1.8.2-rc.1","@standard-schema/spec":"^1.1.0"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/schemastery_3.18.1-rc.1_1786388514838_0.5696096390328829","host":"s3://npm-registry-packages-npm-production"}},"3.18.1-rc.4":{"name":"@deepseek-ai/schemastery","version":"3.18.1-rc.4","author":{"name":"Shigma","email":"shigma10826@gmail.com"},"license":"MIT","_id":"@deepseek-ai/schemastery@3.18.1-rc.4","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"5428ee611f9515f632874de5576d48c577594de8","tarball":"https://registry.npmjs.org/@deepseek-ai/schemastery/-/schemastery-3.18.1-rc.4.tgz","fileCount":8,"integrity":"sha512-ZcaEjf3Mh0WN7Zlfm+syfff5dIFjy17lxXGsCcmwEtdQMjVsaRDGFX0yFZYSy7YsF5gx+d7FhFaQPVJIh/Zrlg==","signatures":[{"sig":"MEUCID/2Rio2N54ywcYLi0LyxdXmNUSbfsgmKCKh9i2mFz9qAiEApAerTD4wzugKhHu8wwSQG1mzkMlkyAulN0+ZF5KDox4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108035},"main":"lib/index.cjs","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.1-rc.4.tgz","types":"lib/types/index.d.ts","module":"lib/index.mjs","exports":{".":{"types":"./lib/types/index.d.ts","import":"./lib/index.mjs","require":"./lib/index.cjs"},"./src/*":"./src/*","./package.json":"./package.json"},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.1-rc.4.tgz","_integrity":"sha512-ZcaEjf3Mh0WN7Zlfm+syfff5dIFjy17lxXGsCcmwEtdQMjVsaRDGFX0yFZYSy7YsF5gx+d7FhFaQPVJIh/Zrlg==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"vendor/schemastery"},"_npmVersion":"11.17.0","description":"Type driven schema validator","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@deepseek-ai/cosmokit":"^1.8.2-rc.4","@standard-schema/spec":"^1.1.0"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/schemastery_3.18.1-rc.4_1786572897495_0.36126400403696035","host":"s3://npm-registry-packages-npm-production"}},"3.18.1":{"name":"@deepseek-ai/schemastery","version":"3.18.1","author":{"name":"Shigma","email":"shigma10826@gmail.com"},"license":"MIT","_id":"@deepseek-ai/schemastery@3.18.1","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"b5a37462550431408c94fb0fc31fd8a2a5471576","tarball":"https://registry.npmjs.org/@deepseek-ai/schemastery/-/schemastery-3.18.1.tgz","fileCount":8,"integrity":"sha512-Qn0FCSwCQnpnj6SB31I6i2sIKgKWnkbJM8O0EU91Gv2UsYVvtZTl6IA0sCwk2e2MZf5S8w5hpq9QkeVvK9qwxg==","signatures":[{"sig":"MEYCIQDiDY040T+cakC5XLybi7F3CR0rxB4x6FzJmfsEr35hFwIhALT6D5SMk+Nt07JGAY/2lsEqP7V5L1sXcwikjjrT/etm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108021},"main":"lib/index.cjs","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.1.tgz","types":"lib/types/index.d.ts","module":"lib/index.mjs","exports":{".":{"types":"./lib/types/index.d.ts","import":"./lib/index.mjs","require":"./lib/index.cjs"},"./src/*":"./src/*","./package.json":"./package.json"},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.1.tgz","_integrity":"sha512-Qn0FCSwCQnpnj6SB31I6i2sIKgKWnkbJM8O0EU91Gv2UsYVvtZTl6IA0sCwk2e2MZf5S8w5hpq9QkeVvK9qwxg==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"vendor/schemastery"},"_npmVersion":"11.17.0","description":"Type driven schema validator","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@deepseek-ai/cosmokit":"^1.8.2","@standard-schema/spec":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/schemastery_3.18.1_1786607363013_0.2954208158781828","host":"s3://npm-registry-packages-npm-production"}},"3.18.2":{"name":"@deepseek-ai/schemastery","version":"3.18.2","author":{"name":"Shigma","email":"shigma10826@gmail.com"},"license":"MIT","_id":"@deepseek-ai/schemastery@3.18.2","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"af3a3210e3c71cbfdcf34423982da3aa2550fa7a","tarball":"https://registry.npmjs.org/@deepseek-ai/schemastery/-/schemastery-3.18.2.tgz","fileCount":8,"integrity":"sha512-njDtZsznjYxok7KLLlHOPyuv2efdWVbSflAHgztSfbMsg+CVraEoRe2DjOCgClYv3ZCSm7WXoaUkbB/+RY7tWQ==","signatures":[{"sig":"MEYCIQD0uqqpqp7l9CJrtp8zZ+0Tk3Hlc+whj3PyBOi/CriCZwIhAKTWl3RE0scDNaddgehmKmU8dng0VjddtGejOE5gyc5q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDTfBg/QEVz/WkTrDFTjHJJ2GPIqN22FS9SQRRwSD2RtwIhAOJZvZFnEWZzeXkhM1Dk63xr/M9yAaaUXPccSZkzzYA+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108021},"main":"lib/index.cjs","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.2.tgz","types":"lib/types/index.d.ts","module":"lib/index.mjs","exports":{".":{"types":"./lib/types/index.d.ts","import":"./lib/index.mjs","require":"./lib/index.cjs"},"./src/*":"./src/*","./package.json":"./package.json"},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.2.tgz","_integrity":"sha512-njDtZsznjYxok7KLLlHOPyuv2efdWVbSflAHgztSfbMsg+CVraEoRe2DjOCgClYv3ZCSm7WXoaUkbB/+RY7tWQ==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"vendor/schemastery"},"_npmVersion":"11.17.0","description":"Type driven schema validator","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@deepseek-ai/cosmokit":"^1.8.3","@standard-schema/spec":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/schemastery_3.18.2_1788095656552_0.24808718316232858","host":"s3://npm-registry-packages-npm-production"}},"3.18.3":{"name":"@deepseek-ai/schemastery","version":"3.18.3","author":{"name":"Shigma","email":"shigma10826@gmail.com"},"license":"MIT","_id":"@deepseek-ai/schemastery@3.18.3","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"330acd7811ce0c871368148eb0b75085a32b1fc0","tarball":"https://registry.npmjs.org/@deepseek-ai/schemastery/-/schemastery-3.18.3.tgz","fileCount":8,"integrity":"sha512-plZIZADuGLT/3PoYmUaEDZd0vG1rVahU89MevnxXsyQhFEi2D6DUuTJel7FUb3cUM9aCzqGMN99sHJe1RIushA==","signatures":[{"sig":"MEUCIBO9Pjqt3AmF9TVb/YdATVTI8zJijVBoh+9eH3f/ufxLAiEA36Sg1vsb8d3cDbKC0OuxigXHsyrxBFn9p8srPe+Ebs8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGswkn3mnBj0dd7BBrhbolVyK5V9jGuEmjeR8vVRMrUlAiAJ63oKdYcA0KLkDDTU2u+lY1JxoPdduvK9Z2wCbOejMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118476},"main":"lib/index.cjs","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.3.tgz","types":"lib/types/index.d.ts","module":"lib/index.mjs","exports":{".":{"types":"./lib/types/index.d.ts","import":"./lib/index.mjs","require":"./lib/index.cjs"},"./src/*":"./src/*","./package.json":"./package.json"},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.3.tgz","_integrity":"sha512-plZIZADuGLT/3PoYmUaEDZd0vG1rVahU89MevnxXsyQhFEi2D6DUuTJel7FUb3cUM9aCzqGMN99sHJe1RIushA==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"vendor/schemastery"},"_npmVersion":"11.19.0","description":"Type driven schema validator","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@deepseek-ai/cosmokit":"^1.8.4","@standard-schema/spec":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/schemastery_3.18.3_1790048795028_0.1916563485694991","host":"s3://npm-registry-packages-npm-production"}},"3.18.4":{"name":"@deepseek-ai/schemastery","version":"3.18.4","author":{"name":"Shigma","email":"shigma10826@gmail.com"},"license":"MIT","_id":"@deepseek-ai/schemastery@3.18.4","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"1282eef311bb0cfdffca5881fce27fa77a6bbe73","tarball":"https://registry.npmjs.org/@deepseek-ai/schemastery/-/schemastery-3.18.4.tgz","fileCount":8,"integrity":"sha512-SSXO6tYuyrIqKVbmOnIq0s+riUywYzouFMcnBluHF9n4KMo2G8HvEzhCYj6pj2617/glOjbJuVInJ9hfONsjkg==","signatures":[{"sig":"MEUCIG1H7mHAJqlJO88mv+lT7Yz4Lq5Ppj2pGB5UBx8k8gKoAiEA+7sh59akf31p6n8L1ME4/13mrQY5WAuf3Cr+Kijb1O4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDch6sTkjZZy59CMV2dvEDBL22zuiw9E9E4E/Ke962awgIgTCdeULpIeQbpKod2+uwsMnOt0N+mrPxZAvZnj0mLpuw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118476},"main":"lib/index.cjs","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.4.tgz","types":"lib/types/index.d.ts","module":"lib/index.mjs","exports":{".":{"types":"./lib/types/index.d.ts","import":"./lib/index.mjs","require":"./lib/index.cjs"},"./src/*":"./src/*","./package.json":"./package.json"},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.4.tgz","_integrity":"sha512-SSXO6tYuyrIqKVbmOnIq0s+riUywYzouFMcnBluHF9n4KMo2G8HvEzhCYj6pj2617/glOjbJuVInJ9hfONsjkg==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"vendor/schemastery"},"_npmVersion":"11.19.0","description":"Type driven schema validator","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@deepseek-ai/cosmokit":"~1.8.5","@standard-schema/spec":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/schemastery_3.18.4_1790091459866_0.0215470270793634","host":"s3://npm-registry-packages-npm-production"}},"3.18.5-alpha.1":{"name":"@deepseek-ai/schemastery","version":"3.18.5-alpha.1","author":{"name":"Shigma","email":"shigma10826@gmail.com"},"license":"MIT","_id":"@deepseek-ai/schemastery@3.18.5-alpha.1","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"0d178fe7ccc0bbe321914f1e34e072e249a4baca","tarball":"https://registry.npmjs.org/@deepseek-ai/schemastery/-/schemastery-3.18.5-alpha.1.tgz","fileCount":8,"integrity":"sha512-HojoBv1wMQn6N8nDgTgWbc/f4EFAlg/ZsIYN2AChnEDoFOmcWd3+MDzhozNffmywywzV7pcouHRR4x37YZfcjA==","signatures":[{"sig":"MEQCIE8Rzfq8wLGHSu64FQA57968H4frc83WiRZe1uvQ4EqaAiAPKTdN73+IKo6EWNAnHKbdjrgso/oOq6duf29axdiyqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEQEzqpVWiKhgVAvUoakCiWcw/5qqGeZ9Wtc30Y1WXyYAiAfAgpI1E2BiMrBkDQpgC/UP8OB3fGKUh96AhhjKMiImw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118492},"main":"lib/index.cjs","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.5-alpha.1.tgz","types":"lib/types/index.d.ts","module":"lib/index.mjs","exports":{".":{"types":"./lib/types/index.d.ts","import":"./lib/index.mjs","require":"./lib/index.cjs"},"./src/*":"./src/*","./package.json":"./package.json"},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.5-alpha.1.tgz","_integrity":"sha512-HojoBv1wMQn6N8nDgTgWbc/f4EFAlg/ZsIYN2AChnEDoFOmcWd3+MDzhozNffmywywzV7pcouHRR4x37YZfcjA==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"vendor/schemastery"},"_npmVersion":"11.19.0","description":"Type driven schema validator","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/cosmokit":"~1.8.6-alpha.1","@standard-schema/spec":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/schemastery_3.18.5-alpha.1_1790997274396_0.5234458184175572","host":"s3://npm-registry-packages-npm-production"}},"3.18.5-alpha.2":{"name":"@deepseek-ai/schemastery","version":"3.18.5-alpha.2","author":{"name":"Shigma","email":"shigma10826@gmail.com"},"license":"MIT","_id":"@deepseek-ai/schemastery@3.18.5-alpha.2","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"2c7e5187015ce5cc8214218cb5269ea2e5a8a4ae","tarball":"https://registry.npmjs.org/@deepseek-ai/schemastery/-/schemastery-3.18.5-alpha.2.tgz","fileCount":8,"integrity":"sha512-W+2TSjdeKOEKqaii9BNpw7ev2Yf8C+J74i/BE/VBx56O7BX0zxV2zQKwRY4ADLTXD5O69iJ+/Skm91/ES7iMgw==","signatures":[{"sig":"MEQCID7f6Tr1i2PM+xxQLNGmmY2N1oiyYsh4/Kh7KCzHXsyhAiAaxFK9GXe6TcUg9At7epXmLOlJqdNEws06rnxak2HK/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEIAkpNgfuQvKVzMZ80ZYvsNZWFEhFGlY7TQaotKgi59AiEAtWpuitARqMBrWn9/bYk4Yx0+G0WowceDVbnQ4RPHpC4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118492},"main":"lib/index.cjs","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.5-alpha.2.tgz","types":"lib/types/index.d.ts","module":"lib/index.mjs","exports":{".":{"types":"./lib/types/index.d.ts","import":"./lib/index.mjs","require":"./lib/index.cjs"},"./src/*":"./src/*","./package.json":"./package.json"},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.5-alpha.2.tgz","_integrity":"sha512-W+2TSjdeKOEKqaii9BNpw7ev2Yf8C+J74i/BE/VBx56O7BX0zxV2zQKwRY4ADLTXD5O69iJ+/Skm91/ES7iMgw==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"vendor/schemastery"},"_npmVersion":"11.19.0","description":"Type driven schema validator","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/cosmokit":"~1.8.6-alpha.2","@standard-schema/spec":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/schemastery_3.18.5-alpha.2_1791978395529_0.27309950790590554","host":"s3://npm-registry-packages-npm-production"}},"3.18.5":{"name":"@deepseek-ai/schemastery","version":"3.18.5","author":{"name":"Shigma","email":"shigma10826@gmail.com"},"license":"MIT","_id":"@deepseek-ai/schemastery@3.18.5","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"2f9e0da1e08453c34aaa70223de421cf747aa5d6","tarball":"https://registry.npmjs.org/@deepseek-ai/schemastery/-/schemastery-3.18.5.tgz","fileCount":8,"integrity":"sha512-Mnobvqf9rHsZYv4g5edj5ddxS1oF1kIdSlz0DunUgnY3LWG5F26MqvH3YOOsSaodCgyzJ16OMN9O99/s5Crtdw==","signatures":[{"sig":"MEUCIQCwYxpclEUngh0fXkavsRpYpwZ86cGJPK7Fqaor4gqJiAIgAOJiGZ5T0S8TeX8QVTmcIV4Di5M4wHYGsBsC2d6BmwI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC1V2PWszBpRg+5c7auF8BgYJ/acFeN2Q32MYUpp8WCNAIhAM1D8LrlCDXCU/kVunXYPERHKWT3V0mIoPNkRzXGdNkA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118476},"main":"lib/index.cjs","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.5.tgz","types":"lib/types/index.d.ts","module":"lib/index.mjs","exports":{".":{"types":"./lib/types/index.d.ts","import":"./lib/index.mjs","require":"./lib/index.cjs"},"./src/*":"./src/*","./package.json":"./package.json"},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.5.tgz","_integrity":"sha512-Mnobvqf9rHsZYv4g5edj5ddxS1oF1kIdSlz0DunUgnY3LWG5F26MqvH3YOOsSaodCgyzJ16OMN9O99/s5Crtdw==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"vendor/schemastery"},"_npmVersion":"11.19.0","description":"Type driven schema validator","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/cosmokit":"~1.8.6","@standard-schema/spec":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/schemastery_3.18.5_1792158582964_0.490183642087336","host":"s3://npm-registry-packages-npm-production"}},"3.18.6-alpha.1":{"name":"@deepseek-ai/schemastery","version":"3.18.6-alpha.1","author":{"name":"Shigma","email":"shigma10826@gmail.com"},"license":"MIT","_id":"@deepseek-ai/schemastery@3.18.6-alpha.1","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"5549254371cbacd0157c7f0f77915d34256f1405","tarball":"https://registry.npmjs.org/@deepseek-ai/schemastery/-/schemastery-3.18.6-alpha.1.tgz","fileCount":8,"integrity":"sha512-ID5DKpWa0BnrcNdZ3ofWkhOoRLQ3MsFr1FdRVHBiALeE9egaCm4QatuCvQK0Cd/haRBcEvefacz2JEYYMFAEnw==","signatures":[{"sig":"MEUCIH/Wwu5MQpnVB6/AxrEFxD57vIWTX4I/HvTRA/cdUV/AAiEA88vaGLhdzJWzOELRNehCog+11XsfChwittpeNgoGarI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAChhwGV+jOyX53rZwm81OmBvKVkgkVnfyG5jyC8btShAiArcJZiNluVk2WMNDEgybfAb88qN+iuImH9bgQ/0wQFgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118492},"main":"lib/index.cjs","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.6-alpha.1.tgz","types":"lib/types/index.d.ts","module":"lib/index.mjs","exports":{".":{"types":"./lib/types/index.d.ts","import":"./lib/index.mjs","require":"./lib/index.cjs"},"./src/*":"./src/*","./package.json":"./package.json"},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.6-alpha.1.tgz","_integrity":"sha512-ID5DKpWa0BnrcNdZ3ofWkhOoRLQ3MsFr1FdRVHBiALeE9egaCm4QatuCvQK0Cd/haRBcEvefacz2JEYYMFAEnw==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"vendor/schemastery"},"_npmVersion":"11.19.1","description":"Type driven schema validator","directories":{},"_nodeVersion":"24.22.1","dependencies":{"@deepseek-ai/cosmokit":"~1.8.7-alpha.1","@standard-schema/spec":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/schemastery_3.18.6-alpha.1_1793117322926_0.5709226084069848","host":"s3://npm-registry-packages-npm-production"}},"3.18.6-alpha.2":{"name":"@deepseek-ai/schemastery","version":"3.18.6-alpha.2","author":{"name":"Shigma","email":"shigma10826@gmail.com"},"license":"MIT","_id":"@deepseek-ai/schemastery@3.18.6-alpha.2","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"a9408fd7472c8efdd383b3cc16cffca51cc3380c","tarball":"https://registry.npmjs.org/@deepseek-ai/schemastery/-/schemastery-3.18.6-alpha.2.tgz","fileCount":8,"integrity":"sha512-lRrvZLD9v1BAG5625lyYcRcMJ2xInGjWl65W6H3kL/YSCXUU2/aD1XLBXvoNYvXw2RuAXEfNTSFuZ/XArstwVA==","signatures":[{"sig":"MEQCIBUPhwaVJmBfNkn7dnjOLVsudg97mjmDmCeh+J8EG5lcAiBxylIb9HqntFUgbF2/542pPYWmbel1cSilrPTXbSU1AQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDx6xBDC85lgP5PQiWzjB5u57eB3V+RX1pES0COR/66UAIhALka3FVk2k/6xUSaI95VKJNSBrLPoAG8ugwLAPm74sfm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118492},"main":"lib/index.cjs","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.6-alpha.2.tgz","types":"lib/types/index.d.ts","module":"lib/index.mjs","exports":{".":{"types":"./lib/types/index.d.ts","import":"./lib/index.mjs","require":"./lib/index.cjs"},"./src/*":"./src/*","./package.json":"./package.json"},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.18.6-alpha.2.tgz","_integrity":"sha512-lRrvZLD9v1BAG5625lyYcRcMJ2xInGjWl65W6H3kL/YSCXUU2/aD1XLBXvoNYvXw2RuAXEfNTSFuZ/XArstwVA==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"vendor/schemastery"},"_npmVersion":"11.19.1","description":"Type driven schema validator","directories":{},"_nodeVersion":"24.22.1","dependencies":{"@deepseek-ai/cosmokit":"~1.8.7-alpha.2","@standard-schema/spec":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/schemastery_3.18.6-alpha.2_1793689811527_0.27067428093024015","host":"s3://npm-registry-packages-npm-production"}},"3.19.0":{"_id":"@deepseek-ai/schemastery@3.19.0","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"4ad373641ffc80c5b0b800422d8029981ef19a0b","tarball":"https://registry.npmjs.org/@deepseek-ai/schemastery/-/schemastery-3.19.0.tgz","fileCount":8,"integrity":"sha512-bDXoYQa7ghAhmdYD5VPlzKxEzJV/aKkz5l4V5h1u06z8GAPN1ROewSjvR9WiXhpa52E9fng8lpH5QdCRIQgnyQ==","signatures":[{"sig":"MEYCIQCh77WTvkV187azv/MecNLnCG7cUgz3LRLQXzQRwzEyIgIhAOR0MCDpuN6FV6UFIbaImaqM0kKBgQ2V5Db4wJxYox3p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAxxVPWGX0TVHKlrZkydIGI1VQXDSkC2LkLFt/W6nFB2AiBden2NWcChbK3B0829EW8iW+wUed3C2g/zLYjWDx62rQ=="}],"unpackedSize":118476},"main":"lib/index.cjs","name":"@deepseek-ai/schemastery","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.19.0.tgz","types":"lib/types/index.d.ts","author":{"name":"Shigma","email":"shigma10826@gmail.com"},"module":"lib/index.mjs","exports":{".":{"types":"./lib/types/index.d.ts","import":"./lib/index.mjs","require":"./lib/index.cjs"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","version":"3.19.0","_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm-vendor/deepseek-ai-schemastery-3.19.0.tgz","_integrity":"sha512-bDXoYQa7ghAhmdYD5VPlzKxEzJV/aKkz5l4V5h1u06z8GAPN1ROewSjvR9WiXhpa52E9fng8lpH5QdCRIQgnyQ==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"vendor/schemastery"},"_npmVersion":"11.19.1","description":"Type driven schema validator","directories":{},"maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"_nodeVersion":"24.22.1","dependencies":{"@deepseek-ai/cosmokit":"~1.9.0","@standard-schema/spec":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/schemastery_3.19.0_1793779822617_0.8172652836583627"}}},"time":{"created":"2026-08-10T19:01:54.498Z","modified":"2026-11-04T08:10:23.048Z","3.18.1-rc.1":"2026-08-10T19:01:54.985Z","3.18.1-rc.4":"2026-08-12T22:14:57.645Z","3.18.1":"2026-08-13T07:49:23.159Z","3.18.2":"2026-08-30T13:14:16.636Z","3.18.3":"2026-09-22T03:46:35.116Z","3.18.4":"2026-09-22T15:37:39.952Z","3.18.5-alpha.1":"2026-10-03T03:14:34.501Z","3.18.5-alpha.2":"2026-10-14T11:46:35.630Z","3.18.5":"2026-10-16T13:49:43.054Z","3.18.6-alpha.1":"2026-10-27T16:08:43.007Z","3.18.6-alpha.2":"2026-11-03T07:10:11.615Z","3.19.0":"2026-11-04T08:10:22.760Z"},"bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"author":{"name":"Shigma","email":"shigma10826@gmail.com"},"license":"MIT","homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"vendor/schemastery"},"description":"Type driven schema validator","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"readme":"# Schemastery\n\n[![Codecov](https://img.shields.io/codecov/c/github/shigma/schemastery?style=flat-square)](https://codecov.io/gh/shigma/schemastery)\n[![downloads](https://img.shields.io/npm/dm/schemastery?style=flat-square)](https://www.npmjs.com/package/schemastery)\n[![npm](https://img.shields.io/npm/v/schemastery?style=flat-square)](https://www.npmjs.com/package/schemastery)\n[![GitHub](https://img.shields.io/github/license/shigma/schemastery?style=flat-square)](https://github.com/shigma/schemastery/blob/master/LICENSE)\n\nType Driven Schema Validator.\n\n## Features\n\n- **Lightweight.** Much smaller than other validation libraries.\n- **Easy to use.** You can use any schema as a function or constructor directly.\n- **Powerful.** Schemastery supports some advanced types such as `union`, `intersect` and `transform`.\n- **Extensible.** You can create your own schema types via `Schema.extend()`.\n- **Serializable.** Schema objects can be serialized into JSON and then be hydrated in another environment.\n\n## Basic Examples\n\n### use as validator (JavaScript)\n\n```js\nconst Schema = require('schemastery')\n\nconst validate = Schema.number().default(10)\n\nvalidate(0)     // 0\nvalidate(null)  // 10\nvalidate('')    // TypeError\n```\n\n### use as constructor (TypeScript)\n\n```ts\nimport Schema from 'schemastery'\n\ninterface Config {\n  foo: Record<string, string>\n  bar: string[]\n}\n\nconst Config = Schema.object({\n  foo: Schema.dict(Schema.string()).default({}),\n  bar: Schema.array(Schema.string()).default([]),\n})\n\n// config is an instance of Config\n// in this case, that is { foo: {}, bar: [] }\nconst config = new Config()\n```\n\n## General Types\n\n### Schema.any()\n\nAssert that the value is of any type.\n\n```js\nconst validate = Schema.any()\n\nvalidate()            // undefined\nvalidate(0)           // 0\nvalidate({})          // {}\n```\n\n### Schema.never()\n\nAssert that the value is nullable.\n\n```js\nconst validate = Schema.never()\n\nvalidate()            // undefined\nvalidate(0)           // TypeError\nvalidate({})          // TypeError\n```\n\n### Schema.const(value)\n\nAssert that the value is equal to the given constant.\n\n```js\nconst validate = Schema.const(10)\n\nvalidate(10)          // 10\nvalidate(0)           // TypeError\n```\n\n### Schema.number()\n\nAssert that the value is a number.\n\n```js\nconst validate = Schema.number()\n\nvalidate()            // undefined\nvalidate(1)           // 1\nvalidate('')          // TypeError\n```\n\n### Schema.string()\n\nAssert that the value is a string.\n\n```js\nconst validate = Schema.string()\n\nvalidate()            // undefined\nvalidate(0)           // TypeError\nvalidate('foo')       // 'foo'\n```\n\n### Schema.boolean()\n\nAssert that the value is a boolean.\n\n```js\nconst validate = Schema.boolean()\n\nvalidate()            // undefined\nvalidate(0)           // TypeError\nvalidate(true)        // true\n```\n\n### Schema.is(constructor)\n\nAssert that the value is an instance of the given constructor.\n\n```js\nconst validate = Schema.is(RegExp)\n\nvalidate()            // undefined\nvalidate(/foo/)       // /foo/\nvalidate('foo')       // TypeError\n```\n\n### Schema.array(inner)\n\nAssert that the value is an array of `inner`. The default value will be `[]` if not specified.\n\n```js\nconst validate = Schema.array(Schema.number())\n\nvalidate()                  // []\nvalidate(0)                 // TypeError\nvalidate([0, 1])            // [0, 1]\nvalidate([0, '1'])          // TypeError\n```\n\n### Schema.dict(inner)\n\nAssert that the value is a dictionary of `inner`. The default value will be `{}` if not specified.\n\n```js\nconst validate = Schema.dict(Schema.number())\n\nvalidate()                  // {}\nvalidate(0)                 // TypeError\nvalidate({ a: 0, b: 1 })    // { a: 0, b: 1 }\nvalidate({ a: 0, b: '1' })  // TypeError\n```\n\n### Schema.tuple(list)\n\nAssert that the value is a tuple whose each element is of corresponding subtype. The default value will be `[]` if not specified.\n\n```js\nconst validate = Schema.tuple([\n  Schema.number(),\n  Schema.string(),\n])\n\nvalidate()                  // []\nvalidate([0])               // { a: 0 }\nvalidate([0, 1])            // TypeError\nvalidate([0, '1'])          // [0, '1']\n```\n\n### Schema.object(dict)\n\nAssert that the value is an object whose each property is of corresponding subtype. The default value will be `{}` if not specified.\n\n```js\nconst validate = Schema.object({\n  a: Schema.number(),\n  b: Schema.string(),\n})\n\nvalidate()                  // {}\nvalidate({ a: 0 })          // { a: 0 }\nvalidate({ a: 0, b: 1 })    // TypeError\nvalidate({ a: 0, b: '1' })  // { a: 0, b: '1' }\n```\n\n### Schema.union(list)\n\nAssert that the value is one of the specified types.\n\n```js\nconst validate = Schema.union([\n  Schema.number(),\n  Schema.string(),\n])\n\nvalidate()                  // undefined\nvalidate(0)                 // 0\nvalidate('1')               // '1'\nvalidate(true)              // TypeError\n```\n\n### Schema.intersect(list)\n\nAssert that the value should match each specified type.\n\n```js\nconst validate = Schema.intersect([\n  Schema.object({ a: Schema.string().required() }),\n  Schema.object({ b: Schema.number().default(0) }),\n])\n\nvalidate()                  // TypeError\nvalidate({ a: '' })         // { a: '', b: 0 }\nvalidate({ a: '', b: 1 })   // { a: '', b: 1 }\nvalidate({ a: '', b: '2' }) // TypeError\n```\n\n### Schema.transform(inner, callback)\n\nAssert that the value is of the specified subtype and then transformed by `callback`.\n\n```js\nconst validate = Schema.transform(Schema.number().default(0), n => n + 1)\n\nvalidate()                  // 1\nvalidate('0')               // TypeError\nvalidate(10)                // 11\n```\n\n## Instance Methods\n\nNote: `default` and `required` are mutually exclusive.\n\n### schema.required()\n\nAssert that the value is not nullable.\n\n### schema.default(value)\n\nSet the fallback value when nullable.\n\n### schema.description(text)\n\nSet the description of the schema.\n\n### schema.simplify(value)\n\nNormalize a value by removing parts that are equal to schema defaults. This is\nuseful when storing user configuration and keeping persisted files compact.\n\n```js\nconst Config = Schema.object({\n  foo: Schema.string().default(''),\n  bar: Schema.number().default(0),\n})\n\nConfig.simplify({ foo: '', bar: 1 }) // { bar: 1 }\n```\n\n## Validation Options\n\nAll schemas are callable. The second argument accepts validation options:\n\n```js\nconst Config = Schema.object({\n  foo: Schema.number(),\n})\n\nConfig({ foo: '1' }, { autofix: true }) // {}\n```\n\n- `autofix`: remove invalid object properties where possible.\n- `ignore`: skip validation for selected values and schema nodes.\n- `path`: provide an initial path for nested validation errors.\n\n## Shorthand Syntax\n\nSome shorthand syntax is available for inner types.\n\n- `undefined` -> `Schema.any()`\n- `String` -> `Schema.string()`\n- `Number` -> `Schema.number()`\n- `Boolean` -> `Schema.boolean()`\n- `1` -> `Schema.const(1)` (only for primitive types)\n- `Date` -> `Schema.is(Date)`\n\n```js\nSchema.array(String)        // Schema.array(Schema.string())\nSchema.dict(RegExp)         // Schema.dict(Schema.is(RegExp))\nSchema.union([1, 2])        // Schema.union([Schema.const(1), Schema.const(2)])\n```\n\nYou can also use `Schema.from()` to get the inferred schema from a shorthand value.\n\n```js\nSchema.from()               // Schema.any()\nSchema.from(Date)           // Schema.is(Date)\nSchema.from('foo')          // Schema.const('foo')\n```\n\n## Advanced Examples\n\nHere are some examples which demonstrate how to define advanced types.\n\n### Enumeration\n\n```js\nconst Enum = Schema.union(['red', 'blue'])\n\nEnum('red')                 // 'red'\nEnum('blue')                // 'blue'\nEnum('green')               // TypeError\n```\n\n### ToString\n\n```js\nconst ToString = Schema.transform(Schema.any(), v => String(v))\n\nToString('')                // ''\nToString(0)                 // '0'\nToString({})                // '{}'\n```\n\n### Listable\n\n```js\nconst Listable = Schema.union([\n  Schema.array(Number),\n  Schema.transform(Number, n => [n]),\n]).default([])\n\nListable()                  // []\nListable(0)                 // [0]\nListable([1, 2])            // [1, 2]\n```\n\n### Alias\n\n```js\nconst Config = Schema.dict(Number, Schema.union([\n  'foo',\n  Schema.transform('bar', () => 'foo'),\n]))\n\nConfig({ foo: 1 })          // { foo: 1 }\nConfig({ bar: 2 })          // { foo: 2 }\nConfig({ bar: '3' })        // TypeError\n```\n\n## Extensibility\n\nCustom schema types are registered with `Schema.extend(type, resolve)`. A\nresolver receives the input value, schema node, validation options, and a strict\nflag. Return `[value]` for accepted input, or `[value, adapted]` when the caller\nshould write an adapted value back to the source object.\n\n```js\nSchema.extend('trimmed', (data, schema, options) => {\n  if (typeof data !== 'string') {\n    throw new Schema.ValidationError(`expected string but got ${data}`, options)\n  }\n  return [data.trim()]\n})\n```\n\n## Serializability\n\n```js\nconst schema1 = Schema.object({\n  foo: Schema.string(),\n  bar: Schema.number(),\n})\n\n// should have the same effect as schema1\nconst schema2 = new Schema(JSON.parse(JSON.stringify(schema1)))\n```\n\nSchemastery also exposes the Standard Schema `~standard` property, so compatible\ntools can validate values without depending on Schemastery-specific APIs.\n\n## Volatile configuration\n\n`.volatile()` preserves a field's schema type and metadata while parsing its value into a stable reference read with `.get()`. Defaults remain ordinary data; absent optional fields return references containing `undefined`. `simplify()` unwraps references for persistence. See the [configuration guide](../../docs/cordis-tutorial/05-config.md#volatile-fields) for supported placements and Cordis update semantics.\n","readmeFilename":"README.md"}