@hasna/domains
Version:
Domain portfolio, registrar, marketplace, and DNS management for AI agents — CLI + MCP + HTTP API + SDK, shared account API and PostgreSQL
65 lines • 2.37 kB
TypeScript
/**
* Domain owner tracking — links premium/unavailable domains to their owners
* via open-contacts integration or local owner records.
*/
export interface DomainOwner {
id: string;
domain_id: string;
contact_id: string | null;
owner_name: string | null;
owner_email: string | null;
owner_phone: string | null;
owner_organization: string | null;
source: DomainOwnerSource;
verified: boolean;
notes: string | null;
created_at: string;
updated_at: string;
}
export type DomainOwnerSource = (typeof DOMAIN_OWNER_SOURCES)[number];
export declare const DOMAIN_OWNER_SOURCES: readonly ["whois", "manual", "brandsight", "import"];
export interface CreateDomainOwnerInput {
domain_id: string;
contact_id?: string;
owner_name?: string;
owner_email?: string;
owner_phone?: string;
owner_organization?: string;
source?: DomainOwnerSource;
verified?: boolean;
notes?: string;
}
export declare function createDomainOwner(input: CreateDomainOwnerInput): DomainOwner;
export declare function getDomainOwner(id: string): DomainOwner | null;
export declare function getDomainOwnerByDomain(domainId: string): DomainOwner | null;
export declare function getDomainOwnerByDomainName(domainName: string): DomainOwner | null;
export declare function listDomainOwners(options?: {
search?: string;
source?: DomainOwnerSource;
verified?: boolean;
}): DomainOwner[];
export declare function updateDomainOwner(id: string, input: Partial<CreateDomainOwnerInput>): DomainOwner | null;
export declare function deleteDomainOwner(id: string): boolean;
/**
* Extract owner info from WHOIS data (RDAP JSON or CLI raw text) and create/update a domain owner record.
*/
export declare function parseWhoisOwner(whoisData: string): {
name: string | null;
email: string | null;
phone: string | null;
organization: string | null;
} | null;
export interface DomainWithOwner {
domain_name: string;
domain_status: string;
is_premium: boolean;
premium_price: number | null;
owner_name: string | null;
owner_email: string | null;
owner_organization: string | null;
contact_id: string | null;
source: DomainOwnerSource | null;
verified: boolean;
}
export declare function listDomainsWithOwners(): DomainWithOwner[];
//# sourceMappingURL=domain-owners.d.ts.map