namecheap-ts
Version:
A simple wrapper for namecheap API
126 lines (122 loc) • 5.51 kB
text/typescript
declare enum Commands {
DOMAINS_GETLIST = "namecheap.domains.getList",
DOMAINS_GETCONTACTS = "namecheap.domains.getContacts",
DOMAINS_CREATE = "namecheap.domains.create",
DOMAINS_GETTLDLIST = "namecheap.domains.getTldList",
DOMAINS_SETCONTACTS = "namecheap.domains.setContacts",
DOMAINS_CHECK = "namecheap.domains.check",
DOMAINS_REACTIVATE = "namecheap.domains.reactivate",
DOMAINS_RENEW = "namecheap.domains.renew",
DOMAINS_GETREGISTRARLOCK = "namecheap.domains.getRegistrarLock",
DOMAINS_SETREGISTRARLOCK = "namecheap.domains.setRegistrarLock",
DOMAINS_GETINFO = "namecheap.domains.getInfo",
DOMAINS_DNS_SETDEFAULT = "namecheap.domains.dns.setDefault",
DOMAINS_DNS_SETCUSTOM = "namecheap.domains.dns.setCustom",
DOMAINS_DNS_GETLIST = "namecheap.domains.dns.getList",
DOMAINS_DNS_GETHOSTS = "namecheap.domains.dns.getHosts",
DOMAINS_DNS_GETEMAILFORWARDING = "namecheap.domains.dns.getEmailForwarding",
DOMAINS_DNS_SETEMAILFORWARDING = "namecheap.domains.dns.setEmailForwarding",
DOMAINS_DNS_SETHOSTS = "namecheap.domains.dns.setHosts",
DOMAINS_NS_CREATE = "namecheap.domains.ns.create",
DOMAINS_NS_DELETE = "namecheap.domains.ns.delete",
DOMAINS_NS_GETINFO = "namecheap.domains.ns.getInfo",
DOMAINS_NS_UPDATE = "namecheap.domains.ns.update",
DOMAINS_TRANSFER_CREATE = "namecheap.domains.transfer.create",
DOMAINS_TRANSFER_GETSTATUS = "namecheap.domains.transfer.getStatus",
DOMAINS_TRANSFER_UPDATESTATUS = "namecheap.domains.transfer.updateStatus",
DOMAINS_TRANSFER_GETLIST = "namecheap.domains.transfer.getList",
SSL_CREATE = "namecheap.ssl.create",
SSL_GETLIST = "namecheap.ssl.getList",
SSL_PARSECSR = "namecheap.ssl.parseCSR",
SSL_GETAPPROVEREMAILLIST = "namecheap.ssl.getApproverEmailList",
SSL_ACTIVATE = "namecheap.ssl.activate",
SSL_RESENDAPPROVEREMAIL = "namecheap.ssl.resendApproverEmail",
SSL_GETINFO = "namecheap.ssl.getInfo",
SSL_RENEW = "namecheap.ssl.renew",
SSL_REISSUE = "namecheap.ssl.reissue",
SSL_RESENDFULFILLMENTEMAIL = "namecheap.ssl.resendfulfillmentemail",
SSL_PURCHASEMORESANS = "namecheap.ssl.purchasemoresans",
SSL_REVOKECERTIFICATE = "namecheap.ssl.revokecertificate",
SSL_EDITDCVMETHOD = "namecheap.ssl.editDCVMethod",
USERS_GETPRICING = "namecheap.users.getPricing",
USERS_GETBALANCES = "namecheap.users.getBalances",
USERS_CHANGEPASSWORD = "namecheap.users.changePassword",
USERS_UPDATE = "namecheap.users.update",
USERS_CREATEADDFUNDSREQUEST = "namecheap.users.createaddfundsrequest",
USERS_GETADDFUNDSSTATUS = "namecheap.users.getAddFundsStatus",
USERS_CREATE = "namecheap.users.create",
USERS_LOGIN = "namecheap.users.login",
USERS_RESETPASSWORD = "namecheap.users.resetPassword",
USERS_ADDRESS_CREATE = "namecheap.users.address.create",
USERS_ADDRESS_DELETE = "namecheap.users.address.delete",
USERS_ADDRESS_GETINFO = "namecheap.users.address.getInfo",
USERS_ADDRESS_GETLIST = "namecheap.users.address.getList",
USERS_ADDRESS_SETDEFAULT = "namecheap.users.address.setDefault",
USERS_ADDRESS_UPDATE = "namecheap.users.address.update",
WHOISGUARD_CHANGEEMAILADDRESS = "Namecheap.Whoisguard.changeemailaddress",
WHOISGUARD_ENABLE = "Namecheap.Whoisguard.enable",
WHOISGUARD_DISABLE = "Namecheap.Whoisguard.disable",
WHOISGUARD_GETLIST = "Namecheap.Whoisguard.getList",
WHOISGUARD_RENEW = "Namecheap.Whoisguard.renew"
}
type Command = `${Commands}`;
type Payload = Record<string, string | number>;
interface IReponse<T = any> {
data: T;
status: number;
}
type ICheckDomainResponse = IReponse<{
availabe: boolean;
premium: boolean;
}>;
type IRegisterDomainResponse = IReponse<{
domain: string;
registered: boolean;
chargedAmount: number;
domainID: string;
orderID: string;
transactionID: string;
whoisguardEnable: boolean;
freePositiveSSL: boolean;
nonRealTimeDomain: boolean;
}>;
type IAddFundsRequestResponse = IReponse<{
tokenId: string;
returnURL: string;
redirectURL: string;
}>;
type IGetFundsStatusResponse = IReponse<{
status: string;
amount: number;
}>;
declare enum DomainPriceActions {
REGISTER = "REGISTER",
RENEW = "RENEW",
REACTIVATE = "REACTIVATE",
TRANSFER = "TRANSFER"
}
type DomainPriceAction = `${DomainPriceActions}`;
type AddFundsRequestPayload = {
username?: string;
paymentType: "creditcard";
amount: number;
returnURL: string;
};
interface INamecheapConfig {
apiUser: string;
apiKey: string;
username: string;
clientIp: string;
}
declare class Namecheap {
private readonly config;
private readonly apiClient;
constructor(config: INamecheapConfig, sandbox?: boolean);
call(command: Command, payload: Payload): Promise<IReponse>;
checkDomain(domainName: string): Promise<ICheckDomainResponse>;
getDomainPrice(domainName: string, action: DomainPriceAction): Promise<IReponse<object[]>>;
registerDomain(payload: Payload): Promise<IRegisterDomainResponse>;
addFundsRequest(payload: AddFundsRequestPayload): Promise<IAddFundsRequestResponse>;
getFundsStatus(tokenId: string): Promise<IGetFundsStatusResponse>;
}
export { AddFundsRequestPayload, Command, Commands, DomainPriceAction, DomainPriceActions, IAddFundsRequestResponse, ICheckDomainResponse, IGetFundsStatusResponse, INamecheapConfig, IRegisterDomainResponse, IReponse, Payload, Namecheap as default };