{"_id":"@remix-run/route-pattern","_rev":"33-45ff0ecf4c5cedf721503c8f4fbac226","name":"@remix-run/route-pattern","dist-tags":{"latest":"1.0.0"},"versions":{"0.4.0":{"name":"@remix-run/route-pattern","version":"0.4.0","keywords":["route","pattern","url","match","matcher"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/route-pattern@0.4.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"chancestrickland","email":"hi@chance.dev"}],"homepage":"https://github.com/remix-run/remix/tree/v3/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"afe32c76be2646766fe777d2da5c6812f16d91c4","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.4.0.tgz","fileCount":22,"integrity":"sha512-yTHkcUFn6I/Nafh5LYh9o8Yxc9aLDKGBdmkUPP0ulSGSf/FedrI9NRs0yGkPIDYosxfL8fMu0ws/X2X2JyOL4Q==","signatures":[{"sig":"MEUCIEhperGKfVkXv1i6BX2g2dlmbmoCFm3kzaJkU3TpHAuJAiEA88OvVa0TzTdJUl0k/xUDuODz3cxbg9Zt8eDFgUluXvE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85208},"main":"./dist/route-pattern.cjs","type":"module","_from":"file:remix-run-route-pattern-0.4.0.tgz","types":"./dist/route-pattern.d.ts","module":"./dist/route-pattern.js","exports":{".":{"types":"./dist/route-pattern.d.ts","import":"./dist/route-pattern.js","default":"./dist/route-pattern.js","require":"./dist/route-pattern.cjs"},"./package.json":"./package.json"},"scripts":{"test":"node --experimental-strip-types --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","build":"pnpm run clean && pnpm run build:types && pnpm run build:esm && pnpm run build:cjs","clean":"rm -rf dist","build:cjs":"esbuild src/route-pattern.ts --bundle --outfile=dist/route-pattern.cjs --format=cjs --platform=node --sourcemap","build:esm":"esbuild src/route-pattern.ts --bundle --outfile=dist/route-pattern.js --format=esm --platform=neutral --sourcemap","build:types":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"mjackson","email":"mjijackson+npm@gmail.com"},"_resolved":"/private/var/folders/n5/1lxhnzk56hg6b7vnl558364m0000gn/T/e3271df6738a2e97756e52959a554586/remix-run-route-pattern-0.4.0.tgz","_integrity":"sha512-yTHkcUFn6I/Nafh5LYh9o8Yxc9aLDKGBdmkUPP0ulSGSf/FedrI9NRs0yGkPIDYosxfL8fMu0ws/X2X2JyOL4Q==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.4.2","description":"Route patterns are strings that describe the structure of URLs you want to match","directories":{},"_nodeVersion":"24.2.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.20.0","@types/node":"^20.14.10"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.4.0_1753386619154_0.3239440288186044","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@remix-run/route-pattern","version":"0.6.0","keywords":["route","pattern","url","match","matcher"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/route-pattern@0.6.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"chancestrickland","email":"hi@chance.dev"}],"homepage":"https://github.com/remix-run/remix/tree/v3/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"5ddcac5cd6f45fd212e3944fff8d9aa032807f08","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.6.0.tgz","fileCount":33,"integrity":"sha512-KyO6MLmN1t3T3YzysmMKtLUdfH3Ru7v+HWr1eMau9Zs3uFhpd94bWIspV8HiMgYkJSkMOL5kbyGdAUemOOjOlw==","signatures":[{"sig":"MEQCIG4f9fsroRMXuT3yY9M5e0i2DZiGF2NN1RZ/j3hbrRUMAiAzYJX0laYUWG4aRI9qF+4zeg0elMKAysH7wPwOqv10Fw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172111},"main":"./dist/index.cjs","type":"module","_from":"file:remix-run-route-pattern-0.6.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"scripts":{"test":"node --experimental-strip-types --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","build":"pnpm run clean && pnpm run build:types && pnpm run build:esm && pnpm run build:cjs","clean":"rm -rf dist","build:cjs":"esbuild src/index.ts --bundle --outfile=dist/index.cjs --format=cjs --platform=node --sourcemap","build:esm":"esbuild src/index.ts --bundle --outfile=dist/index.js --format=esm --platform=neutral --sourcemap","typecheck":"tsc --noEmit","build:types":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"mjackson","email":"mjijackson+npm@gmail.com"},"_resolved":"/tmp/eacdd8b520f16956e2a2d511d194f113/remix-run-route-pattern-0.6.0.tgz","_integrity":"sha512-KyO6MLmN1t3T3YzysmMKtLUdfH3Ru7v+HWr1eMau9Zs3uFhpd94bWIspV8HiMgYkJSkMOL5kbyGdAUemOOjOlw==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.5.1","description":"Route patterns are strings that describe the structure of URLs you want to match","directories":{},"_nodeVersion":"24.7.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.20.0","@types/node":"^20.14.10"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.6.0_1756428382879_0.15186796744448716","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@remix-run/route-pattern","version":"0.7.0","keywords":["route","pattern","url","match","matcher"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/route-pattern@0.7.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"chancestrickland","email":"hi@chance.dev"}],"homepage":"https://github.com/remix-run/remix/tree/v3/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"6ced05d2e56a81bd72c79ab6f79d2a4f31016afb","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.7.0.tgz","fileCount":42,"integrity":"sha512-WDqhu55a2GD4qMvr2CHwJBBBL3C6HELNffXd/CTFLzSHPRWWO51ZaPriRsRsH4zaGKrZj8nMTyizckUTr2OUUQ==","signatures":[{"sig":"MEYCIQDyZ94jFzbPAZxsxaH5sfky7wwAkOFQ48PVhsd9qFnx8AIhAIxgQt/SDTGvi6pJOJ07Q0ZPDzf9f/JZ4V2U3wesHm9Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180059},"main":"./dist/index.cjs","type":"module","_from":"file:remix-run-route-pattern-0.7.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"scripts":{"test":"node --experimental-strip-types --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","build":"pnpm run clean && pnpm run build:types && pnpm run build:esm && pnpm run build:cjs","clean":"rm -rf dist","build:cjs":"esbuild src/index.ts --bundle --outfile=dist/index.cjs --format=cjs --platform=node --sourcemap","build:esm":"esbuild src/index.ts --bundle --outfile=dist/index.js --format=esm --platform=neutral --sourcemap","typecheck":"tsc --noEmit","build:types":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"mjackson","email":"mjijackson+npm@gmail.com"},"_resolved":"/tmp/fa8ed3650282ebec944b453ae947e937/remix-run-route-pattern-0.7.0.tgz","_integrity":"sha512-WDqhu55a2GD4qMvr2CHwJBBBL3C6HELNffXd/CTFLzSHPRWWO51ZaPriRsRsH4zaGKrZj8nMTyizckUTr2OUUQ==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.5.1","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.7.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.20.0","@types/node":"^20.14.10"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.7.0_1756745519670_0.674515842351747","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@remix-run/route-pattern","version":"0.8.0","keywords":["route","pattern","url","match","matcher"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/route-pattern@0.8.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"chancestrickland","email":"hi@chance.dev"}],"homepage":"https://github.com/remix-run/remix/tree/v3/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"5b30c3c909daaf728284ba9214a3bdcc8c5c587d","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.8.0.tgz","fileCount":42,"integrity":"sha512-jMrtpl65sS8mfk8ZQtSs+TO2g8D4X975Mzoi5WJgwmzd3swLskrv1ge+wUPZxr9VCyMu8DyI+TeO/ZCd9VUL9Q==","signatures":[{"sig":"MEUCIG0HE+Lnsj3rRWeXrjTd76LoFHa71Epftu9CoYiI2VDbAiEArT/bPwaY6J0xnC4IaAcg/FYwBilCc4whgYRq+VNGRFc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181309},"main":"./dist/index.cjs","type":"module","_from":"file:remix-run-route-pattern-0.8.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"scripts":{"test":"node --experimental-strip-types --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","build":"pnpm run clean && pnpm run build:types && pnpm run build:esm && pnpm run build:cjs","clean":"rm -rf dist","build:cjs":"esbuild src/index.ts --bundle --outfile=dist/index.cjs --format=cjs --platform=node --sourcemap","build:esm":"esbuild src/index.ts --bundle --outfile=dist/index.js --format=esm --platform=neutral --sourcemap","typecheck":"tsc --noEmit","build:types":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"mjackson","email":"mjijackson+npm@gmail.com"},"_resolved":"/tmp/8120c692aa8f408019e0d307b61da4c8/remix-run-route-pattern-0.8.0.tgz","_integrity":"sha512-jMrtpl65sS8mfk8ZQtSs+TO2g8D4X975Mzoi5WJgwmzd3swLskrv1ge+wUPZxr9VCyMu8DyI+TeO/ZCd9VUL9Q==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.5.1","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.7.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.20.0","@types/node":"^20.14.10"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.8.0_1756868941245_0.08211946321684183","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@remix-run/route-pattern","version":"0.9.0","keywords":["route","pattern","url","match","matcher"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/route-pattern@0.9.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"chancestrickland","email":"hi@chance.dev"}],"homepage":"https://github.com/remix-run/remix/tree/v3/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"a2b9d878d5131034cac9e73193c9e9324fa8a393","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.9.0.tgz","fileCount":39,"integrity":"sha512-h6jZnq9PjIrCDmKpSR5dec9oixgbTY1XN4z5bqVuDKCtU1QdXKi2O5TzXT1sjBGsgRD4O3aPeq+VFyXnPUXZtw==","signatures":[{"sig":"MEUCIQD8K7hagW+7WiEuAjwgG3z9Vs81Q2F5RFuuQ7bswjKnoQIgXBRJ1zzjitPSe4lR9TjAZs4zVhX/N7T8ezX0EulDfqU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197385},"main":"./dist/index.cjs","type":"module","_from":"file:remix-run-route-pattern-0.9.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"scripts":{"test":"node --experimental-strip-types --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","build":"pnpm run clean && pnpm run build:types && pnpm run build:esm && pnpm run build:cjs","clean":"rm -rf dist","build:cjs":"esbuild src/index.ts --bundle --outfile=dist/index.cjs --format=cjs --platform=node --sourcemap","build:esm":"esbuild src/index.ts --bundle --outfile=dist/index.js --format=esm --platform=neutral --sourcemap","typecheck":"tsc --noEmit","build:types":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"mjackson","email":"mjijackson+npm@gmail.com"},"_resolved":"/tmp/dcc4fa01ed2b01933c9e00b05d5c1e56/remix-run-route-pattern-0.9.0.tgz","_integrity":"sha512-h6jZnq9PjIrCDmKpSR5dec9oixgbTY1XN4z5bqVuDKCtU1QdXKi2O5TzXT1sjBGsgRD4O3aPeq+VFyXnPUXZtw==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.5.1","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.7.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.20.0","@types/node":"^20.14.10"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.9.0_1756940685666_0.21083418167770884","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@remix-run/route-pattern","version":"0.9.1","keywords":["route","pattern","url","match","matcher"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/route-pattern@0.9.1","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"chancestrickland","email":"hi@chance.dev"}],"homepage":"https://github.com/remix-run/remix/tree/v3/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"4ea90af1b9091c6b908cc6b08036247562b10c1f","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.9.1.tgz","fileCount":39,"integrity":"sha512-0KnI02EYAXEj17m5CjOdRfTlvrIuSTQ2J8H6Rv/nFc9d5EOVuMNOGAU3LGDzDzLEDb2mr/4EiL3tmpy3taIvFA==","signatures":[{"sig":"MEYCIQCzo1dS/jyUXXFpsdxi/1QL1oSVCT9zahTB42dbCa2h7wIhAJbleOw2SKHWQSzP+BVKJJ6WtXAx6UyjL4ZYth0W2hZD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199544},"main":"./dist/index.cjs","type":"module","_from":"file:remix-run-route-pattern-0.9.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"scripts":{"test":"node --experimental-strip-types --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","build":"pnpm run clean && pnpm run build:types && pnpm run build:esm && pnpm run build:cjs","clean":"rm -rf dist","build:cjs":"esbuild src/index.ts --bundle --outfile=dist/index.cjs --format=cjs --platform=node --sourcemap","build:esm":"esbuild src/index.ts --bundle --outfile=dist/index.js --format=esm --platform=neutral --sourcemap","typecheck":"tsc --noEmit","build:types":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"mjackson","email":"mjijackson+npm@gmail.com"},"_resolved":"/tmp/41ee668c06a5612c210c6112ddc713ce/remix-run-route-pattern-0.9.1.tgz","_integrity":"sha512-0KnI02EYAXEj17m5CjOdRfTlvrIuSTQ2J8H6Rv/nFc9d5EOVuMNOGAU3LGDzDzLEDb2mr/4EiL3tmpy3taIvFA==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.5.1","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.7.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.20.0","@types/node":"^20.14.10"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.9.1_1756991823272_0.407357126022422","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@remix-run/route-pattern","version":"0.10.0","keywords":["route","pattern","url","match","matcher"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/route-pattern@0.10.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"chancestrickland","email":"hi@chance.dev"}],"homepage":"https://github.com/remix-run/remix/tree/v3/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"bcd630579cc4eabc4311a4f68a7bcf9d89ffb076","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.10.0.tgz","fileCount":39,"integrity":"sha512-NXpRzAOCxUiopBSOUgGC7aADlBo6cBRe8Wl+qH1uqCGWSgIbYjbx7Up17nMYr3pyprX42vY+rb4fMxRjq58Hxg==","signatures":[{"sig":"MEUCIQDaSsh3e2W/rumxe8F9y4d/eWv60q31TB/CGAaLDPPRwwIgN28Wx9SWypBy3t0yU8cJnMfjyicwFh/pfFnPH0cS0Z8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":214681},"main":"./dist/index.cjs","type":"module","_from":"file:remix-run-route-pattern-0.10.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"scripts":{"test":"node --experimental-strip-types --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","build":"pnpm run clean && pnpm run build:types && pnpm run build:esm && pnpm run build:cjs","clean":"rm -rf dist","build:cjs":"esbuild src/index.ts --bundle --outfile=dist/index.cjs --format=cjs --platform=node --sourcemap","build:esm":"esbuild src/index.ts --bundle --outfile=dist/index.js --format=esm --platform=neutral --sourcemap","typecheck":"tsc --noEmit","build:types":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"mjackson","email":"mjijackson+npm@gmail.com"},"_resolved":"/tmp/09b130906079a9e219fb778dacfaa3ac/remix-run-route-pattern-0.10.0.tgz","_integrity":"sha512-NXpRzAOCxUiopBSOUgGC7aADlBo6cBRe8Wl+qH1uqCGWSgIbYjbx7Up17nMYr3pyprX42vY+rb4fMxRjq58Hxg==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.5.1","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.7.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.20.0","@types/node":"^20.14.10"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.10.0_1757003168020_0.5208689626712948","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@remix-run/route-pattern","version":"0.11.0","keywords":["route","pattern","url","match","matcher"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/route-pattern@0.11.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/v3/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"8ad64514d52aaf2fe04c81eeb2bddbce589303a6","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.11.0.tgz","fileCount":40,"integrity":"sha512-4VZdjuEh+wzPE3+GEJfuUYvkY7R/p9mNABxbiqlZOhD+jNumBKGFQM88ksIb4DbQ3SQoZxBscDFKEQ09R4nCsA==","signatures":[{"sig":"MEQCIBX3fD3WQk7XYwfURXwkMeKlc561mSdPGX0mmKFTxHhdAiAkjRkyQ5IRNrBuMHNn1PseWsgfBokFzDFXPOBgc7NXkg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218300},"main":"./dist/index.cjs","type":"module","_from":"file:remix-run-route-pattern-0.11.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"scripts":{"test":"node --experimental-strip-types --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","build":"pnpm run clean && pnpm run build:types && pnpm run build:esm && pnpm run build:cjs","clean":"rm -rf dist","build:cjs":"esbuild src/index.ts --bundle --outfile=dist/index.cjs --format=cjs --platform=node --sourcemap","build:esm":"esbuild src/index.ts --bundle --outfile=dist/index.js --format=esm --platform=neutral --sourcemap","typecheck":"tsc --noEmit","build:types":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"mjackson","email":"mjijackson+npm@gmail.com"},"_resolved":"/tmp/e6f671ffa8dc89fbd7988611dd173109/remix-run-route-pattern-0.11.0.tgz","_integrity":"sha512-4VZdjuEh+wzPE3+GEJfuUYvkY7R/p9mNABxbiqlZOhD+jNumBKGFQM88ksIb4DbQ3SQoZxBscDFKEQ09R4nCsA==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.6.0","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.20.0","@types/node":"^20.14.10"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.11.0_1757628522293_0.6974005010505164","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@remix-run/route-pattern","version":"0.12.0","keywords":["route","pattern","url","match","matcher"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/route-pattern@0.12.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"cd3bd96e22b80d834fb9fbc6166c51000e94f48c","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.12.0.tgz","fileCount":48,"integrity":"sha512-k+GeIWi+PDjm3jCwZMguAC06aRTXfGDWQh/eGlR8v1NdgOfZ7oxpt2ZUF3XHXgy2dIz4McOb5BWr9ZE/Enm1JA==","signatures":[{"sig":"MEUCIQD4sP8lcqw/s/gUQBpDk/f1NvA3yYLrS3PqmcM3UXuZVgIgEpyuaZZPfKY17KQJuAyt1PHOBlT1W849NI+qX3sG1RE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266080},"type":"module","_from":"file:remix-run-route-pattern-0.12.0.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"node --experimental-strip-types --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","bench":"node src/lib/parse.types.bench.ts","build":"pnpm run clean && pnpm run build:types && pnpm run build:esm","clean":"rm -rf dist","build:esm":"esbuild src/index.ts --bundle --outfile=dist/index.js --format=esm --platform=neutral --sourcemap","typecheck":"tsc --noEmit","build:types":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"mjackson","email":"mjijackson+npm@gmail.com"},"_resolved":"/tmp/ef4d80b662517c7177f30e16f7c76244/remix-run-route-pattern-0.12.0.tgz","_integrity":"sha512-k+GeIWi+PDjm3jCwZMguAC06aRTXfGDWQh/eGlR8v1NdgOfZ7oxpt2ZUF3XHXgy2dIz4McOb5BWr9ZE/Enm1JA==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.6.0","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.20.0","@ark/attest":"^0.49.0","@types/node":"^20.14.10"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.12.0_1758820372537_0.6605425039545654","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@remix-run/route-pattern","version":"0.13.0","keywords":["route","pattern","url","match","matcher"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/route-pattern@0.13.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"5ebc88753b23c4f7d15cfdb055e2e9ba221ce1f0","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.13.0.tgz","fileCount":44,"integrity":"sha512-Pe1AJofREfdwrz0UH91jrHxo2IuwgXCpXRkR4Y82+WIy9WE4/M9iUofPAghyye26zt7hu17WY4FxDRSOXRNJog==","signatures":[{"sig":"MEYCIQCB/C8gVuTXaor8yZ7sQkrTjHD7zB2GDBBIbuqhbclEGgIhAO3M/BX85J6JSEshuJi1hH1xYfAK5xN0zx2gUu2WdmnZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":252912},"type":"module","_from":"file:remix-run-route-pattern-0.13.0.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"node --experimental-strip-types --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","bench":"node src/lib/parse.types.bench.ts","build":"pnpm run clean && pnpm run build:types && pnpm run build:esm","clean":"rm -rf dist","build:esm":"esbuild src/index.ts --bundle --outfile=dist/index.js --format=esm --platform=neutral --sourcemap","typecheck":"tsc --noEmit","build:types":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"mjackson","email":"mjijackson+npm@gmail.com"},"_resolved":"/tmp/b96cd45f0cb42b1c7ced5fc2a54dec09/remix-run-route-pattern-0.13.0.tgz","_integrity":"sha512-Pe1AJofREfdwrz0UH91jrHxo2IuwgXCpXRkR4Y82+WIy9WE4/M9iUofPAghyye26zt7hu17WY4FxDRSOXRNJog==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.6.0","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.9.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.20.0","@ark/attest":"^0.49.0","@types/node":"^20.14.10"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.13.0_1759175871879_0.6776826449058855","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@remix-run/route-pattern","version":"0.14.0","keywords":["route","pattern","url","match","matcher"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/route-pattern@0.14.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"f973856aa8c87c5f9ba7d77d262ba995d2de4991","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.14.0.tgz","fileCount":65,"integrity":"sha512-Wlq1LAsGZBJ5uEnUmxJDBQvpLKhay1mVvxmNl0oeKBOin6yWDB5YkJkSMAlYQi7mM/vVIDlqr183MiHi4SO7AA==","signatures":[{"sig":"MEYCIQCZK2llCMWkklX5aCqSxg1dOydKl3AxqQUmlPqPUlQbxAIhALQ3Oy9BggFrFiaSVyG92fsulj52IxV5hcZR5qZRPsuX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":509200},"type":"module","_from":"file:remix-run-route-pattern-0.14.0.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","build":"pnpm run clean && pnpm run build:types && pnpm run build:esm","clean":"rm -rf dist","build:esm":"esbuild src/index.ts --bundle --outfile=dist/index.js --format=esm --platform=neutral --sourcemap","typecheck":"tsc --noEmit","bench:types":"node src/lib/parse.types.bench.ts && node src/lib/params.types.bench.ts","build:types":"tsc --project tsconfig.build.json","bench:matcher":"node src/lib/matcher.bench.ts"},"_npmUser":{"name":"mjackson","email":"mjijackson+npm@gmail.com"},"_resolved":"/tmp/129216c6e7153228f4b8abe5b58275d3/remix-run-route-pattern-0.14.0.tgz","_integrity":"sha512-Wlq1LAsGZBJ5uEnUmxJDBQvpLKhay1mVvxmNl0oeKBOin6yWDB5YkJkSMAlYQi7mM/vVIDlqr183MiHi4SO7AA==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.6.0","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.9.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.10","@ark/attest":"^0.49.0","@types/node":"^24.6.0"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.14.0_1759562226579_0.8942406556427664","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@remix-run/route-pattern","version":"0.15.0","keywords":["route","pattern","url","match","matcher"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/route-pattern@0.15.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"ryanflorence","email":"rpflorence@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"51547e4da639966ea96a362f86a19a307d2aea2f","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.15.0.tgz","fileCount":78,"integrity":"sha512-XSuVwWKswcx0i46EdxI/Wau+7VQ6wA/U/iUHJCKcVJVlepImotKOPRMbIO0/omGb5F8RvnJkwOVodO9z7+nQbA==","signatures":[{"sig":"MEUCIAw9flzmgs5IevHoa7Ia/++FQdm0+yWDwfv0JWm5WweiAiEAscBYV7Mhswou4NcKR3QV6aSj61UeIcBUUr7srwAlfc8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2froute-pattern@0.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":397082},"type":"module","_from":"file:remix-run-route-pattern-0.15.0.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","bench":"node bench/runner.ts","build":"tsc -p tsconfig.build.json","clean":"git clean -fdX","typecheck":"tsc --noEmit","bench:types":"node src/lib/parse.types.bench.ts && node src/lib/params.types.bench.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d45d2a0e-0918-4d62-995a-9c2e134a6d5c"}},"_resolved":"/tmp/44ec004aa7dcbaac72ccb7f250c4c4e9/remix-run-route-pattern-0.15.0.tgz","_integrity":"sha512-XSuVwWKswcx0i46EdxI/Wau+7VQ6wA/U/iUHJCKcVJVlepImotKOPRMbIO0/omGb5F8RvnJkwOVodO9z7+nQbA==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.6.1","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@ark/attest":"^0.49.0","@types/node":"^24.6.0"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.15.0_1762301274029_0.8476750936889668","host":"s3://npm-registry-packages-npm-production"}},"0.15.1":{"name":"@remix-run/route-pattern","version":"0.15.1","keywords":["route","pattern","url","match","matcher"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/route-pattern@0.15.1","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"ryanflorence","email":"rpflorence@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"8e9658fba330058278cd518c19c638b7c1a10177","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.15.1.tgz","fileCount":78,"integrity":"sha512-U8A8hPGru3+h57C9wnwv6O0DGKxBhXcyTLayqI/jj/U8inhlE08viS4Igg1RiX4Ns8aetrAZc6uIe4wy7EvV6w==","signatures":[{"sig":"MEUCIFjbq11TGEPvZfa0FGGO7/y5UL9wCmxPelA31T897vDBAiEA2nizZJ5B0+jTipe/p+1Oe1f+ro2Ga1CoYODYE3DCRHs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2froute-pattern@0.15.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":399684},"type":"module","_from":"file:remix-run-route-pattern-0.15.1.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","bench":"node bench/runner.ts","build":"tsc -p tsconfig.build.json","clean":"git clean -fdX","typecheck":"tsc --noEmit","bench:types":"node src/lib/parse.types.bench.ts && node src/lib/params.types.bench.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d45d2a0e-0918-4d62-995a-9c2e134a6d5c"}},"_resolved":"/tmp/1911139fa80f0984dea4397ec285791d/remix-run-route-pattern-0.15.1.tgz","_integrity":"sha512-U8A8hPGru3+h57C9wnwv6O0DGKxBhXcyTLayqI/jj/U8inhlE08viS4Igg1RiX4Ns8aetrAZc6uIe4wy7EvV6w==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.6.2","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@ark/attest":"^0.49.0","@types/node":"^24.6.0"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.15.1_1763517666155_0.6257386905237774","host":"s3://npm-registry-packages-npm-production"}},"0.15.2":{"name":"@remix-run/route-pattern","version":"0.15.2","keywords":["route","pattern","url","match","matcher"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/route-pattern@0.15.2","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"ryanflorence","email":"rpflorence@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"8f15f4e84d8f564a4858fb3e60ceb4b921ef00ea","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.15.2.tgz","fileCount":67,"integrity":"sha512-TxkRs8Egex0J25Vm6qWNaVvCLWfCZ6ayOjNNJF1Hmn/JSwPhjgrY69eIcxt27ijTb+DeEV1wSaN5pn2BRpMLgg==","signatures":[{"sig":"MEUCIQDfyFgF7QCkp8yoQE6Nn1vIG/0AOnoGqL9VXh+biUb9zQIgQkpD2jh4xLiJn6SLB6g6OH8uQTtlTkNYc+GfXt2LaZM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2froute-pattern@0.15.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":242363},"type":"module","_from":"file:remix-run-route-pattern-0.15.2.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","bench":"node bench/runner.ts","build":"tsc -p tsconfig.build.json","clean":"git clean -fdX","typecheck":"tsc --noEmit","bench:types":"node src/lib/parse.types.bench.ts && node src/lib/params.types.bench.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d45d2a0e-0918-4d62-995a-9c2e134a6d5c"}},"_resolved":"/tmp/3753938ef08e2739fe2d26716106534a/remix-run-route-pattern-0.15.2.tgz","_integrity":"sha512-TxkRs8Egex0J25Vm6qWNaVvCLWfCZ6ayOjNNJF1Hmn/JSwPhjgrY69eIcxt27ijTb+DeEV1wSaN5pn2BRpMLgg==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.6.2","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@ark/attest":"^0.49.0","@types/node":"^24.6.0"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.15.2_1763517998557_0.05954241751356193","host":"s3://npm-registry-packages-npm-production"}},"0.15.3":{"name":"@remix-run/route-pattern","version":"0.15.3","keywords":["route","pattern","url","match","matcher"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/route-pattern@0.15.3","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"ryanflorence","email":"rpflorence@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"841d67fa51192548b3301c048d4a5181fbb6fa38","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.15.3.tgz","fileCount":65,"integrity":"sha512-7s4Oy9q6Oz9Vfwg0iZscpmYVASNG9fLqbCa+YY0+SWKksDpvCRiW46xp3S3zEvT7zEP7G55FKA+JdrqqK2AOXw==","signatures":[{"sig":"MEQCIEKAXUfG/qJjBjqD2t0P8bHfeRRMteazZAvtbpG5KcliAiAeCIfav9Z6VQbo+xYX/tc5qY35i0FGZC+z6XoIyzEt8A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2froute-pattern@0.15.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":233330},"type":"module","_from":"file:remix-run-route-pattern-0.15.3.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","bench":"node bench/runner.ts","build":"tsc -p tsconfig.build.json","clean":"git clean -fdX","typecheck":"tsc --noEmit","bench:types":"node src/lib/parse.types.bench.ts && node src/lib/params.types.bench.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d45d2a0e-0918-4d62-995a-9c2e134a6d5c"}},"_resolved":"/tmp/fcf5c8e25f25b4524a11700865a85a9d/remix-run-route-pattern-0.15.3.tgz","_integrity":"sha512-7s4Oy9q6Oz9Vfwg0iZscpmYVASNG9fLqbCa+YY0+SWKksDpvCRiW46xp3S3zEvT7zEP7G55FKA+JdrqqK2AOXw==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.6.2","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@ark/attest":"^0.49.0","@types/node":"^24.6.0"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.15.3_1763519536609_0.12629882083888266","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@remix-run/route-pattern","version":"0.16.0","keywords":["route","pattern","url","match","matcher"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/route-pattern@0.16.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"ryanflorence","email":"rpflorence@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"df997b49fc1b686bd2389959a9bcc027a84848a5","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.16.0.tgz","fileCount":67,"integrity":"sha512-Co6bPtODF7cLYVBweayRXfEb31ybz45WqwT/u72eDQJZgRSVKFf0Ps9fqinSaiX0Xp7jvkRCBAbSUgLuLLjzuw==","signatures":[{"sig":"MEQCIFQ5PP1QsJdq8ZOn0utWzWKsJjyoTf5kpRpIuhGZL3f9AiB/ErPWo4WJTmcsI1TtXIXMkGtmjgxcM6wtg9hHrUimCQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2froute-pattern@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":251585},"type":"module","_from":"file:remix-run-route-pattern-0.16.0.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test","bench":"vitest bench","build":"tsgo -p tsconfig.build.json","clean":"git clean -fdX","typecheck":"tsgo --noEmit","bench:types":"node --test 'src/**/*.bench.types.ts'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d45d2a0e-0918-4d62-995a-9c2e134a6d5c"}},"_resolved":"/tmp/80748227a8550c45138fcc839e992e22/remix-run-route-pattern-0.16.0.tgz","_integrity":"sha512-Co6bPtODF7cLYVBweayRXfEb31ybz45WqwT/u72eDQJZgRSVKFf0Ps9fqinSaiX0Xp7jvkRCBAbSUgLuLLjzuw==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.6.2","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"4.0.15","@ark/attest":"^0.49.0","@types/node":"^24.6.0","find-my-way":"^9.1.0","path-to-regexp":"^8.2.0","@typescript/native-preview":"7.0.0-dev.20251125.1"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.16.0_1766081235048_0.9949574065331284","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@remix-run/route-pattern","version":"0.17.0","keywords":["route","pattern","url","match","matcher"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/route-pattern@0.17.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"ryanflorence","email":"rpflorence@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"bb0f508c73916e0cc27232f71226df3ed1ff62e7","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.17.0.tgz","fileCount":67,"integrity":"sha512-fbs33SiIiYkiANUcyRqqTYlcZcyntdCnXW2OltejGaEm4m0xCvx367KZNAGTrb9u9zvTP04pt4iyu3B0O4J2kQ==","signatures":[{"sig":"MEYCIQCGrT6NRXPpkIYC3I7pdh+QDplc6klhEWfZnqJeZ0TydQIhAKjvBOOIgGgoalb1xAzJv3vgrznFkus/7NySqCND8C7+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2froute-pattern@0.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":251550},"type":"module","_from":"file:remix-run-route-pattern-0.17.0.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test","bench":"vitest bench","build":"tsgo -p tsconfig.build.json","clean":"git clean -fdX","typecheck":"tsgo --noEmit","bench:types":"node --test 'src/**/*.bench.types.ts'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d45d2a0e-0918-4d62-995a-9c2e134a6d5c"}},"_resolved":"/tmp/8f95574df274c87603099f1452b09760/remix-run-route-pattern-0.17.0.tgz","_integrity":"sha512-fbs33SiIiYkiANUcyRqqTYlcZcyntdCnXW2OltejGaEm4m0xCvx367KZNAGTrb9u9zvTP04pt4iyu3B0O4J2kQ==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.6.2","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"4.0.15","@ark/attest":"^0.49.0","@types/node":"^24.6.0","find-my-way":"^9.1.0","path-to-regexp":"^8.2.0","@typescript/native-preview":"7.0.0-dev.20251125.1"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.17.0_1768948083295_0.32136476041195605","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@remix-run/route-pattern","version":"0.18.0","keywords":["route","pattern","url","match","matcher"],"license":"MIT","_id":"@remix-run/route-pattern@0.18.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"ryanflorence","email":"rpflorence@gmail.com"}],"contributors":[{"name":"Michael Jackson","email":"mjijackson@gmail.com"},{"name":"Pedro Cattori","email":"pcattori@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"7952106736d9b31bda2ba2fe38054ad488d19a77","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.18.0.tgz","fileCount":99,"integrity":"sha512-m0ySsUen9Xczzduiscms57rw5whE7HpqPW7SzjSEyWkLFV3sTbKairTildVDRlypLSyb34wKxCrYTRnsgdlhDA==","signatures":[{"sig":"MEUCIHVT0aeV9U+6kVJOlDGzq5WgwRlf0nCpM+skl1+BOnh3AiEA1xmFDkBmlCcywtmKsP3IAzQ16mASUKS7uJPpk4mCVHs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2froute-pattern@0.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":199956},"type":"module","_from":"file:remix-run-route-pattern-0.18.0.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./specificity":{"types":"./dist/specificity.d.ts","default":"./dist/specificity.js"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test","bench":"pnpm --filter route-pattern-bench exec vitest bench","build":"tsgo -p tsconfig.build.json","clean":"git clean -fdX","typecheck":"tsgo --noEmit","bench:types":"node --test 'src/**/*.bench.types.ts'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d45d2a0e-0918-4d62-995a-9c2e134a6d5c"}},"_resolved":"/tmp/acbfbe44686d385a2120a85a6cdd28c3/remix-run-route-pattern-0.18.0.tgz","_integrity":"sha512-m0ySsUen9Xczzduiscms57rw5whE7HpqPW7SzjSEyWkLFV3sTbKairTildVDRlypLSyb34wKxCrYTRnsgdlhDA==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.6.2","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"dedent":"^1.7.1","@ark/attest":"^0.49.0","@types/node":"^24.6.0","@typescript/native-preview":"7.0.0-dev.20251125.1"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.18.0_1769566383462_0.4756872007681612","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@remix-run/route-pattern","version":"0.19.0","keywords":["route","pattern","url","match","matcher"],"license":"MIT","_id":"@remix-run/route-pattern@0.19.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"contributors":[{"name":"Michael Jackson","email":"mjijackson@gmail.com"},{"name":"Pedro Cattori","email":"pcattori@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"f1c7f323615438f2868422bbbe3621282f2fd564","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.19.0.tgz","fileCount":100,"integrity":"sha512-RXKaIJ2Lx01uyZc0iw+yLzowFCa1/NuB8jN7QTo4QUe2CaUGtvPGdhgrTUp75lyNNCSJIrM9SaAJ6c1pjZdmoA==","signatures":[{"sig":"MEUCIQDZSciwb8V+afPK2EYH8VPQSmpS5kKH2jUa4FlyOFEoXQIgSq64itazwNlTbBEkDao3t5aiUgNbRGcCvy09S7UMzko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2froute-pattern@0.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":205618},"type":"module","_from":"file:remix-run-route-pattern-0.19.0.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./specificity":{"types":"./dist/specificity.d.ts","default":"./dist/specificity.js"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test","build":"tsgo -p tsconfig.build.json","clean":"git clean -fdX","typecheck":"tsgo --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d45d2a0e-0918-4d62-995a-9c2e134a6d5c"}},"_resolved":"/tmp/667ac162977278aee0119e388f7a071e/remix-run-route-pattern-0.19.0.tgz","_integrity":"sha512-RXKaIJ2Lx01uyZc0iw+yLzowFCa1/NuB8jN7QTo4QUe2CaUGtvPGdhgrTUp75lyNNCSJIrM9SaAJ6c1pjZdmoA==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.10.1","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"25.7.0","_hasShrinkwrap":false,"devDependencies":{"dedent":"^1.7.1","@types/node":"^24.6.0","@typescript/native-preview":"7.0.0-dev.20251125.1"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.19.0_1772239271002_0.49427303032504866","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@remix-run/route-pattern","version":"0.20.0","keywords":["route","pattern","url","match","matcher"],"license":"MIT","_id":"@remix-run/route-pattern@0.20.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"contributors":[{"name":"Michael Jackson","email":"mjijackson@gmail.com"},{"name":"Pedro Cattori","email":"pcattori@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"0e4aa5670fa5dd6c09c1ac6b75056ee8f4098f26","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.20.0.tgz","fileCount":104,"integrity":"sha512-TEdJ5eFn40St26oyaRYGI1FWeXDvlEzkbvollM8Xit0qIuDFyFG03Okvvfc1s8KgR9sYULDPjxJIzk6xvIRR9A==","signatures":[{"sig":"MEUCIH43I/t/sX1ofADVzHgMIiwrmVdphv63yrCMvO4myOX8AiEArzAiA1PJ0cnK5C9zioUl/5JaWUaG4JkFXCFSjEUUM/Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2froute-pattern@0.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":216318},"type":"module","_from":"file:remix-run-route-pattern-0.20.0.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./specificity":{"types":"./dist/specificity.d.ts","default":"./dist/specificity.js"},"./package.json":"./package.json"},"scripts":{"test":"node --test","build":"tsgo -p tsconfig.build.json","clean":"git clean -fdX","typecheck":"tsgo --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d45d2a0e-0918-4d62-995a-9c2e134a6d5c"}},"_resolved":"/tmp/0ae5a0b67e790b398ab3ca422bbb36bb/remix-run-route-pattern-0.20.0.tgz","_integrity":"sha512-TEdJ5eFn40St26oyaRYGI1FWeXDvlEzkbvollM8Xit0qIuDFyFG03Okvvfc1s8KgR9sYULDPjxJIzk6xvIRR9A==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.9.0","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"dedent":"^1.7.1","@types/node":"^24.6.0","@typescript/native-preview":"7.0.0-dev.20251125.1"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.20.0_1774479810174_0.14717078012553553","host":"s3://npm-registry-packages-npm-production"}},"0.20.1":{"name":"@remix-run/route-pattern","version":"0.20.1","keywords":["route","pattern","url","match","matcher"],"license":"MIT","_id":"@remix-run/route-pattern@0.20.1","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"contributors":[{"name":"Michael Jackson","email":"mjijackson@gmail.com"},{"name":"Pedro Cattori","email":"pcattori@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"932c9554c6a0d2109d6b5d2ed4b00e6ecfff6ec6","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.20.1.tgz","fileCount":108,"integrity":"sha512-SSwyX3hX/xZck5UXy0bN4ubsnRJeuEKqHjz4Cc3so32FECexdNk0Y+pg2YZNu7FLGpjBn5dBUQCOtjIXQQudUw==","signatures":[{"sig":"MEQCIG1p6YHRfHdxQDCXB5iTWJxbzzoSHVYrTRJFqlSS36rbAiBFfE54dZaFpV/UYdLs4/smTFwO5Z87uq/4/TTT5864og==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2froute-pattern@0.20.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":230605},"type":"module","_from":"file:remix-run-route-pattern-0.20.1.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./specificity":{"types":"./dist/specificity.d.ts","default":"./dist/specificity.js"},"./package.json":"./package.json"},"scripts":{"test":"remix-test","build":"tsgo -p tsconfig.build.json","clean":"git clean -fdX","typecheck":"tsgo --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d45d2a0e-0918-4d62-995a-9c2e134a6d5c"}},"_resolved":"/tmp/f038e6eb56e4fa3fb22ac6f425728786/remix-run-route-pattern-0.20.1.tgz","_integrity":"sha512-SSwyX3hX/xZck5UXy0bN4ubsnRJeuEKqHjz4Cc3so32FECexdNk0Y+pg2YZNu7FLGpjBn5dBUQCOtjIXQQudUw==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.12.1","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"dedent":"^1.7.1","@types/node":"^24.6.0","@remix-run/test":"0.1.0","@remix-run/assert":"0.1.0","@typescript/native-preview":"7.0.0-dev.20251125.1"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.20.1_1776904659814_0.06054002062400188","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@remix-run/route-pattern","version":"0.21.0","keywords":["route","pattern","url","match","matcher"],"license":"MIT","_id":"@remix-run/route-pattern@0.21.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"contributors":[{"name":"Michael Jackson","email":"mjijackson@gmail.com"},{"name":"Pedro Cattori","email":"pcattori@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"0a7e8920804602b9450bb63f7c7d59742d05f90c","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.21.0.tgz","fileCount":107,"integrity":"sha512-S8MDZvXF60xJth7wcvv3h/hgKKOv71tsPEyXH3XhQIGyOwqHaNcLnWZJ10KEaCdAbwjq84NFvEljCuRI0xwF/Q==","signatures":[{"sig":"MEYCIQDdJ8yogjYiVH7GOeOGMyGxLhnb6M+yT/dbY3CJRwpw/QIhAOn5l6zLGs/GTEjLky1r6upK+88kTVAhI1t4XClIY+aj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2froute-pattern@0.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":204956},"type":"module","_from":"file:remix-run-route-pattern-0.21.0.tgz","exports":{".":{"types":"./dist/route-pattern.d.ts","default":"./dist/route-pattern.js"},"./href":{"types":"./dist/href.d.ts","default":"./dist/href.js"},"./join":{"types":"./dist/join.d.ts","default":"./dist/join.js"},"./match":{"types":"./dist/match.d.ts","default":"./dist/match.js"},"./specificity":{"types":"./dist/specificity.d.ts","default":"./dist/specificity.js"},"./package.json":"./package.json"},"scripts":{"test":"remix-test","build":"tsgo -p tsconfig.build.json","clean":"git clean -fdX","test:bun":"bun x --bun remix-test","typecheck":"tsgo --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d45d2a0e-0918-4d62-995a-9c2e134a6d5c"}},"_resolved":"/tmp/2eeab52ef3d04990dcd3729d9416c113/remix-run-route-pattern-0.21.0.tgz","_integrity":"sha512-S8MDZvXF60xJth7wcvv3h/hgKKOv71tsPEyXH3XhQIGyOwqHaNcLnWZJ10KEaCdAbwjq84NFvEljCuRI0xwF/Q==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.12.1","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"dedent":"^1.7.1","@types/node":"^24.6.0","@remix-run/test":"0.4.0","@remix-run/assert":"0.2.0","@typescript/native-preview":"7.0.0-dev.20251125.1"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.21.0_1779247257425_0.6942793943177568","host":"s3://npm-registry-packages-npm-production"}},"0.21.1":{"name":"@remix-run/route-pattern","version":"0.21.1","keywords":["route","pattern","url","match","matcher"],"license":"MIT","_id":"@remix-run/route-pattern@0.21.1","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"contributors":[{"name":"Michael Jackson","email":"mjijackson@gmail.com"},{"name":"Pedro Cattori","email":"pcattori@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"588b50a3ed46b7abd12e655740689d903148ca18","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.21.1.tgz","fileCount":107,"integrity":"sha512-vXTyJPwicRY2PyNoT3l6Ql4EM4eenPyDOAQGxH4p/+jIDuX3312xxQe3BQ+fhdspobJtnKaEgTWVKBZb+9ArWQ==","signatures":[{"sig":"MEQCIH3RXAfeKGhbeAyQLU0/7ZNYDYSPseIaVgl77SkBwxXjAiATK7CRHiaL3aKYH1sKTkk49a7huIK64bZbbFNN4MB8kg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2froute-pattern@0.21.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":205293},"type":"module","_from":"file:remix-run-route-pattern-0.21.1.tgz","exports":{".":{"types":"./dist/route-pattern.d.ts","default":"./dist/route-pattern.js"},"./href":{"types":"./dist/href.d.ts","default":"./dist/href.js"},"./join":{"types":"./dist/join.d.ts","default":"./dist/join.js"},"./match":{"types":"./dist/match.d.ts","default":"./dist/match.js"},"./specificity":{"types":"./dist/specificity.d.ts","default":"./dist/specificity.js"},"./package.json":"./package.json"},"scripts":{"test":"remix-test","build":"tsgo -p tsconfig.build.json","clean":"git clean -fdX","test:bun":"bun x --bun remix-test","typecheck":"tsgo --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d45d2a0e-0918-4d62-995a-9c2e134a6d5c"}},"_resolved":"/tmp/e44e9c94956566a7c1608fa99212bb63/remix-run-route-pattern-0.21.1.tgz","_integrity":"sha512-vXTyJPwicRY2PyNoT3l6Ql4EM4eenPyDOAQGxH4p/+jIDuX3312xxQe3BQ+fhdspobJtnKaEgTWVKBZb+9ArWQ==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.12.1","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"dedent":"^1.7.1","@types/node":"^24.6.0","@remix-run/test":"0.4.1","@remix-run/assert":"0.2.1","@typescript/native-preview":"7.0.0-dev.20251125.1"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.21.1_1779308219123_0.5232064785236727","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@remix-run/route-pattern","version":"0.22.0","keywords":["route","pattern","url","match","matcher"],"license":"MIT","_id":"@remix-run/route-pattern@0.22.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"contributors":[{"name":"Michael Jackson","email":"mjijackson@gmail.com"},{"name":"Pedro Cattori","email":"pcattori@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"207cc1dc2388495c47bb7405a11d15190415067a","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.22.0.tgz","fileCount":107,"integrity":"sha512-YN3HBtEKV5+LuwGeOc4jdYXJd58oECZ6zZYOG8b9d6U/jnAc5tKszPwUeLZ+5Z0ZwT1QgB/9QQ2yXJPzj45XYQ==","signatures":[{"sig":"MEUCIQCSVaQoYBJfmi0c94kj63V0PM5SmP6t78R2t0UkyQ94ogIgaDggQNRW81L19G7RKc8yPvbUM97YZGbUqMMXRCeIIUI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2froute-pattern@0.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":213725},"type":"module","_from":"file:remix-run-route-pattern-0.22.0.tgz","exports":{".":{"types":"./dist/route-pattern.d.ts","default":"./dist/route-pattern.js"},"./href":{"types":"./dist/href.d.ts","default":"./dist/href.js"},"./join":{"types":"./dist/join.d.ts","default":"./dist/join.js"},"./match":{"types":"./dist/match.d.ts","default":"./dist/match.js"},"./specificity":{"types":"./dist/specificity.d.ts","default":"./dist/specificity.js"},"./package.json":"./package.json"},"scripts":{"test":"remix-test","build":"tsgo -p tsconfig.build.json","clean":"git clean -fdX","test:bun":"bun x --bun remix-test","typecheck":"tsgo --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d45d2a0e-0918-4d62-995a-9c2e134a6d5c"}},"_resolved":"/tmp/ee408b0804887a3ee34900fb01a33a46/remix-run-route-pattern-0.22.0.tgz","_integrity":"sha512-YN3HBtEKV5+LuwGeOc4jdYXJd58oECZ6zZYOG8b9d6U/jnAc5tKszPwUeLZ+5Z0ZwT1QgB/9QQ2yXJPzj45XYQ==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.13.0","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"dedent":"^1.7.1","@types/node":"^24.6.0","@remix-run/test":"0.4.2","@remix-run/assert":"0.2.1","@typescript/native-preview":"7.0.0-dev.20251125.1"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.22.0_1780078580707_0.44038998939983975","host":"s3://npm-registry-packages-npm-production"}},"0.22.1":{"name":"@remix-run/route-pattern","version":"0.22.1","keywords":["route","pattern","url","match","matcher"],"license":"MIT","_id":"@remix-run/route-pattern@0.22.1","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"contributors":[{"name":"Michael Jackson","email":"mjijackson@gmail.com"},{"name":"Pedro Cattori","email":"pcattori@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"4937466528a59a7c9d882f725aac92536d20e010","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.22.1.tgz","fileCount":107,"integrity":"sha512-czdGJWh09Lapvcqt7Vb09KlrU2PhRJ8xQaI+AItTuD9aDJ5MAgxnS38lnys6Ll+6RJEqPiaUqTwIQhVLwFvv+w==","signatures":[{"sig":"MEQCIAIg/KmVvnCCnXRfZVkaqMGY7dmj314sEK9Fvja7jogpAiBmqmkR8IcgzHCbMZOX0N4V7pSVg3y9lMAEIFvJbhjnVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2froute-pattern@0.22.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":217061},"type":"module","_from":"file:remix-run-route-pattern-0.22.1.tgz","exports":{".":{"types":"./dist/route-pattern.d.ts","default":"./dist/route-pattern.js"},"./href":{"types":"./dist/href.d.ts","default":"./dist/href.js"},"./join":{"types":"./dist/join.d.ts","default":"./dist/join.js"},"./match":{"types":"./dist/match.d.ts","default":"./dist/match.js"},"./specificity":{"types":"./dist/specificity.d.ts","default":"./dist/specificity.js"},"./package.json":"./package.json"},"scripts":{"test":"remix-test","build":"tsgo -p tsconfig.build.json","clean":"git clean -fdX","test:bun":"bun x --bun remix-test","typecheck":"tsgo --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d45d2a0e-0918-4d62-995a-9c2e134a6d5c"}},"_resolved":"/tmp/a485f6b93a9c8f28cb8cfe8ba47898a5/remix-run-route-pattern-0.22.1.tgz","_integrity":"sha512-czdGJWh09Lapvcqt7Vb09KlrU2PhRJ8xQaI+AItTuD9aDJ5MAgxnS38lnys6Ll+6RJEqPiaUqTwIQhVLwFvv+w==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.13.0","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"dedent":"^1.7.1","@types/node":"^24.6.0","@remix-run/test":"0.5.0","@remix-run/assert":"0.3.0","@typescript/native-preview":"7.0.0-dev.20251125.1"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.22.1_1780683915674_0.7530959832607194","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"@remix-run/route-pattern","version":"0.23.0","keywords":["route","pattern","url","match","matcher"],"license":"MIT","_id":"@remix-run/route-pattern@0.23.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"contributors":[{"name":"Michael Jackson","email":"mjijackson@gmail.com"},{"name":"Pedro Cattori","email":"pcattori@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"f86acb150f5cf53f4234537a0b4c5dff94f49ada","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.23.0.tgz","fileCount":107,"integrity":"sha512-8eZfG9owfdvC1OqWemjyIqbFTjWbKTW8RrcbppXrnv1GHMIpFOQx9Ly6F1OXNM03aK1c923JypacoRjamyfVEw==","signatures":[{"sig":"MEYCIQCJAchX8WGn+rS/E+re35Cjx8EDtPv1M1GVOlIy1oYnkAIhALQU2rLjyi72bpTxXed+pSmdQPqfCY7G05QSO43zQSOx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2froute-pattern@0.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":232980},"type":"module","_from":"file:remix-run-route-pattern-0.23.0.tgz","exports":{".":{"types":"./dist/route-pattern.d.ts","default":"./dist/route-pattern.js"},"./href":{"types":"./dist/href.d.ts","default":"./dist/href.js"},"./join":{"types":"./dist/join.d.ts","default":"./dist/join.js"},"./match":{"types":"./dist/match.d.ts","default":"./dist/match.js"},"./specificity":{"types":"./dist/specificity.d.ts","default":"./dist/specificity.js"},"./package.json":"./package.json"},"scripts":{"test":"remix-test","build":"tsgo -p tsconfig.build.json","clean":"git clean -fdX","test:bun":"bun x --bun remix-test","typecheck":"tsgo --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d45d2a0e-0918-4d62-995a-9c2e134a6d5c"}},"_resolved":"/tmp/ea9e7cf212c0921738d023d7b90a0b8a/remix-run-route-pattern-0.23.0.tgz","_integrity":"sha512-8eZfG9owfdvC1OqWemjyIqbFTjWbKTW8RrcbppXrnv1GHMIpFOQx9Ly6F1OXNM03aK1c923JypacoRjamyfVEw==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.13.0","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.17.0","_hasShrinkwrap":false,"devDependencies":{"dedent":"^1.7.1","@types/node":"^24.6.0","@remix-run/test":"0.5.0","@remix-run/assert":"0.3.0","@typescript/native-preview":"7.0.0-dev.20251125.1"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.23.0_1782932504016_0.09487352887619838","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"@remix-run/route-pattern","version":"0.24.0","keywords":["route","pattern","url","match","matcher"],"license":"MIT","_id":"@remix-run/route-pattern@0.24.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"contributors":[{"name":"Michael Jackson","email":"mjijackson@gmail.com"},{"name":"Pedro Cattori","email":"pcattori@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"20c085633effb046ce204a6e93660da53651514c","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.24.0.tgz","fileCount":107,"integrity":"sha512-w0/lhgY40l2GrBQjJIOeYWIuKm1rxlOsc9Hvt+nyydnka0v4aI9Vv0VK4XzLD3aP08JzGtTlxFxwf1PZ8SGdLg==","signatures":[{"sig":"MEYCIQC1/m4mYfbdkecyr0SGcyTh/4nyW4EM3xbgZpQTUIasUQIhAL80aBb/Sg0Y3QhPtm+mvonby1owoN8S0wevfKUecgbY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2froute-pattern@0.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282997},"type":"module","_from":"file:remix-run-route-pattern-0.24.0.tgz","exports":{".":{"types":"./dist/route-pattern.d.ts","default":"./dist/route-pattern.js"},"./href":{"types":"./dist/href.d.ts","default":"./dist/href.js"},"./join":{"types":"./dist/join.d.ts","default":"./dist/join.js"},"./match":{"types":"./dist/match.d.ts","default":"./dist/match.js"},"./specificity":{"types":"./dist/specificity.d.ts","default":"./dist/specificity.js"},"./package.json":"./package.json"},"scripts":{"test":"remix test","build":"tsc -p tsconfig.build.json","clean":"git clean -fdX","test:bun":"bun x --bun remix test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d45d2a0e-0918-4d62-995a-9c2e134a6d5c"}},"_resolved":"/tmp/c32f759d12340d9fa03b1d82f01ec808/remix-run-route-pattern-0.24.0.tgz","_integrity":"sha512-w0/lhgY40l2GrBQjJIOeYWIuKm1rxlOsc9Hvt+nyydnka0v4aI9Vv0VK4XzLD3aP08JzGtTlxFxwf1PZ8SGdLg==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.16.0","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"dedent":"^1.7.1","typescript":"^7.0.2","@types/node":"^24.6.0","@remix-run/test":"0.6.0","@remix-run/assert":"0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.24.0_1786666367985_0.7633713392183987","host":"s3://npm-registry-packages-npm-production"}},"0.24.1":{"name":"@remix-run/route-pattern","version":"0.24.1","keywords":["route","pattern","url","match","matcher"],"license":"MIT","_id":"@remix-run/route-pattern@0.24.1","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"contributors":[{"name":"Michael Jackson","email":"mjijackson@gmail.com"},{"name":"Pedro Cattori","email":"pcattori@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"cee709b2f946940777bb4775a8334598f3c4b909","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.24.1.tgz","fileCount":107,"integrity":"sha512-HRee7tz2Ct7QdTQGDErHcVTAlXa5BBV6GOLEa/INw21ceTWTWlaU13FJupYVX0k1mh608rod880+SA5NlTPPfw==","signatures":[{"sig":"MEYCIQDODNwfD8SXQgOEpf99E1zgJwhE3/SleDKuGIjeMh8/hQIhAOGPC0P4QYovhLMQvdqBg/5QqzjwnH4tzuI4KBc5jobq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFkiAkfdRAN0i2yWD9UEALQkXG33eNO3jLNeNzZoAABiAiEAoQP09zycH8V9izrnpgdonNBYRP8JIChBwk+tWYq/dNE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2froute-pattern@0.24.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":284427},"type":"module","_from":"file:/tmp/remix-publish-route-pattern-1AgU58/remix-run-route-pattern-0.24.1.tgz","exports":{".":{"types":"./dist/route-pattern.d.ts","default":"./dist/route-pattern.js"},"./href":{"types":"./dist/href.d.ts","default":"./dist/href.js"},"./join":{"types":"./dist/join.d.ts","default":"./dist/join.js"},"./match":{"types":"./dist/match.d.ts","default":"./dist/match.js"},"./specificity":{"types":"./dist/specificity.d.ts","default":"./dist/specificity.js"},"./package.json":"./package.json"},"scripts":{"test":"remix test","build":"tsc -p tsconfig.build.json","clean":"git clean -fdX","test:bun":"bun x --bun remix test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d45d2a0e-0918-4d62-995a-9c2e134a6d5c"}},"_resolved":"/tmp/remix-publish-route-pattern-1AgU58/remix-run-route-pattern-0.24.1.tgz","_integrity":"sha512-HRee7tz2Ct7QdTQGDErHcVTAlXa5BBV6GOLEa/INw21ceTWTWlaU13FJupYVX0k1mh608rod880+SA5NlTPPfw==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.19.0","description":"Match and generate URLs with strong typing","directories":{},"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"devDependencies":{"dedent":"^1.7.1","typescript":"^7.0.2","@types/node":"^24.6.0","@remix-run/test":"0.6.1","@remix-run/assert":"0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.24.1_1789770773658_0.5067291668501521","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"@remix-run/route-pattern","version":"0.25.0","keywords":["route","pattern","url","match","matcher"],"license":"MIT","_id":"@remix-run/route-pattern@0.25.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"contributors":[{"name":"Michael Jackson","email":"mjijackson@gmail.com"},{"name":"Pedro Cattori","email":"pcattori@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"365da1eadc5cef6137f44f90075936024af6da88","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-0.25.0.tgz","fileCount":107,"integrity":"sha512-RUXlEswF1mobTg+ZX5JSEmwz33VkFWPE24ccB1AFCHY+KZQMLCwIcYvV7eJlFHddPRLfSMCrkUa+88UCCdYC9Q==","signatures":[{"sig":"MEUCIA1Dal8uQm34Th6Ro0Ab1sakJQ9ZSO2IV0/XL0op3eRuAiEAqsiTsZcIX9qt5Mq3RFPLBtruHCUGiKj3szRzVhf+evU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDW8+/S/Qmvv0t5PUgqmxudA2cQQLgGcvAYpQ9fqghKMAIgHyD13TZyh+h21Upt5owwVLlDMbMKUpZMtjMTo5Or3IQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2froute-pattern@0.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":286705},"type":"module","_from":"file:/tmp/remix-publish-route-pattern-a3TXG6/remix-run-route-pattern-0.25.0.tgz","exports":{".":{"types":"./dist/route-pattern.d.ts","default":"./dist/route-pattern.js"},"./href":{"types":"./dist/href.d.ts","default":"./dist/href.js"},"./join":{"types":"./dist/join.d.ts","default":"./dist/join.js"},"./match":{"types":"./dist/match.d.ts","default":"./dist/match.js"},"./specificity":{"types":"./dist/specificity.d.ts","default":"./dist/specificity.js"},"./package.json":"./package.json"},"scripts":{"test":"remix test","build":"tsc -p tsconfig.build.json","clean":"git clean -fdX","test:bun":"bun x --bun remix test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"d45d2a0e-0918-4d62-995a-9c2e134a6d5c"}},"_resolved":"/tmp/remix-publish-route-pattern-a3TXG6/remix-run-route-pattern-0.25.0.tgz","_integrity":"sha512-RUXlEswF1mobTg+ZX5JSEmwz33VkFWPE24ccB1AFCHY+KZQMLCwIcYvV7eJlFHddPRLfSMCrkUa+88UCCdYC9Q==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.19.0","description":"Match and generate URLs with strong typing","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"dedent":"^1.7.1","typescript":"^7.0.2","@types/node":"^24.6.0","@remix-run/test":"0.6.2","@remix-run/assert":"0.3.1"},"_npmOperationalInternal":{"tmp":"tmp/route-pattern_0.25.0_1790631565588_0.27392403575016067","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"_id":"@remix-run/route-pattern@1.0.0","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"7307a3a1157bddc1f2aa3bc4d89151d08e4c3343","tarball":"https://registry.npmjs.org/@remix-run/route-pattern/-/route-pattern-1.0.0.tgz","fileCount":107,"integrity":"sha512-EsI8J5AcDpnV76lGcpwPCqCN1Vj7X2eNPqgUr+RjInTsm4iTnrGzn0iIUxpUjQ5/Ba1cAd8CMMbsA2bjEjZiyQ==","signatures":[{"sig":"MEYCIQCizeZfV6CyrpaxUcdGuUID5MWqyNK0yIF7HiBpdD0bGwIhAJlGFC020TSxSWzrWW5Q67LobjLdMG3l+7EJfC+Dtdcj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAVi94ALWS0g8Fg+vuK6JgUBDkhuoXbyvhMQHBnmEOOgAiBGUSNgmt8ykUrlba/KVZ6okGY5FC8/ALpXsCk6GhBf+A=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2froute-pattern@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":286704},"name":"@remix-run/route-pattern","type":"module","_from":"file:/tmp/remix-publish-route-pattern-hCPsjy/remix-run-route-pattern-1.0.0.tgz","exports":{".":{"types":"./dist/route-pattern.d.ts","default":"./dist/route-pattern.js"},"./href":{"types":"./dist/href.d.ts","default":"./dist/href.js"},"./join":{"types":"./dist/join.d.ts","default":"./dist/join.js"},"./match":{"types":"./dist/match.d.ts","default":"./dist/match.js"},"./specificity":{"types":"./dist/specificity.d.ts","default":"./dist/specificity.js"},"./package.json":"./package.json"},"license":"MIT","scripts":{"test":"remix test","build":"tsc -p tsconfig.build.json","clean":"git clean -fdX","test:bun":"bun x --bun remix test","typecheck":"tsc --noEmit"},"version":"1.0.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"d45d2a0e-0918-4d62-995a-9c2e134a6d5c"}},"homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","keywords":["route","pattern","url","match","matcher"],"_resolved":"/tmp/remix-publish-route-pattern-hCPsjy/remix-run-route-pattern-1.0.0.tgz","_integrity":"sha512-EsI8J5AcDpnV76lGcpwPCqCN1Vj7X2eNPqgUr+RjInTsm4iTnrGzn0iIUxpUjQ5/Ba1cAd8CMMbsA2bjEjZiyQ==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"_npmVersion":"11.19.0","description":"Match and generate URLs with strong typing","directories":{},"maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"sideEffects":false,"_nodeVersion":"24.21.0","contributors":[{"name":"Michael Jackson","email":"mjijackson@gmail.com"},{"name":"Pedro Cattori","email":"pcattori@gmail.com"}],"_hasShrinkwrap":false,"devDependencies":{"dedent":"^1.7.1","typescript":"^7.0.2","@types/node":"^24.6.0","@remix-run/test":"1.0.0","@remix-run/assert":"1.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/route-pattern_1.0.0_1790895142635_0.4016688117030698"}}},"time":{"created":"2025-07-24T19:50:19.037Z","modified":"2026-10-01T22:52:23.355Z","0.4.0":"2025-07-24T19:50:19.352Z","0.6.0":"2025-08-29T00:46:23.079Z","0.7.0":"2025-09-01T16:51:59.848Z","0.8.0":"2025-09-03T03:09:01.510Z","0.9.0":"2025-09-03T23:04:45.853Z","0.9.1":"2025-09-04T13:17:03.451Z","0.10.0":"2025-09-04T16:26:08.215Z","0.11.0":"2025-09-11T22:08:42.489Z","0.12.0":"2025-09-25T17:12:52.721Z","0.13.0":"2025-09-29T19:57:52.057Z","0.14.0":"2025-10-04T07:17:06.946Z","0.15.0":"2025-11-05T00:07:54.238Z","0.15.1":"2025-11-19T02:01:06.440Z","0.15.2":"2025-11-19T02:06:38.822Z","0.15.3":"2025-11-19T02:32:16.874Z","0.16.0":"2025-12-18T18:07:15.202Z","0.17.0":"2026-01-20T22:28:03.458Z","0.18.0":"2026-01-28T02:13:03.624Z","0.19.0":"2026-02-28T00:41:11.188Z","0.20.0":"2026-03-25T23:03:30.311Z","0.20.1":"2026-04-23T00:37:39.957Z","0.21.0":"2026-05-20T03:20:57.604Z","0.21.1":"2026-05-20T20:16:59.268Z","0.22.0":"2026-05-29T18:16:20.853Z","0.22.1":"2026-06-05T18:25:15.833Z","0.23.0":"2026-07-01T19:01:44.158Z","0.24.0":"2026-08-14T00:12:48.182Z","0.24.1":"2026-09-18T22:32:53.735Z","0.25.0":"2026-09-28T21:39:25.684Z","1.0.0":"2026-10-01T22:52:22.728Z"},"bugs":{"url":"https://github.com/remix-run/remix/issues"},"license":"MIT","homepage":"https://github.com/remix-run/remix/tree/main/packages/route-pattern#readme","keywords":["route","pattern","url","match","matcher"],"repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/route-pattern"},"description":"Match and generate URLs with strong typing","contributors":[{"name":"Michael Jackson","email":"mjijackson@gmail.com"},{"name":"Pedro Cattori","email":"pcattori@gmail.com"}],"maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"readme":"# route-pattern\n\nType-safe URL matching and href generation for JavaScript. `route-pattern` supports path variables, wildcards, optionals, search constraints, and full-URL patterns with predictable ranking.\n\n## Features\n\n- **Type-safe** - Infer params from patterns for compile-time correctness\n- **Expressive** - Variables, wildcards, optionals, and search constraints\n- **Full URL support** - Match protocol, hostname, port, pathname, and search\n- **Simple & deterministic ranking** - Predictable left-to-right priority for static, variable, and wildcard patterns\n- **Fast** - Indexed, bounded-state matching without variant expansion or regex backtracking\n- **Modular** - Import only the features you need to for smaller bundles\n- **Runtime agnostic** - Works across Node.js, Bun, Deno, Cloudflare Workers, and browsers\n\n## Installation\n\n```sh\nnpm i remix\n```\n\n## Quick example\n\n```ts\nimport { createMultiMatcher } from 'remix/route-pattern/match'\n\nlet matcher = createMultiMatcher<{ name: string }>()\n\nmatcher.add('blog/:slug', { name: 'blog-post' })\nmatcher.add('api(/v:version)/*path', { name: 'api' })\nmatcher.add('http(s)://:region.cdn.com/assets/*file.:ext', { name: 'assets' })\n\nlet match = matcher.match('https://example.com/blog/v3')\nmatch?.pattern.toString()\n// /blog/:slug\nmatch?.params\n// { slug: 'v3' }\nmatch?.data\n// { name: 'blog-post' }\n\nimport { createHref } from 'remix/route-pattern/href'\n\ncreateHref('blog/:slug', { slug: 'v3' })\n// '/blog/v3'\n\ncreateHref('api(/v:version)/*path', { version: '2', path: 'users/profile' })\n// '/api/v2/users/profile'\n\ncreateHref('http(s)://:region.cdn.com/assets/*file.:ext', {\n  region: 'us-west',\n  file: 'images/logo',\n  ext: 'png',\n})\n// 'https://us-west.cdn.com/assets/images/logo.png'\n```\n\n## API at a glance\n\n| Import                            | Description                                                                                                                            |\n| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |\n| `remix/route-pattern`             | Parse and stringify patterns.                                                                                                          |\n| `remix/route-pattern/href`        | Generate hrefs for patterns with type safe params.                                                                                     |\n| `remix/route-pattern/match`       | Match against one pattern with type inference for params, or match against many patterns with deterministic ranking and attached data. |\n| `remix/route-pattern/join`        | Combine two patterns into one. Override protocol, hostname, port. Join pathnames. Merge search constraints.                            |\n| `remix/route-pattern/specificity` | Rank matches by [specificity](#ranking-matches-by-specificity).                                                                        |\n\nFor in-depth reference, visit the [`route-pattern` API docs](https://api.remix.run/api/remix/route-pattern)\n\nExamples in this README use `remix/route-pattern/*` imports. The same APIs are also available from the direct package entrypoints: `@remix-run/route-pattern`, `@remix-run/route-pattern/href`, `@remix-run/route-pattern/match`, `@remix-run/route-pattern/join`, and `@remix-run/route-pattern/specificity`.\n\n## Pattern syntax\n\n### Protocol\n\nProtocol must be `http`, `https`, or `http(s)`:\n\n```ts\n'https://example.com' // matches https://example.com\n'http(s)://example.com' // matches http://example.com, https://example.com\n```\n\n### Hostname & pathname\n\n**Variables** capture dynamic segments using `:name`:\n\n```ts\n'users/:id' // matches /users/123\n'blog/:date/:slug' // matches /blog/2024-01-15/hello\n'files/:name.:ext' // matches /files/readme.md\n```\n\nPathname variables possessively capture the largest non-empty run up to `/` or `.`. Hyphens are data, so UUIDs and slugs remain intact. A variable may have static text before it, but every path through following optionals must reach `/`, `.`, a wildcard, or the end of the hostname or pathname. Capture an inseparable value such as a date with one variable instead of `:year-:month-:day`.\n\nRaw `/` and `.` are structural delimiters. Their percent-encoded forms remain data and are decoded in the resulting param. Static pattern text may use either decoded text or percent encoding, so `/café` and `/caf%C3%A9` match the same pathname text.\n\n**Wildcards** match multi-segment paths using `*name`:\n\n```ts\n'files/*path' // matches /files/images/logo.png\n'node_modules/*package/dist/index.js' // matches /node_modules/@remix-run/router/dist/index.js\n'files/*' // matches any path under /files, but doesn't capture the wildcard value\n```\n\nPatterns may contain any number of wildcards when static text or a delimiter separates them. Adjacent wildcards such as `*left*right` are rejected because their capture boundary is ambiguous.\n\n**Optionals** make parts optional using `()`:\n\n```ts\n'api(/v:version)/users' // matches /api/users, /api/v2/users\n'blog/:slug(.html)' // matches /blog/hello, /blog/hello.html\n'docs(/guides/:category)' // matches /docs, /docs/guides/routing\n'api(/v:major(.:minor))' // matches /api, /api/v2, /api/v2.1\n```\n\nOptionals compile as state branches rather than concrete variants, so independent and nested optionals do not cause exponential matcher construction. Empty optionals and adjacent optional branches that give the same URL different capture schemas are rejected.\n\nWhile variables, wildcards, and optionals are most prevalent in pathnames, you can also use them in hostnames:\n\n```ts\n':tenant.example.com/dashboard' // matches acme.example.com/dashboard\n'(www.)example.com/blog/:slug(.html)' // matches example.com/blog/hello, www.example.com/blog/hello.html\n'*.example.com/files/*path' // matches cdn.example.com/files/images/logo.png\n'(:locale.)example.com/docs(/:section)' // matches en.example.com/docs, en.example.com/docs/guides\n```\n\nCapture names may repeat. `params` uses the last participating capture in pattern order, while `paramsMeta` retains every participating capture:\n\n```ts\nlet matcher = createMatcher('/:id/:id')\nlet match = matcher.match('https://example.com/first/second')\n\nmatch?.params\n// { id: 'second' }\n\nmatch?.paramsMeta.pathname.map(({ name, value }) => ({ name, value }))\n// [{ name: 'id', value: 'first' }, { name: 'id', value: 'second' }]\n```\n\n**Escape characters** with `\\`:\n\n```ts\n'time/12\\\\:30' // matches /time/12:30\n'calculator/2\\\\*3' // matches /calculator/2*3\n'wiki/Mercury_\\\\(planet\\\\)' // matches /wiki/Mercury_(planet)\n'wiki/AC\\\\/DC' // matches /wiki/AC%2FDC\n```\n\n### Search\n\n**Search constraints** narrow matches using `?key` or `?key=value`:\n\n```ts\n'search?q' // key must be present\n'search?q=routing' // requires ?q=routing exactly\n```\n\n## Match URLs\n\n### Match against a single pattern\n\nUse `createMatcher` when you have one pattern and want params inferred from that exact pattern.\n\n```ts\nimport { createMatcher } from 'remix/route-pattern/match'\n\nconst url: string | URL = /* ... */\n\nlet blogMatcher = createMatcher('blog/:slug')\nblogMatcher.match(url)?.params\n// Type safe params     ^? { slug: string } | undefined\n\nlet docsMatcher = createMatcher('://(:tenant.)host.com/docs/*path.:ext')\ndocsMatcher.match(url)?.params\n// Type safe params     ^? { tenant: string | undefined, path: string, ext: string } | undefined\n```\n\nMatchers accept absolute URL strings or `URL` objects. To match a relative URL reference, pass an absolute `baseURL`; the input is resolved with the same semantics as `new URL(input, baseURL)`, and the resolved URL is returned on the match.\n\n```ts\nlet match = blogMatcher.match('../blog/v3', {\n  baseURL: 'https://example.com/admin/settings',\n})\n\nmatch?.params\n// { slug: 'v3' }\n\nmatch?.url.href\n// 'https://example.com/blog/v3'\n```\n\nThis works for root-relative, path-relative, query-relative, and network-path references. Without `baseURL`, string inputs must still be absolute.\n\n### Match against multiple patterns\n\nUse `createMultiMatcher` when you need to match many patterns and attach your own data to each match.\n\n```ts\nimport { createMultiMatcher } from 'remix/route-pattern/match'\n\nlet matcher = createMultiMatcher<string>()\n// Any data type you want!         👆\n\nmatcher.add('/', 'home')\nmatcher.add('blog/:slug', 'blog-post')\nmatcher.add('api(/v:version)/*path', 'api')\n\nmatcher.match('https://example.com/blog/v3')\n// { params: { slug: 'v3' }, data: 'blog-post' }\n\nmatcher.match('https://example.com/api/v2/users/profile')\n// { params: { version: '2', path: 'users/profile' }, data: 'api' }\n```\n\nThe matched pattern is only known at runtime, so matched `params` are not inferred when matching with `createMultiMatcher`.\n\nEach match returns:\n\n- `url`: the `URL` object that was matched\n- `pattern`: the matched `RoutePattern`\n- `data`: the data attached with `matcher.add(pattern, data)`\n- `params`: captured param values\n- `paramsMeta`: hostname and pathname param metadata\n\n`paramsMeta.hostname` and `paramsMeta.pathname` are arrays of `{ type, name, value, begin, end }` entries. The offsets are measured after URL normalization. A pattern with no hostname matches any hostname, represented in `paramsMeta.hostname` as an unnamed wildcard entry.\n\nSet `ignoreCase: true` to make pathname matching case-insensitive. Hostname matching is always case-insensitive, and search constraints are always case-sensitive.\n\n```ts\nlet matcher = createMatcher('/Docs/:slug', { ignoreCase: true })\n\nmatcher.match('https://example.com/docs/Intro')?.params\n// { slug: 'Intro' }\n```\n\nMatchers limit individual pattern size, total matcher size, and the work performed by one match, including variable scans and comparisons between wildcard or optional captures. Pattern and matcher sizes are measured in UTF-8 bytes. Direct package consumers may lower or raise individual limits. Exceeding one throws `MatcherResourceError` with structured `details` instead of silently abandoning matching:\n\n```ts\nlet matcher = createMultiMatcher({\n  limits: { maxPatternSize: 4096, maxMatchWork: 100_000 },\n})\n```\n\n### Ranking matches by specificity\n\nWhen multiple patterns match the same URL, `route-pattern` chooses the most specific match deterministically. Matches are ranked left-to-right, character-by-character:\n\n- Explicit protocol and port constraints are more specific than omitted constraints.\n- Static hostnames are more specific than dynamic hostnames, which are more specific than omitted hostnames.\n- Static characters are more specific than variables.\n- Variables are more specific than wildcards.\n- Earliest difference decides the winner.\n\nThis is the same ranking used by `createMultiMatcher`.\n\nFor advanced use cases, `/specificity` provides comparison utilities: `lessThan`, `greaterThan`, `equal`, `descending`, `ascending`, `compare`. `lessThan(a, b)` returns `true` when match `a` is less specific than match `b`. For example:\n\n```ts\nimport { createMultiMatcher } from 'remix/route-pattern/match'\nimport { descending } from 'remix/route-pattern/specificity'\n\nlet matcher = createMultiMatcher()\nmatcher.add('files/*path', null)\nmatcher.add('files/:name', null)\nmatcher.add('files/readme', null)\n\nlet matches = matcher.matchAll('https://example.com/files/readme')\n\nmatches.sort(descending).map((match) => match.pattern.toString())\n// ['/files/readme', '/files/:name', '/files/*path']\n```\n\n## Generate hrefs\n\n`createHref` turns a pattern and params into a URL string. Required variables and wildcards must be provided, while params inside optional groups may be omitted.\n\n```ts\nimport { createHref } from 'remix/route-pattern/href'\n\ncreateHref('blog/:slug', { slug: 'v3' })\n// '/blog/v3'\n\ncreateHref('api(/v:version)/*path', { path: 'users/profile' })\n// '/api/users/profile'\n\ncreateHref('api(/v:version)/*path', { version: '2', path: 'users/profile' })\n// '/api/v2/users/profile'\n\ncreateHref('http(s)://:region.cdn.com/assets/*file.:ext', {\n  region: 'us-west',\n  file: 'images/logo',\n  ext: 'png',\n})\n// 'https://us-west.cdn.com/assets/images/logo.png'\n\ncreateHref(\n  'blog/:slug?ref=docs',\n  { slug: 'v3' },\n  {\n    searchParams: { utm_source: 'newsletter' },\n  },\n)\n// '/blog/v3?utm_source=newsletter&ref=docs'\n\ncreateHref('users/:id', { id: 'a.b' })\n// '/users/a%2Eb' (the encoded dot remains variable data when matched)\n```\n\nPass `baseURL` to generate a path-relative reference to a same-origin route. Patterns with a different origin remain absolute.\n\n```ts\nlet baseURL = new URL('https://example.com/admin/settings')\n\ncreateHref('users/:id', { id: '123' }, { baseURL })\n// '../users/123'\n\ncreateHref('https://cdn.example.com/assets/*path', { path: 'logo.svg' }, { baseURL })\n// 'https://cdn.example.com/assets/logo.svg'\n```\n\nThe `searchParams` option accepts a plain object or `URLSearchParams`. Use `URLSearchParams` when duplicate keys or their order matter:\n\n```ts\nlet searchParams = new URLSearchParams([\n  ['tag', 'featured'],\n  ['tag', 'popular'],\n])\n\ncreateHref('search', undefined, { searchParams })\n// '/search?tag=featured&tag=popular'\n```\n\n`createHref()` throws `CreateHrefError` when it cannot safely generate an href. The error exposes stable structured details on `error.details`; the string message is for humans.\n\nCommon failures include missing required params, nameless wildcards, invalid hostname params, empty pathname variables, and origin patterns that specify a protocol or port without a concrete hostname.\n\nHostname params reject URL structural characters, including backslashes. Hostname variables also reject dots; hostname wildcards allow dots to span labels.\n\nPathname wildcards preserve internal slashes and dotted filenames, but reject standalone `.` and `..` segments with `error.details.type === 'invalid-pathname-wildcard'`. Generated pathnames have exactly one leading slash, including when the wildcard value starts with slashes. This normalization also applies to absolute URLs and happens before generating a relative href with `baseURL`.\n\n**Note:** optional groups without params are included in the generated href:\n\n```ts\ncreateHref('todos(/new)')\n// '/todos/new'\n\ncreateHref('products(.json)')\n// '/products.json'\n```\n\n## Parse & stringify patterns\n\nYou can explicitly parse and stringify patterns. Create a `RoutePattern` with `RoutePattern.parse` and use the methods and helpers below instead of reading parsed token internals.\n\n```ts\nimport { getRoutePatternCaptures, RoutePattern } from 'remix/route-pattern'\n\nlet pattern = RoutePattern.parse('://:tenant.example.com/blog/:slug(/*path)')\n//  ^? RoutePattern\n\npattern.toString()\n// '://:tenant.example.com/blog/:slug(/*path)'\n\npattern.toJSON()\n// { hostname: ':tenant.example.com', pathname: 'blog/:slug(/*path)', ... }\n\ngetRoutePatternCaptures(pattern)\n// [\n//   { part: 'hostname', type: ':', name: 'tenant', optional: false },\n//   { part: 'pathname', type: ':', name: 'slug', optional: false },\n//   { part: 'pathname', type: '*', name: 'path', optional: true },\n// ]\n```\n\nAll APIs that take a `pattern` arg accept `string` or a parsed `RoutePattern`.\n\n**TIP:** For high-performance scenarios, you can parse patterns ahead of time to avoid reparsing them on every call.\n\n`RoutePattern.toJSON()` returns a `RoutePatternJSON` object with serialized `protocol`, `hostname`, `port`, `pathname`, and `search` fields. `RoutePattern.parse()` throws `ParseError` for malformed sources; the error exposes stable `type`, `source`, and `index` fields.\n\nThe public support types are:\n\n- `RoutePatternCapture` from `remix/route-pattern`\n- `RoutePatternJSON` from `remix/route-pattern`\n- `CreateHrefErrorDetails` from `remix/route-pattern/href`\n- `CreateHrefOptions` and `CreateHrefSearchParams` from `remix/route-pattern/href`\n- `MatchParamMeta` from `remix/route-pattern/match`\n- `MatchOptions` from `remix/route-pattern/match`\n- `MatcherLimits` from `remix/route-pattern/match`\n- `MatcherResourceError` and `MatcherResourceErrorDetails` from `remix/route-pattern/match`\n\nLiteral patterns are validated and infer named params until the type-level parser reaches its 64-step complexity budget. Larger runtime-valid patterns remain accepted and fall back to safe general pattern types instead of risking a TypeScript excessive-instantiation error.\n\n## Combine patterns\n\n`joinPatterns` builds a new pattern from a base pattern.\n\n```ts\nimport { joinPatterns } from 'remix/route-pattern/join'\n\nlet user = joinPatterns('users', ':id')\n\nuser.toString()\n// '/users/:id'\n\nlet apiUser = joinPatterns('api(/v:version)', '://remix.run/users/:id')\n\napiUser.toString()\n// '://remix.run/api(/v:version)/users/:id'\n```\n\n- **Protocol:** if second pattern has a protocol, overrides base pattern\n- **Hostname:** if second pattern has a hostname, overrides base pattern\n- **Port:** if second pattern has a port, overrides base pattern\n- **Pathname:** concatenates pathnames, adding a `/` in between as necessary\n- **Search constraints:** merges search constraints by key\n\n## Benchmarks\n\nBenchmarks live in [`bench/`](./bench/).\n\n## Related Work\n\n- [`path-to-regexp`](https://www.npmjs.com/package/path-to-regexp)\n- [`find-my-way`](https://github.com/delvedor/find-my-way)\n- [`URLPattern`](https://developer.mozilla.org/en-US/docs/Web/API/URLPattern)\n\n## License\n\nSee [LICENSE](https://github.com/remix-run/remix/blob/main/LICENSE)\n","readmeFilename":"README.md"}