@hasna/domains
Version:
Domain portfolio, registrar, marketplace, and DNS management for AI agents — CLI + MCP + HTTP API + SDK, shared account API and PostgreSQL
82 lines • 2.88 kB
TypeScript
/**
* GoDaddy API integration for domain management
*
* Environment variables:
* GODADDY_API_KEY — GoDaddy API key
* GODADDY_API_SECRET — GoDaddy API secret
*/
import type { CreateDomainInput, UpdateDomainInput, Domain } from "../db/domains.js";
export interface GoDaddyConfig {
apiKey: string;
apiSecret: string;
}
export interface GoDaddyDomain {
domain: string;
domainId?: number;
status: string;
expires: string;
renewAuto: boolean;
nameServers?: string[];
}
export interface GoDaddyDomainDetail extends GoDaddyDomain {
createdAt?: string;
locked?: boolean;
privacy?: boolean;
domainId?: number;
}
export interface GoDaddyDnsRecord {
type: string;
name: string;
data: string;
ttl: number;
priority?: number;
}
export interface GoDaddyAvailability {
domain: string;
available: boolean;
price?: number;
currency?: string;
}
export interface GoDaddyRenewResponse {
orderId: number;
itemCount: number;
total: number;
}
export declare class GoDaddyApiError extends Error {
statusCode?: number | undefined;
details?: unknown | undefined;
constructor(message: string, statusCode?: number | undefined, details?: unknown | undefined);
}
export interface GoDaddySyncResult {
synced: number;
created: number;
updated: number;
errors: string[];
}
type FetchFn = typeof globalThis.fetch;
export declare function _setFetch(fn: FetchFn | null): void;
export declare function listGoDaddyDomains(): Promise<GoDaddyDomain[]>;
export declare function getDomainInfo(domain: string): Promise<GoDaddyDomainDetail>;
export declare function renewDomain(domain: string): Promise<GoDaddyRenewResponse>;
export declare function getDnsRecords(domain: string, type?: string): Promise<GoDaddyDnsRecord[]>;
export declare function setDnsRecords(domain: string, records: GoDaddyDnsRecord[]): Promise<void>;
export declare function checkAvailability(domain: string): Promise<GoDaddyAvailability>;
export declare function syncToLocalDb(dbFns: {
getDomainByName: (name: string) => Promise<Domain | null>;
createDomain: (input: CreateDomainInput) => Promise<Domain>;
updateDomain: (id: string, input: UpdateDomainInput) => Promise<Domain | null>;
}): Promise<GoDaddySyncResult>;
export interface GodaddyCapability {
configured: boolean;
gated: boolean;
notes: string;
}
/**
* GoDaddy retail Domains API capability. Current GoDaddy docs say DNS/domain
* management production API access is available with 1+ domain or qualifying
* plan/spend, while availability remains under a higher anti-abuse threshold.
* This CLI still does not expose direct automated purchase through GoDaddy.
*/
export declare function godaddyCapability(env?: Record<string, string | undefined>): GodaddyCapability;
export {};
//# sourceMappingURL=godaddy.d.ts.map