fix: escape scanned route url param names · nitrojs/nitro@7a5d536

Original file line numberDiff line numberDiff line change

@@ -89,8 +89,8 @@ export async function scanServerRoutes(nitro: Nitro, dir: string, prefix = "/")

8989

.replace(/\.[A-Za-z]+$/, "")

9090

.replace(/\(([^(/\\]+)\)[/\\]/g, "")

9191

.replace(/\[\.{3}]/g, "**")

92-

.replace(/\[\.{3}(\w+)]/g, "**:$1")

93-

.replace(/\[([^/\]]+)]/g, ":$1");

92+

.replace(/\[\.{3}([^\]]+)]/g, (_, p) => "**:" + p.replace(/[^\w-]/g, "_"))

93+

.replace(/\[([^/\]]+)]/g, (_, p) => ":" + p.replace(/[^\w-]/g, "_"));

9494

route = withLeadingSlash(withoutTrailingSlash(withBase(route, prefix)));

9595
9696

const suffixMatch = route.match(suffixRegex);