{"_id":"trouter","_rev":"17-8201e4c67717d486a6987e06cd4bc1ca","name":"trouter","description":"🐟 A fast, small-but-mighty, familiar ~fish~ router","dist-tags":{"latest":"4.0.0"},"versions":{"0.0.0":{"name":"trouter","version":"0.0.0","description":"WIP","repository":{"type":"git","url":"git+https://github.com/lukeed/mri.git"},"main":"lib/index.js","license":"MIT","files":["lib"],"author":{"name":"Luke Edwards","email":"luke.edwards05@gmail.com","url":"lukeed.com"},"engines":{"node":">=6"},"scripts":{"bench":"node bench","test":"tape test/*.js | tap-spec"},"keywords":[],"devDependencies":{"tap-spec":"^4.1.1","tape":"^4.6.3"},"gitHead":"0afc0faf4af8096c8dab4899a9d513429d748c9a","bugs":{"url":"https://github.com/lukeed/mri/issues"},"homepage":"https://github.com/lukeed/mri#readme","_id":"trouter@0.0.0","_shasum":"2e5984587c15dd9288d847048ec571ae5461df26","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.1","_npmUser":{"name":"lukeed","email":"luke@lukeed.com"},"dist":{"shasum":"2e5984587c15dd9288d847048ec571ae5461df26","tarball":"https://registry.npmjs.org/trouter/-/trouter-0.0.0.tgz","integrity":"sha512-n1+OJsbGuVeYH/B+mG2qEftIBBzIyLnURnYR54wD4gUjLIPfZLcNyVEJ/e6S7s+XuhezseTZt36KAW3jTELdwA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMLCN755pEkTq6Fh2ffAyY1j2LSPpOEwa2lQuaT5V7SgIhAIyeEJp7LBytRHzRdlA8aXhdG59GzyfMGFYNagtKxKNO"}]},"maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trouter-0.0.0.tgz_1509910527783_0.37793847103603184"},"directories":{}},"0.1.0":{"name":"trouter","version":"0.1.0","description":"WIP","repository":{"type":"git","url":"git+https://github.com/lukeed/mri.git"},"main":"lib/index.js","license":"MIT","files":["lib"],"author":{"name":"Luke Edwards","email":"luke.edwards05@gmail.com","url":"lukeed.com"},"engines":{"node":">=6"},"scripts":{"bench":"node bench","test":"tape test/*.js | tap-spec"},"keywords":[],"dependencies":{"matchit":"^1.0.0"},"devDependencies":{"tap-spec":"^4.1.1","tape":"^4.6.3"},"gitHead":"4ed8df9e5946ebda0a41543d57fe2f59c7ca54da","bugs":{"url":"https://github.com/lukeed/mri/issues"},"homepage":"https://github.com/lukeed/mri#readme","_id":"trouter@0.1.0","_shasum":"a806dbaf759568c9a125e03421ae01ad2e67fd0c","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.1","_npmUser":{"name":"lukeed","email":"luke@lukeed.com"},"dist":{"shasum":"a806dbaf759568c9a125e03421ae01ad2e67fd0c","tarball":"https://registry.npmjs.org/trouter/-/trouter-0.1.0.tgz","integrity":"sha512-f+iQ9K5UrPTnAxi7OVGtjLutVyauIHou1SELFe0EvSl6pZtYI4glUmSuS+orrOgZPBwOnmZLcwaZY70EmfvyrA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID6NyMWp7dSwYysxYTkFarjbgibg7zdG5dgMXGucOBi7AiBNn00DEVOgb5DKW1SNZRvJGjytPzEHoeRZ7qmucAMn4A=="}]},"maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trouter-0.1.0.tgz_1513973922271_0.6124841803684831"},"directories":{}},"0.1.1":{"name":"trouter","version":"0.1.1","description":"WIP","repository":{"type":"git","url":"git+https://github.com/lukeed/mri.git"},"main":"lib/index.js","license":"MIT","files":["lib"],"author":{"name":"Luke Edwards","email":"luke.edwards05@gmail.com","url":"lukeed.com"},"engines":{"node":">=6"},"scripts":{"bench":"node bench","test":"tape test/*.js | tap-spec"},"keywords":[],"dependencies":{"matchit":"^1.0.0"},"devDependencies":{"tap-spec":"^4.1.1","tape":"^4.6.3"},"gitHead":"428ca8110ed53e519a779773244928da127ec42d","bugs":{"url":"https://github.com/lukeed/mri/issues"},"homepage":"https://github.com/lukeed/mri#readme","_id":"trouter@0.1.1","_shasum":"7f066cf5669812b2af391170ad2189a57924369c","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.1","_npmUser":{"name":"lukeed","email":"luke@lukeed.com"},"dist":{"shasum":"7f066cf5669812b2af391170ad2189a57924369c","tarball":"https://registry.npmjs.org/trouter/-/trouter-0.1.1.tgz","integrity":"sha512-CLJg69kzrErpWGa3HB4pS3zXK9P3itWHgo2+/bSair136G/WzegKLdo+6YGBpFZKe5dRZmmNXs+/XkjX3vCkZg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjkmw2k2PKL6JqhSENonmM4+BewjAejgW7gmY2V9FpIQIgaw4UexsC+7QgX8IIrBjliYndBL8H4Hj9npcVBghNcPw="}]},"maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trouter-0.1.1.tgz_1514002880849_0.6184568139724433"},"directories":{}},"1.0.0":{"name":"trouter","version":"1.0.0","description":"🐟 A fast, small-but-mighty, familiar ~fish~ router","repository":{"type":"git","url":"git+https://github.com/lukeed/trouter.git"},"main":"lib/index.js","license":"MIT","files":["lib"],"author":{"name":"Luke Edwards","email":"luke.edwards05@gmail.com","url":"lukeed.com"},"engines":{"node":">=6"},"scripts":{"bench":"node bench","test":"tape test/*.js | tap-spec"},"keywords":["route","router","routing"],"dependencies":{"matchit":"^1.0.0"},"devDependencies":{"tap-spec":"^4.1.1","tape":"^4.6.3"},"gitHead":"28cb8b15bda8954b0a0ab01b424ae0f366a05896","bugs":{"url":"https://github.com/lukeed/trouter/issues"},"homepage":"https://github.com/lukeed/trouter#readme","_id":"trouter@1.0.0","_shasum":"4f845e0cdf4749276565d60f6dc9d61f55d6c0bb","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.1","_npmUser":{"name":"lukeed","email":"luke@lukeed.com"},"dist":{"shasum":"4f845e0cdf4749276565d60f6dc9d61f55d6c0bb","tarball":"https://registry.npmjs.org/trouter/-/trouter-1.0.0.tgz","integrity":"sha512-+LKpi2QFHi9SwDkUDaP5NiAL1/RDAXvMGDx7RkqbOFEHOyE+T4FZcEe9A5ua/GWbdnvvP/z1uc+efh3eQ5ixJg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFi1ytZ4cHpqjKHfq3ud93Kh/o62jZq4x3MRLfnyZpkBAiEAjsZNKHU62nCYHpP6rRLPC6pD78jdi2zuaxnPQloBpBs="}]},"maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trouter-1.0.0.tgz_1515665429459_0.13703137589618564"},"directories":{}},"1.1.0":{"name":"trouter","version":"1.1.0","description":"🐟 A fast, small-but-mighty, familiar ~fish~ router","repository":{"type":"git","url":"git+https://github.com/lukeed/trouter.git"},"main":"lib/index.js","license":"MIT","files":["lib"],"author":{"name":"Luke Edwards","email":"luke.edwards05@gmail.com","url":"lukeed.com"},"engines":{"node":">=6"},"scripts":{"bench":"node bench","test":"tape test/*.js | tap-spec"},"keywords":["route","router","routing"],"dependencies":{"matchit":"^1.0.0"},"devDependencies":{"tap-spec":"^4.1.1","tape":"^4.6.3"},"gitHead":"080d5a174dbe88eb739693c00dfb74cb70ffcfd1","bugs":{"url":"https://github.com/lukeed/trouter/issues"},"homepage":"https://github.com/lukeed/trouter#readme","_id":"trouter@1.1.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"lukeed","email":"luke@lukeed.com"},"dist":{"integrity":"sha512-EH5irPolH2hPRpgH77V8ZDS3T05oMFJ7Pcq0Vn5Dlzol4xKLhjOe4ftWnnDnHmTFzPUgUF//H6xyjv5dYAE6Kg==","shasum":"ce0ad2aaa4f13af21e34785079c3352298b9259a","tarball":"https://registry.npmjs.org/trouter/-/trouter-1.1.0.tgz","fileCount":4,"unpackedSize":6775,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa6jS8CRA9TVsSAnZWagAAIrYP/2/LwJpgFSpOwqcp+zSk\nr5my+bjOie4Re63oFzBFkwn1hblM172SXC6VNnpiQVl5KyI5Va+L91OL33ys\n9lB8sHdkHwVGe86vEfIXzvtBYjsH9na1jbuJYHvdyihlYvzGGsosyMLOxoZF\nJH3EUGzOQd+RXOfbddnsW6sl7JuMvM+KNmJtWavF9EPssplRzOCchpKKP77/\nrR6iPqHLSrR+lRWzd9yDCxZaqgzkuZZA6qFv5JitwZNXqp8xaAI2QcR593db\nO9sdeRdZ/ja3qpGTX3w3N4HZGzar1DnFjZlQj/hW3a3ZSYoNPSTKwqQtJZyg\n+k9mNjzrIPsjF9h+2DtvbrxzxKhFxEN4a8qKm7fhlszSo42w84qu2zdvl9IW\nE4TVMzjBy/tn/RDkInamriTqeYEkF5nhaTHbSwFfw6X7V1CMkZRME1Vi/a2W\nPG6110dBz6mDhVFHsbOTRg6uibTIK4sR5Afh/0N3Nir+ShIK6G49+bnVfnNj\nMa5cP2GWrzwk3boOXMPxGkv35FBtFkFHy3i/+lT62FaVP6r22h+BgwDElkwO\nF/YP4WjEk5Mf8DPjOaztlxFcQ2LVQc6d3xMmgEue3eZcRQlrQJq/T7rS10/t\npcRDl21THqcT8jyI8zfuA5lWvQqdkwJQUVVCpiDu3X5ps7r42xso22YlFJOq\n9vhS\r\n=Y7VK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpmP/WyH7k2il2VsD44tvhIUCRV3U/AKlR/WsKR/QHJwIgO9fr3fdknxQWPvgGq06cSfWu+WhjLsHV8Rg7UZ6VMyE="}]},"maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trouter_1.1.0_1525298363296_0.6287556199339028"},"_hasShrinkwrap":false},"2.0.1":{"name":"trouter","version":"2.0.1","description":"🐟 A fast, small-but-mighty, familiar ~fish~ router","repository":{"type":"git","url":"git+https://github.com/lukeed/trouter.git"},"license":"MIT","author":{"name":"Luke Edwards","email":"luke.edwards05@gmail.com","url":"lukeed.com"},"engines":{"node":">=6"},"scripts":{"bench":"node bench","test":"tape test/*.js | tap-spec"},"keywords":["route","router","routing"],"dependencies":{"matchit":"^1.0.0"},"devDependencies":{"tap-spec":"^4.1.1","tape":"^4.6.3"},"gitHead":"6b098ad31f36f586d6adafc134ed16c93af7d0b4","bugs":{"url":"https://github.com/lukeed/trouter/issues"},"homepage":"https://github.com/lukeed/trouter#readme","_id":"trouter@2.0.1","_npmVersion":"6.2.0","_nodeVersion":"10.9.0","_npmUser":{"name":"lukeed","email":"luke@lukeed.com"},"dist":{"integrity":"sha512-kr8SKKw94OI+xTGOkfsvwZQ8mWoikZDd2n8XZHjJVZUARZT+4/VV6cacRS6CLsH9bNm+HFIPU1Zx4CnNnb4qlQ==","shasum":"2726a5f8558e090d24c3a393f09eaab1df232df6","tarball":"https://registry.npmjs.org/trouter/-/trouter-2.0.1.tgz","fileCount":4,"unpackedSize":7781,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJboFTvCRA9TVsSAnZWagAA+PEP/iDCh6JFte/NS8jco91M\n7OkKCE3OMpT5KXjfVaL43hRvcSAKSB9ObkEIDL3122eppEt/uRcZeW9DSqb9\nmEkKRbV7+ql6NlwhxK62WiYd/tRZj9x+55CKl5y5uMdszlum3r8LNakhSS2I\ns1qb9EuBFaZdqW5t0MplNRzikv47kF2PQHfJl8x8KxyeyGE5E0QXJni1oW6b\nuNT9+lD15ZKL5xWUmhXAogIUqRKGUl9bgOjbH5pIiFoiDuVgSVz3yCGM6KMZ\nqaBjJiQF31glX5+6uOBKWQXgxSpO0lrYrTxC6T8iS9Pvo42PAh97s6EgpQVS\nr2Rwo6r9YMtPXlcIWq3uOkzzFS9B9xJ0FI620qs9DSBdziEEyu02MrCg72G+\neCVrF3B9dYXoVVmZW//wP+/LYo2jCD6NlGxH8Jc/2n2ulEf91z/5iMWNeuoj\n3cULDd7j5JXhSm8YB+MBsFTsRTeRmq+HZrGJzLEPXtfpVqWg1jfd1lCC1a6B\n7atjgbAwCywLFmtLF0J+Zz3elrBLfl0yiv6mckmaaLfMBsu9+NhngiOh/vC+\nXoILBkJK1QLGTP2UBN415+bePvwuOPjt3KnVA86/iOgnRiw306KE96ld+a9i\nAjNtGLJPE63iAsCxjVm/yuQ2dXx7RTbZD+3oeK/95ZvqQPgTcZo6nwshw3VK\nJSdp\r\n=m9Zn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXvmn42hJ3IwJW9Buf+z+TInW0KQxnXW3Jx1p4Cg/4VwIgRh1UWRMr9U6kV4ksRC2XG/B2ldhBFRaHZLUCc/1SzIU="}]},"maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trouter_2.0.1_1537234158854_0.7078570271101696"},"_hasShrinkwrap":false},"3.0.0":{"name":"trouter","version":"3.0.0","repository":{"type":"git","url":"git+https://github.com/lukeed/trouter.git"},"description":"🐟 A fast, small-but-mighty, familiar ~fish~ router","license":"MIT","author":{"name":"Luke Edwards","email":"luke.edwards05@gmail.com","url":"lukeed.com"},"engines":{"node":">=6"},"scripts":{"bench":"node bench","test":"tape test/*.js | tap-spec"},"keywords":["route","router","routing"],"dependencies":{"regexparam":"^1.2.0"},"devDependencies":{"tap-spec":"^4.1.1","tape":"^4.6.3"},"gitHead":"ed2d768f27b5369cfeeb014a8a2cf2cdf93851d2","bugs":{"url":"https://github.com/lukeed/trouter/issues"},"homepage":"https://github.com/lukeed/trouter#readme","_id":"trouter@3.0.0","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"lukeed","email":"luke@lukeed.com"},"dist":{"integrity":"sha512-j5AJuTJOGu0V9CiJa5vDHeKil45YyAoBNjUaHsMfJ2PdCxm8ARTW5QrkyNTjCA+e5BZDnvu0CYBX60zQz/2WAw==","shasum":"361b9f363149504906cb9ec0cf79128acbe8033e","tarball":"https://registry.npmjs.org/trouter/-/trouter-3.0.0.tgz","fileCount":4,"unpackedSize":9726,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJchFwMCRA9TVsSAnZWagAA3ioP/35yPWP9sdF5Ec6QOeAv\nmKNLlZ61tH+YeYd2t+FEk3vkVMlvHbh2PA/r2RLSHR9iWZEsZMVSFIq+4kRs\nmPAj9ff/2DwfERuoX/KUIqyP2nCPZaEK3VL7k9OddphAAmzvG/iCKKxOhR9d\nB/57slI+U+dz5h5K3tjSP0I6/QRFsQv93HmuywWpLuCJs0DxVL1d/L6b0VZS\nj+CICaSn4AaNF08pFWe1SIsra6Nz+vO2mOXXwU+7371jHvN2z9MkOkOD985A\n6wfvRFCzgu7HZyPULRYhqmWw98lsi4dtzYMXCko9rBcdy8zRFkOIeNMInKNU\nqwkLEA1W687JgxlZjTvGVzc2elFk1Otc8dh0sDhM83dYP+pkZVLA1YWMDmdu\nFqu1qBR7ZEmh0DGLyQObcLNQvj4dpseguJsvPJgJ3HxNcz1Bhr+9QvRwuQ6P\n8sxAyHpcY6r0iEWaXp9w2tXQdXTqf+7koZzNOVXAQCrqKHdD3Y2O9VgeBUTf\nQB/EZ1/OwNCp1YiLy7ikfoNdyQP4MV2VC26uMlP9sbUm71YHUF+sT2/zXSZW\n47gxQRhuJLA5acFILVzaRe7IljNEjp8/OT0rjyNeMpBrYEoeVRSVp7WBttB4\nvPT6qxAy86UC9Wq0YHw358Pzr0NR0KOALiay9M4PxwChQ0YssYwhL5rc183H\nGpFH\r\n=0VUT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkrGjYxi7sKpts9oJUWX+/e0LalJqmVbvlPF2r5JV1MQIgC9BsVC+C3oXcxerNtfFPpPigIiQaVKbNLKHoTh1Jumo="}]},"maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trouter_3.0.0_1552178187577_0.045950177505214906"},"_hasShrinkwrap":false},"3.0.1":{"name":"trouter","version":"3.0.1","repository":{"type":"git","url":"git+https://github.com/lukeed/trouter.git"},"description":"🐟 A fast, small-but-mighty, familiar ~fish~ router","license":"MIT","author":{"name":"Luke Edwards","email":"luke.edwards05@gmail.com","url":"lukeed.com"},"engines":{"node":">=6"},"scripts":{"bench":"node bench","test":"tape test/*.js | tap-spec"},"keywords":["route","router","routing"],"dependencies":{"regexparam":"^1.2.0"},"devDependencies":{"tap-spec":"^4.1.1","tape":"^4.6.3"},"gitHead":"b068dd7edc5444b7c1953da1d3a2933d1df50c69","bugs":{"url":"https://github.com/lukeed/trouter/issues"},"homepage":"https://github.com/lukeed/trouter#readme","_id":"trouter@3.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"lukeed","email":"luke@lukeed.com"},"dist":{"integrity":"sha512-9IBGrlL5bW65xhWufCCf4AsZyxGVIxv7Jy+PTwNtfPHJo+8hAp4wvt/+ersAHE//0Lgjy7obPROfgasNocoYuA==","shasum":"620271d2963a87b463a09d21f25475da063dde21","tarball":"https://registry.npmjs.org/trouter/-/trouter-3.0.1.tgz","fileCount":4,"unpackedSize":9802,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcvin5CRA9TVsSAnZWagAApYwP+gMZ2lgnzhN+oFiyNDW0\nsIdMK/srgL5NMFQ/l7iLSP1zEzunUKuGXHv4qZNpiCVpI7YI74uOPMVHEFK1\nhbDeupxyVOZZ2e6HSSf/MywwVRSSPZ4+zNtoholwDSoks4yh39hA+dOdzuQ+\nPrwNia5woHK6GPWVzuzz9G8FIuliuuJdXgmkpL82uF+b2R5YAqxA1DkhGd7f\nMG+/WJopPbe17Dc3LjTafv/IDN35WzfOKw1l1DE7Q8khtggab3JGp61u9zBM\nnGuWatJF9iSm9YJAftlqfIj85BfEwt1ESyA286Ws40g6LMNXiUCqsuNLpJOV\niyLVCOrG0alF/4vAyHZc1sYzq3u9nfb/m0TJtjtdbItZ6P9dEvCm7Q9AlrXc\njBPzbACbZSvDFxaKzeATXdwZ090gG16nUAfPx7DeToXhvP34sDaZbcajXLrt\nWyfPHvo8XHswot7nYsXME4W2BOTzcw0pT7lBwW9uEpB6BOApO8u7p/ZGFzv4\n98LEcfRX77QveYLcuQdlFVxOcHBmqfKBtxCiV4dS2iikcVj4RvsMxLxlZcOH\nYievdiVZdfhXaHf3TOpjk3fudzenGLx2B+vDTYRuXRXKIb6ciMGL1BqFzN3Y\nXXe37X9e3D4+T7uCbq1XXq7nYH2GrOyqmO+LAimsh1d5jFJ6BssJHDQ86jKX\n3DNk\r\n=tpyq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnpkjjl9scxln87Ut4dfo8Z+5ITsYKL054roTSzceDyQIgNcdK1InmbRjsSZhUKmMwq8NsT+9bGQIG8aWZTwCjcyg="}]},"maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trouter_3.0.1_1555966456804_0.8756178080838104"},"_hasShrinkwrap":false},"3.0.2":{"name":"trouter","version":"3.0.2","repository":{"type":"git","url":"git+https://github.com/lukeed/trouter.git"},"description":"🐟 A fast, small-but-mighty, familiar ~fish~ router","module":"index.mjs","main":"index.js","license":"MIT","author":{"name":"Luke Edwards","email":"luke.edwards05@gmail.com","url":"lukeed.com"},"engines":{"node":">=6"},"scripts":{"bench":"node bench","prepack":"bundt index.mjs","test":"tape -r esm test/*.js | tap-spec"},"keywords":["route","router","routing"],"dependencies":{"regexparam":"^1.2.0"},"devDependencies":{"bundt":"0.4.0","esm":"3.2.22","tap-spec":"^5.0.0","tape":"4.10.1"},"gitHead":"0bbc63f98951c7bb2e87a07aaa2a93c039a8379b","bugs":{"url":"https://github.com/lukeed/trouter/issues"},"homepage":"https://github.com/lukeed/trouter#readme","_id":"trouter@3.0.2","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"lukeed","email":"luke@lukeed.com"},"dist":{"integrity":"sha512-wzUcM3oKmF8Fx5pd+3IxZj5LBugqW+hSQHm6cTHkpiZHL8w6YeZSzo3LPw0UdhlwaGPms3OxT7N4GEOIRTw+jw==","shasum":"9dbc114ee05659705438430c5c8a19f46da07dad","tarball":"https://registry.npmjs.org/trouter/-/trouter-3.0.2.tgz","fileCount":5,"unpackedSize":11644,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyzOCCRA9TVsSAnZWagAAkskP/07hFNR31dc0HIPC/6x2\nHVvto8hzYlUuCq0sWrRUi23F0AVv+Hm3UDhhQHtROWTn4bkVlAsmGxNlTTvY\naB4groZn1v6XydzRLACcPlQpEPEa377/jR464WuzmlJs9EJ2CG0HRNd4wDJz\n8Nk9SYzQpKM3kTzNkj5r+4vcLAxlFVqz4jaKfwTltc+TUsLLUdvWXimWL6Zq\noulhIvnAnIUS/vTb/HA3sMzKSx6Jx6LBtanVp9mBKE87anI4xoF+gYjlNUEx\n8ZEz/MdwUrWjkeFMxPK6B2bYBrIMr4KEsle/NTNRW6UrO34Kyc+ciZl/IgJm\nM38Ju2l45DIIz0jld6yis/QfFd3CoJZewrpFusep2LKmhadse+sduqNPlwFO\nF1faclGidcBoq2Ffnib+FXE5ypBjZZgLRyvcgxFZASwbMKh0FJrYwUTvcvu5\nbPzKin4QODftEJtDE+d1QoYTfk3vjiO3/Y2PFgif9sGlzvUofY+ZYtu/2Rg4\nqmMzD4YBv9BNxUY9zi8vpoVdUdl/kf9K68vvKOJbWVAhG1JVC43vAXPUt3sz\nUd+z5xMbWYxu8p86r6USllhMWhOq52VyZaE9YNYcs0HURRr2mvSP0rH5S0d8\nl49u3bjGKYWXt/GEVEcpEl8rA4NLAx4mv/+tvgsYf0ihx+cf9YdvkYCEzeIq\nxfJc\r\n=jf2a\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCk+/Iy9/gWLKM6vHvyCN9DFaztWPYTUKg6qVl6LC6K4QIgVXtWXr3QX9YKVmaQ/zk2JbBaDBNZTNzOBxrGaN+aU/c="}]},"maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trouter_3.0.2_1556820865754_0.06652581174543037"},"_hasShrinkwrap":false},"3.1.0":{"name":"trouter","version":"3.1.0","repository":{"type":"git","url":"git+https://github.com/lukeed/trouter.git"},"description":"🐟 A fast, small-but-mighty, familiar ~fish~ router","module":"index.mjs","main":"index.js","license":"MIT","author":{"name":"Luke Edwards","email":"luke.edwards05@gmail.com","url":"lukeed.com"},"engines":{"node":">=6"},"scripts":{"bench":"node bench","prepack":"bundt index.mjs","test":"tape -r esm test/*.js | tap-spec"},"keywords":["route","router","routing"],"dependencies":{"regexparam":"^1.3.0"},"devDependencies":{"bundt":"0.4.0","esm":"3.2.22","tap-spec":"5.0.0","tape":"4.11.0"},"gitHead":"ca4c61d11f538218680b11982211af427f794d32","bugs":{"url":"https://github.com/lukeed/trouter/issues"},"homepage":"https://github.com/lukeed/trouter#readme","_id":"trouter@3.1.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"lukeed","email":"luke@lukeed.com"},"dist":{"integrity":"sha512-3Swwu638QQWOefHLss9cdyLi5/9BKYmXZEXpH0KOFfB9YZwUAwHbDAcoYxaHfqAeFvbi/LqAK7rGkhCr1v1BJA==","shasum":"76f4faea81d5ebd11bba4762c664a3b55eda9b23","tarball":"https://registry.npmjs.org/trouter/-/trouter-3.1.0.tgz","fileCount":5,"unpackedSize":12460,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJsE7CRA9TVsSAnZWagAAmsIP/2fI/3Nt1xtMl7xhB2aW\n+W1hmouQfpQ4PZFAnOChfzLzN964hPFIVdG+Kv5+UidohoWyR60oHh9Gg38V\nmhWckgQdTHRvN93hkXBtMuZrXHXspM3o+TYPMlGzNf1J0KhT7WVdRAGs1A+C\n/pqF9mpEor+iZnlbwKmOrTsqXQujd1JQoVkt8hd1xzC3F21oVSVlrOzzwAPQ\ns3Bc3a3CyVX90g4N5XvEYgsh97lCd/h1iseDjMctwQ4FT6ipxmYzvQ7IBlz3\nCpP+EkClUbjKUT7TMSVhTm1jYD0XAqMCbPwECm3A+GmOiUILAOe83Bxx14KQ\n/87h4fpCP8Gfv7dI5OlB3tuF3p1iXZLaGPWk9LRc/bvR7nGpMuH8jfvRoE8S\nlHyiGkF+v4PEY34zuS6tHnA+ilqJaKOlzXOswFAhSe9jW41yODH9uD6LaTX4\noxWy1SlSYfwLgpiBG+0RmPhIvhnfEzycxqmDNuTTBw0H1nE57GIe5QIyyBtI\n5r8pY5hSBf0eAh6UmlpMUpZKbvmEx6o0BRwk+3FYin02/qhx8slq1VOAcek6\nzOn4Kz6NUHwaAFTOYlrqOhAW0CjXVpcy7PwDnLUSx2RIapyftJo3IXVjJGyd\ndpE+BepNgTbFJb0/7V4H7YyflTmGnyp9//vJogST1VaK6yrDE79AjtpSbnJr\nlp//\r\n=jA1v\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFeY5DPa8T1fZrFtkdlA9JaHQ1K/ienYSMzfu2Y3DRXyAiBbDicCkFabpKPabKH7l9xiHVygMSiA68UR8VoCN4BRHw=="}]},"maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trouter_3.1.0_1562820922700_0.5727389805149532"},"_hasShrinkwrap":false},"3.2.0":{"name":"trouter","version":"3.2.0","repository":{"type":"git","url":"git+https://github.com/lukeed/trouter.git"},"description":"🐟 A fast, small-but-mighty, familiar ~fish~ router","types":"index.d.ts","module":"index.mjs","main":"index.js","license":"MIT","author":{"name":"Luke Edwards","email":"luke.edwards05@gmail.com","url":"https://lukeed.com"},"engines":{"node":">=6"},"scripts":{"bench":"node bench","prepack":"bundt index.mjs","test":"tape -r esm test/*.js | tap-spec"},"keywords":["route","router","routing"],"dependencies":{"regexparam":"^1.3.0"},"devDependencies":{"bundt":"1.1.2","esm":"3.2.22","tap-spec":"5.0.0","tape":"4.11.0"},"gitHead":"0692417c728a4f6aecbc350f714019baf3072bc7","bugs":{"url":"https://github.com/lukeed/trouter/issues"},"homepage":"https://github.com/lukeed/trouter#readme","_id":"trouter@3.2.0","_nodeVersion":"14.15.3","_npmVersion":"6.14.9","dist":{"integrity":"sha512-rLLXbhTObLy2MBVjLC+jTnoIKw99n0GuJs9ov10J870vDw5qhTurPzsDrudNtBf5w/CZ9ctZy2p2IMmhGcel2w==","shasum":"a9c510fce21b8e659a28732c9de9d82871efe8df","tarball":"https://registry.npmjs.org/trouter/-/trouter-3.2.0.tgz","fileCount":6,"unpackedSize":13771,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgX1h8CRA9TVsSAnZWagAAYeUP/2u3fZUBx95dpZRifrYX\noTIj8BZlwLql2sS2CoeP0nnywHbEaMK18RLUDlCn+AmnWNb1/WB6cLhuxExJ\neLwkPeCct0hQ76i3jRwFdkhov6uagfrF9WTy46IXk10d2zG9emax8WfBAOpb\nVs8yGpnIG1j4ZTjwY2sVRh5Ok5LnqS1EWyIICEOMOErf04RAuQ9zqvVtnk+9\nUDVih3OC27UUiFrl29ekyhE6orB3yukZpolI+kWxRVZHzm1rHG2xN32G3ikP\n1usiCX15yGN0HG6DEHy5kW9tSAPEITRxPJYo3lOPscHMQAlsHNVveq0giC55\nM3WFjJIpkSqzvJzpv9kRBjW93E9ZUt5+cOPp/+8XcwJbEjfHhSRW34UGEVZv\nkiUvEve3W+tzFN9Ej8kRWFLAoaOUlC5vjm5U3xDG/ZYstcCTnQj6t6BxxfaG\nysnk9sxhEScNnN265N1cuHwUfzHZa4Jye1IYAUAHol4creAs0qR0k8DonZHo\nkSc/wlK1MMTcKNyIVKcHo+zvfT7eHg1iDPa1HbIk+rqEl4ZxE7DYfdnutjaS\njOYBvaRZPihyuZuq/t/2EZGFOop8EdAJgYdzP5kWHYvrNjLrjYKtWTZ5Gmgj\nWuHByPEN6hzMtHqcaE7gu4cljuwvvT9Y6PVvsCc7MOjuKhtftWxTzrofKBsg\neOWB\r\n=R6PG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlwamN0CfvEsU995hMI3rYZh7GApT0INS4mieeCQdYpgIgESV+ckk3/k7WKegZmcEToRt4x2pSTw5qB+gzsKLId+8="}]},"_npmUser":{"name":"lukeed","email":"luke@lukeed.com"},"directories":{},"maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trouter_3.2.0_1616861307654_0.3454136426669543"},"_hasShrinkwrap":false},"3.2.1":{"name":"trouter","version":"3.2.1","repository":{"type":"git","url":"git+https://github.com/lukeed/trouter.git"},"description":"🐟 A fast, small-but-mighty, familiar ~fish~ router","types":"index.d.ts","module":"index.mjs","main":"index.js","license":"MIT","author":{"name":"Luke Edwards","email":"luke.edwards05@gmail.com","url":"https://lukeed.com"},"engines":{"node":">=6"},"scripts":{"bench":"node bench","prepack":"bundt index.mjs","test":"tape -r esm test/*.js | tap-spec"},"keywords":["route","router","routing"],"dependencies":{"regexparam":"^1.3.0"},"devDependencies":{"bundt":"1.1.2","esm":"3.2.22","tap-spec":"5.0.0","tape":"4.11.0"},"gitHead":"c80136f022c1960ddf2ac445e6ae7603156b054f","bugs":{"url":"https://github.com/lukeed/trouter/issues"},"homepage":"https://github.com/lukeed/trouter#readme","_id":"trouter@3.2.1","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-oY3CmIiEYOe1YMEzh++I67lrNOUldtCeuLL0vRPydvQLHZpSJ03B5dgDFlpFsiriMq6e//NDjjopjUzXOztHow==","shasum":"a07e6f39a48fa0950a0157897075b633265b0fd9","tarball":"https://registry.npmjs.org/trouter/-/trouter-3.2.1.tgz","fileCount":6,"unpackedSize":14097,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDYPSfN7cZepwSeQ6DJXfZtHs+COWpZGk/GvaCbfCR8sAiEA5jFxdtp+J7V4lwmroeAgncHXLBAvHHos87CZcxJJSE4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9XmtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr86w/+PQbPyQBak7LJ5bEmPSAp6p34MhRSPKN8uvzroY7TERRkEcMU\r\nRvPeXJUy01dy+ACqg78FcyrqGsAymOeOa6EXOQSmpyU2Bpc+Rxby1NvrnijR\r\ntGmBHuq6fIMYnXEMPrcfLXgLX3Df3/q3x4mWZm7o1+lb+AwXDv25NyVMiqtq\r\n63s547QBaTStbR8VX8gLgEB2ObtymxT4P9psUTZswMlSiAUTcq2UkM7MLBw3\r\nvM9nt/StGjXjGWQXtLX2g59gRHVH/XvBXIh0Jl3w6l39LJLc6L9DTdQTi8f+\r\nM4ItQov5kNAymB9m4BsBEitGWgX05CcZRPzCzbSchn4BvdWU3SiPZ/olY3P1\r\n1DfNMVBjxbJfM0KP+VT7e87NLWfeH1O0aCdZ0+DAGaB2aUupmTLBmGz8/tLl\r\n17rn5BF2jfON3o4i/ipb24G2cTTX+yzg8AhDRkqXZoBDenQ8g8uCt7X+j9kL\r\noqJCn8fzmneb8zA7aVbVnzzvyiU4tjQ4hqbJoRAe6sLKm9wPtcfrn6aIX/Wl\r\nzG8PkI0SAaoMasxVVVUi/3uu/CdYUAm8IYIcBVdtjkDO0dAGOhVBYgghQdy7\r\njKRTbs2OXpDulwItP5touDGhNTp3XtI0t90lJRUoBM7yjm2P8LmB57CZsTn5\r\nLmx8LN1exB/aNxo/iXCoVjRq8ukfwj9+NfE=\r\n=pOh4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lukeed","email":"luke@lukeed.com"},"directories":{},"maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trouter_3.2.1_1677031853136_0.5222145260178734"},"_hasShrinkwrap":false},"4.0.0":{"name":"trouter","version":"4.0.0","repository":{"type":"git","url":"git+https://github.com/lukeed/trouter.git"},"description":"🐟 A fast, small-but-mighty, familiar ~fish~ router","types":"index.d.ts","module":"index.mjs","main":"index.js","license":"MIT","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","require":"./index.js"},"./package.json":"./package.json"},"author":{"name":"Luke Edwards","email":"luke.edwards05@gmail.com","url":"https://lukeed.com"},"engines":{"node":">=6"},"scripts":{"bench":"node bench","prepack":"bundt index.mjs","test":"uvu -r esm test"},"keywords":["route","router","routing"],"dependencies":{"regexparam":"^3.0.0"},"devDependencies":{"bundt":"1.1.2","esm":"3.2.25","uvu":"0.5.1"},"_id":"trouter@4.0.0","gitHead":"c5176edd1cd94b439a341c6b009f2f7b3d42d5a6","bugs":{"url":"https://github.com/lukeed/trouter/issues"},"homepage":"https://github.com/lukeed/trouter#readme","_nodeVersion":"20.8.1","_npmVersion":"10.1.0","dist":{"integrity":"sha512-bwwr76BThfiVwAFZqks5cJ+VoKNM3/2Yg1ZwJslkdmAUQ6S0UNoCoGYFDxdw+u1skfexggdmD2p35kW5Td4Cug==","shasum":"88aefbfef88ef83b2d72b5c3e8a64532ae70b3e8","tarball":"https://registry.npmjs.org/trouter/-/trouter-4.0.0.tgz","fileCount":6,"unpackedSize":14300,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC3W8qI2MrmrgjRaQbVL5YS7k6S7o/P40EJq9Jfs9aLlAiEA+lphMUn09oImH6tkoTXnvbNQqFHcs/6q/XoEa6N/5f8="}]},"_npmUser":{"name":"lukeed","email":"luke@lukeed.com"},"directories":{},"maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trouter_4.0.0_1701703252038_0.13675259186998856"},"_hasShrinkwrap":false}},"readme":"# trouter [![CI](https://github.com/lukeed/trouter/actions/workflows/ci.yml/badge.svg)](https://github.com/lukeed/trouter/actions/workflows/ci.yml)\n\n> 🐟 A fast, small-but-mighty, familiar ~fish~ router\n\n\n## Install\n\n```\n$ npm install --save trouter\n```\n\n\n## Usage\n\n```js\nimport { Trouter } from 'trouter';\n\nconst router = new Trouter();\n\n// Define all routes\nrouter\n  .get('/users', _ => {\n    console.log('> Getting all users');\n  })\n  .add('POST', '/users', _ => {\n    console.log('~> Adding a user');\n  })\n  .get('/users/:id', val => {\n    console.log('~> Getting user with ID:', val);\n  });\n\n// Find a route definition\nlet obj = router.find('GET', '/users/123');\n//=> obj.params ~> { id:123 }\n//=> obj.handlers ~> Array<Function>\n\n// Execute the handlers, passing value\nobj.handlers.forEach(fn => {\n  fn(obj.params.id);\n});\n//=> ~> Getting user with ID: 123\n\n// Returns empty keys when no match\nrouter.find('DELETE', '/foo');\n//=> { params:{}, handlers:[] }\n```\n\n## API\n\n### Trouter()\nInitializes a new `Trouter` instance.\n\n\n### trouter.add(method, pattern, ...handlers)\nReturns: `self`\n\nStores a `method` + `pattern` pairing internally, along with its handler(s).\n\n#### method\nType: `String`\n\nAny uppercased, [valid HTTP/1.1 verb](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods#Specifications) &mdash; choose from one of the following:\n\n```\nGET  HEAD  PATCH  OPTIONS  CONNECT  DELETE  TRACE  POST  PUT\n```\n\n#### pattern\nType: `String` or `RegExp`\n\nTrouter supports simple route patterns which are fast and well readable but limited. If you need more complex patterns, you can pass an instance of `RegExp` with parameters specified as named capture groups.\n\n> **Important:** RegExp named capture groups are [supported in Node.js 10.x](https://node.green/#ES2018-features--RegExp-named-capture-groups) and above!\n\nThe supported route pattern types are:\n\n* static (`/users`)\n* named parameters (`/users/:id`)\n* nested parameters (`/users/:id/books/:title`)\n* optional parameters (`/users/:id?/books/:title?`)\n* suffixed parameters (`/movies/:title.mp4`, `movies/:title.(mp4|mov)`)\n* any match / wildcards (`/users/*`)\n* optional wildcards (`/users/*?`)\n\n#### ...handlers\nType: `Function`\n\nThe function(s) that should be tied to this `pattern`.\n\nBecause this is a [rest parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters), whatever you pass will _always_ be cast to an Array.\n\n> **Important:** Trouter does not care what your function signature looks like!<br> You are not bound to the `(req, res)` standard, or even passing a `Function` at all!\n\n\n### trouter.use(pattern, ...handlers)\nReturns: `self`\n\nThis is an alias for [`trouter.add('', pattern, ...handlers)`](#trouteraddmethod-pattern-handlers), matching **all** HTTP methods.\n\nHowever, unlike [`trouter.all`](#trouterallpattern-handlers), the `pattern` you defined **IS NOT RESTRICTIVE**, which means that the route will match any & all URLs that start (but not end) with a matching segment.\n\n```js\nrouter.use('/foo', 'USE /foo');\nrouter.use('/foo/:name', 'USE /foo/:name');\nrouter.post('/foo/:name', 'POST /foo/:name');\nrouter.head('/foo/:name/hello', 'HEAD /foo/:name/hello');\n\nrouter.find('GET', '/foo').handlers;\n//=> ['USE /foo']\n\nrouter.find('POST', '/foo/bar').handlers;\n//=> ['USE /foo', 'USE /foo/:name', 'POST /foo/:name']\n\nrouter.find('HEAD', '/foo/bar/hello').handlers;\n//=> ['USE /foo', 'USE /foo/:name', 'HEAD /foo/:name/hello']\n```\n<sup>_Compare this snippet with the one below to see differences between `trouter.all` and this method._</sup>\n\n\n### trouter.all(pattern, ...handlers)\nReturns: `self`\n\nThis is an alias for [`trouter.add('', pattern, ...handlers)`](#trouteraddmethod-pattern-handlers), matching **all** HTTP methods.\n\nHowever, unlike [`trouter.use`](#trouterusepattern-handlers), the `pattern` you defined **IS RESTRICTIVE** and behaves like any other [`trouter.METHOD`](#trouteraddmethod-pattern-handlers) route. This means that the URL must match the defined `pattern` exactly – or have the appropriate optional and/or wildcard segments to accommodate the desired flexibility.\n\n```js\nrouter.all('/foo', 'ALL /foo');\nrouter.all('/foo/:name', 'ALL /foo/:name');\nrouter.post('/foo/:name', 'POST /foo/:name');\nrouter.head('/foo/:name/hello', 'HEAD /foo/:name/hello');\n\nrouter.find('GET', '/foo').handlers;\n//=> ['ALL /foo']\n\nrouter.find('POST', '/foo/bar').handlers;\n//=> ['ALL /foo/:name', 'POST /foo/:name']\n\nrouter.find('HEAD', '/foo/bar/hello').handlers;\n//=> ['HEAD /foo/:name/hello']\n```\n<sup>_Compare this snippet with the one above to see differences between `trouter.use` and this method._</sup>\n\n\n\n### trouter.METHOD(pattern, ...handlers)\n\nThis is an alias for [`trouter.add(METHOD, pattern, ...handlers)`](#trouteraddmethod-pattern-handlers), where `METHOD` is any lowercased HTTP verb.\n\n```js\nconst noop = _ => {}:\nconst app = new Trouter();\n\napp.get('/users/:id', noop);\napp.post('/users', noop);\napp.patch('/users/:id', noop);\n\n// less common methods too\napp.trace('/foo', noop);\napp.connect('/bar', noop);\n```\n\n### trouter.find(method, url)\nReturns: `Object`\n\nSearches within current instance for **all** `method` + `pattern` pairs that satisfy the current `method` + `url`.\n\n> **Important:** Parameters and handlers are assembled/gathered _in the order that they were defined!_\n\nThis method will always return an Object with `params` and `handlers` keys.\n\n* `params` &mdash; Object whose keys are the named parameters of your route pattern.\n* `handlers` &mdash; Array containing the `...handlers` provided to [`.add()`](#trouteraddmethod-pattern-handlers) or [`.METHOD()`](#troutermethodpattern-handlers)\n\n> **Note:** The `handlers` and `params` keys will be empty if no matches were found.\n\n\n#### method\nType: `String`\n\nAny valid HTTP method name, uppercased.\n\n> **Note:** When searching for `HEAD` routes, `GET` routes will also be inspected.\n\n#### url\nType: `String`\n\nThe URL used to match against pattern definitions. This is typically `req.url`.\n\n\n## Benchmarks\n\n> Run on Node v10.13.0\n\n```\nGET /                           x 10,349,863 ops/sec ±2.15% (93 runs sampled)\nPOST /users                     x 13,895,099 ops/sec ±0.40% (94 runs sampled)\nGET /users/:id                  x  6,288,457 ops/sec ±0.25% (93 runs sampled)\nPUT /users/:id/books/:title?    x  6,176,501 ops/sec ±0.22% (96 runs sampled)\nDELETE /users/:id/books/:title  x  5,581,288 ops/sec ±2.04% (96 runs sampled)\nHEAD /hello (all)               x  9,700,097 ops/sec ±0.47% (90 runs sampled)\n```\n\n## License\n\nMIT © [Luke Edwards](https://lukeed.com)\n","maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"time":{"modified":"2023-12-04T15:20:52.558Z","created":"2017-11-05T19:35:27.873Z","0.0.0":"2017-11-05T19:35:27.873Z","0.1.0":"2017-12-22T20:18:42.338Z","0.1.1":"2017-12-23T04:21:20.928Z","1.0.0":"2018-01-11T10:10:29.597Z","1.1.0":"2018-05-02T21:59:23.398Z","2.0.0":"2018-09-17T16:52:32.232Z","2.0.1":"2018-09-18T01:29:19.017Z","3.0.0":"2019-03-10T00:36:27.838Z","3.0.1":"2019-04-22T20:54:17.027Z","3.0.2":"2019-05-02T18:14:25.959Z","3.1.0":"2019-07-11T04:55:22.831Z","3.2.0":"2021-03-27T16:08:27.991Z","3.2.1":"2023-02-22T02:10:53.266Z","4.0.0":"2023-12-04T15:20:52.373Z"},"homepage":"https://github.com/lukeed/trouter#readme","keywords":["route","router","routing"],"repository":{"type":"git","url":"git+https://github.com/lukeed/trouter.git"},"author":{"name":"Luke Edwards","email":"luke.edwards05@gmail.com","url":"https://lukeed.com"},"bugs":{"url":"https://github.com/lukeed/trouter/issues"},"license":"MIT","readmeFilename":"readme.md"}