UNPKG

@xyz/whois

Version:

A powerful TypeScript/JavaScript tool for comprehensive domain analysis, featuring detailed WHOIS data with registration dates, registrars, and domain status. Offers SSL certificate extraction (with PEM support), DNS records, and server details. Includes

51 lines (50 loc) 1.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.REGISTRANT_EMAIL_PATTERNS = exports.REGISTRANT_COUNTRY_PATTERNS = exports.REGISTRANT_ORG_PATTERNS = void 0; exports.findRegistrantOrganization = findRegistrantOrganization; exports.findRegistrantCountry = findRegistrantCountry; exports.findRegistrantEmail = findRegistrantEmail; exports.REGISTRANT_ORG_PATTERNS = [ /Registrant Organization:\s*(.+?)(?:\n|$)/i, /Registrant:\s*(.+?)(?:\n|$)/i, /Organization:\s*(.+?)(?:\n|$)/i, ]; exports.REGISTRANT_COUNTRY_PATTERNS = [ /Registrant Country:\s*(.+?)(?:\n|$)/i, /Country:\s*(.+?)(?:\n|$)/i, ]; exports.REGISTRANT_EMAIL_PATTERNS = [ /Registrant Email:\s*(.+?)(?:\n|$)/i, /Email:\s*(.+?)(?:\n|$)/i, ]; function findRegistrantOrganization(rawData) { for (const pattern of exports.REGISTRANT_ORG_PATTERNS) { const match = rawData.match(pattern); if (match && match[1].trim() && !match[1].includes('REDACTED FOR PRIVACY')) { return match[1].trim(); } } return undefined; } function findRegistrantCountry(rawData) { for (const pattern of exports.REGISTRANT_COUNTRY_PATTERNS) { const match = rawData.match(pattern); if (match && match[1].trim()) { return match[1].trim(); } } return undefined; } function findRegistrantEmail(rawData) { // Don't extract email if GDPR protected if (rawData.includes('GDPR') || rawData.includes('REDACTED FOR PRIVACY')) { return undefined; } for (const pattern of exports.REGISTRANT_EMAIL_PATTERNS) { const match = rawData.match(pattern); if (match && match[1].trim() && match[1].includes('@')) { return match[1].trim(); } } return undefined; }