{"version":3,"sources":["../src/commands.ts","../src/types.ts","../src/api/api-client.ts","../src/api/errors.ts","../src/api/utils.ts","../src/exceptions/InvalidDomainNameException.ts","../src/namecheap.ts"],"sourcesContent":["export enum Commands {\r\n  // domains\r\n  DOMAINS_GETLIST = \"namecheap.domains.getList\",\r\n  DOMAINS_GETCONTACTS = \"namecheap.domains.getContacts\",\r\n  DOMAINS_CREATE = \"namecheap.domains.create\",\r\n  DOMAINS_GETTLDLIST = \"namecheap.domains.getTldList\",\r\n  DOMAINS_SETCONTACTS = \"namecheap.domains.setContacts\",\r\n  DOMAINS_CHECK = \"namecheap.domains.check\",\r\n  DOMAINS_REACTIVATE = \"namecheap.domains.reactivate\",\r\n  DOMAINS_RENEW = \"namecheap.domains.renew\",\r\n  DOMAINS_GETREGISTRARLOCK = \"namecheap.domains.getRegistrarLock\",\r\n  DOMAINS_SETREGISTRARLOCK = \"namecheap.domains.setRegistrarLock\",\r\n  DOMAINS_GETINFO = \"namecheap.domains.getInfo\",\r\n\r\n  // domains.dns\r\n  DOMAINS_DNS_SETDEFAULT = \"namecheap.domains.dns.setDefault\",\r\n  DOMAINS_DNS_SETCUSTOM = \"namecheap.domains.dns.setCustom\",\r\n  DOMAINS_DNS_GETLIST = \"namecheap.domains.dns.getList\",\r\n  DOMAINS_DNS_GETHOSTS = \"namecheap.domains.dns.getHosts\",\r\n  DOMAINS_DNS_GETEMAILFORWARDING = \"namecheap.domains.dns.getEmailForwarding\",\r\n  DOMAINS_DNS_SETEMAILFORWARDING = \"namecheap.domains.dns.setEmailForwarding\",\r\n  DOMAINS_DNS_SETHOSTS = \"namecheap.domains.dns.setHosts\",\r\n\r\n  // domains.ns\r\n  DOMAINS_NS_CREATE = \"namecheap.domains.ns.create\",\r\n  DOMAINS_NS_DELETE = \"namecheap.domains.ns.delete\",\r\n  DOMAINS_NS_GETINFO = \"namecheap.domains.ns.getInfo\",\r\n  DOMAINS_NS_UPDATE = \"namecheap.domains.ns.update\",\r\n\r\n  // domains.transfer\r\n  DOMAINS_TRANSFER_CREATE = \"namecheap.domains.transfer.create\",\r\n  DOMAINS_TRANSFER_GETSTATUS = \"namecheap.domains.transfer.getStatus\",\r\n  DOMAINS_TRANSFER_UPDATESTATUS = \"namecheap.domains.transfer.updateStatus\",\r\n  DOMAINS_TRANSFER_GETLIST = \"namecheap.domains.transfer.getList\",\r\n\r\n  // ssl\r\n  SSL_CREATE = \"namecheap.ssl.create\",\r\n  SSL_GETLIST = \"namecheap.ssl.getList\",\r\n  SSL_PARSECSR = \"namecheap.ssl.parseCSR\",\r\n  SSL_GETAPPROVEREMAILLIST = \"namecheap.ssl.getApproverEmailList\",\r\n  SSL_ACTIVATE = \"namecheap.ssl.activate\",\r\n  SSL_RESENDAPPROVEREMAIL = \"namecheap.ssl.resendApproverEmail\",\r\n  SSL_GETINFO = \"namecheap.ssl.getInfo\",\r\n  SSL_RENEW = \"namecheap.ssl.renew\",\r\n  SSL_REISSUE = \"namecheap.ssl.reissue\",\r\n  SSL_RESENDFULFILLMENTEMAIL = \"namecheap.ssl.resendfulfillmentemail\",\r\n  SSL_PURCHASEMORESANS = \"namecheap.ssl.purchasemoresans\",\r\n  SSL_REVOKECERTIFICATE = \"namecheap.ssl.revokecertificate\",\r\n  SSL_EDITDCVMETHOD = \"namecheap.ssl.editDCVMethod\",\r\n\r\n  // users\r\n  USERS_GETPRICING = \"namecheap.users.getPricing\",\r\n  USERS_GETBALANCES = \"namecheap.users.getBalances\",\r\n  USERS_CHANGEPASSWORD = \"namecheap.users.changePassword\",\r\n  USERS_UPDATE = \"namecheap.users.update\",\r\n  USERS_CREATEADDFUNDSREQUEST = \"namecheap.users.createaddfundsrequest\",\r\n  USERS_GETADDFUNDSSTATUS = \"namecheap.users.getAddFundsStatus\",\r\n  USERS_CREATE = \"namecheap.users.create\",\r\n  USERS_LOGIN = \"namecheap.users.login\",\r\n  USERS_RESETPASSWORD = \"namecheap.users.resetPassword\",\r\n\r\n  // users.address\r\n  USERS_ADDRESS_CREATE = \"namecheap.users.address.create\",\r\n  USERS_ADDRESS_DELETE = \"namecheap.users.address.delete\",\r\n  USERS_ADDRESS_GETINFO = \"namecheap.users.address.getInfo\",\r\n  USERS_ADDRESS_GETLIST = \"namecheap.users.address.getList\",\r\n  USERS_ADDRESS_SETDEFAULT = \"namecheap.users.address.setDefault\",\r\n  USERS_ADDRESS_UPDATE = \"namecheap.users.address.update\",\r\n\r\n  // domainprivacy\r\n  WHOISGUARD_CHANGEEMAILADDRESS = \"Namecheap.Whoisguard.changeemailaddress\",\r\n  WHOISGUARD_ENABLE = \"Namecheap.Whoisguard.enable\",\r\n  WHOISGUARD_DISABLE = \"Namecheap.Whoisguard.disable\",\r\n  WHOISGUARD_GETLIST = \"Namecheap.Whoisguard.getList\",\r\n  WHOISGUARD_RENEW = \"Namecheap.Whoisguard.renew\",\r\n}\r\n\r\nexport type Command = `${Commands}`;\r\n","export type Payload = Record<string, string | number>;\r\n\r\nexport interface IReponse<T = any> {\r\n  data: T;\r\n  status: number;\r\n}\r\n\r\nexport type ICheckDomainResponse = IReponse<{\r\n  availabe: boolean;\r\n  premium: boolean;\r\n}>;\r\n\r\nexport type IRegisterDomainResponse = IReponse<{\r\n  domain: string;\r\n  registered: boolean;\r\n  chargedAmount: number;\r\n  domainID: string;\r\n  orderID: string;\r\n  transactionID: string;\r\n  whoisguardEnable: boolean;\r\n  freePositiveSSL: boolean;\r\n  nonRealTimeDomain: boolean;\r\n}>;\r\n\r\nexport type IAddFundsRequestResponse = IReponse<{\r\n  tokenId: string;\r\n  returnURL: string;\r\n  redirectURL: string;\r\n}>;\r\n\r\nexport type IGetFundsStatusResponse = IReponse<{\r\n  status: string;\r\n  amount: number;\r\n}>;\r\n\r\nexport enum DomainPriceActions {\r\n  REGISTER = \"REGISTER\",\r\n  RENEW = \"RENEW\",\r\n  REACTIVATE = \"REACTIVATE\",\r\n  TRANSFER = \"TRANSFER\",\r\n}\r\n\r\nexport type DomainPriceAction = `${DomainPriceActions}`;\r\n\r\nexport type AddFundsRequestPayload = {\r\n  username?: string;\r\n  paymentType: \"creditcard\";\r\n  amount: number;\r\n  returnURL: string;\r\n};\r\n","import axios, { AxiosInstance, AxiosResponse } from \"axios\";\r\nimport { ResponseError, XMLParsingError } from \"./errors\";\r\nimport { parseXMLString } from \"./utils\";\r\n\r\nclass APIClient {\r\n  private readonly _client: AxiosInstance;\r\n  constructor(baseURL: string) {\r\n    this._client = axios.create({ baseURL });\r\n    this._client.interceptors.response.use(this.onResponse);\r\n  }\r\n\r\n  async get(url: string) {\r\n    return await this._client.get(url);\r\n  }\r\n\r\n  async post(url: string) {\r\n    return await this._client.post(url);\r\n  }\r\n\r\n  private async onResponse(response: AxiosResponse): Promise<AxiosResponse> {\r\n    try {\r\n      const result = await parseXMLString(response.data);\r\n\r\n      if (result.ApiResponse.$.Status === \"ERROR\") {\r\n        const responseErrors = result.ApiResponse.Errors;\r\n        const code = responseErrors.Error.$.Number;\r\n        const message = responseErrors.Error._;\r\n\r\n        throw new ResponseError(message, code);\r\n      }\r\n\r\n      response.data = result.ApiResponse.CommandResponse;\r\n    } catch (err) {\r\n      response.status = 400;\r\n      if (err instanceof ResponseError) {\r\n        throw err;\r\n      }\r\n\r\n      throw new XMLParsingError();\r\n    }\r\n\r\n    return response;\r\n  }\r\n}\r\n\r\nexport default APIClient;\r\n","export class XMLParsingError extends Error {\r\n  constructor() {\r\n    super(\"Invalid XML response\");\r\n\r\n    this.name = \"XMLParsingError\";\r\n  }\r\n}\r\n\r\nexport class ResponseError extends Error {\r\n  constructor(message: string, readonly code?: number) {\r\n    super((code ? `${code}: ` : \"\") + message);\r\n\r\n    this.name = \"ResponseError\";\r\n  }\r\n}\r\n","import { parseStringPromise } from \"xml2js\";\r\n\r\nexport function parseXMLString(xml: string): Promise<any> {\r\n  return parseStringPromise(xml, {\r\n    explicitArray: false,\r\n    attrValueProcessors: [transformValues],\r\n  });\r\n}\r\n\r\nfunction transformValues(value: string, name: string) {\r\n  // check boolean\r\n  if (value === \"false\" || value === \"true\") {\r\n    return value === \"true\";\r\n  }\r\n\r\n  // check numbers\r\n  if (!isNaN(+value)) {\r\n    return +value;\r\n  }\r\n\r\n  return value;\r\n}\r\n","export class InvalidDomainNameException extends Error {\r\n  constructor(domainName: string) {\r\n    super(`The provided domain name [${domainName}] is not valid`);\r\n\r\n    this.name = \"InvalidDomainNameException\";\r\n  }\r\n}\r\n","import APIClient from \"./api\";\r\nimport { Commands, Command } from \"./commands\";\r\nimport { InvalidDomainNameException } from \"./exceptions\";\r\nimport {\r\n  AddFundsRequestPayload,\r\n  DomainPriceAction,\r\n  IAddFundsRequestResponse,\r\n  ICheckDomainResponse,\r\n  IGetFundsStatusResponse,\r\n  IRegisterDomainResponse,\r\n  IReponse,\r\n  Payload,\r\n} from \"./types\";\r\n\r\nexport interface INamecheapConfig {\r\n  apiUser: string;\r\n  apiKey: string;\r\n  username: string;\r\n  clientIp: string;\r\n}\r\n\r\nclass Namecheap {\r\n  private readonly apiClient: APIClient;\r\n  constructor(private readonly config: INamecheapConfig, sandbox?: boolean) {\r\n    const baseURL = `https://api${\r\n      sandbox ? \".sandbox\" : \"\"\r\n    }.namecheap.com/xml.response`;\r\n    this.apiClient = new APIClient(baseURL);\r\n  }\r\n\r\n  async call(command: Command, payload: Payload): Promise<IReponse> {\r\n    const { username, ...config } = this.config;\r\n\r\n    const params = {\r\n      username,\r\n      ...payload,\r\n      ...config,\r\n      command,\r\n    };\r\n\r\n    const url = \"?\" + new URLSearchParams(params).toString();\r\n\r\n    const { data, status } = await this.apiClient.post(url);\r\n\r\n    return { data, status };\r\n  }\r\n\r\n  async checkDomain(domainName: string): Promise<ICheckDomainResponse> {\r\n    const { data, status } = await this.call(Commands.DOMAINS_CHECK, {\r\n      DomainList: domainName,\r\n    });\r\n\r\n    const response: ICheckDomainResponse = {\r\n      data: {\r\n        availabe: data.DomainCheckResult.$.Available,\r\n        premium: data.DomainCheckResult.$.IsPremiumName,\r\n      },\r\n      status,\r\n    };\r\n\r\n    return response;\r\n  }\r\n\r\n  async getDomainPrice(\r\n    domainName: string,\r\n    action: DomainPriceAction\r\n  ): Promise<IReponse<object[]>> {\r\n    const [_, tld] = domainName.split(\".\");\r\n    if (!tld) {\r\n      throw new InvalidDomainNameException(domainName);\r\n    }\r\n\r\n    const { data, status } = await this.call(Commands.USERS_GETPRICING, {\r\n      ProductType: \"DOMAIN\",\r\n      ProductCategory: \"DOMAINS\",\r\n      ActionName: action,\r\n      ProductName: tld,\r\n    });\r\n\r\n    const pricing: object[] = (\r\n      data.UserGetPricingResult?.ProductType?.ProductCategory?.Product?.Price ||\r\n      []\r\n    ).map((price: any) => ({ ...price.$ }));\r\n\r\n    return { data: pricing, status };\r\n  }\r\n\r\n  async registerDomain(payload: Payload): Promise<IRegisterDomainResponse> {\r\n    const { data, status } = await this.call(Commands.DOMAINS_CREATE, payload);\r\n\r\n    const result = data?.DomainCreateResult?.$;\r\n\r\n    const response: IRegisterDomainResponse = {\r\n      data: {\r\n        domain: result.Domain,\r\n        registered: result.Registered,\r\n        chargedAmount: result.ChargedAmount,\r\n        domainID: result.DomainID,\r\n        orderID: result.OrderID,\r\n        transactionID: result.TransactionID,\r\n        whoisguardEnable: result.WhoisguardEnable,\r\n        freePositiveSSL: result.FreePositiveSSL,\r\n        nonRealTimeDomain: result.NonRealTimeDomain,\r\n      },\r\n      status,\r\n    };\r\n\r\n    return response;\r\n  }\r\n\r\n  async addFundsRequest(\r\n    payload: AddFundsRequestPayload\r\n  ): Promise<IAddFundsRequestResponse> {\r\n    const { data, status } = await this.call(\r\n      Commands.USERS_CREATEADDFUNDSREQUEST,\r\n      payload\r\n    );\r\n\r\n    const result = data.Createaddfundsrequestresult.$;\r\n\r\n    const response: IAddFundsRequestResponse = {\r\n      data: {\r\n        tokenId: result.TokenID,\r\n        returnURL: result.ReturnURL,\r\n        redirectURL: result.RedirectURL,\r\n      },\r\n      status,\r\n    };\r\n\r\n    return response;\r\n  }\r\n\r\n  async getFundsStatus(tokenId: string): Promise<IGetFundsStatusResponse> {\r\n    const { data, status } = await this.call(Commands.USERS_GETADDFUNDSSTATUS, {\r\n      tokenId,\r\n    });\r\n\r\n    const result = data.GetAddFundsStatusResult.$;\r\n\r\n    const response: IGetFundsStatusResponse = {\r\n      data: {\r\n        amount: result.Amount,\r\n        status: result.Status,\r\n      },\r\n      status,\r\n    };\r\n\r\n    return response;\r\n  }\r\n}\r\n\r\nexport default Namecheap;\r\n"],"mappings":"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","names":["Commands","DomainPriceActions"]}