{"_id":"@poppinss/matchit","_rev":"9-4b9d20cf92023ab8d0388f29896050e0","name":"@poppinss/matchit","dist-tags":{"latest":"3.2.0"},"versions":{"2.0.0":{"name":"@poppinss/matchit","version":"2.0.0","keywords":["route","regexp","routing","pattern","match","parse","url"],"author":{"name":"virk,poppinss"},"license":"MIT","_id":"@poppinss/matchit@2.0.0","maintainers":[{"name":"virk","email":"virk@adonisjs.com"}],"homepage":"https://github.com/poppinss/matchit#readme","bugs":{"url":"https://github.com/poppinss/matchit/issues"},"dist":{"shasum":"ef194e40c8b9da7309a6443c4261c988573504b9","tarball":"https://registry.npmjs.org/@poppinss/matchit/-/matchit-2.0.0.tgz","fileCount":5,"integrity":"sha512-EuADVhC5k7IGaQeuLVOesD3/NWTMcJAO/bEtxHLuPtH1mVHUErV+5sr1RWeULgpWgJRMEDlQG15bvR4httGrzA==","signatures":[{"sig":"MEUCIQDjAyIVEjQD+V6QpXj243/lwSA7LLYF5HL8t8kYcvjjIQIgZZDKFh2G6aJ09swKCvXOun8FZtkGaEFK1jUmcmdXZpA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13237,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgIRpuCRA9TVsSAnZWagAAE40P/RN3L/kMDlAED3z97FCG\nGIgd26CwpNJW++IoH94IbXPEzPih4UBE6bvtgXjQMR8PBGHoij1Ik0PoJeDh\ng+skSaZiON+DUcG5BDSQJ8js7D/DWOfOhl0oFN8Yh+ce9+dApBDs9guMNbPD\nkg3fye/kqGfL31m67XOyWnPTXTx7fzHu+v8YqpsWMffn/05X4TZ+hDAzTKtG\nyEIQ1krA6ZHRJpE/wX0AOJ7lYsdWKobY8BCabhHVwrSWDh2w40wDqzmrjcaX\nIXn7aZpAXmsYEdj6v7khyjKa8GGnTm0xum4PkVKWVvN9sCXrw3Vi4dWLoZ4B\n1trn+7tVrzO+Jv5I9RQEUraUkzQoYJeeeyeY0fo8+AyHXvzBM5JT0Eo/aMGr\nf8tiUyw9rMxOT8Yvqow2p44YcScwI8viMDkVddNWv8nRXUiXu1pfToeu88cI\nqVpewyaD3IlXFbKnCk73icCdp3vl94TW883/sts7lQFAIHUFGnjsb6EHK3Ez\n+Ov8druxNpSPDnhzmKkLiTwINeDN2sLkOAR1pP0oy8BpfVXqpYkmVJN6Dq43\nOSlwAxxOjQ+//rFA8ID6ttLChXhtdzExYYuc/fY/egHb9i5EeNpCFUk7MP7G\nGhGGOstkXw9FBzT4E5kINOOQiztpRYS+PwTql6tHxxH2DTdUEbzSYbAhcfT7\nU9Ix\r\n=BJlO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/matchit.js","module":"lib/matchit.mjs","gitHead":"cd622eeec705bc0849ad8e30deaccf14ae3883ec","scripts":{"test":"tape test/*.js | tap-spec","bench":"node bench","build":"bundt","pretest":"npm run build","prebench":"npm run build"},"_npmUser":{"name":"virk","email":"virk@adonisjs.com"},"repository":{"url":"git+https://github.com/poppinss/matchit.git","type":"git"},"_npmVersion":"6.14.8","description":"Quickly parse & match URLs","directories":{"lib":"lib","test":"test"},"_nodeVersion":"14.12.0","dependencies":{"@arr/every":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tape":"^5.1.1","bundt":"^1.1.2","tap-spec":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/matchit_2.0.0_1612782189516_0.4465814755974833","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"@poppinss/matchit","version":"3.0.0","keywords":["route","regexp","routing","pattern","match","parse","url"],"author":{"name":"virk,poppinss"},"license":"MIT","_id":"@poppinss/matchit@3.0.0","maintainers":[{"name":"virk","email":"virk@adonisjs.com"}],"homepage":"https://github.com/poppinss/matchit#readme","bugs":{"url":"https://github.com/poppinss/matchit/issues"},"dist":{"shasum":"2812b5f35c9a8161bf1a91cb63f0305d1a2eaefa","tarball":"https://registry.npmjs.org/@poppinss/matchit/-/matchit-3.0.0.tgz","fileCount":4,"integrity":"sha512-fUETFTMcdybyP567dOtA/mzjX+n4Bnq3raCtjgzpKqwaggaL165GeF/2eSnSFAG7o4sA+n2ufdwbxF4ODThGvQ==","signatures":[{"sig":"MEQCIBdkdl2dUiUsA96rqYjxr0Xb1u37UX9uTR3HO1gq7X50AiBxwvetau1G1K18gbhxqKNyKBoMHGXzE6nSSVnCM1bwuw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10210,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJLUNCRA9TVsSAnZWagAAWqgP/RagXD6I+K0DOuteodp+\netTCgeSMKoGz2+mvmXvIPQwQEEcuaEeUCr/RFb9PIAezO7I2kNpp9VXZg4eB\n4QlpjmuQ7IuX5U+zw1sfleIC9rYlfi56TFitl057Oz9c8NLgO8tnG97LemOa\nr1QD+ZseLMXyb/bLV/p5J00omuiA3X+5MU6XAN/rBHcNp3w+wb8kjN7q7b/F\nz4UFQJFY3LNwBjs7IjULaSVWWgGKbnFwH9FBkvPmfm7PLSb/FoTYZz1cWMgw\nAg8AVA7rwjq7zp/8c2iZEvc4BkgXtE8HUj3cDJSnyZuJKNbMbt+Bg+6+HlhK\nJdL5noSiSJgxbzj1o+KcVG51WC9cuGg9h8XCsZF4Ki3EnNU1InfcejDdIesO\noNu+dQ0Lv3g0l/ydKxpfIKZ0H4LDNu/+T9D+p2Ic9Ru3Ds/nuhk14lYxEATt\nWA3Osof1IbmEZvfhWHbBNFZrmC01ZDIJlhwpq6WVxOMDEAblYlT6IWgpMhTN\njbWWjlDfE9xnLwvJ/65ajnkHwwIbfRfIoTCcteky9oF7208WKb4xIJnzVGRL\nQ96AvjjU4kI4wgytnQQemtnOK1/xbI1CRS/TX5jT9639X3z9aHkDV3x+stnQ\nxwPgkGb1PLU2hM82e5SXuk9VejDTpqPpkSrCjW6HMHLxoGf/En8z22fNpWcJ\n6F3c\r\n=iFUT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/matchit.js","gitHead":"4078279b993b4a5832146c96c1cc4a285781d446","scripts":{"test":"tape test/*.js | tap-spec","bench":"node bench","build":"bundt","pretest":"npm run build","prebench":"npm run build"},"_npmUser":{"name":"virk","email":"virk@adonisjs.com"},"repository":{"url":"git+https://github.com/poppinss/matchit.git","type":"git"},"_npmVersion":"6.14.8","description":"Quickly parse & match URLs","directories":{"lib":"lib","test":"test"},"_nodeVersion":"14.12.0","dependencies":{"@arr/every":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tape":"^5.1.1","bundt":"^1.1.2","tap-spec":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/matchit_3.0.0_1613018381185_0.001420742844991274","host":"s3://npm-registry-packages"}},"3.1.0":{"name":"@poppinss/matchit","version":"3.1.0","keywords":["route","regexp","routing","pattern","match","parse","url"],"author":{"name":"virk,poppinss"},"license":"MIT","_id":"@poppinss/matchit@3.1.0","maintainers":[{"name":"virk","email":"virk@adonisjs.com"}],"homepage":"https://github.com/poppinss/matchit#readme","bugs":{"url":"https://github.com/poppinss/matchit/issues"},"dist":{"shasum":"b94b0b900676716c7049342becdd3b3df9b93bf2","tarball":"https://registry.npmjs.org/@poppinss/matchit/-/matchit-3.1.0.tgz","fileCount":4,"integrity":"sha512-+RG0RG4kJqUzWh07bNboJ9rv9tQ3EiUpU2+JMx6dl42zRsCvGEJa+Z15rD4iNOhHaedPJKPmSEonFhL2dBtJ9g==","signatures":[{"sig":"MEYCIQCQ1OrcZ/06A/NZMSE80vevlVgN9u8aKpLXtkC3DL7rNwIhAOBlM0viHPDNiRz5pqGWqwgDm6XsMSqtepB18aU0m9fi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10139,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJMX0CRA9TVsSAnZWagAA3xYP/1KUmApqR0w+JS9yDOnX\ndQh+f3b13oe7qbn/1YvPyQ2nNqzIEPmaW8yt+CuEddp0MDmnWtT/jq4J/gcr\nZE9igljXwThoRlUlYyD39N26CXjycloF+2Zb1n+gAJKNNoQyXnd2bcOj6VqK\nrVZGtd2pL00LxcvcY54+j2kYQuAYxVuMST2Ez9OA/JyFEFvZtiMGqs/+0Krt\nv2eEfiYFeR/Xoi5Gl+VPc9uRPa+APjGP3Cs4O7SszFUZv910puHUZUItmASF\nbEmSEipwmMGFDirB/S2qZluoHHrWFzpnOpTbyGu16TqW50NEX5mS9VhXI+Xt\nh4yg7Gw//ZuRhTnHcy9FwSUJ8M2yTrzA4oPAwczGJ0kq1yQ8jcjxN0Tndncb\nBPuxvPHRcKYH/4MqPKux9M3I76cjyYrFs3du347T6RSKK3ugB+plKreUI3Ej\n7XfZf6BQLWVPuREks3Hu6C9GjmXGI2IQDSzAe8ZOvNLn6qFVW5LQqGihexj0\nTMD12QBECG8mjaN40nlfEjVLyLVB0QEbf4TJ9mFDyU5NQoe4gqmXJ1/8x6Ah\ntRLowxNbsC+svfyvwH5vptFXj5KyRmzxsxktGK3LN0P6LwYoY3HDOknQf+/j\noxqZSxTSQ0ZyKiSXqGCNwJhD1nY+UAzeViQdJMRcztGAywHjiAS0iwVGRGfS\nWshQ\r\n=BW5R\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/matchit.js","gitHead":"1379ee4f16a34c8dd0a88d2b16513d3d4359e144","scripts":{"test":"tape test/*.js | tap-spec","bench":"node bench","build":"bundt","pretest":"npm run build","prebench":"npm run build"},"_npmUser":{"name":"virk","email":"virk@adonisjs.com"},"repository":{"url":"git+https://github.com/poppinss/matchit.git","type":"git"},"_npmVersion":"6.14.8","description":"Quickly parse & match URLs","directories":{"lib":"lib","test":"test"},"_nodeVersion":"14.12.0","dependencies":{"@arr/every":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tape":"^5.1.1","bundt":"^1.1.2","tap-spec":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/matchit_3.1.0_1613022707870_0.9546440799435418","host":"s3://npm-registry-packages"}},"3.1.1":{"name":"@poppinss/matchit","version":"3.1.1","keywords":["route","regexp","routing","pattern","match","parse","url"],"author":{"name":"virk,poppinss"},"license":"MIT","_id":"@poppinss/matchit@3.1.1","maintainers":[{"name":"virk","email":"virk@adonisjs.com"}],"homepage":"https://github.com/poppinss/matchit#readme","bugs":{"url":"https://github.com/poppinss/matchit/issues"},"dist":{"shasum":"50070a1b201b9d5595b2137adf7fabe76ac9f2e2","tarball":"https://registry.npmjs.org/@poppinss/matchit/-/matchit-3.1.1.tgz","fileCount":4,"integrity":"sha512-1dAbyCbC7sMXSiwzpPk3ds72oN7DGvas8KzEYUTpyqvEHJ4RbBhMdzGloYiNPN/CMZwLKFBxRh0phqTYrkVapg==","signatures":[{"sig":"MEQCIG+Pl0Hn+H3hK51xEv/ZdCCvdd6xgsX6dS3qzamMj+qkAiAm8JFOo/NKtVG0so0Zi/L+89gdYq89jZ3lLBzhfYEq5w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10139,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWCtfCRA9TVsSAnZWagAAN+QP/10qsZkbq4fmL6lYCTL/\nhZVwgVZsBlRsi4s2BGBNcalPZ3QAxn4WIrVJUy+vjjvC6qyAqg3/Xc+r8ziq\nSnVPBGjMTKQWRBX0jbbmKHjDVVGlJLYLjr/zhsJEIH/FyO21PGFgGVzd/GuK\nHNLd0z5JHp+XLGfnqO0XpOykfm+x2x0O74akamcwAdU89XXoDLtznsq7OWPi\ngad6DPRdbMMbGEqSxjs7PsR587zUAYW0cd5b5ESI6k51yB2U6dJihgLEpXiD\nLq0Ojhpm7csDOrV9aQZiYDplCHyHB7T+PADCXyQmMJjp2b4nI2090uz74BLX\nE6OBBbYzbIr/0pwCz2osu3VqMCOaPQGzNZaxm+A2TmV7RvGp+N7vS/2DjNjM\nju5PGaiRDZjMJ1YUH9YfD3BwaI01FvWdGTHv2EZ93tP3M37hCcIb4EclLBAm\nQ76EQEK6LEHcosdf3CGvhaFAB0RgQM5pBdtpkNxTu3/RBk6xI4mCcyRh8CD+\nFX/im+q2PDYIFDd0OOxGAbDBwQGBY+aSlk3TIGktqiXp14u1C0LzLVS62XHK\nMoJYdamTGnBRtAWTJENgkYFKAlcbsGqRy3ygXhWj8BvJD4mZUR+n4GJUEvMG\n2Ss0guO1Y34bCS1b0Yss8tsOuM1aAnuQRepoFRqKyNTaOCsWiYasonCXuSHz\nWdxa\r\n=/fvs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/matchit.js","gitHead":"c913d8dadefd1c4857d150b5145f926f1158905e","scripts":{"test":"tape test/*.js | tap-spec","bench":"node bench","build":"bundt","pretest":"npm run build","prebench":"npm run build"},"_npmUser":{"name":"virk","email":"virk@adonisjs.com"},"repository":{"url":"git+https://github.com/poppinss/matchit.git","type":"git"},"_npmVersion":"6.14.8","description":"Quickly parse & match URLs","directories":{"lib":"lib","test":"test"},"_nodeVersion":"14.12.0","dependencies":{"@arr/every":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tape":"^5.2.2","bundt":"^1.1.2","tap-spec":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/matchit_3.1.1_1616391006401_0.4371485325567197","host":"s3://npm-registry-packages"}},"3.1.2":{"name":"@poppinss/matchit","version":"3.1.2","keywords":["route","regexp","routing","pattern","match","parse","url"],"author":{"name":"virk,poppinss"},"license":"MIT","_id":"@poppinss/matchit@3.1.2","maintainers":[{"name":"virk","email":"virk@adonisjs.com"}],"homepage":"https://github.com/poppinss/matchit#readme","bugs":{"url":"https://github.com/poppinss/matchit/issues"},"dist":{"shasum":"674a477f6cc58f760b16b52d20673f886615cc43","tarball":"https://registry.npmjs.org/@poppinss/matchit/-/matchit-3.1.2.tgz","fileCount":4,"integrity":"sha512-Bx+jY+vmdQFmwYiHliiPjr+oVBaGnh79B1h1FSAm3jME1QylLFt8PPYC0ymO8Q5PzJj/KuE3jeTnZhRHOWqq8g==","signatures":[{"sig":"MEUCIGDtxKbXNQq4JU3VJ65JQIJjdCA/s9UrWH65iy/93SwQAiEAhYCQJZbP/02oK79sbVSKhWGCtexc6LXanZg98sSzRZg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10308,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtvPACRA9TVsSAnZWagAAEAQP+QAuyWQlRpWkadLrp4ei\nUmVMOQBLUj1lPILXE8DfVL8n6amgsT3AW9y3jTNNH3uJ/g2pWJ6enL2gIXPi\nkfg0JRXobNEn9uKenu7NBFLV/ke/hZGTdgpzmwiMbl0z+1UGZR2P/6zrzBAb\noffoF9HC++Nm16yqC4AWEY386ehRxWcOF5Wyo1vWIdlqEURXWMABTNQQD5Zt\nDhfAzU1Nn1hkSPpdYsWATvTLch2dA5AjwfSM70yms6aq8ndsC6/oEJ6AZ6j6\nR7D+itwFI+O0H3ODCqb+RHklCZTeUtoB8xgw3p58KL/RoMHSN4RMAaiEX9zM\nurDSONwalG4IEN694hFN8YzxmRuX+ql2FaD3bIQoBBaJPNQUad19YixEIxQA\nm6imcOXjIjAyLxWYgkcazcXhnsjwsEQGN+lpfEmjyZRUt6+dFgAyAmvVj1od\nxNZo4mhqlVcM0NkRc6INnYKyZT5gUUT6NIbDIMTjBml7rYn8z+Q2NJwONDEX\nByOOYBzOLIE6sfl/zYt9Yomc4NLKGXo9c+yWaA6wgXEnaO+2fvF8ajxYyjA/\noAq4Lxeropw2AwgQDgovup6coP9MAXqw/JZiG1ah6n7iVO4tc9ka5mKVHLEO\npRReONt550Zotzy7m83OZapQglXl89Lxd+ZeSYbF4M5chsl/A/DLaijy6P4v\nUeUt\r\n=AKRU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/matchit.js","gitHead":"4cf28c8f0cf8d407d5fa4d2983129bf0d3a38ee5","scripts":{"test":"tape test/*.js | tap-spec","bench":"node bench","build":"bundt","pretest":"npm run build","prebench":"npm run build"},"_npmUser":{"name":"virk","email":"virk@adonisjs.com"},"repository":{"url":"git+https://github.com/poppinss/matchit.git","type":"git"},"_npmVersion":"7.13.0","description":"Quickly parse & match URLs","directories":{"lib":"lib","test":"test"},"_nodeVersion":"16.2.0","dependencies":{"@arr/every":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tape":"^5.2.2","bundt":"^1.1.2","tap-spec":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/matchit_3.1.2_1622602687775_0.7692354709511675","host":"s3://npm-registry-packages"}},"3.2.0":{"name":"@poppinss/matchit","version":"3.2.0","description":"Quickly parse & match URLs","main":"lib/matchit.js","license":"MIT","scripts":{"build":"bundt","bench":"node bench","pretest":"npm run build","prebench":"npm run build","test":"tape test/*.js | tap-spec"},"keywords":["route","regexp","routing","pattern","match","parse","url"],"dependencies":{"@arr/every":"^1.0.0"},"devDependencies":{"bundt":"^1.1.2","tap-spec":"^5.0.0","tape":"^5.2.2"},"directories":{"lib":"lib","test":"test"},"repository":{"type":"git","url":"git+https://github.com/poppinss/matchit.git"},"author":{"name":"virk,poppinss"},"bugs":{"url":"https://github.com/poppinss/matchit/issues"},"homepage":"https://github.com/poppinss/matchit#readme","_id":"@poppinss/matchit@3.2.0","gitHead":"f427223064290315109744f3663ddc7e1a5270e3","_nodeVersion":"24.0.2","_npmVersion":"11.3.0","dist":{"integrity":"sha512-9SoMICN+LMO7ZtMj2ja8N7RHlC4mmuv5WwIBXWjabMd2SyXE1dIydh29exlgm+dGMP84PjwvfJH1TmWL4qz1og==","shasum":"f301804d7762f83baa6bc44e0a8c661ebf8d4f82","tarball":"https://registry.npmjs.org/@poppinss/matchit/-/matchit-3.2.0.tgz","fileCount":4,"unpackedSize":10585,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDgSPdIzE9gkZUmAyxdoZZVFeEjr8W6wkX6sknl4Im6XQIgQ7ED8iEK75AfXADj6uwGypDHR2RWoVB4k5i9pa6RFJg="}]},"_npmUser":{"name":"virk","email":"virk@adonisjs.com"},"maintainers":[{"name":"virk","email":"virk@adonisjs.com"},{"name":"romainlanz","email":"romain.lanz+npm@pm.me"},{"name":"julien-r44","email":"julien@ripouteau.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/matchit_3.2.0_1753868088203_0.008481081190002682"},"_hasShrinkwrap":false}},"time":{"created":"2021-02-08T11:03:09.350Z","modified":"2025-07-30T09:34:48.671Z","2.0.0":"2021-02-08T11:03:09.623Z","3.0.0":"2021-02-11T04:39:41.329Z","3.1.0":"2021-02-11T05:51:48.015Z","3.1.1":"2021-03-22T05:30:06.884Z","3.1.2":"2021-06-02T02:58:07.921Z","3.2.0":"2025-07-30T09:34:48.424Z"},"bugs":{"url":"https://github.com/poppinss/matchit/issues"},"author":{"name":"virk,poppinss"},"license":"MIT","homepage":"https://github.com/poppinss/matchit#readme","keywords":["route","regexp","routing","pattern","match","parse","url"],"repository":{"type":"git","url":"git+https://github.com/poppinss/matchit.git"},"description":"Quickly parse & match URLs","maintainers":[{"name":"virk","email":"virk@adonisjs.com"},{"name":"romainlanz","email":"romain.lanz+npm@pm.me"},{"name":"julien-r44","email":"julien@ripouteau.com"}],"readme":"# MatchIt\n\n> Quickly parse & match URLs. Forked from `lukeed/matchit`\n\n\n[![circleci-image]][circleci-url] [![npm-image]][npm-url] [![license-image]][license-url] [![synk-image]][synk-url]\n\n## Install\n\n```\n$ npm install --save matchit\n```\n\n\n## Usage\n\n```js\nconst { exec, match, parse } = require('matchit');\n\nparse('/foo/:bar/:baz?');\n//=> [\n//=>   { old:'/foo/:bar', type:0, val:'foo' },\n//=>   { old:'/foo/:bar', type:1, val:'bar' },\n//=>   { old:'/foo/:bar', type:3, val:'baz' }\n//=> ]\n\nconst routes = ['/', '/foo', 'bar', '/baz', '/baz/:title','/bat/*'].map(parse);\n\nmatch('/', routes);\n//=> [{ old:'/', type:0, val:'/' }]\n\nmatch('/foo', routes);\n//=> [{ old:'/foo', type:0, val:'foo' }]\n\nmatch('/bar', routes);\n//=> [{ old:'bar', type:0, val:'bar' }]\n\nmatch('/baz', routes);\n//=> [{ old:'/baz', type:0, val:'baz' }]\n\nlet a = match('/baz/hello', routes);\n//=> [{...}, {...}]\nlet b = exec('/baz/hello', a);\n//=> { title:'hello' }\n\nmatch('/bat/quz/qut', routes);\n//=> [\n//=>   { old:'/bat/*', type:0, val:'bat' },\n//=>   { old:'/bat/*', type:2, val:'*' }\n//=> ]\n```\n\n\n## API\n\n### matchit.parse(route)\n\nReturns: `Array`\n\nThe `route` is `split` and parsed into a \"definition\" array of objects. Each object (\"segment\") contains a `val`, `type`, and `old` key:\n\n* `old` &mdash; The [`route`](#route)'s original value\n* `type` &mdash; An numerical representation of the segment type.\n    * `0` - static\n    * `1` - parameter\n    * `2` - any/wildcard\n    * `3` - optional param\n* `val` &mdash; The current segment's value. This is either a static value of the name of a parameter\n\n#### route\n\nType: `String`\n\nA single URL pattern.\n\n> **Note:** Input will be stripped of all leading & trailing `/` characters, so there's no need to normalize your own URLs before passing it to `parse`!\n\n\n### matchit.match(url, routes)\n\nReturns: `Array`\n\nReturns the [`route`](#route)'s encoded definition. See [`matchit.parse`](#matchitparseroute).\n\n#### url\n\nType: `String`\n\nThe true URL you want to be matched.\n\n#### routes\n\nType: `Array`\n\n_All_ \"parsed\" route definitions, via [`matchit.parse`](#matchitparseroute).\n\n> **Important:** Multiple routes will require an Array of `matchit.parse` outputs.\n\n\n### matchit.exec(url, match)\n\nReturns: `Object`\n\nReturns an object an object of `key:val` pairs, as defined by your [`route`](#route) pattern.\n\n#### url\n\nType: `String`\n\nThe URL (`pathname`) to evaluate.\n\n> **Important:** This should be `pathname`s only as any `querystring`s will be included the response.\n\n#### match\n\nType: `Array`\n\nThe route definition to use, via [`matchit.match`](#matchitmatchurl-routes).\n\n\n## Benchmarks\n\n> Running Node v10.13.0\n\n```\n# Parsing\n  matchit               x 1,489,482 ops/sec ±2.89% (97 runs sampled)\n  regexparam            x   406,824 ops/sec ±1.38% (96 runs sampled)\n  path-to-regexp        x    83,439 ops/sec ±0.89% (96 runs sampled)\n  path-to-regexp.parse  x   421,266 ops/sec ±0.13% (97 runs sampled)\n\n# Match (index)\n  matchit                x 132,338,546 ops/sec ±0.14% (96 runs sampled)\n  regexparam             x  49,889,162 ops/sec ±0.21% (95 runs sampled)\n  path-to-regexp.exec    x   7,176,721 ops/sec ±1.23% (94 runs sampled)\n  path-to-regexp.tokens  x     102,021 ops/sec ±0.21% (96 runs sampled)\n\n# Match (param)\n  matchit                x 2,700,618 ops/sec ±0.92% (95 runs sampled)\n  regexparam             x 6,924,653 ops/sec ±0.33% (94 runs sampled)\n  path-to-regexp.exec    x 4,715,483 ops/sec ±0.28% (96 runs sampled)\n  path-to-regexp.tokens  x    98,182 ops/sec ±0.45% (93 runs sampled)\n\n# Match (optional)\n  matchit                x 2,816,313 ops/sec ±0.64% (93 runs sampled)\n  regexparam             x 8,437,064 ops/sec ±0.41% (93 runs sampled)\n  path-to-regexp.exec    x 5,909,510 ops/sec ±0.22% (97 runs sampled)\n  path-to-regexp.tokens  x   101,832 ops/sec ±0.43% (98 runs sampled)\n\n# Match (wildcard)\n  matchit                x 3,409,100 ops/sec ±0.34% (98 runs sampled)\n  regexparam             x 9,740,429 ops/sec ±0.49% (95 runs sampled)\n  path-to-regexp.exec    x 8,740,590 ops/sec ±0.43% (89 runs sampled)\n  path-to-regexp.tokens  x   102,109 ops/sec ±0.35% (96 runs sampled)\n\n# Exec\n  matchit         x 1,558,321 ops/sec ±0.33% (96 runs sampled)\n  regexparam      x 6,966,297 ops/sec ±0.21% (97 runs sampled)\n  path-to-regexp  x   102,250 ops/sec ±0.45% (95 runs sampled)\n```\n\n[circleci-image]: https://img.shields.io/circleci/project/github/poppinss/matchit/master.svg?style=for-the-badge&logo=circleci\n[circleci-url]: https://circleci.com/gh/poppinss/matchit \"circleci\"\n\n[npm-image]: https://img.shields.io/npm/v/@poppinss/matchit.svg?style=for-the-badge&logo=npm\n[npm-url]: https://npmjs.org/package/@poppinss/matchit \"npm\"\n\n[license-image]: https://img.shields.io/npm/l/@poppinss/matchit?color=blueviolet&style=for-the-badge\n[license-url]: license.md \"license\"\n\n[synk-image]: https://img.shields.io/snyk/vulnerabilities/github/poppinss/matchit?label=Synk%20Vulnerabilities&style=for-the-badge\n[synk-url]: https://snyk.io/test/github/poppinss/matchit?targetFile=package.json \"synk\"\n","readmeFilename":"readme.md"}