{"_id":"@assassinonz/exzodus-router","_rev":"15-a3058e62a82b761d66294c45777fffb2","name":"@assassinonz/exzodus-router","dist-tags":{"latest":"0.0.22"},"versions":{"0.0.7":{"name":"@assassinonz/exzodus-router","version":"0.0.7","keywords":["zod","axios","express","zodios","kubb","swagger-zod"],"author":{"name":"assassinoNz"},"license":"ISC","_id":"@assassinonz/exzodus-router@0.0.7","maintainers":[{"name":"assassinonz","email":"nirmaldiaz@gmail.com"}],"homepage":"https://github.com/assassinoNz/ExZodus#readme","bugs":{"url":"https://github.com/assassinoNz/ExZodus/issues"},"dist":{"shasum":"997adb85588248e27e9fa304f64e9a1da21a06e2","tarball":"https://registry.npmjs.org/@assassinonz/exzodus-router/-/exzodus-router-0.0.7.tgz","fileCount":10,"integrity":"sha512-5sDFjlIwPIGxKwOTrVABOBpFdIRtbhb8xAou/ReIUfw8eCLP+ppv3nSkdLnuOwXtIn7VtwZRf9CfQbqoRaUVng==","signatures":[{"sig":"MEYCIQD/K2f1lvEtWulKIDVeYVYHPUSUOq4NeJc3ONdISeOqLQIhAJMBoOAhIO0gEyNy+Tog/vBbQiZojoRoxJJsYdfXmG84","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14554},"main":"./build/router/index.js","type":"module","types":"./build/router/index.d.ts","gitHead":"ce780fe0c471f97389b0b0920f0b96cc14bd3270","scripts":{"build":"rm -r ./build; tsc","prepublish":"npm run build"},"_npmUser":{"name":"assassinonz","email":"nirmaldiaz@gmail.com"},"repository":{"url":"git+https://github.com/assassinoNz/ExZodus.git","type":"git"},"_npmVersion":"8.19.2","description":"Express router wrapper with end to end type safety","directories":{},"_nodeVersion":"18.12.1","dependencies":{"express":"^4.19.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.4","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/exzodus-router_0.0.7_1725894204990_0.8270328797100219","host":"s3://npm-registry-packages"}},"0.0.9":{"name":"@assassinonz/exzodus-router","version":"0.0.9","keywords":["zod","axios","express","zodios","kubb","swagger-zod"],"author":{"name":"assassinoNz"},"license":"ISC","_id":"@assassinonz/exzodus-router@0.0.9","maintainers":[{"name":"assassinonz","email":"nirmaldiaz@gmail.com"}],"homepage":"https://github.com/assassinoNz/ExZodus#readme","bugs":{"url":"https://github.com/assassinoNz/ExZodus/issues"},"dist":{"shasum":"48ffccb548ca138a0a50d406d77fc69341753851","tarball":"https://registry.npmjs.org/@assassinonz/exzodus-router/-/exzodus-router-0.0.9.tgz","fileCount":11,"integrity":"sha512-Mz0wd8Lmnc6+M1myJUnm7Ig8jExZUDRX62o9cDQxmT5suzarQhbyY7cUS/jpSegr+wV39/SpNJjWU3MCOwRMpw==","signatures":[{"sig":"MEUCIGbxyGPd+6MVaTue9OaxaxL1wsyhVQP4B/hQrYLvKyjrAiEA7AGeOOGPijKVKGpfqs9tnUk6guNU1taFsa6+zafToY8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18954},"main":"./build/router/index.js","type":"module","types":"./build/router/index.d.ts","gitHead":"ce780fe0c471f97389b0b0920f0b96cc14bd3270","scripts":{"build":"rm -r ./build; tsc","prepublish":"npm run build"},"_npmUser":{"name":"assassinonz","email":"nirmaldiaz@gmail.com"},"repository":{"url":"git+https://github.com/assassinoNz/ExZodus.git","type":"git"},"_npmVersion":"8.19.2","description":"Express router wrapper with end to end type safety","directories":{},"_nodeVersion":"18.12.1","dependencies":{"express":"^4.19.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.4","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/exzodus-router_0.0.9_1725894715309_0.20467186169152796","host":"s3://npm-registry-packages"}},"0.0.10":{"name":"@assassinonz/exzodus-router","version":"0.0.10","keywords":["zod","axios","express","zodios","kubb","swagger-zod"],"author":{"name":"assassinoNz"},"license":"ISC","_id":"@assassinonz/exzodus-router@0.0.10","maintainers":[{"name":"assassinonz","email":"nirmaldiaz@gmail.com"}],"homepage":"https://github.com/assassinoNz/ExZodus#readme","bugs":{"url":"https://github.com/assassinoNz/ExZodus/issues"},"dist":{"shasum":"94d8b9113338878fef8be72c336d5d45a6909cc4","tarball":"https://registry.npmjs.org/@assassinonz/exzodus-router/-/exzodus-router-0.0.10.tgz","fileCount":11,"integrity":"sha512-XlR4Zf8pLr+I6mgElrifFy7SWz80fh5QQ/i+2Zngf/W9tmZk+00LOKHIzsEo1KdDOAvw9ahLxfnDKJBXWB4rrg==","signatures":[{"sig":"MEUCIQDGbN1Fn5vee9XUgNNGKdMw9D4eHwr50RydGH4aoM5mhQIgDW8MHf1zdhvsg06zwu8sfhSwGv6Ihf/2RwkZZpiyf8o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18977},"main":"./build/router/index.js","type":"module","types":"./build/router/index.d.ts","gitHead":"42d9573f9acec1e9fbb21398948dcf4dcd7f02a9","scripts":{"build":"rm -r ./build; tsc","prepublish":"npm run build"},"_npmUser":{"name":"assassinonz","email":"nirmaldiaz@gmail.com"},"repository":{"url":"git+https://github.com/assassinoNz/ExZodus.git","type":"git"},"_npmVersion":"10.8.2","description":"Express router wrapper with end to end type safety","directories":{},"_nodeVersion":"22.8.0","dependencies":{"zod":"^3.23.8","express":"^4.19.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.4","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/exzodus-router_0.0.10_1725943048529_0.7645580826865666","host":"s3://npm-registry-packages"}},"0.0.11":{"name":"@assassinonz/exzodus-router","version":"0.0.11","keywords":["zod","axios","express","zodios","kubb","swagger-zod"],"author":{"name":"assassinoNz"},"license":"ISC","_id":"@assassinonz/exzodus-router@0.0.11","maintainers":[{"name":"assassinonz","email":"nirmaldiaz@gmail.com"}],"homepage":"https://github.com/assassinoNz/ExZodus#readme","bugs":{"url":"https://github.com/assassinoNz/ExZodus/issues"},"dist":{"shasum":"e5442ccbb13674e4cabe53a771b843c132e7956d","tarball":"https://registry.npmjs.org/@assassinonz/exzodus-router/-/exzodus-router-0.0.11.tgz","fileCount":11,"integrity":"sha512-s6rXFrep33mfjUSTQae0G6MshDqvvlvuGrCbFybXLodZNZk4AKpKSW5kYzLxiQGy7G6s57u4jIeKXHB35R+CFA==","signatures":[{"sig":"MEUCIC53wuZQLrCWFAtLDHbuavb9wNxj3dCEyAn0SA2q85j+AiEAppU42pY5hNkYEuNap4YHecg0YNKnm5Q9GtZj4ShVcsQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18977},"main":"./build/router/index.js","type":"module","types":"./build/router/index.d.ts","gitHead":"42d9573f9acec1e9fbb21398948dcf4dcd7f02a9","scripts":{"build":"rm -r ./build; tsc","prepublish":"npm run build"},"_npmUser":{"name":"assassinonz","email":"nirmaldiaz@gmail.com"},"repository":{"url":"git+https://github.com/assassinoNz/ExZodus.git","type":"git"},"_npmVersion":"10.8.3","description":"Express router wrapper with end to end type safety","directories":{},"_nodeVersion":"22.9.0","dependencies":{"zod":"^3.23.8","express":"^4.19.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.4","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/exzodus-router_0.0.11_1729238262008_0.9796170333799454","host":"s3://npm-registry-packages"}},"0.0.12":{"name":"@assassinonz/exzodus-router","version":"0.0.12","keywords":["zod","axios","express","zodios","kubb","swagger-zod"],"author":{"name":"assassinoNz"},"license":"ISC","_id":"@assassinonz/exzodus-router@0.0.12","maintainers":[{"name":"assassinonz","email":"nirmaldiaz@gmail.com"}],"homepage":"https://github.com/assassinoNz/ExZodus#readme","bugs":{"url":"https://github.com/assassinoNz/ExZodus/issues"},"dist":{"shasum":"84deec795adf8fee043632dcbe9ace2f92ae0537","tarball":"https://registry.npmjs.org/@assassinonz/exzodus-router/-/exzodus-router-0.0.12.tgz","fileCount":11,"integrity":"sha512-ez2LYw3bdIE0ZJwptkArIB7/w99FkfEp9DwKpv+bBeSQGrutAPLcwoWvLOl+Kn6HRXPqm+T0GC9nPFeJkxNYVQ==","signatures":[{"sig":"MEUCIQCqFnqekcDR7yshFH6jz/3em4qjvTc73WVzDASPtvnYIAIgc9pIBFKYx/Cc70YMRC7BtY/nvPwQ9YUjfyJjQ3dtfok=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18998},"main":"./build/router/index.js","type":"module","types":"./build/router/index.d.ts","gitHead":"6ee99ab981ba46d10379d389708606b3ec919427","scripts":{"build":"rm -r ./build; tsc","prepublish":"npm run build"},"_npmUser":{"name":"assassinonz","email":"nirmaldiaz@gmail.com"},"repository":{"url":"git+https://github.com/assassinoNz/ExZodus.git","type":"git"},"_npmVersion":"10.8.3","description":"Express router wrapper with end to end type safety","directories":{},"_nodeVersion":"22.9.0","dependencies":{"zod":"^3.23.8","express":"^4.19.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.4","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/exzodus-router_0.0.12_1729238833355_0.12374261367247974","host":"s3://npm-registry-packages"}},"0.0.13":{"name":"@assassinonz/exzodus-router","version":"0.0.13","keywords":["zod","axios","express","zodios","kubb","swagger-zod"],"author":{"name":"assassinoNz"},"license":"ISC","_id":"@assassinonz/exzodus-router@0.0.13","maintainers":[{"name":"assassinonz","email":"nirmaldiaz@gmail.com"}],"homepage":"https://github.com/assassinoNz/ExZodus#readme","bugs":{"url":"https://github.com/assassinoNz/ExZodus/issues"},"dist":{"shasum":"6f46c1fe5980c827b6887bc821fe941098aea74a","tarball":"https://registry.npmjs.org/@assassinonz/exzodus-router/-/exzodus-router-0.0.13.tgz","fileCount":11,"integrity":"sha512-1j75gEpnEe3il7kpT1KAaGyJCt4qDbHsvbK6SndIvi3eVW30jwpMc/bJIG1eWGLJ3OsiYi5/ffHmKB32wrzHkg==","signatures":[{"sig":"MEUCIQDUF5PflwJy0nIKCzPP9y+iSYIqBRji09w1aMsmeyyl1wIgIbdo0o2zN9du3T9wzf6GMPuZZl3HHNsgkuBKAlIjU2Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19499},"main":"./build/router/index.js","type":"module","types":"./build/router/index.d.ts","gitHead":"6ee99ab981ba46d10379d389708606b3ec919427","scripts":{"build":"rm -r ./build; tsc","prepublish":"npm run build"},"_npmUser":{"name":"assassinonz","email":"nirmaldiaz@gmail.com"},"repository":{"url":"git+https://github.com/assassinoNz/ExZodus.git","type":"git"},"_npmVersion":"10.8.3","description":"Express router wrapper with end to end type safety","directories":{},"_nodeVersion":"22.9.0","dependencies":{"zod":"^3.23.8","express":"^5.0.1","@types/express":"^5.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/exzodus-router_0.0.13_1729778837483_0.6989076299014196","host":"s3://npm-registry-packages"}},"0.0.14":{"name":"@assassinonz/exzodus-router","version":"0.0.14","keywords":["zod","axios","express","zodios","kubb","swagger-zod"],"author":{"name":"assassinoNz"},"license":"ISC","_id":"@assassinonz/exzodus-router@0.0.14","maintainers":[{"name":"assassinonz","email":"nirmaldiaz@gmail.com"}],"homepage":"https://github.com/assassinoNz/ExZodus#readme","bugs":{"url":"https://github.com/assassinoNz/ExZodus/issues"},"dist":{"shasum":"ad078d6af462f5309cf2573001dfec08fec25a34","tarball":"https://registry.npmjs.org/@assassinonz/exzodus-router/-/exzodus-router-0.0.14.tgz","fileCount":11,"integrity":"sha512-em9k/GumKxA9bnb5v6YQSAddGYG8gJSi3LqSWHYtL8FpjP5h0g3cMrE2igkAQavWSwIOWl71NHHjLl8OIR1S7A==","signatures":[{"sig":"MEUCIQD4rS2DP+TcDpjY9xe27rJTfJNzRDINnJEk8bS/saEATQIgePN3K/uCOEF32gniMgA3w0gEet5QYOEeVGKw3arpxIc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19905},"main":"./build/router/index.js","type":"module","types":"./build/router/index.d.ts","gitHead":"6ee99ab981ba46d10379d389708606b3ec919427","scripts":{"build":"rm -r ./build; tsc","prepublish":"npm run build"},"_npmUser":{"name":"assassinonz","email":"nirmaldiaz@gmail.com"},"repository":{"url":"git+https://github.com/assassinoNz/ExZodus.git","type":"git"},"_npmVersion":"10.8.3","description":"Express router wrapper with end to end type safety","directories":{},"_nodeVersion":"22.9.0","dependencies":{"zod":"^3.23.8","express":"^4.21.1","@types/express":"^4.17.21"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/exzodus-router_0.0.14_1729783409134_0.6167799692961038","host":"s3://npm-registry-packages"}},"0.0.15":{"name":"@assassinonz/exzodus-router","version":"0.0.15","keywords":["zod","axios","express","zodios","kubb","swagger-zod"],"author":{"name":"assassinoNz"},"license":"ISC","_id":"@assassinonz/exzodus-router@0.0.15","maintainers":[{"name":"assassinonz","email":"nirmaldiaz@gmail.com"}],"homepage":"https://github.com/assassinoNz/ExZodus#readme","bugs":{"url":"https://github.com/assassinoNz/ExZodus/issues"},"dist":{"shasum":"c36c437398b978291254ab9e567f113d7d5687e5","tarball":"https://registry.npmjs.org/@assassinonz/exzodus-router/-/exzodus-router-0.0.15.tgz","fileCount":11,"integrity":"sha512-xLmmqc2Biv14IzoiVziqGGJ7uzAaPzg363glsFgabTfJC+GWpBugcpJedsoJNsMQqw/1Wt8IKFsjoTmJkwgPFw==","signatures":[{"sig":"MEUCIAfBbqhyKQUsyTmm3jsQfmP4c/R8zQu3RypjkbZwBWx3AiEAiCYjH80AOEs2zNTn907JDnnkHFP51GMQm3rj+im/tt4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19885},"main":"./build/router/index.js","type":"module","types":"./build/router/index.d.ts","gitHead":"6ee99ab981ba46d10379d389708606b3ec919427","scripts":{"build":"rm -r ./build; tsc","prepublish":"npm run build"},"_npmUser":{"name":"assassinonz","email":"nirmaldiaz@gmail.com"},"repository":{"url":"git+https://github.com/assassinoNz/ExZodus.git","type":"git"},"_npmVersion":"10.8.3","description":"Express router wrapper with end to end type safety","directories":{},"_nodeVersion":"22.9.0","dependencies":{"zod":"^3.23.8","express":"^4.21.1","@types/express":"^4.17.21"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/exzodus-router_0.0.15_1729786492064_0.0772070909816942","host":"s3://npm-registry-packages"}},"0.0.16":{"name":"@assassinonz/exzodus-router","version":"0.0.16","keywords":["zod","axios","express","zodios","kubb","swagger-zod"],"author":{"name":"assassinoNz"},"license":"ISC","_id":"@assassinonz/exzodus-router@0.0.16","maintainers":[{"name":"assassinonz","email":"nirmaldiaz@gmail.com"}],"homepage":"https://github.com/assassinoNz/ExZodus#readme","bugs":{"url":"https://github.com/assassinoNz/ExZodus/issues"},"dist":{"shasum":"532242ab0fef570b2da6e742dac477de2c5229c1","tarball":"https://registry.npmjs.org/@assassinonz/exzodus-router/-/exzodus-router-0.0.16.tgz","fileCount":11,"integrity":"sha512-Z0nq2Mc9rsilpp3Hx4Y/RRtGyKwKbdGByHu/kJf15sDdtcoEPT5EPs374QvSMpOtA/E/b/exKD9dygWsf43gnQ==","signatures":[{"sig":"MEUCIG3R1RiEz2wI9iiC18/O/CK55EvHriUoN4LNZgE8hbEgAiEA2rv0KsnefAbcGJtkMAMgVRLge96WWintdYbn/KhWjs8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20134},"main":"./build/router/index.js","type":"module","types":"./build/router/index.d.ts","gitHead":"aee62329052dd150f43ce0eb711536987377c988","scripts":{"build":"rm -r ./build; tsc","prepublish":"npm run build"},"_npmUser":{"name":"assassinonz","email":"nirmaldiaz@gmail.com"},"repository":{"url":"git+https://github.com/assassinoNz/ExZodus.git","type":"git"},"_npmVersion":"10.8.3","description":"Express router wrapper with end to end type safety","directories":{},"_nodeVersion":"22.9.0","dependencies":{"zod":"^3.23.8","express":"^4.21.1","@types/express":"^4.17.21"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/exzodus-router_0.0.16_1729856256922_0.6814190161798228","host":"s3://npm-registry-packages"}},"0.0.17":{"name":"@assassinonz/exzodus-router","version":"0.0.17","keywords":["zod","axios","express","zodios","kubb","swagger-zod"],"author":{"name":"assassinoNz"},"license":"ISC","_id":"@assassinonz/exzodus-router@0.0.17","maintainers":[{"name":"assassinonz","email":"nirmaldiaz@gmail.com"}],"homepage":"https://github.com/assassinoNz/ExZodus#readme","bugs":{"url":"https://github.com/assassinoNz/ExZodus/issues"},"dist":{"shasum":"0dc9099181fa5153a661e631f9a71cd4ba1906f5","tarball":"https://registry.npmjs.org/@assassinonz/exzodus-router/-/exzodus-router-0.0.17.tgz","fileCount":11,"integrity":"sha512-BZ1FDfi+R6084rVu1ATKWpx64aOA3B32NhhlxJ8aPrLiUroIucwsJ9499Cbqp9YXtQ98Ycqek0UX2wgxWj+EPg==","signatures":[{"sig":"MEQCIAK1QJYVIZ87yqmqOszjFy5+P7T4AXDVukYGSLGavz8hAiBRtklVmDprxpCsOtYUhGQ2FG34akos/Ucrau+l8G9hyQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20260},"main":"./build/router/index.js","type":"module","types":"./build/router/index.d.ts","gitHead":"44cd67dc3386881212db84240a80590b918a4c43","scripts":{"build":"rm -r ./build; tsc","prepublish":"npm run build"},"_npmUser":{"name":"assassinonz","email":"nirmaldiaz@gmail.com"},"repository":{"url":"git+https://github.com/assassinoNz/ExZodus.git","type":"git"},"_npmVersion":"10.8.3","description":"Express router wrapper with end to end type safety","directories":{},"_nodeVersion":"22.9.0","dependencies":{"zod":"^3.23.8","express":"^4.21.1","@types/express":"^4.17.21"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/exzodus-router_0.0.17_1732526411287_0.16232288416800023","host":"s3://npm-registry-packages"}},"0.0.18":{"name":"@assassinonz/exzodus-router","version":"0.0.18","keywords":["zod","axios","express","zodios","kubb","swagger-zod"],"author":{"name":"assassinoNz"},"license":"ISC","_id":"@assassinonz/exzodus-router@0.0.18","maintainers":[{"name":"assassinonz","email":"nirmaldiaz@gmail.com"}],"homepage":"https://github.com/assassinoNz/ExZodus#readme","bugs":{"url":"https://github.com/assassinoNz/ExZodus/issues"},"dist":{"shasum":"41e64fd39b533206b30d0f2ca7992dd79bbfef82","tarball":"https://registry.npmjs.org/@assassinonz/exzodus-router/-/exzodus-router-0.0.18.tgz","fileCount":11,"integrity":"sha512-U24ldkTrtXbsoZWlIr/07cvVdRgXfax+5bbeCq2LrMu/LaJyrFV5ZFlssTBPOho3CHzGe8DvQEQUtyi4xaJKSg==","signatures":[{"sig":"MEUCIBrf0KtQkKzy6MC4YpUQN4s7+8h6AurJgyGQee3JnFlvAiEA2HsCCRmi5GqEgQ3q18BC6Up8NJQm/+H14ZGmOXU1zMY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20271},"main":"./build/router/index.js","type":"module","types":"./build/router/index.d.ts","gitHead":"3d5d5267fc05bd8d823f76863d1a243af3dcf216","scripts":{"build":"rm -r ./build; tsc","prepublish":"npm run build"},"_npmUser":{"name":"assassinonz","email":"nirmaldiaz@gmail.com"},"repository":{"url":"git+https://github.com/assassinoNz/ExZodus.git","type":"git"},"_npmVersion":"10.8.3","description":"Express router wrapper with end to end type safety","directories":{},"_nodeVersion":"22.9.0","dependencies":{"zod":"^3.23.8","express":"^4.21.1","@types/express":"^4.17.21"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/exzodus-router_0.0.18_1732779433726_0.08117619486814309","host":"s3://npm-registry-packages"}},"0.0.19":{"name":"@assassinonz/exzodus-router","version":"0.0.19","keywords":["zod","axios","express","zodios","kubb","swagger-zod"],"author":{"name":"assassinoNz"},"license":"ISC","_id":"@assassinonz/exzodus-router@0.0.19","maintainers":[{"name":"assassinonz","email":"nirmaldiaz@gmail.com"}],"homepage":"https://github.com/assassinoNz/ExZodus#readme","bugs":{"url":"https://github.com/assassinoNz/ExZodus/issues"},"dist":{"shasum":"c93d1f46c6208e7d1e95154a53dccfcb6dc185f8","tarball":"https://registry.npmjs.org/@assassinonz/exzodus-router/-/exzodus-router-0.0.19.tgz","fileCount":11,"integrity":"sha512-hKDywVeW1abtLwGpk/8vhAK/RJxPJcIYR+uhhmnRmJ126tWmU6jdGK4N1CXioduUEl0eo5+CQETbxw5KtLkgsQ==","signatures":[{"sig":"MEYCIQCY7M1ECa5+P0JRnN56X5daL/1O44qiYlncT+oplbqPuwIhAJ/XBpwiOmsZDU4OYR0uYJsPJS6sFQJVeL6BQhjKduZ8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20458},"main":"./build/router/index.js","type":"module","types":"./build/router/index.d.ts","gitHead":"88a19c19a528378d5272b979a0e2702f7e88c09a","scripts":{"build":"rm -r ./build; tsc","prepublish":"npm run build"},"_npmUser":{"name":"assassinonz","email":"nirmaldiaz@gmail.com"},"repository":{"url":"git+https://github.com/assassinoNz/ExZodus.git","type":"git"},"_npmVersion":"10.8.3","description":"Express router wrapper with end to end type safety","directories":{},"_nodeVersion":"22.9.0","dependencies":{"zod":"^3.23.8","express":"^4.21.1","@types/express":"^4.17.21"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/exzodus-router_0.0.19_1732783607797_0.08987426482372207","host":"s3://npm-registry-packages"}},"0.0.20":{"name":"@assassinonz/exzodus-router","version":"0.0.20","keywords":["zod","axios","express","zodios","kubb","swagger-zod"],"author":{"name":"assassinoNz"},"license":"ISC","_id":"@assassinonz/exzodus-router@0.0.20","maintainers":[{"name":"assassinonz","email":"nirmaldiaz@gmail.com"}],"homepage":"https://github.com/assassinoNz/ExZodus#readme","bugs":{"url":"https://github.com/assassinoNz/ExZodus/issues"},"dist":{"shasum":"63e571ffe69a52227f6c30efccd7554c632c7b08","tarball":"https://registry.npmjs.org/@assassinonz/exzodus-router/-/exzodus-router-0.0.20.tgz","fileCount":11,"integrity":"sha512-4N2/h8jJ3f69/spgUKPagSFXHasP/dIUKNhmmpnCIaTvA+tg/FpCt1fcUtteCL6j6fLpaqp6IfB+L/g3LNXvIw==","signatures":[{"sig":"MEQCIBnEBWemeDZv61vPYMHmU4TEerLdIsX1oPO7Eb74CakJAiB9ooinmCq4ptwcg7Jl78+Frx1pkZlSLOqUAP189ns3IA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20396},"main":"./build/router/index.js","type":"module","types":"./build/router/index.d.ts","gitHead":"ad16f5831a7842deca94beff90d950092debfac2","scripts":{"build":"rm -r ./build; tsc","prepublish":"npm run build"},"_npmUser":{"name":"assassinonz","email":"nirmaldiaz@gmail.com"},"repository":{"url":"git+https://github.com/assassinoNz/ExZodus.git","type":"git"},"_npmVersion":"10.9.2","description":"Express router wrapper with end to end type safety","directories":{},"_nodeVersion":"23.4.0","dependencies":{"zod":"^3.23.8","express":"^4.21.1","@types/express":"^4.17.21"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/exzodus-router_0.0.20_1741092281845_0.9184743391234764","host":"s3://npm-registry-packages-npm-production"}},"0.0.21":{"name":"@assassinonz/exzodus-router","version":"0.0.21","keywords":["zod","axios","express","zodios","kubb","swagger-zod"],"author":{"name":"assassinoNz"},"license":"ISC","_id":"@assassinonz/exzodus-router@0.0.21","maintainers":[{"name":"assassinonz","email":"nirmaldiaz@gmail.com"}],"homepage":"https://github.com/assassinoNz/ExZodus#readme","bugs":{"url":"https://github.com/assassinoNz/ExZodus/issues"},"dist":{"shasum":"715885653dbae09bd687857a93426e873cf4482c","tarball":"https://registry.npmjs.org/@assassinonz/exzodus-router/-/exzodus-router-0.0.21.tgz","fileCount":11,"integrity":"sha512-lOqrUAZrnix84TUh9Ap2X3KBsve476uPTHwYvFH12FCH22+UyyAWbDdV23pgvM4n5ZUY/egmaOUKcfqQabVgGQ==","signatures":[{"sig":"MEUCIHEeRralPYelpAmsNdXhpwBEnTiKOsXbmSugRDouD2D+AiEAqpZVVqVAbw6aaJVV3P7iD5H4/dnIkSqoDP2jU/kOS2o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20447},"main":"./build/router/index.js","type":"module","types":"./build/router/index.d.ts","gitHead":"ba20d43dc9c3bb38b9877c2362e753050cdb9188","scripts":{"build":"rm -r ./build; tsc","prepublish":"npm run build"},"_npmUser":{"name":"assassinonz","email":"nirmaldiaz@gmail.com"},"repository":{"url":"git+https://github.com/assassinoNz/ExZodus.git","type":"git"},"_npmVersion":"10.9.2","description":"Express router wrapper with end to end type safety","directories":{},"_nodeVersion":"23.4.0","dependencies":{"zod":"^3.23.8","express":"^4.21.1","@types/express":"^4.17.21"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/exzodus-router_0.0.21_1741093259010_0.7146181711118935","host":"s3://npm-registry-packages-npm-production"}},"0.0.22":{"name":"@assassinonz/exzodus-router","version":"0.0.22","description":"Express router wrapper with end to end type safety","main":"./build/router/index.js","types":"./build/router/index.d.ts","scripts":{"prepublish":"npm run build","build":"rm -r ./build; tsc"},"type":"module","repository":{"type":"git","url":"git+https://github.com/assassinoNz/ExZodus.git"},"keywords":["zod","axios","express","zodios","kubb","swagger-zod"],"author":{"name":"assassinoNz"},"license":"ISC","bugs":{"url":"https://github.com/assassinoNz/ExZodus/issues"},"homepage":"https://github.com/assassinoNz/ExZodus#readme","dependencies":{"@types/express":"^4.17.21","express":"^4.21.1","zod":"^3.23.8"},"_id":"@assassinonz/exzodus-router@0.0.22","gitHead":"586b491bd99fc232911fec9d790c361441454bbf","_nodeVersion":"23.3.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-ZLskOdQT+YM/4vzpuIEQz7QzwpetbHEJWx0UHg+KDWi308gyMxoUj9FRgW1dWQUgekqvjF42qfhTLXtF79suZg==","shasum":"33e158c28d3ae790b774e05adc062b65fdec8066","tarball":"https://registry.npmjs.org/@assassinonz/exzodus-router/-/exzodus-router-0.0.22.tgz","fileCount":11,"unpackedSize":20447,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICUkEQ/7oDb3vK0on0zNwGryIVi1BIAl41HmyWz0Vz1dAiBcMByCXm4tvspo3hTT5U9J1u/s0WKDUMLu4IdriJf98Q=="}]},"_npmUser":{"name":"assassinonz","email":"nirmaldiaz@gmail.com"},"directories":{},"maintainers":[{"name":"assassinonz","email":"nirmaldiaz@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/exzodus-router_0.0.22_1760111252153_0.5434617923057519"},"_hasShrinkwrap":false}},"time":{"created":"2024-09-09T15:03:24.853Z","modified":"2025-10-10T15:47:32.556Z","0.0.7":"2024-09-09T15:03:25.129Z","0.0.9":"2024-09-09T15:11:55.481Z","0.0.10":"2024-09-10T04:37:28.764Z","0.0.11":"2024-10-18T07:57:42.162Z","0.0.12":"2024-10-18T08:07:13.564Z","0.0.13":"2024-10-24T14:07:17.693Z","0.0.14":"2024-10-24T15:23:29.285Z","0.0.15":"2024-10-24T16:14:52.388Z","0.0.16":"2024-10-25T11:37:37.114Z","0.0.17":"2024-11-25T09:20:11.440Z","0.0.18":"2024-11-28T07:37:13.934Z","0.0.19":"2024-11-28T08:46:47.994Z","0.0.20":"2025-03-04T12:44:42.065Z","0.0.21":"2025-03-04T13:00:59.199Z","0.0.22":"2025-10-10T15:47:32.361Z"},"bugs":{"url":"https://github.com/assassinoNz/ExZodus/issues"},"author":{"name":"assassinoNz"},"license":"ISC","homepage":"https://github.com/assassinoNz/ExZodus#readme","keywords":["zod","axios","express","zodios","kubb","swagger-zod"],"repository":{"type":"git","url":"git+https://github.com/assassinoNz/ExZodus.git"},"description":"Express router wrapper with end to end type safety","maintainers":[{"name":"assassinonz","email":"nirmaldiaz@gmail.com"}],"readme":"# ExZodus\r\n\r\nExZodus provides a type-safe Axios client wrapper and an Express router with auto-completion features backed by [Zod](https://github.com/colinhacks/zod) schemas. This project is heavily inspired by the [Zodios](https://www.zodios.org) project.\r\n\r\n## Why ExZodus?\r\n\r\nThe existence of this project is due to following factors.\r\n\r\n- The wrappers provided by the Zodios project caused heavy TS-Server performance issues leading to `Type instantiation is excessively deep and possibly infinite.ts(2589)` errors.\r\n- The api definition structure required by Zodios seems limited.\r\n\r\n## Can this replace Zodios?\r\nAbsolutely not.\r\n\r\n- If your workflow didn't encounter above mentioned problems, you should definitely use Zodios. It is well documented and established.\r\n\r\n- Zodios has many more features that won't be included in the scope of this project.\r\n\r\n## How to use?\r\n\r\n### 1. Installation\r\n```bash\r\nnpm i @assassinonz/exzodus\r\n```\r\n\r\n### 2. Schema definition\r\n- Use `@kubb/swagger-zod` to generate the API schema using an `openapi.yaml` file or hand write it.\r\n\r\n- The API schema is typed as follows.\r\n```typescript\r\ntype Path = string;\r\ntype Method = string;\r\ntype Api = Record<Path, Record<Method, {\r\n    request: z.ZodType | undefined;\r\n    parameters: {\r\n        path: z.ZodType | undefined;\r\n        query: z.ZodType | undefined;\r\n        header: z.ZodType | undefined;\r\n    };\r\n    responses: Record<number | \"default\", z.ZodType>;\r\n    errors: Record<number, z.ZodType>;\r\n}>>;\r\n```\r\n\r\n- An example schema looks as follows.\r\n```typescript\r\nexport const paths = {\r\n    \"/users/:id\": {\r\n        get: {\r\n            request: undefined,\r\n            parameters: {\r\n                path: z.object({ \"id\": z.coerce.number.int() }),\r\n                query: undefined,\r\n                header: undefined\r\n            },\r\n            responses: {\r\n                200: z.object({ \"id\": z.number.int(),  \"name\": z.string() }),\r\n                404: z.object({ \"message\": z.string() })\r\n                default: z.object({ \"id\": z.number.int(),  \"name\": z.string() })\r\n            },\r\n            errors: {\r\n                404: z.object({ \"message\": z.coerce.string() })\r\n            }\r\n        },\r\n    }\r\n}\r\n```\r\n\r\n### 3. Using ExZodusRouter\r\n\r\n```typescript\r\nimport { paths } from \"../../kubb/zod/operations.js\";\r\nimport { express, ExZodusRouter } from \"@assassinonz/exzodus-router\";\r\n\r\n//Define extras if modification of request type is needed\r\ntype Extras = {\r\n    ctx?: {\r\n        userId: number;\r\n    }\r\n}\r\n\r\n//                    @kubb/swagger-zod generated API schema\r\n//                                        ▼\r\nconst router = ExZodusRouter.new<typeof paths, Extras>(paths, {\r\n    //Provide error handler for Zod errors\r\n    errorHandler: (err, req, res) => {\r\n        //TODO: Handle errors\r\n    },\r\n\r\n    //Enable response validation to prevent unintentional data leaks\r\n    attachResponseValidator: true\r\n});\r\n\r\n\r\n//  auto-complete path  fully typed and validated input params (body, query, params)\r\n//             ▼           ▼    ▼\r\nrouter.get(\"/users/:id\", (req, res) => {\r\n    if (req.ctx === undefined) {\r\n        //Allows only documented response codes\r\n        //Response is typed from the body of 404 response\r\n        //                 ▼\r\n        return res.status(404).json({\r\n            message: \"Please login first\"\r\n        });\r\n    } else {\r\n        const user = findUserById(req.ctx.userId);\r\n\r\n        //Response is typed from the body of 200 response\r\n        //                 ▼\r\n        return res.status(200).json({\r\n            id: user.id,\r\n            name: user.name,\r\n            password: user.password\r\n        });\r\n    }\r\n\r\n});\r\n\r\n\r\nconst app = express();\r\napp.use(express.json());\r\napp.use(\"/api/v1\", router);\r\n```\r\n### 4. Using ExZodusClient\r\nCalling this API is now easy and has builtin autocomplete features :  \r\n  \r\n```typescript\r\nimport { paths } from \"../../kubb/zod/operations.js\";\r\nimport { ExZodusClient } from \"@assassinonz/exzodus-client\";\r\n\r\n\r\n//                @kubb/swagger-zod generated API schema\r\n//                                 ▼\r\nconst client = new ExZodusClient(paths, \"http://localhost:8080/api/v1\");\r\n\r\n\r\n//   typed                auto-complete path   auto-complete params\r\n//     ▼                           ▼                   ▼\r\nconst userResponse = await client.get(\"/users/:id\", { path: { id: 7 } });\r\nconsole.log(userResponse.data);\r\n```\r\n\r\n### 5. Output\r\nThis should output the following. Note the missing password field due to the `attachResponseValidator` option.\r\n```typescript\r\n{\r\n    id: 7,\r\n    name: \"John Doe\"\r\n}\r\n```","readmeFilename":"README.md"}