{"_id":"@danscan/zod-jsonrpc","_rev":"20-0beaf135e8de3511e90423f59aae831a","name":"@danscan/zod-jsonrpc","dist-tags":{"latest":"3.3.0"},"versions":{"1.0.0":{"name":"@danscan/zod-jsonrpc","version":"1.0.0","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","http","websocket","ipc","zod"],"_id":"@danscan/zod-jsonrpc@1.0.0","maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"dist":{"shasum":"0e19e45f790a6d2a9b9ebb2007cfffcc25e4b8db","tarball":"https://registry.npmjs.org/@danscan/zod-jsonrpc/-/zod-jsonrpc-1.0.0.tgz","fileCount":10,"integrity":"sha512-SpmCYTzWZfh92MGt1ECAs8ZaVYn0nm6cb7vWIT3wiOsLd2Bvq59oUTE51tTOFNPu537b405pjN7QumYkbCzLmA==","signatures":[{"sig":"MEUCIQDP69e8vYftNtct7nEKGCkoaBlvinDRKx0uuFkUICjjkgIgTfHp4L1cCSJ/kyQ2EJYQqR0oTjI0gNnKFuKkNVXb2Bc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25226},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","shasum":"0e19e45f790a6d2a9b9ebb2007cfffcc25e4b8db","scripts":{"build":"bun tsc","prepare":"bun run build"},"_npmUser":{"name":"danscan","email":"dan@dscanlon.com"},"_integrity":"sha512-SpmCYTzWZfh92MGt1ECAs8ZaVYn0nm6cb7vWIT3wiOsLd2Bvq59oUTE51tTOFNPu537b405pjN7QumYkbCzLmA==","_npmVersion":"10.8.3","description":"Create JSON-RPC 2.0-compliant servers that use Zod to validate requests and responses.","directories":{},"_nodeVersion":"22.6.0","dependencies":{"zod":"^3.23.8"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zod-jsonrpc_1.0.0_1730833394729_0.21434472942257954","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@danscan/zod-jsonrpc","version":"1.0.1","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","http","websocket","ipc","zod"],"_id":"@danscan/zod-jsonrpc@1.0.1","maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"homepage":"https://github.com/danscan/zod-jsonrpc","bugs":{"url":"https://github.com/danscan/zod-jsonrpc/issues"},"dist":{"shasum":"239da9ed55b6436d8f84af8feac7b6c0f0d86387","tarball":"https://registry.npmjs.org/@danscan/zod-jsonrpc/-/zod-jsonrpc-1.0.1.tgz","fileCount":38,"integrity":"sha512-9FxftQ7VZNxX0Hp4Q4wMSoQ9fg1hzZRA7uoy00vwpVPTs28LYN8/2AH44tqOgaUx20E32Xtiq4m7xNcGw5oSCQ==","signatures":[{"sig":"MEQCIBg+9l0k9kRr6v5bLAgWCAOErvAdIkbuMCmnx+f42lhmAiAVDvk+KwVNhtq/fOH9WVrgBzxwu0FueOLhd0E72lo6Hg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":83010},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"d7eff08f1509d35c6a2959d676ce5f586bff1a80","scripts":{"build":"bun run tsc","prepare":"bun run build"},"_npmUser":{"name":"danscan","email":"dan@dscanlon.com"},"repository":{"url":"git+https://github.com/danscan/zod-jsonrpc.git","type":"git"},"_npmVersion":"10.7.0","description":"Create JSON-RPC 2.0-compliant servers that use Zod to validate requests and responses.","directories":{},"_nodeVersion":"18.20.4","dependencies":{"zod":"^3.23.8"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zod-jsonrpc_1.0.1_1730837531268_0.22651458114786704","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@danscan/zod-jsonrpc","version":"1.1.0","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","http","websocket","ipc","zod"],"_id":"@danscan/zod-jsonrpc@1.1.0","maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"homepage":"https://github.com/danscan/zod-jsonrpc","bugs":{"url":"https://github.com/danscan/zod-jsonrpc/issues"},"dist":{"shasum":"5f38712892a0442143de2950377e1cb94ff2bf77","tarball":"https://registry.npmjs.org/@danscan/zod-jsonrpc/-/zod-jsonrpc-1.1.0.tgz","fileCount":38,"integrity":"sha512-3pstPqAUFh7coZKw9Q5aKEWIC3raKAV6VkLEmpirDFym06n8ekc5WIKZNj0t2slRQiwxecedjXAbYtFwq55EfQ==","signatures":[{"sig":"MEUCIQCjU2WzWRiyn0aJVHBVCOUfr7gxuo/SL/q/h4O7EjAWBQIgQC8lkcOnW0bkziy42gGy/RIQtLxWrswuTh4U4Y86xEA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":83049},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"beec2ac6d81214797d7b6377cc4d0782ea55a706","scripts":{"build":"bun run tsc","prepare":"bun run build"},"_npmUser":{"name":"danscan","email":"dan@dscanlon.com"},"repository":{"url":"git+https://github.com/danscan/zod-jsonrpc.git","type":"git"},"_npmVersion":"10.7.0","description":"Create JSON-RPC 2.0-compliant servers that use Zod to validate requests and responses.","directories":{},"_nodeVersion":"18.20.4","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0"},"peerDependencies":{"zod":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zod-jsonrpc_1.1.0_1730838573044_0.7238589399898547","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@danscan/zod-jsonrpc","version":"1.2.0","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","http","websocket","ipc","zod"],"_id":"@danscan/zod-jsonrpc@1.2.0","maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"homepage":"https://github.com/danscan/zod-jsonrpc","bugs":{"url":"https://github.com/danscan/zod-jsonrpc/issues"},"dist":{"shasum":"57643de4c162222217a353e51c6f7d457acadb72","tarball":"https://registry.npmjs.org/@danscan/zod-jsonrpc/-/zod-jsonrpc-1.2.0.tgz","fileCount":38,"integrity":"sha512-243XDwGSb0Bo6b0yn71jmFV1evEByapQJ86+NqZ73t1tixwdVvvpi3AO/jx+8skSLotZgTgAg9Ii3OZ5wEhfng==","signatures":[{"sig":"MEQCIDRe6krCL90WMTyROk5VxbNzaVM6zp5ikgU2HDe/XySAAiBTiOFJ0v5qBSb+C3mlJ3MOK1lX69AP9Bgaubu4YQaPBQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":85399},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"3ce1c6c9934f7501e4d92fe08b62f33400ca3b35","scripts":{"build":"bun run tsc","prepare":"bun run build"},"_npmUser":{"name":"danscan","email":"dan@dscanlon.com"},"repository":{"url":"git+https://github.com/danscan/zod-jsonrpc.git","type":"git"},"_npmVersion":"10.7.0","description":"Create JSON-RPC 2.0-compliant servers that use Zod to validate requests and responses.","directories":{},"_nodeVersion":"18.20.4","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0"},"peerDependencies":{"zod":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zod-jsonrpc_1.2.0_1730868271337_0.7402116733939692","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"@danscan/zod-jsonrpc","version":"1.3.0","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","http","websocket","ipc","zod"],"_id":"@danscan/zod-jsonrpc@1.3.0","maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"homepage":"https://github.com/danscan/zod-jsonrpc","bugs":{"url":"https://github.com/danscan/zod-jsonrpc/issues"},"dist":{"shasum":"913186683481858089581f1b578a84512ddfd032","tarball":"https://registry.npmjs.org/@danscan/zod-jsonrpc/-/zod-jsonrpc-1.3.0.tgz","fileCount":43,"integrity":"sha512-zgrOWKZK5dC1sZP7ZfS7puOaonsg0Sq19fA+IHydr6jVwwnbGZn/3vWW9hDJp+2xPOBKbCQrfmb8w3ddODr11Q==","signatures":[{"sig":"MEQCIA2ojfHVbF1/KwKVqXC45EPumeX2O+hF5tWnmcRJYnrvAiBl+cw5wtPwq6Eesz52HjKnLjABei+0AHZ1TSINcxvTAg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":91964},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"726867dffa35fba7c202eb46bbc57c9a25711b3c","scripts":{"build":"bun run tsc","prepare":"bun run build"},"_npmUser":{"name":"danscan","email":"dan@dscanlon.com"},"repository":{"url":"git+https://github.com/danscan/zod-jsonrpc.git","type":"git"},"_npmVersion":"10.7.0","description":"Create JSON-RPC 2.0-compliant servers that use Zod to validate requests and responses.","directories":{},"_nodeVersion":"18.20.4","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0"},"peerDependencies":{"zod":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zod-jsonrpc_1.3.0_1730929664446_0.9386969845959838","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@danscan/zod-jsonrpc","version":"2.0.0","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","client","batch","http","websocket","ipc","zod"],"_id":"@danscan/zod-jsonrpc@2.0.0","maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"homepage":"https://github.com/danscan/zod-jsonrpc","bugs":{"url":"https://github.com/danscan/zod-jsonrpc/issues"},"dist":{"shasum":"af915f06aa0ddbcd0e95845a30491bc80fa32bda","tarball":"https://registry.npmjs.org/@danscan/zod-jsonrpc/-/zod-jsonrpc-2.0.0.tgz","fileCount":26,"integrity":"sha512-UVmeFNeTgiab0wWkkqTX3G7YOHOkTjVIZHUrEHOVgFRbHz05pgbHBNMTQUmvGfJLalYrvmR2E0YjGXF5Dcpamw==","signatures":[{"sig":"MEUCIQDyJXrQ16iPZZryIuyVVebT+dG0a/qGJITwrAGM8uAWvQIgU9OkD0HIcJRgQ7YURxVCYfA4vMu8KKsVDoYJiIOQavg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":49012},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"a5ec3e1af1243edd14ab74b8292df6a9cf9af6ba","scripts":{"build":"bun run tsc","prepare":"bun run build"},"_npmUser":{"name":"danscan","email":"dan@dscanlon.com"},"repository":{"url":"git+https://github.com/danscan/zod-jsonrpc.git","type":"git"},"_npmVersion":"10.7.0","description":"Create JSON-RPC 2.0-compliant clients and servers that use Zod to validate requests and responses.","directories":{},"_nodeVersion":"18.20.4","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0"},"peerDependencies":{"zod":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zod-jsonrpc_2.0.0_1731009372129_0.7203270886481383","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"@danscan/zod-jsonrpc","version":"2.0.1","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","client","batch","http","websocket","ipc","zod"],"_id":"@danscan/zod-jsonrpc@2.0.1","maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"homepage":"https://github.com/danscan/zod-jsonrpc","bugs":{"url":"https://github.com/danscan/zod-jsonrpc/issues"},"dist":{"shasum":"556f79ee2dcf5930ef0f874bad5be6c78b276a36","tarball":"https://registry.npmjs.org/@danscan/zod-jsonrpc/-/zod-jsonrpc-2.0.1.tgz","fileCount":97,"integrity":"sha512-LFQ2kurNKpX9T3YPhnuABdCn29xTTybhxsceiBiaMAoTWRx55ArHfNO5mWYKTkyO339iawWRGlcKgr30LxADZQ==","signatures":[{"sig":"MEYCIQC6ebdLCbJ+Z+klNrJhzxH8cJ2H0F4+upzT/zSrqBYJIwIhAMu3vtiH2+FkZOwmr3v/fP2ySVVb6JqDnN4DD3u3oYOe","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":143996},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"7219eb9561c82f8c10ff4020d394bd3594ec1424","scripts":{"build":"bun run tsc","prepare":"bun run build"},"_npmUser":{"name":"danscan","email":"dan@dscanlon.com"},"repository":{"url":"git+https://github.com/danscan/zod-jsonrpc.git","type":"git"},"_npmVersion":"10.8.1","description":"Create JSON-RPC 2.0-compliant clients and servers that use Zod to validate requests and responses.","directories":{},"_nodeVersion":"18.17.1","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0"},"peerDependencies":{"zod":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zod-jsonrpc_2.0.1_1731009858540_0.4163751032630598","host":"s3://npm-registry-packages"}},"2.0.2":{"name":"@danscan/zod-jsonrpc","version":"2.0.2","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","client","batch","http","websocket","ipc","zod"],"_id":"@danscan/zod-jsonrpc@2.0.2","maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"homepage":"https://github.com/danscan/zod-jsonrpc","bugs":{"url":"https://github.com/danscan/zod-jsonrpc/issues"},"dist":{"shasum":"1cd0b4111ac76675f010b744b680e6b665ff6c14","tarball":"https://registry.npmjs.org/@danscan/zod-jsonrpc/-/zod-jsonrpc-2.0.2.tgz","fileCount":99,"integrity":"sha512-4UjvLGmWv7/OExZynxFfjA9gIdh2czJ8HQGZ1bLt1aD0qd+hFKqpfLBfW4VnxnPelb1etM+/QRdrSsrNlttKPw==","signatures":[{"sig":"MEQCID/k/0dLd8vyHSgX5M1IuET/KLHR/zjxiSI/sqDxZdLEAiBa5na/wm2jAYDBxEOsqhQ8PA2vYGUUUhJEMjxScB39Gw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":144425},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"15bcac6a8211f19584d05fee40cc7cfa4a82512c","scripts":{"build":"bun run tsc","prepare":"bun run build"},"_npmUser":{"name":"danscan","email":"dan@dscanlon.com"},"repository":{"url":"git+https://github.com/danscan/zod-jsonrpc.git","type":"git"},"_npmVersion":"10.7.0","description":"Create JSON-RPC 2.0-compliant clients and servers that use Zod to validate requests and responses.","directories":{},"_nodeVersion":"18.20.4","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0"},"peerDependencies":{"zod":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zod-jsonrpc_2.0.2_1731010127839_0.4931292099581621","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"@danscan/zod-jsonrpc","version":"2.1.0","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","client","batch","http","websocket","ipc","zod"],"_id":"@danscan/zod-jsonrpc@2.1.0","maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"homepage":"https://github.com/danscan/zod-jsonrpc","bugs":{"url":"https://github.com/danscan/zod-jsonrpc/issues"},"dist":{"shasum":"f407fbfa9ea8f18b6606dc08d4c4debec08db5e1","tarball":"https://registry.npmjs.org/@danscan/zod-jsonrpc/-/zod-jsonrpc-2.1.0.tgz","fileCount":99,"integrity":"sha512-4QSHOBeyBJdkZ9Xj8NtlhzBHR9SjuecCyHxXKvYFwxmXt1Ncz28xjZeUqBeZdHAXN4EmfgrokaZfNEKVh2qrnQ==","signatures":[{"sig":"MEUCIQCFNBmH8Ibkct3At3wka9MWUkXwd2kC/5ex9jn7nftXLwIgauEYrAhDR5WTXDpgHZHOixt8ZaELSL3b/L5lEit5IR0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":142451},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"3a5e172fb99f78bb1f38e181241b06cba4868be0","scripts":{"build":"bun run tsc","prepare":"bun run build"},"_npmUser":{"name":"danscan","email":"dan@dscanlon.com"},"repository":{"url":"git+https://github.com/danscan/zod-jsonrpc.git","type":"git"},"_npmVersion":"10.8.2","description":"Create JSON-RPC 2.0-compliant clients and servers that use Zod to validate requests and responses.","directories":{},"_nodeVersion":"18.20.5","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0"},"peerDependencies":{"zod":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zod-jsonrpc_2.1.0_1731861823123_0.38387323720340816","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"@danscan/zod-jsonrpc","version":"3.0.0","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","client","batch","http","websocket","ipc","zod"],"_id":"@danscan/zod-jsonrpc@3.0.0","maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"homepage":"https://github.com/danscan/zod-jsonrpc","bugs":"https://github.com/danscan/zod-jsonrpc/issues","dist":{"shasum":"f2bb23455891f424e9d8d9401bba5e0342903aa5","tarball":"https://registry.npmjs.org/@danscan/zod-jsonrpc/-/zod-jsonrpc-3.0.0.tgz","fileCount":25,"integrity":"sha512-io7vytv+dcpqncwNKaX7XB84TiImAMkQw6ZyupOLkqaiwmT0EAkJ+D4vuD7ApP3IPV4j6nceI5XntPgALDe2rw==","signatures":[{"sig":"MEYCIQCNbKE3ENBk5DSBPMOTPe/H0vjkZYewsuycnTJRiZmzkQIhAOPZUZ7rPd9OkMoJ2PV7rTi6IYWomp7TIn89bOblm/rM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48340},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","shasum":"f2bb23455891f424e9d8d9401bba5e0342903aa5","scripts":{"build":"bun run tsc","prepare":"bun run build"},"_npmUser":{"name":"danscan","actor":{"name":"danscan","type":"user","email":"dan@dscanlon.com"},"email":"dan@dscanlon.com"},"_integrity":"sha512-io7vytv+dcpqncwNKaX7XB84TiImAMkQw6ZyupOLkqaiwmT0EAkJ+D4vuD7ApP3IPV4j6nceI5XntPgALDe2rw==","repository":"https://github.com/danscan/zod-jsonrpc","_npmVersion":"10.8.3","description":"Create JSON-RPC 2.0-compliant clients and servers that use Zod to validate requests and responses.","directories":{},"_nodeVersion":"22.6.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0"},"peerDependencies":{"zod":"^3.25.00"},"_npmOperationalInternal":{"tmp":"tmp/zod-jsonrpc_3.0.0_1750222847030_0.6938538075880889","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@danscan/zod-jsonrpc","version":"3.0.1","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","client","batch","http","websocket","ipc","zod"],"_id":"@danscan/zod-jsonrpc@3.0.1","maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"homepage":"https://github.com/danscan/zod-jsonrpc","bugs":{"url":"https://github.com/danscan/zod-jsonrpc/issues"},"dist":{"shasum":"c50e92d95c4a6752a53eab14475214c7d5c7979e","tarball":"https://registry.npmjs.org/@danscan/zod-jsonrpc/-/zod-jsonrpc-3.0.1.tgz","fileCount":100,"integrity":"sha512-2AF1KKpqy/RxJ/oC7+ZnkwGZwfc0aUJXZCyI3sh3mGC7jfpo7CeF7rhlE9NBQytKEpOs4XnRM/yqp71AqmIKcA==","signatures":[{"sig":"MEUCIQCKSQKRSuU+vEJs6+JQo6La0HhM/rgtc1qQ8mqhDNFoZwIgYnQQ7ULMwAmenwDKDGXhUOEJYSlpN0XUE3YsHnjRv7s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144285},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"2fdd834bdb66b6e50d893eca0eef273831d997f1","scripts":{"build":"bun run tsc","prepare":"bun run build"},"_npmUser":{"name":"danscan","actor":{"name":"danscan","type":"user","email":"dan@dscanlon.com"},"email":"dan@dscanlon.com"},"repository":{"url":"git+https://github.com/danscan/zod-jsonrpc.git","type":"git"},"_npmVersion":"10.8.2","description":"Create JSON-RPC 2.0-compliant clients and servers that use Zod to validate requests and responses.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0"},"peerDependencies":{"zod":"^3.25.00"},"_npmOperationalInternal":{"tmp":"tmp/zod-jsonrpc_3.0.1_1750265837821_0.47371896491097654","host":"s3://npm-registry-packages-npm-production"}},"3.0.3":{"name":"@danscan/zod-jsonrpc","version":"3.0.3","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","client","batch","http","websocket","ipc","zod"],"_id":"@danscan/zod-jsonrpc@3.0.3","maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"homepage":"https://github.com/danscan/zod-jsonrpc","bugs":{"url":"https://github.com/danscan/zod-jsonrpc/issues"},"dist":{"shasum":"674905946cb3ca7da2b539eab3a62a9a8e863a71","tarball":"https://registry.npmjs.org/@danscan/zod-jsonrpc/-/zod-jsonrpc-3.0.3.tgz","fileCount":100,"integrity":"sha512-SA8t71SIKkI+GWT04H96WDG9Y19pTOE5VLQk2jF3ou2l/H91G4RTd9tp8Xp2v/cABP/zu/zoT/8VIFhU6QDicQ==","signatures":[{"sig":"MEUCIExHEQGgmXPfEfhsZmlbOqqFNGWiSimfw96M3vXwQISLAiEApcYPboEIOZKDJctBLAEaTinS+EAINdFnfAg5WBjVSwk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144285},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"254dfeae2e908d83932920db4ed0ae3ad9dcb7cb","scripts":{"build":"bun run tsc","prepare":"bun run build"},"_npmUser":{"name":"danscan","actor":{"name":"danscan","type":"user","email":"dan@dscanlon.com"},"email":"dan@dscanlon.com"},"repository":{"url":"git+https://github.com/danscan/zod-jsonrpc.git","type":"git"},"_npmVersion":"10.8.2","description":"Create JSON-RPC 2.0-compliant clients and servers that use Zod to validate requests and responses.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0"},"peerDependencies":{"zod":"^3.25.00"},"_npmOperationalInternal":{"tmp":"tmp/zod-jsonrpc_3.0.3_1750265987226_0.20162743942221506","host":"s3://npm-registry-packages-npm-production"}},"3.0.4":{"name":"@danscan/zod-jsonrpc","version":"3.0.4","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","client","batch","http","websocket","ipc","zod"],"_id":"@danscan/zod-jsonrpc@3.0.4","maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"homepage":"https://github.com/danscan/zod-jsonrpc","bugs":{"url":"https://github.com/danscan/zod-jsonrpc/issues"},"dist":{"shasum":"d2d105fcae7d7e658bcb8a901bb25ea83f2be6af","tarball":"https://registry.npmjs.org/@danscan/zod-jsonrpc/-/zod-jsonrpc-3.0.4.tgz","fileCount":100,"integrity":"sha512-AHuS4IsEoVgBNdnAxdQElNBV/SCDdtRbMehKcL6zTZwCOZ+UMOy1qo0DPFmW405vbrqNPpMOoBZQ71wU//2lvg==","signatures":[{"sig":"MEYCIQCLtSsJscohNZ3L08RlfOmmitCnYk7WkKVfI1HcQoZt4wIhAJ2CKDvV2Dxm/tJlNXgi6tX9RqVHcD+AKDLX/mkQMUXd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147504},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"1e0bbfec2dbbf3d55495914640e01ec49b6c3b5e","scripts":{"build":"bun run tsc","prepare":"bun run build"},"_npmUser":{"name":"danscan","actor":{"name":"danscan","type":"user","email":"dan@dscanlon.com"},"email":"dan@dscanlon.com"},"repository":{"url":"git+https://github.com/danscan/zod-jsonrpc.git","type":"git"},"_npmVersion":"10.8.2","description":"Create JSON-RPC 2.0-compliant clients and servers that use Zod to validate requests and responses.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0"},"peerDependencies":{"zod":"^3.25.00"},"_npmOperationalInternal":{"tmp":"tmp/zod-jsonrpc_3.0.4_1750645886988_0.023231373062468252","host":"s3://npm-registry-packages-npm-production"}},"3.0.5":{"name":"@danscan/zod-jsonrpc","version":"3.0.5","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","client","batch","http","websocket","ipc","zod"],"_id":"@danscan/zod-jsonrpc@3.0.5","maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"homepage":"https://github.com/danscan/zod-jsonrpc","bugs":{"url":"https://github.com/danscan/zod-jsonrpc/issues"},"dist":{"shasum":"1a9d8d4b44d7536eec60ffe155f3b7a4abc4a4c5","tarball":"https://registry.npmjs.org/@danscan/zod-jsonrpc/-/zod-jsonrpc-3.0.5.tgz","fileCount":100,"integrity":"sha512-FXmi67VdF63OM62dovhID9qSUE8XI16e0muom/EbssPgXgREklUs7+jCn9Bqipq1Er0pcxuS0hqVTzXQS/Vs+g==","signatures":[{"sig":"MEUCIBA6UpYajBzSK2BScNQXyZXEqi2ezhEtMekgda/nCswsAiEAsJMlO8HuZWSsLBzjDU3RojQPFck/VXPxLxU++vVXNt4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":148191},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"4d2ebb764670471f1acf7a832f10339efca2074d","scripts":{"build":"bun run tsc","prepare":"bun run build"},"_npmUser":{"name":"danscan","actor":{"name":"danscan","type":"user","email":"dan@dscanlon.com"},"email":"dan@dscanlon.com"},"repository":{"url":"git+https://github.com/danscan/zod-jsonrpc.git","type":"git"},"_npmVersion":"10.8.2","description":"Create JSON-RPC 2.0-compliant clients and servers that use Zod to validate requests and responses.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0"},"peerDependencies":{"zod":"^3.25.00"},"_npmOperationalInternal":{"tmp":"tmp/zod-jsonrpc_3.0.5_1750884386380_0.7178275653282518","host":"s3://npm-registry-packages-npm-production"}},"3.0.6":{"name":"@danscan/zod-jsonrpc","version":"3.0.6","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","client","batch","http","websocket","ipc","zod"],"_id":"@danscan/zod-jsonrpc@3.0.6","maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"homepage":"https://github.com/danscan/zod-jsonrpc","bugs":{"url":"https://github.com/danscan/zod-jsonrpc/issues"},"dist":{"shasum":"fb35508c082897219abb9a8649ea72f6a8af9764","tarball":"https://registry.npmjs.org/@danscan/zod-jsonrpc/-/zod-jsonrpc-3.0.6.tgz","fileCount":100,"integrity":"sha512-CXUwzpEK4BFOpmLvIzm/jdmw7EWl6oaBGDrsxtpwo95cWOQIhNKJ+5dJJDLjfph4liLETdapJBLo6Oa/wdYn8Q==","signatures":[{"sig":"MEQCIG3fT8pi/9AJGGUs5C0kGKVbuqTuP09QFKNgDNKpTK6yAiAv25SLo+hTDs20q5IYZtK2bt8HG+cgkzoX2kR1cidakQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":148222},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"1afccc9e96d51f85f10213f969de8182beade19c","scripts":{"build":"bun run tsc","prepare":"bun run build"},"_npmUser":{"name":"danscan","actor":{"name":"danscan","type":"user","email":"dan@dscanlon.com"},"email":"dan@dscanlon.com"},"repository":{"url":"git+https://github.com/danscan/zod-jsonrpc.git","type":"git"},"_npmVersion":"10.8.2","description":"Create JSON-RPC 2.0-compliant clients and servers that use Zod to validate requests and responses.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0"},"peerDependencies":{"zod":"^3.25.00"},"_npmOperationalInternal":{"tmp":"tmp/zod-jsonrpc_3.0.6_1750884624845_0.517107700511521","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@danscan/zod-jsonrpc","version":"3.1.0","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","client","batch","http","websocket","ipc","zod"],"_id":"@danscan/zod-jsonrpc@3.1.0","maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"homepage":"https://github.com/danscan/zod-jsonrpc","bugs":{"url":"https://github.com/danscan/zod-jsonrpc/issues"},"dist":{"shasum":"562ba2f66e8c6b49a15eb4726ac0ae8471c61acd","tarball":"https://registry.npmjs.org/@danscan/zod-jsonrpc/-/zod-jsonrpc-3.1.0.tgz","fileCount":105,"integrity":"sha512-SX50IesTzr0hBicUJW4giitwesJDQLYUoF0pu3SjLUYvS0PNzXVmnYW0kM01Wi8AxSpB92vjgzRvmzRp5wJ8Og==","signatures":[{"sig":"MEUCIALaIIef0aY2i6shz0v77LuGY+SpRmfFp7TSrRUby3SpAiEA29HSUBCu1y+biXihDM19VtWHlHng/+rCfo6cJrB6uSg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":163726},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"823219deac7759b667d6877f7c7b60cd079c4570","scripts":{"build":"bun run tsc","prepare":"bun run build"},"_npmUser":{"name":"danscan","actor":{"name":"danscan","type":"user","email":"dan@dscanlon.com"},"email":"dan@dscanlon.com"},"repository":{"url":"git+https://github.com/danscan/zod-jsonrpc.git","type":"git"},"_npmVersion":"10.8.2","description":"Create JSON-RPC 2.0-compliant clients and servers that use Zod to validate requests and responses.","directories":{},"_nodeVersion":"20.19.2","dependencies":{"zod":"^3.25.67","@standard-schema/spec":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zod-jsonrpc_3.1.0_1751349521450_0.5321487555381927","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@danscan/zod-jsonrpc","version":"3.2.0","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","client","batch","http","websocket","ipc","zod"],"_id":"@danscan/zod-jsonrpc@3.2.0","maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"homepage":"https://github.com/danscan/zod-jsonrpc","bugs":{"url":"https://github.com/danscan/zod-jsonrpc/issues"},"dist":{"shasum":"3888cdbd3fe12f24d2fe6d0cef0bfa5a04fcc90e","tarball":"https://registry.npmjs.org/@danscan/zod-jsonrpc/-/zod-jsonrpc-3.2.0.tgz","fileCount":105,"integrity":"sha512-uKnbcAeL1k6Enk3uJSyr161udQFThwMTWzUmSAQtUU2oHzEbhkESXGX442679AJ2GXjMGeDCnJqMWDL1FPVhsA==","signatures":[{"sig":"MEUCIQDgxwyujobD3ZTUvs+IRG0eR4qbaY03VNk6S+boKKUvZAIgM3o3s96Z6LbKFDnyqJ1YyuaFoFjwLD5iiqCvZi2OZS4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218082},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"9f80f2c8d5df856537276665f3e00e0887ba461f","scripts":{"build":"bun run tsc","prepare":"bun run build"},"_npmUser":{"name":"danscan","actor":{"name":"danscan","type":"user","email":"dan@dscanlon.com"},"email":"dan@dscanlon.com"},"repository":{"url":"git+https://github.com/danscan/zod-jsonrpc.git","type":"git"},"_npmVersion":"10.8.2","description":"Create JSON-RPC 2.0-compliant clients and servers that use Zod to validate requests and responses.","directories":{},"_nodeVersion":"20.19.2","dependencies":{"zod":"^3.25.67","@standard-schema/spec":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zod-jsonrpc_3.2.0_1751387315306_0.04662951104930824","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"@danscan/zod-jsonrpc","version":"3.2.1","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","client","batch","http","websocket","ipc","zod"],"_id":"@danscan/zod-jsonrpc@3.2.1","maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"homepage":"https://github.com/danscan/zod-jsonrpc","bugs":{"url":"https://github.com/danscan/zod-jsonrpc/issues"},"dist":{"shasum":"df669bbd41b5221e389d0f31e11930e182eca3d6","tarball":"https://registry.npmjs.org/@danscan/zod-jsonrpc/-/zod-jsonrpc-3.2.1.tgz","fileCount":105,"integrity":"sha512-025/AD8r5mUfbXhQVP7I9B2X8DrAwcP3YKnF1ICmAS0gH5wMrf36y4NNXXkJF826E+GR/AWmdI8xgdCIsgs8FQ==","signatures":[{"sig":"MEUCIQDfo2TsU6YuT8ahlSKIkv+Vr0mv5Jt9gIpAH+7Ad5iH/QIgbLxeOs2gjz4iqrXyMnfNWV7gmcSc+KzA9jMHx60nx2E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":214324},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"3b55174a135d3d2d2d9d8c097d52a3a627c77564","scripts":{"build":"bun run tsc","prepare":"bun run build"},"_npmUser":{"name":"danscan","actor":{"name":"danscan","type":"user","email":"dan@dscanlon.com"},"email":"dan@dscanlon.com"},"repository":{"url":"git+https://github.com/danscan/zod-jsonrpc.git","type":"git"},"_npmVersion":"10.8.2","description":"Create JSON-RPC 2.0-compliant clients and servers that use Zod to validate requests and responses.","directories":{},"_nodeVersion":"20.19.2","dependencies":{"zod":"^3.25.67","@standard-schema/spec":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zod-jsonrpc_3.2.1_1751396612292_0.20675028817234797","host":"s3://npm-registry-packages-npm-production"}},"3.2.2":{"name":"@danscan/zod-jsonrpc","version":"3.2.2","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","client","batch","http","websocket","ipc","zod"],"_id":"@danscan/zod-jsonrpc@3.2.2","maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"homepage":"https://github.com/danscan/zod-jsonrpc","bugs":{"url":"https://github.com/danscan/zod-jsonrpc/issues"},"dist":{"shasum":"79d77cb649c2e92cc0287a5127aff0175220693e","tarball":"https://registry.npmjs.org/@danscan/zod-jsonrpc/-/zod-jsonrpc-3.2.2.tgz","fileCount":48,"integrity":"sha512-kGBbjj7xyZ10DKyeWWUUa+bp4KNgG6HAHQl6AVIYNvyD590SoLrMCXBcsSD9bDR4X1KR55ARrfe4Z4yGCyLtKQ==","signatures":[{"sig":"MEYCIQCbbt+s2MCI7yLo9t/paRTXB3mMpoA9A5FwUiYXKpoeCgIhAN+oCfSrS+ES5q5BfvXlPQvB53SQj3nLQhPF3VhqPaAn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69938},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"449a72b6fd3e6f99278462d15a7f55ba6bdb8f32","scripts":{"build":"bun run tsc","prepare":"bun run build"},"_npmUser":{"name":"danscan","actor":{"name":"danscan","type":"user","email":"dan@dscanlon.com"},"email":"dan@dscanlon.com"},"repository":{"url":"git+https://github.com/danscan/zod-jsonrpc.git","type":"git"},"_npmVersion":"10.8.2","description":"Create JSON-RPC 2.0-compliant clients and servers that use Zod to validate requests and responses.","directories":{},"_nodeVersion":"20.19.2","dependencies":{"zod":"^3.25.67","@standard-schema/spec":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/zod-jsonrpc_3.2.2_1751397137705_0.8194619853874652","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"@danscan/zod-jsonrpc","version":"3.3.0","repository":{"type":"git","url":"git+https://github.com/danscan/zod-jsonrpc.git"},"main":"dist/index.js","module":"dist/index.js","dependencies":{"@standard-schema/spec":"^1.0.0","zod":"^4.0.5"},"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0"},"bugs":{"url":"https://github.com/danscan/zod-jsonrpc/issues"},"description":"Create JSON-RPC 2.0-compliant clients and servers that use Zod to validate requests and responses.","homepage":"https://github.com/danscan/zod-jsonrpc","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","client","batch","http","websocket","ipc","zod"],"scripts":{"build":"bun run tsc","prepare":"bun run build"},"type":"module","types":"dist/index.d.ts","_id":"@danscan/zod-jsonrpc@3.3.0","gitHead":"8b857ed8365747f6ec763ffd461e02008921ca61","_nodeVersion":"20.19.3","_npmVersion":"10.8.2","dist":{"integrity":"sha512-B/hjqHqNC/opxYSHrz+Zf0tjeo7GxtyTviZntciNn4/L+l4846bzoHaakbgHR4SMLnEdkHmTeuyw99CeMDE2fQ==","shasum":"58e28c3331d0cea70f62ac4563c5abb2af1811dd","tarball":"https://registry.npmjs.org/@danscan/zod-jsonrpc/-/zod-jsonrpc-3.3.0.tgz","fileCount":48,"unpackedSize":69313,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCmYIev6JJl19sBTIO0ZGBhAGJ11vwBuGuKhY/NqmbBagIhAJfjH2cUjdITUAA8fBuWwh+7ZLxwhKnNwhZy9c25JrWu"}]},"_npmUser":{"name":"danscan","email":"dan@dscanlon.com"},"directories":{},"maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/zod-jsonrpc_3.3.0_1753151971928_0.8198162314037634"},"_hasShrinkwrap":false}},"time":{"created":"2024-11-05T19:03:14.649Z","modified":"2025-07-22T02:39:32.344Z","1.0.0":"2024-11-05T19:03:14.913Z","1.0.1":"2024-11-05T20:12:11.564Z","1.1.0":"2024-11-05T20:29:33.286Z","1.2.0":"2024-11-06T04:44:31.503Z","1.3.0":"2024-11-06T21:47:44.614Z","2.0.0":"2024-11-07T19:56:12.352Z","2.0.1":"2024-11-07T20:04:18.711Z","2.0.2":"2024-11-07T20:08:48.019Z","2.1.0":"2024-11-17T16:43:43.347Z","3.0.0":"2025-06-18T05:00:47.202Z","3.0.1":"2025-06-18T16:57:18.002Z","3.0.3":"2025-06-18T16:59:47.412Z","3.0.4":"2025-06-23T02:31:27.160Z","3.0.5":"2025-06-25T20:46:26.562Z","3.0.6":"2025-06-25T20:50:25.043Z","3.1.0":"2025-07-01T05:58:41.607Z","3.2.0":"2025-07-01T16:28:35.728Z","3.2.1":"2025-07-01T19:03:32.513Z","3.2.2":"2025-07-01T19:12:17.907Z","3.3.0":"2025-07-22T02:39:32.144Z"},"bugs":{"url":"https://github.com/danscan/zod-jsonrpc/issues"},"homepage":"https://github.com/danscan/zod-jsonrpc","keywords":["json-rpc","jsonrpc","jsonrpc 2.0","jsonrpc2","server","client","batch","http","websocket","ipc","zod"],"repository":{"type":"git","url":"git+https://github.com/danscan/zod-jsonrpc.git"},"description":"Create JSON-RPC 2.0-compliant clients and servers that use Zod to validate requests and responses.","maintainers":[{"name":"danscan","email":"dan@dscanlon.com"}],"readme":"# zod-jsonrpc\n\nCreate type-safe JSON-RPC API clients and servers in JS/TS using any transport.\n\n## Features\n\n- **JSON-RPC 2.0-compliant** - Comprehensive spec compliance including batch requests, notifications, and errors\n- **Supports many schema validation libraries** - Uses `@standard-schema/spec` to support Zod, Effect Schema, Valibot, ArkType, and more\n- **Transport-agnostic** - Works with HTTP, WebSockets, or any custom transport layer\n- **Automatic request handling** - Batch requests, notifications, and error responses handled automatically\n- **Raw client modes** - Disable client-side validation for performance or when server validation is guaranteed\n- **Type safety** - Full TypeScript support with automatic inference for requests and responses, including batch requests\n\n### Schema Validation Libraries\n\n`zod-jsonrpc` uses `@standard-schema/spec` for schema validation, supporting any library that implements the Standard Schema specification:\n- Zod\n- Effect Schema  \n- Valibot\n- ArkType\n- ...and [more](https://standardschema.dev/#what-schema-libraries-implement-the-spec)\n\n## Installation\n\n```bash\nbun add @danscan/zod-jsonrpc\nyarn add @danscan/zod-jsonrpc\nnpm add @danscan/zod-jsonrpc\n```\n\n## Quick Start\n\n`zod-jsonrpc` makes it easy to create type-safe JSON-RPC servers and clients.\n\n```typescript\nimport { createServer, createClient, method } from '@danscan/zod-jsonrpc';\nimport { z } from 'zod';\n\n// Define methods\nconst greet = method({\n  paramsSchema: z.object({ name: z.string() }),\n  resultSchema: z.string(),\n}, ({ name }) => `Hello, ${name}!`);\n\n// Create server and client\nconst server = createServer({ greet });\nconst client = createClient({ greet }, async (request) => {\n  // Your transport layer here: fetch, WebSocket, etc.\n  return server.request(request);\n});\n\n// Make type-safe calls\nconst greeting = await client.greet({ name: 'World' });\nconsole.log(greeting); // \"Hello, World!\"\n```\n\n## Methods\n\nMethods are the core building blocks of your JSON-RPC API. They define the input and output schemas for a given method, and the handler function that will be called when the method is invoked.\n\n```typescript\nconst greet = method({\n  paramsSchema: z.object({ name: z.string() }),\n  resultSchema: z.string(),\n}, ({ name }) => `Hello, ${name}!`);\n```\n\nYou can also define methods with a `paramsSchema` and a `resultSchema` only, and provide a handler function later:\n\n```typescript\n// Import this in your client and server\nexport const greet = method({\n  paramsSchema: z.object({ name: z.string() }),\n  resultSchema: z.string(),\n});\n\n// In your server implementation:\nimport { greet } from './methods';\n\nconst server = createServer({\n  greet: greet.implement(({ name }) => `Hello, ${name}!`),\n});\n```\n\n## Creating Servers\n\nStart by creating a server with your methods:\n\n```typescript\nimport { createServer, method, JSONRPCError } from '@danscan/zod-jsonrpc';\nimport { z } from 'zod';\n\nconst server = createServer({\n  add: method({\n    paramsSchema: z.object({ a: z.number(), b: z.number() }),\n    resultSchema: z.number(),\n  }, ({ a, b }) => a + b),\n\n  divide: method({\n    paramsSchema: z.object({ dividend: z.number(), divisor: z.number() }),\n    resultSchema: z.number(),\n  }, ({ dividend, divisor }) => {\n    if (divisor === 0) {\n      throw new JSONRPCError.InvalidParams({ message: 'Cannot divide by zero' });\n    }\n    return dividend / divisor;\n  }),\n});\n```\n\nThe server automatically handles single requests, batch requests, and notifications:\n\n```typescript\n// Single request\nconst result = await server.request({\n  id: 1,\n  method: 'add',\n  params: { a: 5, b: 3 },\n  jsonrpc: '2.0',\n});\n// { id: 1, result: 8, jsonrpc: '2.0' }\n\n// Batch request\nconst results = await server.request([\n  { id: 1, method: 'add', params: { a: 5, b: 3 }, jsonrpc: '2.0' },\n  { id: 2, method: 'divide', params: { dividend: 10, divisor: 2 }, jsonrpc: '2.0' },\n]);\n// [{ id: 1, result: 8, jsonrpc: '2.0' }, { id: 2, result: 5, jsonrpc: '2.0' }]\n```\n\n## Error Handling\n\nServers automatically convert any thrown error into proper JSON-RPC responses:\n\n```typescript\nconst server = createServer({\n  validateAge: method({\n    paramsSchema: z.object({ age: z.number() }),\n    resultSchema: z.boolean(),\n  }, ({ age }) => {\n    if (age < 0) {\n      // You can easily construct and throw a JSONRPC-specific error (ParseError, InvalidRequest, MethodNotFound, InvalidParams, InternalError)\n      throw JSONRPCError.InvalidParams({ message: 'Age cannot be negative', data: { age } });\n    }\n    if (age >= 150) {\n      // Any other kind of thrown error becomes a JSONRPCError.InternalError\n      throw new Error(`Please don't use Bryan Johnson's age`);\n    }\n    return true;\n  }),\n});\n```\n\nErrors are handled individually in batch requests, so one failure doesn't affect others:\n\n```typescript\nconst results = await server.request([\n  { id: 1, method: 'validateAge', params: { age: 25 }, jsonrpc: '2.0' },\n  { id: 2, method: 'validateAge', params: { age: -5 }, jsonrpc: '2.0' },\n  { id: 3, method: 'validateAge', params: { age: 200 }, jsonrpc: '2.0' },\n]);\n// [\n//   { id: 1, result: true, jsonrpc: '2.0' },\n//   { id: 2, error: { code: -32602, message: 'Invalid params: Age cannot be negative' }, jsonrpc: '2.0' },\n//   { id: 3, error: { code: -32603, message: 'Internal error', data: { message: 'Please don\\'t use Bryan Johnson\\'s age' } }, jsonrpc: '2.0' }\n// ]\n```\n\n## Creating Clients\n\nBuild type-safe clients that validate requests and responses:\n\n```typescript\nimport { createClient, method } from '@danscan/zod-jsonrpc';\n\n// Define your transport\nconst sendRequest = async (request) => {\n  const response = await fetch('/api/jsonrpc', {\n    method: 'POST',\n    headers: { 'Content-Type': 'application/json' },\n    body: JSON.stringify(request),\n  });\n  return response.json();\n};\n\n// Create client with method definitions\nconst client = createClient({\n  add: method({\n    paramsSchema: z.object({ a: z.number(), b: z.number() }),\n    resultSchema: z.number(),\n  }),\n}, sendRequest);\n\n// Make calls with full type safety\nconst sum = await client.add({ a: 5, b: 3 }); // number\n```\n\n## Batch Requests\n\nClients provide a convenient API for batch requests with named results:\n\n```typescript\nconst results = await client.batch((ctx) => ({\n  // Name each call in the batch so you can easily access the results by name\n  // All calls are executed in parallel, so you can use the results as they come in\n  sum: ctx.add({ a: 5, b: 3 }),\n  product: ctx.multiply({ a: 5, b: 3 }),\n  quotient: ctx.divide({ dividend: 10, divisor: 2 }),\n}));\n\n// Handle results with type-safe error checking\nif (results.sum.ok) {\n  console.log('Sum:', results.sum.value); // number\n} else {\n  console.error('Sum failed:', results.sum.error.message);\n}\n\n// Process all results\nObject.entries(results).forEach(([operation, result]) => {\n  if (result.ok) {\n    console.log(`${operation}:`, result.value);\n  } else {\n    console.error(`${operation} failed:`, result.error.message);\n  }\n});\n```\n\n## Using Schema Transformations\n\nSchemas that change your data in any way should usually only be applied once. If you provide a transforming schema in a method on both your client and server, you should use a raw client to avoid double transformation.\n\n```typescript\n// This method is provided to the client and server\nconst normalize = method({\n  paramsSchema: z.string().transform(s => s.toUpperCase()),\n  resultSchema: z.string().transform(s => `Result: ${s}`),\n}, (input) => input);\n\n\nconst server = createServer({ normalize });\n\n// If you create your client manually, you can use the `raw` method to create a raw client\n// This way, the schema transformation is only applied on the server\nconst client = createClient({ normalize }, sendRequest);\nconst rawClient = client.raw();\n\n// When generating a client from a server, it will be a raw client by default\nconst client = server.createClient(sendRequest);\n```\n\nIf you are only using zod-jsonrpc for the client, your schema transformations will only be applied once, so you don't need to use a raw client.\n\n```typescript\nconst client = createClient({ normalize }, sendRequest);\nconst result = await client.normalize('hello'); // \"Result: HELLO\"\n```\n\n## Raw Client Modes\n\nClient has methods that return a new client with different validation modes:\n\n- `client.raw()`: Skip all schema parsing on the client, delegating to the server\n- `client.rawParams()`: Skip only parameter validation on the client\n- `client.rawResults()`: Skip only result validation on the client\n- `client.validating()`: Re-enable all validation on the client\n\n```typescript\nconst client = createClient({ add }, sendRequest);\n\n// Skip validation of both params and results\nconst rawClient = client.raw();\nconst result = await rawClient.add({ a: 5, b: 3 }); // No client-side validation\n\n// Skip only params validation (results still validated)\nconst rawParamsClient = client.rawParams();\n\n// Skip only result validation (params still validated)\nconst rawResultsClient = client.rawResults();\n\n// Re-enable params and results validation\nconst validatingClient = rawClient.validating();\n\n// For example, to disable validation on one request:\nclient.raw().add({ a: 5, b: 3 });\n```\n\n## Transport Integration\n\nIntegrate with any HTTP framework or transport:\n\n```typescript\nconst jsonRpcServer = createServer({ add, divide });\n\n// Bun\nBun.serve({\n  fetch: async (req) => {\n    const request = await req.json();\n    const response = await jsonRpcServer.request(request);\n    return Response.json(response);\n  }\n});\n\n// Next.js App Router\nexport async function POST(request: Request) {\n  const jsonRpcRequest = await request.json();\n  const jsonRpcResponse = await jsonRpcServer.request(jsonRpcRequest);\n  return Response.json(jsonRpcResponse);\n}\n\n// Express.js\napp.post('/jsonrpc', async (req, res) => {\n  const response = await jsonRpcServer.request(req.body);\n  res.json(response);\n});\n```\n\n## Recommended Project Structure\n\nFor larger applications, separate method definitions from implementations:\n\n```\nsrc/\n  api/\n    methods/          # Shared method definitions\n      user.ts\n      auth.ts\n    server.ts         # Server implementation\n    client.ts         # Client setup\n```\n\nDefine methods separately to share between client and server:\n\n```typescript\n// api/methods/user.ts\nexport const getUser = method({\n  paramsSchema: z.object({ id: z.string().uuid() }),\n  resultSchema: z.object({\n    id: z.string().uuid(),\n    name: z.string(),\n    email: z.string().email(),\n  }),\n});\n\n// api/server.ts\nimport * as methods from './methods';\n\nexport const server = createServer({\n  getUser: methods.getUser.implement(async ({ id }) => {\n    return await getUserFromDatabase(id);\n  }),\n});\n\n// api/client.ts\nimport * as methods from './methods';\n\nexport const client = createClient({\n  getUser: methods.getUser,\n}, sendRequest);\n```\n\nThis structure enables you to share method definitions, maintain type safety across your entire API, and version your API independently of implementation details.\n","readmeFilename":"README.md"}