export function normalizeHostname(valueArg: string): string { const trimmedValue = valueArg.trim().toLowerCase(); if (!trimmedValue) return ''; const withoutProtocol = trimmedValue.replace(/^[a-z][a-z0-9+.-]*:\/\//, ''); const withoutPath = withoutProtocol.split('/')[0].split('?')[0].split('#')[0]; return withoutPath.replace(/:\d+$/, '').replace(/\.$/, ''); } export function isValidHostname(hostnameArg: string): boolean { if (!hostnameArg) return true; if (hostnameArg.length > 253) return false; return hostnameArg.split('.').every((label) => { if (!label || label.length > 63) return false; return /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/.test(label); }); }