namecheap-ts
Version:
A simple wrapper for namecheap API
126 lines (122 loc) • 5.63 kB
text/typescript
declare enum Commands {
DOMAINS_GET_LIST = "namecheap.domains.getList",
DOMAINS_GET_CONTACTS = "namecheap.domains.getContacts",
DOMAINS_CREATE = "namecheap.domains.create",
DOMAINS_GET_TLD_LIST = "namecheap.domains.getTldList",
DOMAINS_SET_CONTACTS = "namecheap.domains.setContacts",
DOMAINS_CHECK = "namecheap.domains.check",
DOMAINS_REACTIVATE = "namecheap.domains.reactivate",
DOMAINS_RENEW = "namecheap.domains.renew",
DOMAINS_GET_REGISTRAR_LOCK = "namecheap.domains.getRegistrarLock",
DOMAINS_SET_REGISTRAR_LOCK = "namecheap.domains.setRegistrarLock",
DOMAINS_GET_INFO = "namecheap.domains.getInfo",
DOMAINS_DNS_SET_DEFAULT = "namecheap.domains.dns.setDefault",
DOMAINS_DNS_SET_CUSTOM = "namecheap.domains.dns.setCustom",
DOMAINS_DNS_GET_LIST = "namecheap.domains.dns.getList",
DOMAINS_DNS_GET_HOSTS = "namecheap.domains.dns.getHosts",
DOMAINS_DNS_GET_EMAIL_FORWARDING = "namecheap.domains.dns.getEmailForwarding",
DOMAINS_DNS_SET_EMAIL_FORWARDING = "namecheap.domains.dns.setEmailForwarding",
DOMAINS_DNS_SET_HOSTS = "namecheap.domains.dns.setHosts",
DOMAINS_NS_CREATE = "namecheap.domains.ns.create",
DOMAINS_NS_DELETE = "namecheap.domains.ns.delete",
DOMAINS_NS_GET_INFO = "namecheap.domains.ns.getInfo",
DOMAINS_NS_UPDATE = "namecheap.domains.ns.update",
DOMAINS_TRANSFER_CREATE = "namecheap.domains.transfer.create",
DOMAINS_TRANSFER_GET_STATUS = "namecheap.domains.transfer.getStatus",
DOMAINS_TRANSFER_UPDATE_STATUS = "namecheap.domains.transfer.updateStatus",
DOMAINS_TRANSFER_GET_LIST = "namecheap.domains.transfer.getList",
SSL_CREATE = "namecheap.ssl.create",
SSL_GET_LIST = "namecheap.ssl.getList",
SSL_PARSE_CSR = "namecheap.ssl.parseCSR",
SSL_GET_APPROVER_EMAIL_LIST = "namecheap.ssl.getApproverEmailList",
SSL_ACTIVATE = "namecheap.ssl.activate",
SSL_RESEND_APPROVER_EMAIL = "namecheap.ssl.resendApproverEmail",
SSL_GET_INFO = "namecheap.ssl.getInfo",
SSL_RENEW = "namecheap.ssl.renew",
SSL_REISSUE = "namecheap.ssl.reissue",
SSL_RESEND_FULFILLMENT_EMAIL = "namecheap.ssl.resendfulfillmentemail",
SSL_PURCHASE_MORE_SANS = "namecheap.ssl.purchasemoresans",
SSL_REVOKE_CERTIFICATE = "namecheap.ssl.revokecertificate",
SSL_EDIT_DCV_METHOD = "namecheap.ssl.editDCVMethod",
USERS_GET_PRICING = "namecheap.users.getPricing",
USERS_GET_BALANCES = "namecheap.users.getBalances",
USERS_CHANGE_PASSWORD = "namecheap.users.changePassword",
USERS_UPDATE = "namecheap.users.update",
USERS_CREATE_ADD_FUNDS_REQUEST = "namecheap.users.createaddfundsrequest",
USERS_GET_ADD_FUNDS_STATUS = "namecheap.users.getAddFundsStatus",
USERS_CREATE = "namecheap.users.create",
USERS_LOGIN = "namecheap.users.login",
USERS_RESET_PASSWORD = "namecheap.users.resetPassword",
USERS_ADDRESS_CREATE = "namecheap.users.address.create",
USERS_ADDRESS_DELETE = "namecheap.users.address.delete",
USERS_ADDRESS_GET_INFO = "namecheap.users.address.getInfo",
USERS_ADDRESS_GET_LIST = "namecheap.users.address.getList",
USERS_ADDRESS_SET_DEFAULT = "namecheap.users.address.setDefault",
USERS_ADDRESS_UPDATE = "namecheap.users.address.update",
WHO_IS_GUARD_CHANGE_EMAIL_ADDRESS = "Namecheap.Whoisguard.changeemailaddress",
WHO_IS_GUARD_ENABLE = "Namecheap.Whoisguard.enable",
WHO_IS_GUARD_DISABLE = "Namecheap.Whoisguard.disable",
WHO_IS_GUARD_GET_LIST = "Namecheap.Whoisguard.getList",
WHO_IS_GUARD_RENEW = "Namecheap.Whoisguard.renew"
}
type Command = `${Commands}`;
type Payload = Record<string, string | number>;
interface IResponse<T = any> {
data: T;
status: number;
}
type ICheckDomainResponse = IResponse<{
available: boolean;
premium: boolean;
}>;
type IRegisterDomainResponse = IResponse<{
domain: string;
registered: boolean;
chargedAmount: number;
domainID: string;
orderID: string;
transactionID: string;
whoIsGuardEnable: boolean;
freePositiveSSL: boolean;
nonRealTimeDomain: boolean;
}>;
type IAddFundsRequestResponse = IResponse<{
tokenId: string;
returnURL: string;
redirectURL: string;
}>;
type IGetFundsStatusResponse = IResponse<{
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<IResponse>;
checkDomain(domainName: string): Promise<ICheckDomainResponse>;
getDomainPrice(domainName: string, action: DomainPriceAction): Promise<IResponse<object[]>>;
registerDomain(payload: Payload): Promise<IRegisterDomainResponse>;
addFundsRequest(payload: AddFundsRequestPayload): Promise<IAddFundsRequestResponse>;
getFundsStatus(tokenId: string): Promise<IGetFundsStatusResponse>;
}
export { type AddFundsRequestPayload, type Command, Commands, type DomainPriceAction, DomainPriceActions, type IAddFundsRequestResponse, type ICheckDomainResponse, type IGetFundsStatusResponse, type INamecheapConfig, type IRegisterDomainResponse, type IResponse, type Payload, Namecheap as default };