mirror of
https://github.com/Lissy93/web-check.git
synced 2026-05-13 06:01:02 -04:00
- Sitemap endpoint now recursively expands sitemap-index files - Fixes #165 - Strips :port from target URLs in get-ip, dns, dns-server, ports, mail-config - Fixes #203 - Configurable trust proxy (TRUST_PROXY env) so app works behind Traefik/nginx - Fixes #157 - Tranco rank now correctly says "top 1 million" (was "100 million") - Fixes #257 - Adds engines.node ">=20" so Vercel picks a supported runtime - Re #212 - Raises Vercel maxDuration from 10s to 60s, cutting most 504 timeouts - Re #251 - Re #287 - Bumps axios 1.4.8 to 1.16, closing 4 high-severity SSRF/DoS CVEs - Re #289 - Fixes mail-config crash where dns module was awaited as if promise-based - Adds reusable structured logging util for the API - Bumps a whole bunch of deps, and resolves lots of open npm CVEs
19 lines
585 B
JavaScript
19 lines
585 B
JavaScript
// Parse a user-supplied target into a normalised form.
|
|
// Strips protocol/port/path so DNS-touching endpoints get a bare hostname.
|
|
export const parseTarget = (input) => {
|
|
if (!input) throw new Error('No target provided');
|
|
const normalised = /^https?:\/\//i.test(input) ? input : `https://${input}`;
|
|
let u;
|
|
try { u = new URL(normalised); }
|
|
catch (err) { throw new Error(`Invalid URL: ${input}`); }
|
|
return {
|
|
hostname: u.hostname,
|
|
port: u.port || null,
|
|
protocol: u.protocol,
|
|
pathname: u.pathname || '/',
|
|
href: u.href,
|
|
};
|
|
};
|
|
|
|
export default parseTarget;
|