{"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_GET_LIST = \"namecheap.domains.getList\",\r\n  DOMAINS_GET_CONTACTS = \"namecheap.domains.getContacts\",\r\n  DOMAINS_CREATE = \"namecheap.domains.create\",\r\n  DOMAINS_GET_TLD_LIST = \"namecheap.domains.getTldList\",\r\n  DOMAINS_SET_CONTACTS = \"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_GET_REGISTRAR_LOCK = \"namecheap.domains.getRegistrarLock\",\r\n  DOMAINS_SET_REGISTRAR_LOCK = \"namecheap.domains.setRegistrarLock\",\r\n  DOMAINS_GET_INFO = \"namecheap.domains.getInfo\",\r\n\r\n  // domains.dns\r\n  DOMAINS_DNS_SET_DEFAULT = \"namecheap.domains.dns.setDefault\",\r\n  DOMAINS_DNS_SET_CUSTOM = \"namecheap.domains.dns.setCustom\",\r\n  DOMAINS_DNS_GET_LIST = \"namecheap.domains.dns.getList\",\r\n  DOMAINS_DNS_GET_HOSTS = \"namecheap.domains.dns.getHosts\",\r\n  DOMAINS_DNS_GET_EMAIL_FORWARDING = \"namecheap.domains.dns.getEmailForwarding\",\r\n  DOMAINS_DNS_SET_EMAIL_FORWARDING = \"namecheap.domains.dns.setEmailForwarding\",\r\n  DOMAINS_DNS_SET_HOSTS = \"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_GET_INFO = \"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_GET_STATUS = \"namecheap.domains.transfer.getStatus\",\r\n  DOMAINS_TRANSFER_UPDATE_STATUS = \"namecheap.domains.transfer.updateStatus\",\r\n  DOMAINS_TRANSFER_GET_LIST = \"namecheap.domains.transfer.getList\",\r\n\r\n  // ssl\r\n  SSL_CREATE = \"namecheap.ssl.create\",\r\n  SSL_GET_LIST = \"namecheap.ssl.getList\",\r\n  SSL_PARSE_CSR = \"namecheap.ssl.parseCSR\",\r\n  SSL_GET_APPROVER_EMAIL_LIST = \"namecheap.ssl.getApproverEmailList\",\r\n  SSL_ACTIVATE = \"namecheap.ssl.activate\",\r\n  SSL_RESEND_APPROVER_EMAIL = \"namecheap.ssl.resendApproverEmail\",\r\n  SSL_GET_INFO = \"namecheap.ssl.getInfo\",\r\n  SSL_RENEW = \"namecheap.ssl.renew\",\r\n  SSL_REISSUE = \"namecheap.ssl.reissue\",\r\n  SSL_RESEND_FULFILLMENT_EMAIL = \"namecheap.ssl.resendfulfillmentemail\",\r\n  SSL_PURCHASE_MORE_SANS = \"namecheap.ssl.purchasemoresans\",\r\n  SSL_REVOKE_CERTIFICATE = \"namecheap.ssl.revokecertificate\",\r\n  SSL_EDIT_DCV_METHOD = \"namecheap.ssl.editDCVMethod\",\r\n\r\n  // users\r\n  USERS_GET_PRICING = \"namecheap.users.getPricing\",\r\n  USERS_GET_BALANCES = \"namecheap.users.getBalances\",\r\n  USERS_CHANGE_PASSWORD = \"namecheap.users.changePassword\",\r\n  USERS_UPDATE = \"namecheap.users.update\",\r\n  USERS_CREATE_ADD_FUNDS_REQUEST = \"namecheap.users.createaddfundsrequest\",\r\n  USERS_GET_ADD_FUNDS_STATUS = \"namecheap.users.getAddFundsStatus\",\r\n  USERS_CREATE = \"namecheap.users.create\",\r\n  USERS_LOGIN = \"namecheap.users.login\",\r\n  USERS_RESET_PASSWORD = \"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_GET_INFO = \"namecheap.users.address.getInfo\",\r\n  USERS_ADDRESS_GET_LIST = \"namecheap.users.address.getList\",\r\n  USERS_ADDRESS_SET_DEFAULT = \"namecheap.users.address.setDefault\",\r\n  USERS_ADDRESS_UPDATE = \"namecheap.users.address.update\",\r\n\r\n  // domain privacy\r\n  WHO_IS_GUARD_CHANGE_EMAIL_ADDRESS = \"Namecheap.Whoisguard.changeemailaddress\",\r\n  WHO_IS_GUARD_ENABLE = \"Namecheap.Whoisguard.enable\",\r\n  WHO_IS_GUARD_DISABLE = \"Namecheap.Whoisguard.disable\",\r\n  WHO_IS_GUARD_GET_LIST = \"Namecheap.Whoisguard.getList\",\r\n  WHO_IS_GUARD_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 IResponse<T = any> {\r\n  data: T;\r\n  status: number;\r\n}\r\n\r\nexport type ICheckDomainResponse = IResponse<{\r\n  available: boolean;\r\n  premium: boolean;\r\n}>;\r\n\r\nexport type IRegisterDomainResponse = IResponse<{\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 = IResponse<{\r\n  tokenId: string;\r\n  returnURL: string;\r\n  redirectURL: string;\r\n}>;\r\n\r\nexport type IGetFundsStatusResponse = IResponse<{\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\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  public async get(url: string) {\r\n    return await this._client.get(url);\r\n  }\r\n\r\n  public 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 {\n  constructor() {\n    super(\"Invalid XML response\");\n\n    this.name = \"XMLParsingError\";\n  }\n}\n\nexport class ResponseError extends Error {\n  constructor(message: string, readonly code?: number) {\n    super((code ? `${code}: ` : \"\") + message);\n\n    this.name = \"ResponseError\";\n  }\n}\n","import { parseStringPromise } from \"xml2js\";\n\nexport function parseXMLString(xml: string): Promise<any> {\n  return parseStringPromise(xml, {\n    explicitArray: false,\n    attrValueProcessors: [transformValues],\n  });\n}\n\nfunction transformValues(value: string, name: string) {\n  // check boolean\n  if (value === \"false\" || value === \"true\") {\n    return value === \"true\";\n  }\n\n  // check numbers\n  if (!isNaN(+value)) {\n    return +value;\n  }\n\n  return value;\n}\n","export class InvalidDomainNameException extends Error {\n  constructor(domainName: string) {\n    super(`The provided domain name [${domainName}] is not valid`);\n\n    this.name = \"InvalidDomainNameException\";\n  }\n}\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  IResponse,\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\r\n  constructor(\r\n    private readonly config: INamecheapConfig,\r\n    sandbox?: boolean,\r\n  ) {\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  public async call(command: Command, payload: Payload): Promise<IResponse> {\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  public 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        available: 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  public async getDomainPrice(\r\n    domainName: string,\r\n    action: DomainPriceAction,\r\n  ): Promise<IResponse<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_GET_PRICING, {\r\n      ProductType: \"DOMAIN\",\r\n      ProductCategory: \"DOMAINS\",\r\n      ActionName: action,\r\n      ProductName: tld,\r\n    });\r\n\r\n    const price =\r\n      data.UserGetPricingResult?.ProductType?.ProductCategory?.Product?.Price;\r\n\r\n    if (!price) {\r\n      throw new InvalidDomainNameException(domainName);\r\n    }\r\n\r\n    const pricing: object[] = Array.isArray(price)\r\n      ? price.map((price: any) => ({ ...price.$ }))\r\n      : [{ ...price.$ }];\r\n\r\n    return { data: pricing, status };\r\n  }\r\n\r\n  public async registerDomain(\r\n    payload: Payload,\r\n  ): 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  public async addFundsRequest(\r\n    payload: AddFundsRequestPayload,\r\n  ): Promise<IAddFundsRequestResponse> {\r\n    const { data, status } = await this.call(\r\n      Commands.USERS_CREATE_ADD_FUNDS_REQUEST,\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  public async getFundsStatus(\r\n    tokenId: string,\r\n  ): Promise<IGetFundsStatusResponse> {\r\n    const { data, status } = await this.call(\r\n      Commands.USERS_GET_ADD_FUNDS_STATUS,\r\n      {\r\n        tokenId,\r\n      },\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","price"]}