( requestUrl: string | undefined )
| 645 | } |
| 646 | |
| 647 | function getNormalizedUpgradeRoute( |
| 648 | requestUrl: string | undefined |
| 649 | ): { routePathname: string; routeUrl: string } | null { |
| 650 | const publicPathname = getPathnameFromRequestUrl(requestUrl); |
| 651 | if (!publicPathname) { |
| 652 | return null; |
| 653 | } |
| 654 | |
| 655 | const { routePathname } = stripAppProxyBasePath(publicPathname); |
| 656 | const querySuffix = splitRequestUrlPathAndQuery(requestUrl)?.querySuffix ?? ""; |
| 657 | return { routePathname, routeUrl: `${routePathname}${querySuffix}` }; |
| 658 | } |
| 659 | |
| 660 | function isSafeHttpHostHeader(host: string): boolean { |
| 661 | if (host.trim().length === 0 || host.includes("/") || host.includes("\\")) { |
no test coverage detected