{"_id":"express-route-lens","_rev":"8-74f26bdc0faadb760925b08f5b8de2e8","name":"express-route-lens","dist-tags":{"latest":"1.0.8"},"versions":{"1.0.0":{"name":"express-route-lens","version":"1.0.0","keywords":["express","routes","debug","cli","developer-tools"],"author":{"name":"Tanvir-Alam625"},"license":"MIT","_id":"express-route-lens@1.0.0","maintainers":[{"name":"devtanvir01","email":"devtanvir01@gmail.com"}],"bin":{"express-route-lens":"bin/cli.js"},"dist":{"shasum":"4124824911a1b7270d02ecbc51cfc0a3a98372f9","tarball":"https://registry.npmjs.org/express-route-lens/-/express-route-lens-1.0.0.tgz","fileCount":6,"integrity":"sha512-b5LtfEyFXwBmtWPOh7bC2YsvxsMsdfXelsvs5TNaOy/k4ALNAY4nmGhhrsyyNEKEvtlFcLgTX0jpfYU8VOuC9Q==","signatures":[{"sig":"MEYCIQDgmC6DlYm7wA4/ZTXt5fqGW7dTauAnc/X4trzlb3df6QIhAObha8nQ0ozKz0lLeCYN65+tVHNNmmup6v5VVS1b6xlo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14367},"main":"src/index.js","engines":{"node":">=14.0.0"},"gitHead":"7bed771c910f6a18c8c5393cf818b89b5a77a2c3","scripts":{"test":"node test/test.js","start":"node bin/cli.js"},"_npmUser":{"name":"devtanvir01","email":"devtanvir01@gmail.com"},"overrides":{"qs":"6.16.0","body-parser":"1.20.6"},"_npmVersion":"11.13.0","description":"A developer tool to inspect and print Express.js routes with recursive discovery, middleware counting, and JSON export","directories":{},"_nodeVersion":"26.2.0","dependencies":{"chalk":"^4.1.2","express":"^4.18.2","commander":"^11.1.0","cli-table3":"^0.6.3"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/express-route-lens_1.0.0_1789068750536_0.08295920708921334","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"express-route-lens","version":"1.0.2","keywords":["express","routes","debug","cli","developer-tools"],"author":{"name":"Tanvir-Alam625"},"license":"MIT","_id":"express-route-lens@1.0.2","maintainers":[{"name":"devtanvir01","email":"devtanvir01@gmail.com"}],"homepage":"https://github.com/Tanvir-Alam625/express-route-lens#readme","bugs":{"url":"https://github.com/Tanvir-Alam625/express-route-lens/issues"},"bin":{"express-route-lens":"bin/cli.js"},"dist":{"shasum":"e7999a305c6af58b6000faf10942c3423a214438","tarball":"https://registry.npmjs.org/express-route-lens/-/express-route-lens-1.0.2.tgz","fileCount":8,"integrity":"sha512-+6hY1lKJeg9p1+Lk0zsu0IuvNuoL4G3NEAHJzcshXDIEsvH32rcMl+gr9czcUlzU8BZOSJybAYvq6GoAZrvWwQ==","signatures":[{"sig":"MEQCICL9U4LEEYPbSPOfh5DOrvnUVQiK2LJzs2rK7CHm9SgyAiB5fwWNie1dk8M6FNJOA7XDkEKTha1T22mylsNdyaphiQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDNI6CNANVZQ6AG1zVPg61/mVZk0XYsU7yAhrYazIvvdQIgESmKXDLwV/rRAyofipfVCFsIDtcrm2NUpl3cQFqE0LM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/express-route-lens@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17730},"main":"src/index.js","engines":{"node":">=14.0.0"},"gitHead":"b7398e238560d0cf819b4d24e018a968cd3d305b","scripts":{"test":"node test/test.js","start":"node bin/cli.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:14a617cc-76de-4f10-87f0-6469aa60d6c9"}},"overrides":{"qs":"6.16.0","body-parser":"1.20.6"},"repository":{"url":"git+https://github.com/Tanvir-Alam625/express-route-lens.git","type":"git"},"_npmVersion":"11.5.1","description":"A developer tool to inspect and print Express.js routes with recursive discovery, middleware counting, and JSON export","directories":{},"_nodeVersion":"22.23.2","dependencies":{"chalk":"^4.1.2","express":"^4.18.2","commander":"^11.1.0","cli-table3":"^0.6.3"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/express-route-lens_1.0.2_1789069894709_0.4873984686401067","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"express-route-lens","version":"1.0.3","keywords":["express","routes","debug","cli","developer-tools"],"author":{"name":"Tanvir-Alam625"},"license":"MIT","_id":"express-route-lens@1.0.3","maintainers":[{"name":"devtanvir01","email":"devtanvir01@gmail.com"}],"homepage":"https://github.com/Tanvir-Alam625/express-route-lens#readme","bugs":{"url":"https://github.com/Tanvir-Alam625/express-route-lens/issues"},"bin":{"express-route-lens":"bin/cli.js"},"dist":{"shasum":"385f5d5e3d17da7c05c6115aed76b628e3fd646a","tarball":"https://registry.npmjs.org/express-route-lens/-/express-route-lens-1.0.3.tgz","fileCount":8,"integrity":"sha512-2c+gV945GJr5okVvUrwM8zI11wrPD1w/r/6djeFoOFIsoT/L2CurtUEGEsBQa037ESlWgSVcRpIqPYoRawr04Q==","signatures":[{"sig":"MEUCIQDexXD901Tk7GBxuG7RV0FMnbHljplF2a2BOwUJuEmnVgIgbDB9s/ggWKY+CN8wIgXHaYPuBhRQwpU4NF/GFoi18z8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCF0Q26WP9wTWbaJuSie3cHnT0TsCh3YkEMKDlAvWohUgIgeCt7X/77pE0eilFehmwuYG90/q0QrNKdK7rmGRwgyfg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/express-route-lens@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17768},"main":"src/index.js","engines":{"node":">=14.0.0"},"gitHead":"7b2279a440040ccfc8e40743971346f082961407","scripts":{"test":"node test/test.js","start":"node bin/cli.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:14a617cc-76de-4f10-87f0-6469aa60d6c9"}},"overrides":{"qs":"6.16.0","body-parser":"1.20.6"},"repository":{"url":"git+https://github.com/Tanvir-Alam625/express-route-lens.git","type":"git"},"_npmVersion":"11.5.1","description":"A developer tool to inspect and print Express.js routes with recursive discovery, middleware counting, and JSON export","directories":{},"_nodeVersion":"22.23.2","dependencies":{"chalk":"^4.1.2","cli-table3":"^0.6.3"},"_hasShrinkwrap":false,"devDependencies":{"express":"^4.22.2"},"peerDependencies":{"express":"^4.18.2 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/express-route-lens_1.0.3_1789070736348_0.2880836021335369","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"express-route-lens","version":"1.0.4","keywords":["express","routes","debug","cli","developer-tools"],"author":{"name":"Tanvir-Alam625"},"license":"MIT","_id":"express-route-lens@1.0.4","maintainers":[{"name":"devtanvir01","email":"devtanvir01@gmail.com"}],"homepage":"https://github.com/Tanvir-Alam625/express-route-lens#readme","bugs":{"url":"https://github.com/Tanvir-Alam625/express-route-lens/issues"},"bin":{"express-route-lens":"bin/cli.js"},"dist":{"shasum":"8955f6aa146e2dc259fa2df05b8e40295f0d83d4","tarball":"https://registry.npmjs.org/express-route-lens/-/express-route-lens-1.0.4.tgz","fileCount":8,"integrity":"sha512-Mrx5EGGf7krKtNw/Qbo+gBIW83yGjPAmjcH54xPOltbZtHOGZHql+0JgxT2RSTyVFTRQaOrkZFmOzIPUYxSm1w==","signatures":[{"sig":"MEUCIQDx8TP1Z8tErEbIUyPxaiivJGYOgZ86Q8imXjKIgvLhhQIgf4uq2NRxAAFhq2dOw7qumvl85bgBXqOHwCq/Y5bzgqI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQClnYdleG4bugHr2+RgW8/ANwJdL+IvB/zxlcUXQOI7cAIhAImk/2GlM/rIPAjszceNIQZusN3KGCABhOaZcGRaMMTM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/express-route-lens@1.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18077},"main":"src/index.js","engines":{"node":">=14.0.0"},"gitHead":"28a4ff4dd1be1d8170ff0a79863cd229d5064a7a","scripts":{"test":"node test/test.js","start":"node bin/cli.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:14a617cc-76de-4f10-87f0-6469aa60d6c9"}},"overrides":{"qs":"6.16.0","body-parser":"1.20.6"},"repository":{"url":"git+https://github.com/Tanvir-Alam625/express-route-lens.git","type":"git"},"_npmVersion":"11.5.1","description":"A developer tool to inspect and print Express.js routes with recursive discovery, middleware counting, and JSON export","directories":{},"_nodeVersion":"22.23.2","dependencies":{"chalk":"^4.1.2","cli-table3":"^0.6.3"},"_hasShrinkwrap":false,"devDependencies":{"express":"^4.22.2"},"peerDependencies":{"express":"^4.18.2 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/express-route-lens_1.0.4_1789071742225_0.8143246384041467","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"express-route-lens","version":"1.0.5","keywords":["express","routes","debug","cli","developer-tools"],"author":{"name":"Tanvir-Alam625"},"license":"MIT","_id":"express-route-lens@1.0.5","maintainers":[{"name":"devtanvir01","email":"devtanvir01@gmail.com"}],"homepage":"https://github.com/Tanvir-Alam625/express-route-lens#readme","bugs":{"url":"https://github.com/Tanvir-Alam625/express-route-lens/issues"},"bin":{"express-route-lens":"bin/cli.js"},"dist":{"shasum":"6dd176528bff508756cb4a9c46731c1c2005646b","tarball":"https://registry.npmjs.org/express-route-lens/-/express-route-lens-1.0.5.tgz","fileCount":8,"integrity":"sha512-PgzEuHUxf28BLudbnk5g2n/SD9S2i/cQm9rlTdfGEUH1m4RcY2xWRy/miH0RID3DT1uI5iDDtfKi6PoZUo+g1g==","signatures":[{"sig":"MEUCIQDyGDszHFTALh1Px2di1nxqFhYGMOmpRHkYzlaRD95XVAIgBHoS5v1Zv+mXeJskpYbfJKNJ4wyoW+JXiLeQtDYNA8k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCID21n0d0zC1HckQlB6GGMrRvzi7opiHKDjK9hMv1aTUEAiEA08Vh5PEIU3R7XN0RIezIt6uQ6YWdGgLs9REyoJ50GAM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/express-route-lens@1.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21126},"main":"src/index.js","engines":{"node":">=14.0.0"},"gitHead":"4a4961bb29cbd19fd093c8c0b81758030e226230","scripts":{"test":"node test/test.js","start":"node bin/cli.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:14a617cc-76de-4f10-87f0-6469aa60d6c9"}},"overrides":{"qs":"6.16.0","body-parser":"1.20.6"},"repository":{"url":"git+https://github.com/Tanvir-Alam625/express-route-lens.git","type":"git"},"_npmVersion":"11.5.1","description":"A developer tool to inspect and print Express.js routes with recursive discovery, middleware counting, and JSON export","directories":{},"_nodeVersion":"22.23.2","dependencies":{"chalk":"^4.1.2","commander":"^12.1.0","cli-table3":"^0.6.3"},"_hasShrinkwrap":false,"devDependencies":{"express":"^4.22.2"},"peerDependencies":{"express":"^4.18.2 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/express-route-lens_1.0.5_1789072815029_0.22211140407286956","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"express-route-lens","version":"1.0.6","keywords":["express","routes","debug","cli","developer-tools"],"author":{"name":"Tanvir-Alam625"},"license":"MIT","_id":"express-route-lens@1.0.6","maintainers":[{"name":"devtanvir01","email":"devtanvir01@gmail.com"}],"homepage":"https://github.com/Tanvir-Alam625/express-route-lens#readme","bugs":{"url":"https://github.com/Tanvir-Alam625/express-route-lens/issues"},"bin":{"express-route-lens":"bin/cli.js"},"dist":{"shasum":"08f3dd326490c53587f9c3d3460102bfc8e5be18","tarball":"https://registry.npmjs.org/express-route-lens/-/express-route-lens-1.0.6.tgz","fileCount":8,"integrity":"sha512-qwZML+mCb4mwFnHAn0CUTVb5kxehxHjiMKh7E/JKJi0BvdB/4NZyz0wGdqetLyXprTspbbrL2mF8/uJscR1tXg==","signatures":[{"sig":"MEUCIQCLO4xSkCnEnk3caBTKYnUiVTQW1LRnFmLHXlX9wQHzYgIgMEOAdMXcM5OxeLLgwQkgceCpBOGhDY7SWnmGZ3TObwc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDE48iaUl3VZTnA5/LKsDYWF/qPCbgGdJBjSZhThGAYrwIhAKvs0edxEl6s6rVP/PDz5aUjoBXbInK2Oq+45cJxsh9b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/express-route-lens@1.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19335},"main":"src/index.js","engines":{"node":">=14.0.0"},"gitHead":"0398979dc1d8bd731552719716bd4f00e63e73cb","scripts":{"test":"node test/test.js","start":"node bin/cli.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:14a617cc-76de-4f10-87f0-6469aa60d6c9"}},"overrides":{"qs":"6.16.0","body-parser":"1.20.6"},"repository":{"url":"git+https://github.com/Tanvir-Alam625/express-route-lens.git","type":"git"},"_npmVersion":"11.5.1","description":"Inspect Express routes, middleware, nested mounts, duplicates, and sensitive endpoints","directories":{},"_nodeVersion":"22.23.2","dependencies":{"chalk":"^4.1.2","commander":"^12.1.0","cli-table3":"^0.6.3"},"_hasShrinkwrap":false,"devDependencies":{"express":"^4.22.2"},"peerDependencies":{"express":"^4.18.2 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/express-route-lens_1.0.6_1789143915373_0.3497316240172137","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"express-route-lens","version":"1.0.7","keywords":["express","routes","debug","cli","developer-tools"],"author":{"name":"Tanvir-Alam625"},"license":"MIT","_id":"express-route-lens@1.0.7","maintainers":[{"name":"devtanvir01","email":"devtanvir01@gmail.com"}],"homepage":"https://github.com/Tanvir-Alam625/express-route-lens#readme","bugs":{"url":"https://github.com/Tanvir-Alam625/express-route-lens/issues"},"bin":{"express-route-lens":"bin/cli.js"},"dist":{"shasum":"cd171527980d9f5284fbc7ab517b1cf8a19b775e","tarball":"https://registry.npmjs.org/express-route-lens/-/express-route-lens-1.0.7.tgz","fileCount":8,"integrity":"sha512-9Ofe1rmuBKpsUF8qrzit+jeuQY+9Ob1psA9e/ap2nRxswQKQ0nJ3GMF6w6R7bEMyj0nXeGzOiQ/keRdQkquJrg==","signatures":[{"sig":"MEUCIFnLq3OkWVKWTr8pSbli3OKzKSThL17sB4koyldKtbLUAiEA7vHkATeSrCDrj2hN5LJqr/CtHmp0uBZH4Jq+Yadwfx0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCt0dvRTEplOAl2yZY2y/9LrLZ51LkpLXyYaBg8JfpGfAIhALMm1NgMQqRamKE3UrL4U83wDeRI0oj5QS5DdsnZm83f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/express-route-lens@1.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21671},"main":"src/index.js","engines":{"node":">=14.0.0"},"gitHead":"1bcbcdca0ae0ef29b1fad2e13338c2204971d638","scripts":{"test":"node test/test.js","start":"node bin/cli.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:14a617cc-76de-4f10-87f0-6469aa60d6c9"}},"overrides":{"qs":"6.16.0","body-parser":"1.20.6"},"repository":{"url":"git+https://github.com/Tanvir-Alam625/express-route-lens.git","type":"git"},"_npmVersion":"11.5.1","description":"Inspect Express routes, middleware, nested mounts, duplicates, and sensitive endpoints","directories":{},"_nodeVersion":"22.23.2","dependencies":{"chalk":"^4.1.2","commander":"^12.1.0","cli-table3":"^0.6.3"},"_hasShrinkwrap":false,"devDependencies":{"express":"^4.22.2"},"peerDependencies":{"express":"^4.18.2 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/express-route-lens_1.0.7_1789145771873_0.3515518782378104","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"_id":"express-route-lens@1.0.8","bin":{"express-route-lens":"bin/cli.js"},"bugs":{"url":"https://github.com/Tanvir-Alam625/express-route-lens/issues"},"dist":{"shasum":"a8aadd323e6602a5dcb2dab6bfe65dc668550acc","tarball":"https://registry.npmjs.org/express-route-lens/-/express-route-lens-1.0.8.tgz","fileCount":9,"integrity":"sha512-wIx4GDxxlE5MF6KwLdUJKd+7Jxi4NaOzhUwRdt4p3hega/ohlzjzxiTi9v6qtw5pMrRbZMdPAaoWUu+9wwwQUQ==","signatures":[{"sig":"MEYCIQCZ6jJ1mJI3emJO5SIEdSEczmeRpBPTh2su+MbmshvGCQIhAI3t6XunsjXHzOO8P5qSoQTYiwnCcfbilKk2N3S1VBPR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDflYfDXRjLRitMx1xz9Hhm8nshI/+98ATykk57lsPzBAIgf67IRBGsbJd1Bu413zMAScBtyiBshM8rZNuhFKX+9Rg="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/express-route-lens@1.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1610503},"main":"src/index.js","name":"express-route-lens","author":{"name":"Tanvir-Alam625"},"engines":{"node":">=14.0.0"},"gitHead":"a8aac90e3996221b6cd7a9f22cf8e4fe656a0b67","license":"MIT","scripts":{"test":"node test/test.js","start":"node bin/cli.js"},"version":"1.0.8","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:14a617cc-76de-4f10-87f0-6469aa60d6c9"}},"homepage":"https://github.com/Tanvir-Alam625/express-route-lens#readme","keywords":["express","routes","debug","cli","developer-tools"],"overrides":{"qs":"6.16.0","body-parser":"1.20.6"},"repository":{"url":"git+https://github.com/Tanvir-Alam625/express-route-lens.git","type":"git"},"_npmVersion":"11.5.1","description":"Inspect Express routes, middleware, nested mounts, duplicates, and sensitive endpoints","directories":{},"maintainers":[{"name":"devtanvir01","email":"devtanvir01@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"chalk":"^4.1.2","commander":"^12.1.0","cli-table3":"^0.6.3"},"_hasShrinkwrap":false,"devDependencies":{"express":"^4.22.2"},"peerDependencies":{"express":"^4.18.2 || ^5.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/express-route-lens_1.0.8_1789147892428_0.9992982891053475"}}},"time":{"created":"2026-09-10T19:32:30.217Z","modified":"2026-09-11T17:31:32.909Z","1.0.0":"2026-09-10T19:32:30.679Z","1.0.2":"2026-09-10T19:51:34.797Z","1.0.3":"2026-09-10T20:05:36.453Z","1.0.4":"2026-09-10T20:22:22.331Z","1.0.5":"2026-09-10T20:40:15.109Z","1.0.6":"2026-09-11T16:25:15.480Z","1.0.7":"2026-09-11T16:56:11.956Z","1.0.8":"2026-09-11T17:31:32.548Z"},"bugs":{"url":"https://github.com/Tanvir-Alam625/express-route-lens/issues"},"author":{"name":"Tanvir-Alam625"},"license":"MIT","homepage":"https://github.com/Tanvir-Alam625/express-route-lens#readme","keywords":["express","routes","debug","cli","developer-tools"],"repository":{"url":"git+https://github.com/Tanvir-Alam625/express-route-lens.git","type":"git"},"description":"Inspect Express routes, middleware, nested mounts, duplicates, and sensitive endpoints","maintainers":[{"name":"devtanvir01","email":"devtanvir01@gmail.com"}],"readme":"# express-route-lens\n\n<img src=\"./thumbnail.png\" alt=\"express-route-lens overview\" width=\"100%\" style=\"border-radius: 12px;\">\n\n`express-route-lens` inspects an Express application after its routes are registered. It lists methods, complete paths, route handlers, duplicate registrations, and endpoints that may need an authentication review.\n\n## Install\n\n```bash\nnpm install --save-dev express-route-lens\n```\n\nNode.js 14+ is supported. Express is a peer dependency (Express 4 or 5).\n\n## Use it in an application\n\n```js\nconst express = require('express');\nconst { ExpressRoutePrinter, mount } = require('express-route-lens');\n\nconst app = express();\nconst api = express.Router();\n\nfunction authenticateJWT(req, res, next) { next(); }\napi.get('/users', authenticateJWT, (req, res) => res.json([]));\n\n// Use mount for routers. It preserves the mount path for Express 5.\nmount(app, '/api', api);\n\nconst lens = new ExpressRoutePrinter(app);\nlens.printRoutes();\nconsole.log(lens.toJSON());\n```\n\nThe record for the example includes the full route and the handler names:\n\n```json\n{\n  \"method\": \"GET\",\n  \"path\": \"/api/users\",\n  \"middlewareCount\": 1,\n  \"middleware\": [\"authenticateJWT\"],\n  \"handlers\": [\"getUsers\"]\n}\n```\n\n## Express 5: use `mount()` for nested paths\n\nExpress 5 does not expose a router’s registered mount path through its runtime `Layer` objects. No route inspector can safely recover an unknown mount path after the fact. `mount(target, path, ...handlers)` calls `target.use()` and stores the path as route-inspection metadata, so nested routes remain exact.\n\nReplace router mounts such as:\n\n```js\napp.use('/api/auth', authRoutes);\n```\n\nwith:\n\n```js\nimport { mount } from 'express-route-lens';\nmount(app, '/api/auth', authRoutes);\n```\n\nUse it at every nested router boundary:\n\n```js\nmount(app, '/api', apiRouter);\nmount(apiRouter, '/v1', v1Router);\n```\n\nOn an untracked Express 5 mount, discovery keeps the child route rather than inventing a wrong path and adds an `UNRESOLVED_MOUNT_PATH` diagnostic. Retrieve diagnostics with `lens.getDiagnostics()` or use the CLI’s `--diagnostics` flag.\n\n## CLI\n\nThe inspected module must export the Express app using CommonJS (`module.exports = app`) or expose `app`/`default` from a CommonJS-loadable module.\n\n```bash\n# Route table\nnpx express-route-lens --file ./src/app.js\n\n# Include actual middleware and endpoint handler names separately\nnpx express-route-lens --file ./src/app.js --middleware\n\n# Search paths, methods, or handler names\nnpx express-route-lens --file ./src/app.js --search expense\nnpx express-route-lens --file ./src/app.js --method GET\n\n# Machine-readable output, including diagnostics\nnpx express-route-lens --file ./src/app.js --json\n\n# Review duplicate registrations or sensitive endpoints\nnpx express-route-lens --file ./src/app.js --shadows\nnpx express-route-lens --file ./src/app.js --audit\n\n# Save the selected output\nnpx express-route-lens --file ./src/app.js --json --output routes.json\n```\n\nThe CLI uses `require()` to load the app module. For a native ES module, create a small CommonJS inspection entry point or use the library API inside your application after registration.\n\n## API\n\n```js\nconst lens = new ExpressRoutePrinter(app, {\n  sensitivePaths: ['/profile', '/billing', '/internal']\n});\n\nlens.printRoutes();\nlens.toJSON();           // serializable middleware and handler records\nlens.getRoutes();        // route records with internal layer reference\nlens.getDiagnostics();   // Express 5 mount-path limitations\nlens.findShadows();      // duplicate method/path registrations\nlens.getSecurityAudit(); // sensitive routes without an auth-like route handler\n```\n\nConvenience exports are also available: `printRoutes(app)`, `findShadows(app)`, and `getSecurityAudit(app)`.\n\n## Audit behavior\n\nThe audit is a review signal, not a security guarantee. It looks at middleware names for authentication-related terms such as `auth`, `jwt`, `session`, `guard`, and `protect`, including middleware added by `router.use()`. It deliberately does not flag public login and registration endpoints by default. Configure `sensitivePaths` for your application’s conventions and protect routes with tests.\n\n## Release notes: 1.0.8\n\n- Added Express 5-safe `mount()` metadata tracking for exact nested paths.\n- Added route handler names to API and JSON output.\n- Separated endpoint handlers from middleware and included applicable `router.use()` middleware.\n- Added searchable CLI output with `--search` and `--method`.\n- Added discovery diagnostics instead of silently reporting a partial route as complete.\n- Improved duplicate reporting and made the security audit less noisy.\n","readmeFilename":"README.md"}