{"_id":"@zyrohub/module-router","_rev":"32-cd0f7e94749965f3e20c8aa579aca619","name":"@zyrohub/module-router","dist-tags":{"latest":"1.0.9"},"versions":{"0.0.1":{"name":"@zyrohub/module-router","version":"0.0.1","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.1","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"274f4dc6b319373a324dc4b40c43f80dc05d6019","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.1.tgz","fileCount":41,"integrity":"sha512-8U1bDvqV9FK5HfScohEWkBy8TFbOur5iSbO+FNWAk0esYYzKf+9k6wLBhVLa7TdTO2M8p6x+EmDicBr7t+LyJg==","signatures":[{"sig":"MEUCIAnXNFJlZAsyA9+PkoeYBpmVb6J/BPmvNgqftybDgIOrAiEA7wkihoEx8K3AVkesIgoT0DSbtc0ZR+Ez3gahVpla9Zc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29253},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0ff52a761258c01e1a00fc64c416ee2757c581fc","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.5","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.4"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.1_1768401689685_0.20015705073303192","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@zyrohub/module-router","version":"0.0.2","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.2","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"3397caa5ccc676c2409c4a658ed147770bcb69c7","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.2.tgz","fileCount":41,"integrity":"sha512-U4Sms/IA3UFsQil3VlDpDOgKJuuHng8C+MNsKxqVIUASo1GiV/xOKF7ec+5idZiAnpSos3Sh7pmW9fydURQ1/Q==","signatures":[{"sig":"MEQCIHa+zWGKv6Vw44vdZJHxSdurjAgnpSW7sCQUPfVlNTU8AiBQa8nBZXhuZD5ugvBhLsgIaRxHJRP3+VI6muao35EEWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29472},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"371d3922ba7bfcf81bfec9c352ff81622cf13b7c","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.5","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.4"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.2_1768422945744_0.918385211890715","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@zyrohub/module-router","version":"0.0.3","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.3","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"ab8a995f68ef8f5471b127da85cf1d5f5e4e278a","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.3.tgz","fileCount":41,"integrity":"sha512-q1izpJWZ7c7unv+qvsnhIYKp3g+6fQA9q3wT7Z9DpYOzZG7kfEVngDWPCJZJUCeh56wsgg1aduAEmxW/9v0nxg==","signatures":[{"sig":"MEUCIQDGbEiXW1a5SheRl8JV2B5MtzVzdql4SZ5BtDvf0Ll/fAIgK63M9yJ9GfS0IpXqCJL/sbQJcs1/ovoeeyE9nnwwGI0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29471},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"bb93da742dbf794dfca2132aedc00c1ef90d834c","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.5","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.4"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.3_1768424420708_0.5860511630926779","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@zyrohub/module-router","version":"0.0.4","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.4","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"806851feb7e498bdcbb44bfead9d0f57caad4d1f","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.4.tgz","fileCount":41,"integrity":"sha512-7Fu0sV0EX6grjBRDR2AYgiuIpJ+YpbGrpoJZGScqnfCrunE8VbY4ROhE7yx7NKlbVzpQ1eLZih4YeDtbnfN6qw==","signatures":[{"sig":"MEYCIQDu00neOmNwi1CIK4IRy1rsDjbszE9wCVTm6k77pRt4RQIhAJBToQt9nYdHZHU1pZ/TF+dkcQO51J/nWd8RPKdtnuh0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29427},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"56e305c91e188635ca7de92a8b2ef0fd4b4c128b","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.5","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.4"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.4_1768424970815_0.4709480566706987","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@zyrohub/module-router","version":"0.0.5","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.5","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"87653dd088ff13a71aeb3b4e4363ac15c20204b8","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.5.tgz","fileCount":43,"integrity":"sha512-OWMBWI45MKy3fu8kgZ0O013HEBePceXNmuEH1BpspkjZ0hdveHBtL5RDsrOFKgVYCI7KwqdJ9h00jyj5c7LbDA==","signatures":[{"sig":"MEUCIBarRoEWDo2eHpQ85u3Ic+kvDo0A/j8JMpcwb5roOZQhAiEAoDA4Plh68jT/znOOmZiKkr474njdvTZKKK9fM2uWngU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40460},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"863fdd9d4952abe32eb7fb68ca336e1a26f36bff","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.5","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.4"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.5_1768525900564_0.6656557101577083","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@zyrohub/module-router","version":"0.0.6","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.6","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"8ce5dc4288c6c18033700b6f5301428f37ae75fe","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.6.tgz","fileCount":43,"integrity":"sha512-TojvlJwcBFDieZZ4MMGLs3gabBHNFsnKxd2/CxwPxbS0qOvNjB/9iG1xlBbuq4Z/PU4pS9UKBWbhxUBIkdUaVw==","signatures":[{"sig":"MEQCIH1vrRI9yxR1FP/mkn8GzXPA9UUIjNQ+X0Z64pBD33m5AiAirHT+I394lImeXUvTwV0UcPMjPXNcFDCBB9e9wTiMjw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40841},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b3f1f9783c64bc85eafa6c860195136f78d761e0","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.5","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.4"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.6_1768577765429_0.5840091994626846","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@zyrohub/module-router","version":"0.0.7","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.7","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"ec11ecb79c07c05467fb780fc6ad124c427310ca","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.7.tgz","fileCount":43,"integrity":"sha512-1ccPZHx5qjnMNpE2cDHPNYwnBM+BXbb/G5kmkXJsd/Hby1jVss2tqUPQ1PNOZEk3FxKGslnCa5nasqANzsNzOQ==","signatures":[{"sig":"MEYCIQCRrE+rQ96QS/GWpG+Ov2/z6W3X3fcoWc1Wygy1OTdxJwIhAKbgbwniu0OU8SwGJURxRZVqszmNoFDNDnupAHQMF059","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40768},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b3f1f9783c64bc85eafa6c860195136f78d761e0","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.5","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.4"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.7_1768579144553_0.6139573570892922","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@zyrohub/module-router","version":"0.0.8","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.8","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"1f75054a3661863d06d89162871caeebedd869e3","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.8.tgz","fileCount":43,"integrity":"sha512-OeoPJMvhMOlzZ+HpF1TmqApiNZnz7nOxH8lpCGUYm0sEVQ2Hf3u4d72oAGINkF+4KvCdkjJzfpJ61Tp+WCk39g==","signatures":[{"sig":"MEUCIQDjDP8Eh5HdRwoeKZqiEN77QSj45XJNs06H12mm78IDowIgY+OaCSyAoyzaSxSQSKIQmUBqkQDCN1g5DQm/Ar7kDDw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40335},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b3f1f9783c64bc85eafa6c860195136f78d761e0","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.5","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.4"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.8_1768580112994_0.7409343969644073","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@zyrohub/module-router","version":"0.0.9","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.9","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"80fbb71a801438cf2832fb0f037cbb0c8e1e21e6","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.9.tgz","fileCount":43,"integrity":"sha512-ojo747WhKnvA0ufH9MqZH26/whzMIZAEw3Tc9CrF4C4ajAI9YVbwv9ghU4VEy83W+d4+8b0vJacYCrUkS10BEg==","signatures":[{"sig":"MEQCID/IPxbzEKmHmD1yiR0+lgTAN2T81RwVNDO9E+YSWWaxAiAMuWw3XDLYI+oN83sqVd5PWPiWzZXvder9a4eZaepN0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40768},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"761758d9ea9775dbc7b3ea5635b6acc14992ab30","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.5","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.4"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.9_1768580612940_0.4530602565826185","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@zyrohub/module-router","version":"0.0.10","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.10","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"63a02a8dd16e204f7975523d097a8603370dcf40","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.10.tgz","fileCount":43,"integrity":"sha512-Ox0vTtv9tp3r+6GRSrnMJ75TiNZhfigUAChL8C9zTKwF3mz4lLbkhKHLBmgt531C/AMI3E1iAKkI5yMaZ41kKg==","signatures":[{"sig":"MEQCIFXckgASeyGdg5BBI0pX0U4Gm6ZbHpSjAC6Lbyg5ZEl5AiBuOHZIzliJ57E4WLnv4dtgd0by5m6KjGofZUFlJFHXlA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41163},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"761758d9ea9775dbc7b3ea5635b6acc14992ab30","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.5","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.4"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.10_1768580871008_0.5156289003659691","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@zyrohub/module-router","version":"0.0.11","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.11","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"b4fc3aedacb53d86aedbe5d16323c582ad15ef32","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.11.tgz","fileCount":43,"integrity":"sha512-nNhEEUnB6Cf1u3IOou1g6BEWyGWSEN7QttpTs0ku8Lo/ttNk0rj9oejEIRQjgNaymd5qyd60dr1b1TMkp1Mtuw==","signatures":[{"sig":"MEQCIFQJbD57XP1ss6Bqy+KVbLbCmahohQh3k1d9SSkau4hlAiBavcgLIpXtWpY6r7spiaVGl7UxIRhFXu0T8eLFb0Y1Tw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41793},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"255b7f2e101a62d54c9ae2a97d4b313c6c646b68","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.5","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.4"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.11_1768581103051_0.718131174749232","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@zyrohub/module-router","version":"0.0.12","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.12","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"86254d4feebcee66e4d87837d13bb35707becd2a","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.12.tgz","fileCount":43,"integrity":"sha512-LKTcppf1/VHUzLdDIP/baxWPKD6M6sInFX8w+AkMOYZdOBWE+HG8SorMkKybY9L9/+/y9BdTDcG0iVVOwuBuGw==","signatures":[{"sig":"MEYCIQDY0H1IE9FSgFPRgeCVIvB4Ajve/hGBWpHmU0mxyZhM7AIhAOH6396/cVwZIooDr6qE5vadpyjBMM/jFofysB/8MI9+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42222},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5df4636fd9cde739ab7790c7aa1ab588cb463522","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.5","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.4"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.12_1770943514399_0.898858796113583","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@zyrohub/module-router","version":"0.0.13","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.13","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"4142b5161e6cbe983b797a0fcffce9b3af133b0d","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.13.tgz","fileCount":43,"integrity":"sha512-souoBqhpRBkFc0qCWZuuSJE91dS2jPvgSfN47Yp2WAJ0M93uSc/wLvXcbmmln6R90XdT5ZorPMCjgyP5gSTtnQ==","signatures":[{"sig":"MEUCIQDGriC7G8icMK5rbO1IHoO4Ocx/1l1hXvZxvLiEerDfNQIgGvN6w9wb2kCpqN1Mq5lEuXIx5iWQDegdT7jsJlW6BQs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42222},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5df4636fd9cde739ab7790c7aa1ab588cb463522","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.7","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.7"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.13_1770943610300_0.7587298527489985","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"@zyrohub/module-router","version":"0.0.14","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.14","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"efe59b9df95f7d77606723c73ec3c4a0dbd5faf5","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.14.tgz","fileCount":43,"integrity":"sha512-o1t0tvs4YQG6wfLv74H45P2xOml1JXDgR1rxmibzlq4g04GJaSCg4GIIHj7tl3p/RnKYK3WOgNc90xwX3Wdh4Q==","signatures":[{"sig":"MEQCIEvyoW7yLMbc6ZjESZYzryfYkp3fnMDFxfv7yncHF3fdAiAoM7KiHDkHV8HRtfCPEUC9qvSQmfjvkV2X+uGJ+VztdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42363},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"9211c35499fbc1df1061fc388f34a61286f98a35","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.7","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.7"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.14_1770943838775_0.36347381594233874","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@zyrohub/module-router","version":"0.0.15","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.15","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"f9bb64e61cca39af4fa7cf34760f4ddef8f7381b","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.15.tgz","fileCount":43,"integrity":"sha512-syboh4bmyu++dqteiumW6FsQqBbSIXHOHCRNMWnWvdiKkrIK0wL8ZiK6GLOrFDUVOFd6b5FUbdqxfknvcNC0fA==","signatures":[{"sig":"MEUCICC9eP7jtXLV4UYibcSKQhosG6B2kWw4aVdrOv6Ow1YCAiEA69xr/ockvwoJQyDM4kBl2zIvtTqybVmSRmu4GlKAX1c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42424},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"9525a996b3cc95edd91db9329f47a528a85cc1bf","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.7","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.7"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.15_1770944077695_0.5409772394233603","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"@zyrohub/module-router","version":"0.0.16","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.16","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"946e9202c9ef20dc94d7537ee32794163b5ab5d3","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.16.tgz","fileCount":43,"integrity":"sha512-uLcp8KI1tzDHGDZd1FEvpIsEoNlQdyepwrUj1C/NilPJfWBiqSWPX9JrDZiswecCI/pV7uLfvVdMF9iSVNOflQ==","signatures":[{"sig":"MEUCIBuXof2ouckJmJyTHt8kVjdUMJ7ifrhdP1BflbNkhuNiAiEA0EMueTYNMl/i9mtjE8xdMH5bBK83ZbW3RNpxDnNvSvk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42469},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"9525a996b3cc95edd91db9329f47a528a85cc1bf","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.7","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.7"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.16_1770944403828_0.942307482340943","host":"s3://npm-registry-packages-npm-production"}},"0.0.17":{"name":"@zyrohub/module-router","version":"0.0.17","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.17","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"84364457a8c723e4894bea399f3492d072519a0d","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.17.tgz","fileCount":43,"integrity":"sha512-RyIZhVfKCEMagOYsRUW9ZUXNEJdnQNVYBet9A3Kq/V+Vsg4edRNWT8U5fF7Z3dim70+BqfdK6rbWrSjzCSIyxQ==","signatures":[{"sig":"MEYCIQDvCN9r/y8gGVSKNC7pyzfJOakEJSBEfkK4Chl8Rm7aBAIhAJZzZXCEgGFcqF6aL6coxhD5eU368t1pTKejp2Q6pUrJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45226},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"38b049fbf91146f616834e686ae4330c9ef5f9af","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.7","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.7"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.17_1785378221645_0.8370937768583677","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"@zyrohub/module-router","version":"0.0.18","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.18","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"cb7e1d43a5446919dbea1222074d405096dbc53c","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.18.tgz","fileCount":43,"integrity":"sha512-qR9aiEjEdw2CQPGWE9RVnCxEqUsG4n7LrA9nj4q9NpbPBp0c3Ls121b04X8eQpeCz2bbMDNZHI9G/uE8qcfBgQ==","signatures":[{"sig":"MEUCIQCkHeVXbLz9XV0LkoWahMx2oJSCoiljdPgZsUh+U5SubwIgMx5pwQzzP62z7FYF9N0v1SptYvTihSYenQZgIaUcUl8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45265},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d7bb752f4e2f3156d0a2067487a46e0667c6c36a","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.7","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.7"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.18_1785378934308_0.6179059391236581","host":"s3://npm-registry-packages-npm-production"}},"0.0.19":{"name":"@zyrohub/module-router","version":"0.0.19","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.19","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"1a9fb2f437fd5f8cf9fe1cb7d88e4d00566605ea","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.19.tgz","fileCount":43,"integrity":"sha512-LZj37KNUP78LHxBq1LCHos73cuMIfGLVMtDqUb+1C/9ypVH/JED7P2UpIZCnhBlahqFf4X60ZA4RY7tCKS9MxA==","signatures":[{"sig":"MEQCIAn8h397dhVJ4cpDFYi7gcIJh3gMMVPFkGEHjzGb+WZyAiBKQ33qwM0ZonXmvcKvfTQFW9k8TEb5Z61Cf3SmOy4pOw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45582},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5c1ebd7b78c009ad664bac56e496daa5c8fa544f","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.7","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.7"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.19_1785387949543_0.9344245844489092","host":"s3://npm-registry-packages-npm-production"}},"0.0.20":{"name":"@zyrohub/module-router","version":"0.0.20","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.20","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"c37e5b2fcfe1f530fecd4e3ac28cab0f50166b4d","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.20.tgz","fileCount":45,"integrity":"sha512-vAx0u98vOGz6jejPDtVhsAv4sKgME8jn+jGlC0N/KKI6iasygxb5Cj+QPCJBkpihDSSkX99abX+fDKp3lqcu5Q==","signatures":[{"sig":"MEUCIQDakKfWgWvHmR3dLVGsPvn1c5Vyxsx+0RGorGCVPV4G8QIgO/xMwrYiyGgNrdqXXmuRaUy+ckuKdF3lscZ07UUZzGw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46518},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"4b3d65f391c389b8b28d97c3e39a0727ddb0759e","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.7","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.7"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.20_1785428121828_0.713956280811253","host":"s3://npm-registry-packages-npm-production"}},"0.0.21":{"name":"@zyrohub/module-router","version":"0.0.21","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.21","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"05955b81af53ab01c72dc80c9202c9c686a2e92b","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.21.tgz","fileCount":45,"integrity":"sha512-//X5AW0Lkq8Ep2Tw8L86INcvr0/fpGDTSP+iht/C6UpN8Cy2vvyxBgn4O3O4SnlKR+ODUMxKhWJHPYI5eNMSHA==","signatures":[{"sig":"MEYCIQDV7wP1JdrYDZJNVB5fFn6mcKcfhRuxsTiY/ydjT3dlvAIhAIMQgMXCyrqV0bPf1ABfnT2GLx/SxxzGqcyUrfTVM0fT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46578},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"98edfa72f1ed5d992e33dbae016bc79aaaef73a5","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.7","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.7"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.21_1785441641244_0.2555582175108868","host":"s3://npm-registry-packages-npm-production"}},"0.0.22":{"name":"@zyrohub/module-router","version":"0.0.22","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@0.0.22","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"136915a860af4586ba462b2a2094b0f026b62aaa","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-0.0.22.tgz","fileCount":43,"integrity":"sha512-YJUyyrbyikyIIXn9dqO9TdmD16tW87GHf/L0i/x7foGnuzKit8oQXJ3pVZnIvQ/+JB3RVX1Y6dUcubsVLVNP+w==","signatures":[{"sig":"MEQCIH3tyU6cjgueBU4jYGuY9vuqg4YLSCpXvABjFZ+cygJxAiB+y76NfTDeXOx7lDvHu8OrHao640EGfYsiw/GV9jtfQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46869},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8abff78be72360e67ecc254a8499bcf80b2fb088","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.7","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.7"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_0.0.22_1785530601243_0.6786589770037104","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@zyrohub/module-router","version":"1.0.0","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@1.0.0","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"1263c728490004544792524013510254cde07307","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-1.0.0.tgz","fileCount":43,"integrity":"sha512-VZXSDDRc6XpW+JOYgF5TCpzzu2enynv4vhnbIQdSDUn+owqX+CYKst38JbiyAWwu4xayMbH5VQaIRvmBCCHsYA==","signatures":[{"sig":"MEUCIGMLFHiUFGTKoteTm6LCZSp2FXtfD6N8ZgZaMK3uw1PNAiEA5fRLKWk7GAxW+ZBHn23BjTri9/dkZQROqGsB1g0B9hY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46908},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a87d2549d5359fbda0c8208e857d45b56d56f120","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.8","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.7"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_1.0.0_1785546975190_0.5194355116968874","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@zyrohub/module-router","version":"1.0.1","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@1.0.1","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"9de9c438e84b1f290d0a33457a7d8637aaaa6f1e","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-1.0.1.tgz","fileCount":43,"integrity":"sha512-LM56jOVFKK27Lsqcv7BjtlFGzuxcs4uoMvfYQQLY6/Z24Be1dPxz2Mg2j1LRN3RIRMYa5XPSH3Zy1l47y1hUaA==","signatures":[{"sig":"MEYCIQDybLSIU64VxtWdxf1awC0hvCveV/8tHc9O8OtCEkKv8wIhAPfOhRx4UJu6TZYNslErMULvD25H+MRX0VWeGgWlc3Py","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46908},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"07fae3ae9eb17b1ca857a5f0aab89b58cf5f0fec","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.8","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.7"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_1.0.1_1785547099513_0.06328630834586324","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@zyrohub/module-router","version":"1.0.2","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@1.0.2","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"3be2b79372f61bf39705ce7d775f0c1aa96f3ce0","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-1.0.2.tgz","fileCount":43,"integrity":"sha512-DPJ60KJO8D/j47QyW3LSPt3u+BFI2Oy0JrxX0AjlxDAsErxHlC4ZCg7MachkphbmGpectcsUxHtEFo04pjnLUg==","signatures":[{"sig":"MEQCID7JJ543PrD77+3JQNK30mw92B/3JEpILgDb61f2fmRAAiAIJZpx9+2AJfXqPqh7U58GZni5btqroRl9C9vNgAOorA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46977},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"eb18e418246a0e1109d2675556f21f48c2cadd75","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.8","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.7"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_1.0.2_1785549437186_0.2369647700554025","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@zyrohub/module-router","version":"1.0.3","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@1.0.3","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"d266a6f247fa592208385a1dbb653e93aaf8b37d","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-1.0.3.tgz","fileCount":43,"integrity":"sha512-szzzaZ2rw0yK4y4Lqo2QU4YanNKuII2GAVqFAJhybjyrRdjYZlD7VdKFSTljavFiaWRLhtuWp3YAw7hIXgAkdg==","signatures":[{"sig":"MEUCICKTWQRVut30ShtCSgebftmWx42P0hPkynWRAeC5eHDcAiEAgkS70t+m8QEGIuxTBM3l2BBEXyPzlXvOfmC4l7+477g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46977},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"839d54a2ee92066dc376d3603a12f390dac1c2bd","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.8","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.8"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_1.0.3_1785549649384_0.04901212743311012","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@zyrohub/module-router","version":"1.0.4","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@1.0.4","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"bc0c8efb1b52fddde87dfc50cab73d11d8b60d97","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-1.0.4.tgz","fileCount":43,"integrity":"sha512-+KfS8IEMhn1eV+vQ0VOZ0F6JHW98lHluOBhZ0+K4U3l7h6zcl6ulIu9MmdJ1JUFHj3hSicPtMJ13YNkZ1QIzpA==","signatures":[{"sig":"MEQCIG+Js9Cg/PUlaPgfJQDastZsf2B//J9E7jlbY5pw6DYdAiA6w8DEljyTBMDn1bV85nCpmbu4Te3JXOCuULqyH7aLPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46977},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"23074cf4f03654938ff7ef0176a12100d866e922","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.9","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.9"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_1.0.4_1785954579694_0.16367382693182142","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@zyrohub/module-router","version":"1.0.5","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@1.0.5","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"cb97455114cd98090a564430e89dc37e2b264dbc","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-1.0.5.tgz","fileCount":43,"integrity":"sha512-9+sBQH8jah/GQqDbM/VEQxU2rhmTZ6HiZa76x0cTKKEimVSq6hhZp3c77rqXtTk8wXSnAzFbUaFzCUEryUVfsg==","signatures":[{"sig":"MEQCIDA9X4usIZH6oT0azzMnrLjwHXtTw7YxDoPUXrYDOQEtAiBfBIvLAnNFvGbCZC2NzFJDmld5iItGoxuGkabIe77PMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48995},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"2f9692a46a7ca8b5ddb0e3793189fd4ecefde1e0","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.9","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.9"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_1.0.5_1785973467956_0.5531993823386663","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@zyrohub/module-router","version":"1.0.6","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@1.0.6","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"f664c50089c49e2a5fbd5b41e32c449c676cee7b","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-1.0.6.tgz","fileCount":43,"integrity":"sha512-qJ9HK4EyDQHAIe9n3O2IKCzMqwoiXK4+r4sLFbeKaHVYmbujfgIgmFD6VIGH/GCe01WVIfzzg50ubxaxX+aKfA==","signatures":[{"sig":"MEUCIEzw7QpdUEa6j8xYTTLDc9ypxHeot8rqQm3s0dGM0hVTAiEAjP5cNfX168HJII0zPky+Tmv+9nChSeuxy/Z9YZWUPBg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50129},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"71f3f16270e7826d00dac229f6f5cfb29cdb1f5e","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.9","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.9"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_1.0.6_1785974183677_0.8240991687573309","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@zyrohub/module-router","version":"1.0.7","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@1.0.7","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"01412d4c94eaab0d953e08de32dc39ad2a2a4fc8","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-1.0.7.tgz","fileCount":43,"integrity":"sha512-uSoJjbkaKVnql5Djm7g/G/GEf9oTpOmuhPdzsz8z+PAWkbu+8rtnWPXd8KHT/vwbL5gmm0fYU9rFTvOXRqCKDQ==","signatures":[{"sig":"MEQCICKVrYwFq6GlqSv8Iqb7ODmdx48/3kZu7qsyYyzarCLnAiBgaZUdpncbTTycXJw52LGmiw6ucXdxmvQdEjGWbmr/Mw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50136},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0ad22c65c89361ce1e47a167724bffcaddc89b81","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.9","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.9"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_1.0.7_1785977130203_0.4618167003369158","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@zyrohub/module-router","version":"1.0.8","keywords":[],"author":{"name":"DMVMarcio"},"license":"MIT","_id":"@zyrohub/module-router@1.0.8","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"homepage":"https://github.com/ZyroHub/module-router#readme","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"dist":{"shasum":"b46d7ca8dc329677b1ef0d9c580d5c871a45f41e","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-1.0.8.tgz","fileCount":43,"integrity":"sha512-6Yr0/Jbsom+Z5i1gV6Ciml02XssPnMIhOUueKnT3wyyWaQcVi2C0LAX+EBJ32fry4zSyr539+yAK0IyyQ0zICg==","signatures":[{"sig":"MEQCIAqRxL3H1RWDRpGMetNjuEbzZ1AvuTFforGFsYUr6P9CAiBmqtLTYzVViV//kHZr2dQGm5ksA7PTP4iDQ1h2F3QfNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50173},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0a0000770418afb8a671a0050a8bd53713e971cb","scripts":{"dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias","start":"node ./dist/index.js"},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"repository":{"url":"git+https://github.com/ZyroHub/module-router.git","type":"git"},"_npmVersion":"10.8.3","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@zyrohub/utilities":"^1.0.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.0.3","@zyrohub/core":"^1.1.10","@zyrohub/ts-runner":"^0.0.3","@zyrohub/config-prettier":"^1.0.6"},"peerDependencies":{"@zyrohub/core":"^1.1.10"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/module-router_1.0.8_1785981793040_0.9150015298059373","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@zyrohub/module-router","version":"1.0.9","author":{"name":"DMVMarcio"},"type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"scripts":{"start":"node ./dist/index.js","dev":"ztsc --watch src/index.ts","build":"rimraf dist && tsc && tsc-alias"},"repository":{"type":"git","url":"git+https://github.com/ZyroHub/module-router.git"},"publishConfig":{"access":"public"},"keywords":[],"license":"MIT","dependencies":{"@zyrohub/utilities":"^1.0.16"},"devDependencies":{"@types/node":"^25.0.3","@zyrohub/config-prettier":"^1.0.6","@zyrohub/core":"^1.1.10","@zyrohub/ts-runner":"^0.0.3","rimraf":"^6.1.2","tsc-alias":"^1.8.16","typescript":"^5.9.3"},"peerDependencies":{"@zyrohub/core":"^1.1.10"},"peerDependenciesMeta":{"@zyrohub/core":{"optional":false}},"_id":"@zyrohub/module-router@1.0.9","gitHead":"b45a190e2470af31ba92bd665551df988af0c07b","description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"homepage":"https://github.com/ZyroHub/module-router#readme","_nodeVersion":"22.14.0","_npmVersion":"10.8.3","dist":{"integrity":"sha512-z1+mYd9FPYREcFg6xL6QWBFZNR6hgQUUH1hhyf20zkYvVc6+C/+2NtTS4nJ2sYUIM2anBfXBM3U/2zaddffD0Q==","shasum":"84cd69bf1d37ea24175212216b0dfab3038d1455","tarball":"https://registry.npmjs.org/@zyrohub/module-router/-/module-router-1.0.9.tgz","fileCount":43,"unpackedSize":50187,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDBU9/aax76dAEGmbaUL7LnFjF3mmSdcaBmFscKqtrW/QIhAKKCuZTUNmt9IEvOih6nLGI5u89Az2F+mHD6FSDnhG8z"}]},"_npmUser":{"name":"imarcioo","email":"imarciooh@gmail.com"},"directories":{},"maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/module-router_1.0.9_1785982110579_0.9791743617852857"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-14T14:41:29.549Z","modified":"2026-08-06T02:08:30.915Z","0.0.1":"2026-01-14T14:41:29.828Z","0.0.2":"2026-01-14T20:35:45.872Z","0.0.3":"2026-01-14T21:00:20.859Z","0.0.4":"2026-01-14T21:09:30.961Z","0.0.5":"2026-01-16T01:11:40.714Z","0.0.6":"2026-01-16T15:36:05.574Z","0.0.7":"2026-01-16T15:59:04.700Z","0.0.8":"2026-01-16T16:15:13.132Z","0.0.9":"2026-01-16T16:23:33.090Z","0.0.10":"2026-01-16T16:27:51.168Z","0.0.11":"2026-01-16T16:31:43.185Z","0.0.12":"2026-02-13T00:45:14.536Z","0.0.13":"2026-02-13T00:46:50.438Z","0.0.14":"2026-02-13T00:50:38.933Z","0.0.15":"2026-02-13T00:54:37.855Z","0.0.16":"2026-02-13T01:00:03.970Z","0.0.17":"2026-07-30T02:23:41.808Z","0.0.18":"2026-07-30T02:35:34.458Z","0.0.19":"2026-07-30T05:05:49.690Z","0.0.20":"2026-07-30T16:15:21.970Z","0.0.21":"2026-07-30T20:00:41.386Z","0.0.22":"2026-07-31T20:43:21.390Z","1.0.0":"2026-08-01T01:16:15.351Z","1.0.1":"2026-08-01T01:18:19.675Z","1.0.2":"2026-08-01T01:57:17.336Z","1.0.3":"2026-08-01T02:00:49.537Z","1.0.4":"2026-08-05T18:29:39.834Z","1.0.5":"2026-08-05T23:44:28.101Z","1.0.6":"2026-08-05T23:56:23.837Z","1.0.7":"2026-08-06T00:45:30.389Z","1.0.8":"2026-08-06T02:03:13.183Z","1.0.9":"2026-08-06T02:08:30.728Z"},"bugs":{"url":"https://github.com/ZyroHub/module-router/issues"},"author":{"name":"DMVMarcio"},"license":"MIT","homepage":"https://github.com/ZyroHub/module-router#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/ZyroHub/module-router.git"},"description":"<div align=\"center\">\r     <img src=\"https://i.imgur.com/KVVR2dM.png\">\r </div>","maintainers":[{"name":"imarcioo","email":"imarciooh@gmail.com"}],"readme":"<div align=\"center\">\r\n    <img src=\"https://i.imgur.com/KVVR2dM.png\">\r\n</div>\r\n\r\n## ZyroHub - Router Module\r\n\r\n<p>This module provides routing capabilities, allowing for easy management of application routes and middleware.</p>\r\n\r\n## Table of Contents\r\n\r\n- [ZyroHub - Router Module](#zyrohub---router-module)\r\n- [Table of Contents](#table-of-contents)\r\n- [Getting Started](#getting-started)\r\n    - [Using Module and Registering Controllers](#using-module-and-registering-controllers)\r\n    - [TypeScript Configuration](#typescript-configuration)\r\n- [Creating a Controller](#creating-a-controller)\r\n- [Route Schema](#route-schema)\r\n    - [Creating Schema](#creating-schema)\r\n    - [Extending a Schema (`createBase`)](#extending-a-schema-createbase)\r\n    - [Simple Routes (Without Schema)](#simple-routes-without-schema)\r\n- [Automatic Validation](#automatic-validation)\r\n    - [Using Zod](#using-zod)\r\n    - [Using Yup](#using-yup)\r\n    - [Using Class-Validator](#using-class-validator)\r\n- [Receiving Files](#receiving-files)\r\n- [HttpResponse](#httpresponse)\r\n- [Creating Middleware](#creating-middleware)\r\n    - [Using Middleware in Controllers or Routes](#using-middleware-in-controllers-or-routes)\r\n- [Getting generated routes](#getting-generated-routes)\r\n- [Declaring Request and Response types](#declaring-request-and-response-types)\r\n\r\n## Getting Started\r\n\r\nTo install the router module, use one of the following package managers:\r\n\r\n[NPM Repository](https://www.npmjs.com/package/@zyrohub/module-router)\r\n\r\n```bash\r\n# npm\r\nnpm install @zyrohub/module-router\r\n# yarn\r\nyarn add @zyrohub/module-router\r\n# pnpm\r\npnpm add @zyrohub/module-router\r\n# bun\r\nbun add @zyrohub/module-router\r\n```\r\n\r\n### Using Module and Registering Controllers\r\n\r\nTo use the router module, you need to install [`@zyrohub/core`](https://www.npmjs.com/package/@zyrohub/core) and register the `RouterModule`:\r\n\r\n```typescript\r\nconst core = new Core({\r\n\tmodules: [\r\n\t\tRouterModule.mount({\r\n\t\t\t// using manual controller registration\r\n\t\t\tcontrollers: [HomeController, AuthController, StoreController],\r\n\r\n\t\t\t// or using automatic controller registration by specifying the path\r\n\t\t\tloader: {\r\n\t\t\t\tpath: `${__dirname}/controllers`,\r\n\t\t\t\t// optional glob pattern to match controller files\r\n\t\t\t\tpattern: /\\.controller\\.ts$/\r\n\t\t\t}\r\n\t\t})\r\n\t],\r\n\tproviders: [\r\n\t\t// register any services or repositories here for dependency injection\r\n\t\t// see @zyrohub/core documentation for more details\r\n\t]\r\n});\r\n\r\ncore.init();\r\n```\r\n\r\n### TypeScript Configuration\r\n\r\n⚠️ **Important:** To use the Dependency Injection system, you **must** enable `emitDecoratorMetadata` in your `tsconfig.json`.\r\n\r\n```json\r\n{\r\n\t\"compilerOptions\": {\r\n\t\t\"experimentalDecorators\": true,\r\n\t\t\"emitDecoratorMetadata\": true\r\n\t}\r\n}\r\n```\r\n\r\n## Creating a Controller\r\n\r\nYou can create a controller by using the `@Controller` decorator and defining routes with decorators like `@Get`, `@Post`, `@Put`, etc.\r\n\r\n```typescript\r\nimport { Controller, Get, HttpResponse } from '@zyrohub/module-router';\r\n\r\nimport { ProductsRepository } from './repositories/ProductsRepository.js';\r\nimport { StoreProductsSchema } from './schemas/StoreProductsSchema.js';\r\n\r\n@Controller({\r\n\tpath: '/'\r\n})\r\nclass StoreController {\r\n\t// Dependency injection can be used in the constructor\r\n\tconstructor(\r\n\t\t// inject services or other dependencies here\r\n\t\tprivate readonly productsRepository: ProductsRepository\r\n\t) {}\r\n\r\n\t@Get('/products', StoreProductsSchema)\r\n\tgetProducts(context: typeof StoreProductsSchema.context) {\r\n\t\treturn HttpResponse.success({ products: this.productsRepository.findAll() });\r\n\t}\r\n}\r\n```\r\n\r\n## Route Schema\r\n\r\n### Creating Schema\r\n\r\n```typescript\r\nconst LoginSchema = new RouteSchema({\r\n\tbody: {}, // see supported validation below\r\n\tquery: {}, // see supported validation below\r\n\tparams: {}, // see supported validation below\r\n\r\n\tconsumes: [], // filter accepted content types (default: [\"application/json\"])\r\n\r\n\tfiles: {\r\n\t\t// see files configuration below\r\n\t\tfields: [],\r\n\t\toptions: {}\r\n\t},\r\n\r\n\t// Optional metadata for documentation purposes\r\n\tmeta: {\r\n\t\ttags: ['auth', 'login'],\r\n\t\tsummary: 'User login endpoint',\r\n\t\tdescription: 'Endpoint for user login that validates input data'\r\n\t}\r\n});\r\n```\r\n\r\nUsing the above schema, you can define the route schema and type the `context` parameter in your handler to ensure type safety and validation.\r\n\r\n```typescript\r\nimport { Controller, Post, HttpResponse } from '@zyrohub/module-router';\r\n\r\nimport { LoginSchema } from './schemas/LoginSchema.js';\r\n\r\n@Controller({\r\n\tpath: '/auth'\r\n})\r\nclass AuthController {\r\n\t@Post('/login', LoginSchema)\r\n\tlogin(context: typeof LoginSchema.context) {\r\n\t\tconst body = context.request.body; // Access typed and validated body\r\n\t\tconst query = context.request.query; // Access typed and validated query\r\n\t\tconst params = context.request.params; // Access typed and validated params\r\n\r\n\t\t// Your login logic here\r\n\r\n\t\treturn HttpResponse.success({ token: '<generated_session_token>' });\r\n\t}\r\n}\r\n```\r\n\r\n### Extending a Schema (`createBase`)\r\n\r\nYou can create a base route schema using `RouteSchema.createBase(options)` to share common validations, metadata, or media-types across multiple routes.\r\n\r\nThis returns a custom subclass of `RouteSchema` that you can instantiate (using `new`) with route-specific overrides.\r\n\r\n#### How Properties are Resolved:\r\n\r\n* **Overridden:** `body`, `query`, and `params` are validation schemas and cannot be merged. If you define a schema in the final instance, it completely overrides the one defined in the base schema. If not defined, the base schema's validator is used.\r\n* **Merged:**\r\n  * `meta`: Metadata options (like `tags`, `summary`, and `description`) are merged together.\r\n  * `consumes`: Media-types are combined and deduplicated.\r\n  * `files`: Uploaded fields are combined, and general file options are merged.\r\n\r\n#### Example\r\n\r\n```typescript\r\nimport { RouteSchema } from '@zyrohub/module-router';\r\nimport { z } from 'zod';\r\n\r\n// 1. Define a base schema with common settings and validations\r\nexport const AuthBase = RouteSchema.createBase({\r\n\tmeta: {\r\n\t\ttags: ['Auth']\r\n\t},\r\n\tquery: z.object({\r\n\t\ttenantId: z.string().uuid()\r\n\t})\r\n});\r\n\r\n// 2. Derive schemas from the base\r\n// LoginSchema overrides the \"body\", but inherits \"meta.tags\" and \"query\" (tenantId)\r\nexport const LoginSchema = new AuthBase({\r\n\tbody: z.object({\r\n\t\temail: z.string().email(),\r\n\t\tpassword: z.string().max(64)\r\n\t}),\r\n\tmeta: {\r\n\t\tsummary: 'Login user'\r\n\t}\r\n});\r\n\r\n// LogoutSchema doesn't override body or query, so it uses the base query validator and inherits \"meta.tags\"\r\nexport const LogoutSchema = new AuthBase({\r\n\tmeta: {\r\n\t\tsummary: 'Logout user'\r\n\t}\r\n});\r\n```\r\n\r\n### Simple Routes (Without Schema)\r\n\r\nFor simple routes that do not require validation of request body, query parameters, or route parameters, you do not necessarily need to create a `RouteSchema`. \r\n\r\nInstead, you can type the route handler context using `RouteSchemaContext` directly. This will provide a generic context type with empty/generic body, query, and params.\r\n\r\n> [!IMPORTANT]\r\n> Although creating a `RouteSchema` is optional for simple routes, it is **highly recommended** to define one for all routes to enable automatic documentation generation (such as OpenAPI/Swagger).\r\n\r\n#### Example\r\n\r\n```typescript\r\nimport { Controller, Get, type RouteSchemaContext, HttpResponse } from '@zyrohub/module-router';\r\n\r\n@Controller({\r\n\tpath: '/store'\r\n})\r\nexport class StoreController {\r\n\t@Get('/products')\r\n\tasync getProducts(context: RouteSchemaContext) {\r\n\t\t// context is typed with a generic request, response, and state structure\r\n\t\treturn HttpResponse.success({ products: [] });\r\n\t}\r\n}\r\n```\r\n\r\n## Automatic Validation\r\n\r\nYou can use `zod`, `yup` or `class-validator` for automatic validation of request data.\r\n\r\n### Using Zod\r\n\r\n```typescript\r\nimport { z } from 'zod';\r\n\r\nconst LoginSchema = new RouteSchema({\r\n\tbody: z.object({\r\n\t\tusername: z.string().min(3),\r\n\t\tpassword: z.string().min(6)\r\n\t}),\r\n\tquery: z.object({\r\n\t\trememberMe: z.boolean().optional()\r\n\t}),\r\n\tparams: z.object({\r\n\t\tuserId: z.string().optional()\r\n\t})\r\n});\r\n```\r\n\r\n### Using Yup\r\n\r\n```typescript\r\nimport * as yup from 'yup';\r\n\r\nconst LoginSchema = new RouteSchema({\r\n\tbody: yup.object().shape({\r\n\t\tusername: yup.string().min(3).required(),\r\n\t\tpassword: yup.string().min(6).required()\r\n\t}),\r\n\tquery: yup.object().shape({\r\n\t\trememberMe: yup.boolean().notRequired()\r\n\t}),\r\n\tparams: yup.object().shape({\r\n\t\tuserId: yup.string().notRequired()\r\n\t})\r\n});\r\n```\r\n\r\n### Using Class-Validator\r\n\r\n```typescript\r\nimport { IsString, MinLength, IsBoolean, IsOptional } from 'class-validator';\r\n\r\nclass LoginBody {\r\n\t@IsString()\r\n\t@MinLength(3)\r\n\tusername: string;\r\n\r\n\t@IsString()\r\n\t@MinLength(6)\r\n\tpassword: string;\r\n}\r\n\r\nclass LoginQuery {\r\n\t@IsBoolean()\r\n\t@IsOptional()\r\n\trememberMe?: boolean;\r\n}\r\n\r\nclass LoginParams {\r\n\t@IsString()\r\n\t@IsOptional()\r\n\tuserId?: string;\r\n}\r\n\r\nconst LoginSchema = new RouteSchema({\r\n\tbody: LoginBody,\r\n\tquery: LoginQuery,\r\n\tparams: LoginParams\r\n});\r\n```\r\n\r\n## Receiving Files\r\n\r\n```typescript\r\nconst UpdateProfileSchema = new RouteSchema({\r\n\tbody: UpdateProfileBody,\r\n\r\n\tconsumes: ['multipart/form-data'], // if no value is defined, the consumer will be defined automatically when \"files\" is defined\r\n\r\n\tfiles: {\r\n\t\tfields: [\r\n\t\t\t{ // file specific options\r\n\t\t\t\tname: 'avatar',\r\n\t\t\t\tmaxSize: 20 * 1024 * 1024, // 20 MB (single limit per file)\r\n\t\t\t\tminCount: 1,\r\n\t\t\t\tmaxCount: 1,\r\n\t\t\t\tmimeTypes: ['image/png']\r\n\t\t\t}\r\n\t\t],\r\n\t\toptions: { // general options for all files\r\n\t\t\tmaxFiles: 1, // total max files\r\n\t\t\tmaxFileSize: 10 * 1024 * 1024, // 10 MB (limit per file)\r\n\t\t\tmimeTypes: ['image/png'] // accepted mime types\r\n\t\t\tany: false // if you want to receive undocumented files in \"fields\"\r\n\t\t}\r\n\t}\r\n});\r\n```\r\n\r\nUsing the above schema, when receiving files (multipart/form-data), you will have to execute the `processMultipart` method yourself, to validate the \"body\" schema.\r\n\r\n```typescript\r\nimport { Controller, Post, HttpResponse } from '@zyrohub/module-router';\r\n\r\nimport { UpdateProfileSchema } from './schemas/UpdateProfileSchema.js';\r\n\r\n@Controller({\r\n\tpath: '/auth'\r\n})\r\nclass ProfileController {\r\n\t@Post('/update', UpdateProfileSchema)\r\n\tlogin(context: typeof UpdateProfileSchema.context) {\r\n\t\tconst query = context.request.query; // Access typed and validated query\r\n\t\tconst params = context.request.params; // Access typed and validated params\r\n\r\n\t\t// This will validate the body and uploaded files\r\n\t\tawait context.processMultipart(async (file) => {\r\n\t\t\tconsole.log(await file.toBuffer()); // get file full buffer\r\n\t\t\tconsole.log(file.stream); // file stream\r\n\t\t\tawait file.saveTo('/path/file.txt'); // save file\r\n\t\t\tconsole.log(file); // any other useful information (e.g., fieldName, fileName, mimeType...)\r\n\t\t});\r\n\r\n\t\tconst body = context.request.body; // Access typed and validated body\r\n\r\n\t\treturn HttpResponse.success();\r\n\t}\r\n}\r\n```\r\n\r\n## HttpResponse\r\n\r\nThe `HttpResponse` class provides static methods to create standardized HTTP responses.\r\n\r\n```typescript\r\nimport { HttpResponse } from '@zyrohub/module-router';\r\n\r\n// Successful response with data\r\nconst successResponse = HttpResponse.success({ userId: 1, username: 'john_doe' });\r\n// { success: true, status: 200, data: { userId: 1, username: 'john_doe' } }\r\n\r\nconst createdResponse = HttpResponse.created({ resourceId: 123 });\r\n// { success: true, status: 201, data: { resourceId: 123 } }\r\n\r\n// Error response with message\r\nconst errorResponse = HttpResponse.error(401, 'UNAUTHORIZED', { message: 'Invalid credentials' });\r\n// { success: false, status: 401, code: 'UNAUTHORIZED', data: { message: 'Invalid credentials' } }\r\n\r\n// Error response with text status (e.g., 'BAD_REQUEST')\r\nconst errorResponseWithTextStatus = HttpResponse.error('BAD_REQUEST', 'INVALID_INPUT', {\r\n\tmessage: 'Input data is invalid'\r\n});\r\n// { success: false, status: 400, code: 'INVALID_INPUT', data: { message: 'Input data is invalid' } }\r\n```\r\n\r\n## Creating Middleware\r\n\r\nYou can create middleware by extending the `RouterMiddleware` class, using the `@Middleware()` decorator, and implementing the `execute` method.\r\n\r\n```typescript\r\nimport { Middleware, RouterMiddleware, RouterMiddlewareContext, HttpResponse } from '@zyrohub/module-router';\r\n\r\nexport interface AuthMiddlewareOptions {\r\n\tsecretKey: string;\r\n}\r\n\r\n@Middleware()\r\nexport class AuthMiddleware extends RouterMiddleware {\r\n\t// Your can add optional options to the middleware\r\n\tstatic options: AuthMiddlewareOptions;\r\n\r\n\t// Dependency injection can be used in the constructor\r\n\tconstructor(\r\n\t\t// inject services or other dependencies here\r\n\t\tprivate readonly authService: AuthService\r\n\t) {\r\n\t\tsuper();\r\n\t}\r\n\r\n\tasync execute(context: RouterMiddlewareContext, options: AuthMiddlewareOptions) {\r\n\t\tconst authHeader = context.request.headers['authorization'];\r\n\r\n\t\tif (!authHeader || !this.authService.verifyToken(authHeader, options.secretKey)) {\r\n\t\t\treturn HttpResponse.error(401, 'INVALID_TOKEN', { message: 'Invalid or missing authorization token' });\r\n\t\t}\r\n\r\n\t\tcontext.state.user = await this.authService.getUserFromToken(authHeader); // You can store user info in context state for later use in route handlers\r\n\r\n\t\t// automatically proceed to the next middleware or route handler\r\n\t}\r\n}\r\n```\r\n\r\n### Using Middleware in Controllers or Routes\r\n\r\n```typescript\r\nimport { Controller, HttpResponse, Post, UseMiddleware } from '@zyrohub/module-router';\r\n\r\nimport { AnotherMiddleware } from './middlewares/AnotherMiddleware.js';\r\nimport { AuthMiddleware } from './middlewares/AuthMiddleware.js';\r\nimport { BuyItemSchema } from './schemas/BuyItemSchema.js';\r\n\r\n@Controller({\r\n\tpath: '/',\r\n\t// applying middlewares to all routes in the controller\r\n\tmiddlewares: [AnotherMiddleware]\r\n})\r\nclass StoreController {\r\n\t@Post('/buy')\r\n\t// normal usage of middleware\r\n\t@UseMiddleware(AuthMiddleware)\r\n\t// usage of middleware with options\r\n\t@UseMiddleware(AuthMiddleware.configure({ secretKey: 'my_secret_key' }))\r\n\t// multiple middlewares\r\n\t@UseMiddleware(AnotherMiddleware, AuthMiddleware.configure({ secretKey: 'my_secret_key' }))\r\n\tbuyItem(context: BuyItemSchema) {\r\n\t\tconst { itemId, quantity } = context.request.body;\r\n\r\n\t\t// Your business logic for buying an item\r\n\r\n\t\treturn HttpResponse.success({ itemId, quantity });\r\n\t}\r\n}\r\n```\r\n\r\n## Getting generated routes\r\n\r\nYou can access the registered controllers and their routes from other modules or services by using the core storage or by accessing the `RouterModule` instance.\r\n\r\n```typescript\r\nimport { BaseModule, Core, Module } from '@zyrohub/core';\r\nimport { DefinedController, ROUTER_CONTROLLERS_STORAGE_KEY } from '@zyrohub/module-router';\r\n\r\n@Module()\r\nclass AnotherModule extends BaseModule {\r\n\tasync init(data: { core: Core }) {\r\n\t\t// from core storage\r\n\t\tconst controllers: DefinedController[] = data.core.storage.get(ROUTER_CONTROLLERS_STORAGE_KEY);\r\n\t\tconsole.log(controllers);\r\n\r\n\t\t// using the router module\r\n\t\tconst routerModule = data.core.getModuleOrThrow(RouterModule);\r\n\t\tconsole.log(routerModule.controllers);\r\n\t}\r\n}\r\n```\r\n\r\n## Declaring Request and Response types\r\n\r\nYou can declare your custom `request` and `response` types by using TypeScript module augmentation. This is useful when integrating with frameworks like Express or Fastify.\r\n\r\n```typescript\r\n// e.g., src/types/router.d.ts\r\nimport '@zyrohub/module-router';\r\n\r\ndeclare module '@zyrohub/module-router' {\r\n\tinterface RouterGlobalInputs {\r\n\t\trequest: YourCustomRequestType; // e.g., Express.Request or FastifyRequest\r\n\t\tresponse: YourCustomResponseType; // e.g., Express.Response or FastifyReply\r\n\r\n\t\tstate: YourCustomStateType; // Optional custom state type for context data (e.g., for storing user info after authentication)\r\n\t}\r\n}\r\n```\r\n","readmeFilename":"README.md"}