namecheap-ts 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,17 +1,21 @@
1
1
  declare const COMMANDS: readonly ["namecheap.domains.getList", "namecheap.domains.getContacts", "namecheap.domains.create", "namecheap.domains.getTldList", "namecheap.domains.setContacts", "namecheap.domains.check", "namecheap.domains.reactivate", "namecheap.domains.renew", "namecheap.domains.getRegistrarLock", "namecheap.domains.setRegistrarLock", "namecheap.domains.getInfo", "namecheap.domains.dns.setDefault", "namecheap.domains.dns.setCustom", "namecheap.domains.dns.getList", "namecheap.domains.dns.getHosts", "namecheap.domains.dns.getEmailForwarding", "namecheap.domains.dns.setEmailForwarding", "namecheap.domains.dns.setHosts", "namecheap.domains.ns.create", "namecheap.domains.ns.delete", "namecheap.domains.ns.getInfo", "namecheap.domains.ns.update", "namecheap.domains.transfer.create", "namecheap.domains.transfer.getStatus", "namecheap.domains.transfer.updateStatus", "namecheap.domains.transfer.getList", "namecheap.ssl.create", "namecheap.ssl.getList", "namecheap.ssl.parseCSR", "namecheap.ssl.getApproverEmailList", "namecheap.ssl.activate", "namecheap.ssl.resendApproverEmail", "namecheap.ssl.getInfo", "namecheap.ssl.renew", "namecheap.ssl.reissue", "namecheap.ssl.resendfulfillmentemail", "namecheap.ssl.purchasemoresans", "namecheap.ssl.revokecertificate", "namecheap.ssl.editDCVMethod", "namecheap.users.getPricing", "namecheap.users.getBalances", "namecheap.users.changePassword", "namecheap.users.update", "namecheap.users.createaddfundsrequest", "namecheap.users.getAddFundsStatus", "namecheap.users.create", "namecheap.users.login", "namecheap.users.resetPassword", "namecheap.users.address.create", "namecheap.users.address.delete", "namecheap.users.address.getInfo", "namecheap.users.address.getList", "namecheap.users.address.setDefault", "namecheap.users.address.update", "Namecheap.Whoisguard.changeemailaddress", "Namecheap.Whoisguard.enable", "Namecheap.Whoisguard.disable", "Namecheap.Whoisguard.getList", "Namecheap.Whoisguard.renew"];
2
2
  type ICommand = (typeof COMMANDS)[number];
3
3
 
4
- interface INameCheapConfig {
4
+ interface INamecheapConfig {
5
5
  ApiUser: string;
6
6
  ApiKey: string;
7
7
  UserName: string;
8
8
  ClientIp: string;
9
9
  }
10
- declare class NameCheap {
10
+ interface ICallReponse {
11
+ data: any;
12
+ status: number;
13
+ }
14
+ declare class Namecheap {
11
15
  private readonly config;
12
16
  private readonly apiClient;
13
- constructor(config: INameCheapConfig, sandbox?: boolean);
14
- call(command: ICommand, payload: Record<string, string>): Promise<any>;
17
+ constructor(config: INamecheapConfig, sandbox?: boolean);
18
+ call(command: ICommand, payload: Record<string, string>): Promise<ICallReponse>;
15
19
  }
16
20
 
17
- export { INameCheapConfig, NameCheap as default };
21
+ export { ICallReponse, INamecheapConfig, Namecheap as default };
package/dist/index.d.ts CHANGED
@@ -1,17 +1,21 @@
1
1
  declare const COMMANDS: readonly ["namecheap.domains.getList", "namecheap.domains.getContacts", "namecheap.domains.create", "namecheap.domains.getTldList", "namecheap.domains.setContacts", "namecheap.domains.check", "namecheap.domains.reactivate", "namecheap.domains.renew", "namecheap.domains.getRegistrarLock", "namecheap.domains.setRegistrarLock", "namecheap.domains.getInfo", "namecheap.domains.dns.setDefault", "namecheap.domains.dns.setCustom", "namecheap.domains.dns.getList", "namecheap.domains.dns.getHosts", "namecheap.domains.dns.getEmailForwarding", "namecheap.domains.dns.setEmailForwarding", "namecheap.domains.dns.setHosts", "namecheap.domains.ns.create", "namecheap.domains.ns.delete", "namecheap.domains.ns.getInfo", "namecheap.domains.ns.update", "namecheap.domains.transfer.create", "namecheap.domains.transfer.getStatus", "namecheap.domains.transfer.updateStatus", "namecheap.domains.transfer.getList", "namecheap.ssl.create", "namecheap.ssl.getList", "namecheap.ssl.parseCSR", "namecheap.ssl.getApproverEmailList", "namecheap.ssl.activate", "namecheap.ssl.resendApproverEmail", "namecheap.ssl.getInfo", "namecheap.ssl.renew", "namecheap.ssl.reissue", "namecheap.ssl.resendfulfillmentemail", "namecheap.ssl.purchasemoresans", "namecheap.ssl.revokecertificate", "namecheap.ssl.editDCVMethod", "namecheap.users.getPricing", "namecheap.users.getBalances", "namecheap.users.changePassword", "namecheap.users.update", "namecheap.users.createaddfundsrequest", "namecheap.users.getAddFundsStatus", "namecheap.users.create", "namecheap.users.login", "namecheap.users.resetPassword", "namecheap.users.address.create", "namecheap.users.address.delete", "namecheap.users.address.getInfo", "namecheap.users.address.getList", "namecheap.users.address.setDefault", "namecheap.users.address.update", "Namecheap.Whoisguard.changeemailaddress", "Namecheap.Whoisguard.enable", "Namecheap.Whoisguard.disable", "Namecheap.Whoisguard.getList", "Namecheap.Whoisguard.renew"];
2
2
  type ICommand = (typeof COMMANDS)[number];
3
3
 
4
- interface INameCheapConfig {
4
+ interface INamecheapConfig {
5
5
  ApiUser: string;
6
6
  ApiKey: string;
7
7
  UserName: string;
8
8
  ClientIp: string;
9
9
  }
10
- declare class NameCheap {
10
+ interface ICallReponse {
11
+ data: any;
12
+ status: number;
13
+ }
14
+ declare class Namecheap {
11
15
  private readonly config;
12
16
  private readonly apiClient;
13
- constructor(config: INameCheapConfig, sandbox?: boolean);
14
- call(command: ICommand, payload: Record<string, string>): Promise<any>;
17
+ constructor(config: INamecheapConfig, sandbox?: boolean);
18
+ call(command: ICommand, payload: Record<string, string>): Promise<ICallReponse>;
15
19
  }
16
20
 
17
- export { INameCheapConfig, NameCheap as default };
21
+ export { ICallReponse, INamecheapConfig, Namecheap as default };
package/dist/index.js CHANGED
@@ -126,7 +126,7 @@ var APIClient = class {
126
126
  var api_client_default = APIClient;
127
127
 
128
128
  // src/namecheap.ts
129
- var NameCheap = class {
129
+ var Namecheap = class {
130
130
  constructor(config, sandbox) {
131
131
  this.config = config;
132
132
  const baseURL = `https://api${sandbox ? ".sandbox" : ""}.namecheap.com/xml.response`;
@@ -138,10 +138,10 @@ var NameCheap = class {
138
138
  command
139
139
  });
140
140
  const url = "?" + new URLSearchParams(params).toString();
141
- const response = yield this.apiClient.get(url);
142
- return response.data;
141
+ const { data, status } = yield this.apiClient.get(url);
142
+ return { data, status };
143
143
  });
144
144
  }
145
145
  };
146
- var namecheap_default = NameCheap;
146
+ var namecheap_default = Namecheap;
147
147
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/api/api-client.ts","../src/api/errors.ts","../src/namecheap.ts"],"sourcesContent":["export { default } from \"./namecheap\";\r\nexport { INameCheapConfig } from \"./namecheap\";\r\n\r\n// import fs from \"fs\";\r\n\r\n// import NameCheap from \"./namecheap\";\r\n\r\n// const instance = new NameCheap(\r\n// {\r\n// ApiKey: \"d915adb9b0ac405398def53be001110e\",\r\n// ApiUser: \"Kanakri\",\r\n// UserName: \"Kanakri\",\r\n// ClientIp: \"5.155.10.166\",\r\n// },\r\n// true\r\n// );\r\n\r\n// instance\r\n// .call(\"namecheap.domains.check\", {\r\n// DomainList: \"mezoishere.net\",\r\n// })\r\n// .then((res) => {\r\n// fs.writeFile(\"data.json\", JSON.stringify(res, null, 2), \"utf8\", (err) => {\r\n// console.log(err);\r\n// });\r\n// console.log({ res });\r\n// })\r\n// .catch((err) => {\r\n// console.log({ err });\r\n// });\r\n","import axios, { AxiosInstance, AxiosResponse } from \"axios\";\r\nimport { parseStringPromise } from \"xml2js\";\r\nimport { ResponseError, XMLParsingError } from \"./errors\";\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 private async onResponse(response: AxiosResponse): Promise<AxiosResponse> {\r\n try {\r\n const result = await parseStringPromise(response.data);\r\n\r\n if (result.ApiResponse.$.Status === \"ERROR\") {\r\n const responseErrors = result.ApiResponse.Errors;\r\n const code = responseErrors[0].Error[0].$.Number;\r\n const message = responseErrors[0].Error[0]._;\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 APIClient from \"./api\";\r\nimport { ICommand } from \"./commands\";\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: ICommand, payload: Record<string, string>) {\r\n const params = {\r\n ...this.config,\r\n ...payload,\r\n command,\r\n };\r\n\r\n const url = \"?\" + new URLSearchParams(params).toString();\r\n\r\n const response = await this.apiClient.get(url);\r\n\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default NameCheap;\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAoD;AACpD,oBAAmC;;;ACD5B,IAAM,kBAAN,cAA8B,MAAM;AAAA,EACzC,cAAc;AACZ,UAAM,sBAAsB;AAE5B,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,gBAAN,cAA4B,MAAM;AAAA,EACvC,YAAY,SAA0B,MAAe;AACnD,WAAO,OAAO,GAAG,IAAI,OAAO,MAAM,OAAO;AADL;AAGpC,SAAK,OAAO;AAAA,EACd;AACF;;;ADVA,IAAM,YAAN,MAAgB;AAAA,EAEd,YAAY,SAAiB;AAC3B,SAAK,UAAU,aAAAA,QAAM,OAAO,EAAE,QAAQ,CAAC;AACvC,SAAK,QAAQ,aAAa,SAAS,IAAI,KAAK,UAAU;AAAA,EACxD;AAAA,EAEM,IAAI,KAAa;AAAA;AACrB,aAAO,MAAM,KAAK,QAAQ,IAAI,GAAG;AAAA,IACnC;AAAA;AAAA,EAEc,WAAW,UAAiD;AAAA;AACxE,UAAI;AACF,cAAM,SAAS,UAAM,kCAAmB,SAAS,IAAI;AAErD,YAAI,OAAO,YAAY,EAAE,WAAW,SAAS;AAC3C,gBAAM,iBAAiB,OAAO,YAAY;AAC1C,gBAAM,OAAO,eAAe,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE;AAC1C,gBAAM,UAAU,eAAe,CAAC,EAAE,MAAM,CAAC,EAAE;AAE3C,gBAAM,IAAI,cAAc,SAAS,IAAI;AAAA,QACvC;AAEA,iBAAS,OAAO,OAAO,YAAY;AAAA,MACrC,SAAS,KAAK;AACZ,iBAAS,SAAS;AAClB,YAAI,eAAe,eAAe;AAChC,gBAAM;AAAA,QACR;AAEA,cAAM,IAAI,gBAAgB;AAAA,MAC5B;AAEA,aAAO;AAAA,IACT;AAAA;AACF;AAEA,IAAO,qBAAQ;;;AE/Bf,IAAM,YAAN,MAAgB;AAAA,EAEd,YAA6B,QAA0B,SAAmB;AAA7C;AAC3B,UAAM,UAAU,cACd,UAAU,aAAa,EACzB;AACA,SAAK,YAAY,IAAI,mBAAU,OAAO;AAAA,EACxC;AAAA,EAEM,KAAK,SAAmB,SAAiC;AAAA;AAC7D,YAAM,SAAS,gDACV,KAAK,SACL,UAFU;AAAA,QAGb;AAAA,MACF;AAEA,YAAM,MAAM,MAAM,IAAI,gBAAgB,MAAM,EAAE,SAAS;AAEvD,YAAM,WAAW,MAAM,KAAK,UAAU,IAAI,GAAG;AAE7C,aAAO,SAAS;AAAA,IAClB;AAAA;AACF;AAEA,IAAO,oBAAQ;","names":["axios"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/api/api-client.ts","../src/api/errors.ts","../src/namecheap.ts"],"sourcesContent":["export { default, INamecheapConfig, ICallReponse } from \"./namecheap\";\r\n\r\n// import fs from \"fs\";\r\n\r\n// import NameCheap from \"./namecheap\";\r\n\r\n// const instance = new NameCheap(\r\n// {\r\n// ApiKey: \"d915adb9b0ac405398def53be001110e\",\r\n// ApiUser: \"Kanakri\",\r\n// UserName: \"Kanakri\",\r\n// ClientIp: \"5.155.10.166\",\r\n// },\r\n// true\r\n// );\r\n\r\n// instance\r\n// .call(\"namecheap.domains.check\", {\r\n// DomainList: \"mezoishere.net\",\r\n// })\r\n// .then(({data}) => {\r\n// fs.writeFile(\"data.json\", JSON.stringify(data, null, 2), \"utf8\", (err) => {\r\n// console.log(err);\r\n// });\r\n// console.log({ data });\r\n// })\r\n// .catch((err) => {\r\n// console.log({ err });\r\n// });\r\n","import axios, { AxiosInstance, AxiosResponse } from \"axios\";\r\nimport { parseStringPromise } from \"xml2js\";\r\nimport { ResponseError, XMLParsingError } from \"./errors\";\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 private async onResponse(response: AxiosResponse): Promise<AxiosResponse> {\r\n try {\r\n const result = await parseStringPromise(response.data);\r\n\r\n if (result.ApiResponse.$.Status === \"ERROR\") {\r\n const responseErrors = result.ApiResponse.Errors;\r\n const code = responseErrors[0].Error[0].$.Number;\r\n const message = responseErrors[0].Error[0]._;\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 APIClient from \"./api\";\r\nimport { ICommand } from \"./commands\";\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\nexport interface ICallReponse {\r\n data: any;\r\n status: number;\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(\r\n command: ICommand,\r\n payload: Record<string, string>\r\n ): Promise<ICallReponse> {\r\n const params = {\r\n ...this.config,\r\n ...payload,\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.get(url);\r\n\r\n return { data, status };\r\n }\r\n}\r\n\r\nexport default Namecheap;\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAoD;AACpD,oBAAmC;;;ACD5B,IAAM,kBAAN,cAA8B,MAAM;AAAA,EACzC,cAAc;AACZ,UAAM,sBAAsB;AAE5B,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,gBAAN,cAA4B,MAAM;AAAA,EACvC,YAAY,SAA0B,MAAe;AACnD,WAAO,OAAO,GAAG,IAAI,OAAO,MAAM,OAAO;AADL;AAGpC,SAAK,OAAO;AAAA,EACd;AACF;;;ADVA,IAAM,YAAN,MAAgB;AAAA,EAEd,YAAY,SAAiB;AAC3B,SAAK,UAAU,aAAAA,QAAM,OAAO,EAAE,QAAQ,CAAC;AACvC,SAAK,QAAQ,aAAa,SAAS,IAAI,KAAK,UAAU;AAAA,EACxD;AAAA,EAEM,IAAI,KAAa;AAAA;AACrB,aAAO,MAAM,KAAK,QAAQ,IAAI,GAAG;AAAA,IACnC;AAAA;AAAA,EAEc,WAAW,UAAiD;AAAA;AACxE,UAAI;AACF,cAAM,SAAS,UAAM,kCAAmB,SAAS,IAAI;AAErD,YAAI,OAAO,YAAY,EAAE,WAAW,SAAS;AAC3C,gBAAM,iBAAiB,OAAO,YAAY;AAC1C,gBAAM,OAAO,eAAe,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE;AAC1C,gBAAM,UAAU,eAAe,CAAC,EAAE,MAAM,CAAC,EAAE;AAE3C,gBAAM,IAAI,cAAc,SAAS,IAAI;AAAA,QACvC;AAEA,iBAAS,OAAO,OAAO,YAAY;AAAA,MACrC,SAAS,KAAK;AACZ,iBAAS,SAAS;AAClB,YAAI,eAAe,eAAe;AAChC,gBAAM;AAAA,QACR;AAEA,cAAM,IAAI,gBAAgB;AAAA,MAC5B;AAEA,aAAO;AAAA,IACT;AAAA;AACF;AAEA,IAAO,qBAAQ;;;AE1Bf,IAAM,YAAN,MAAgB;AAAA,EAEd,YAA6B,QAA0B,SAAmB;AAA7C;AAC3B,UAAM,UAAU,cACd,UAAU,aAAa,EACzB;AACA,SAAK,YAAY,IAAI,mBAAU,OAAO;AAAA,EACxC;AAAA,EAEM,KACJ,SACA,SACuB;AAAA;AACvB,YAAM,SAAS,gDACV,KAAK,SACL,UAFU;AAAA,QAGb;AAAA,MACF;AAEA,YAAM,MAAM,MAAM,IAAI,gBAAgB,MAAM,EAAE,SAAS;AAEvD,YAAM,EAAE,MAAM,OAAO,IAAI,MAAM,KAAK,UAAU,IAAI,GAAG;AAErD,aAAO,EAAE,MAAM,OAAO;AAAA,IACxB;AAAA;AACF;AAEA,IAAO,oBAAQ;","names":["axios"]}
package/dist/index.mjs CHANGED
@@ -93,7 +93,7 @@ var APIClient = class {
93
93
  var api_client_default = APIClient;
94
94
 
95
95
  // src/namecheap.ts
96
- var NameCheap = class {
96
+ var Namecheap = class {
97
97
  constructor(config, sandbox) {
98
98
  this.config = config;
99
99
  const baseURL = `https://api${sandbox ? ".sandbox" : ""}.namecheap.com/xml.response`;
@@ -105,12 +105,12 @@ var NameCheap = class {
105
105
  command
106
106
  });
107
107
  const url = "?" + new URLSearchParams(params).toString();
108
- const response = yield this.apiClient.get(url);
109
- return response.data;
108
+ const { data, status } = yield this.apiClient.get(url);
109
+ return { data, status };
110
110
  });
111
111
  }
112
112
  };
113
- var namecheap_default = NameCheap;
113
+ var namecheap_default = Namecheap;
114
114
  export {
115
115
  namecheap_default as default
116
116
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/api/api-client.ts","../src/api/errors.ts","../src/namecheap.ts"],"sourcesContent":["import axios, { AxiosInstance, AxiosResponse } from \"axios\";\r\nimport { parseStringPromise } from \"xml2js\";\r\nimport { ResponseError, XMLParsingError } from \"./errors\";\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 private async onResponse(response: AxiosResponse): Promise<AxiosResponse> {\r\n try {\r\n const result = await parseStringPromise(response.data);\r\n\r\n if (result.ApiResponse.$.Status === \"ERROR\") {\r\n const responseErrors = result.ApiResponse.Errors;\r\n const code = responseErrors[0].Error[0].$.Number;\r\n const message = responseErrors[0].Error[0]._;\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 APIClient from \"./api\";\r\nimport { ICommand } from \"./commands\";\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: ICommand, payload: Record<string, string>) {\r\n const params = {\r\n ...this.config,\r\n ...payload,\r\n command,\r\n };\r\n\r\n const url = \"?\" + new URLSearchParams(params).toString();\r\n\r\n const response = await this.apiClient.get(url);\r\n\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default NameCheap;\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,WAA6C;AACpD,SAAS,0BAA0B;;;ACD5B,IAAM,kBAAN,cAA8B,MAAM;AAAA,EACzC,cAAc;AACZ,UAAM,sBAAsB;AAE5B,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,gBAAN,cAA4B,MAAM;AAAA,EACvC,YAAY,SAA0B,MAAe;AACnD,WAAO,OAAO,GAAG,IAAI,OAAO,MAAM,OAAO;AADL;AAGpC,SAAK,OAAO;AAAA,EACd;AACF;;;ADVA,IAAM,YAAN,MAAgB;AAAA,EAEd,YAAY,SAAiB;AAC3B,SAAK,UAAU,MAAM,OAAO,EAAE,QAAQ,CAAC;AACvC,SAAK,QAAQ,aAAa,SAAS,IAAI,KAAK,UAAU;AAAA,EACxD;AAAA,EAEM,IAAI,KAAa;AAAA;AACrB,aAAO,MAAM,KAAK,QAAQ,IAAI,GAAG;AAAA,IACnC;AAAA;AAAA,EAEc,WAAW,UAAiD;AAAA;AACxE,UAAI;AACF,cAAM,SAAS,MAAM,mBAAmB,SAAS,IAAI;AAErD,YAAI,OAAO,YAAY,EAAE,WAAW,SAAS;AAC3C,gBAAM,iBAAiB,OAAO,YAAY;AAC1C,gBAAM,OAAO,eAAe,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE;AAC1C,gBAAM,UAAU,eAAe,CAAC,EAAE,MAAM,CAAC,EAAE;AAE3C,gBAAM,IAAI,cAAc,SAAS,IAAI;AAAA,QACvC;AAEA,iBAAS,OAAO,OAAO,YAAY;AAAA,MACrC,SAAS,KAAK;AACZ,iBAAS,SAAS;AAClB,YAAI,eAAe,eAAe;AAChC,gBAAM;AAAA,QACR;AAEA,cAAM,IAAI,gBAAgB;AAAA,MAC5B;AAEA,aAAO;AAAA,IACT;AAAA;AACF;AAEA,IAAO,qBAAQ;;;AE/Bf,IAAM,YAAN,MAAgB;AAAA,EAEd,YAA6B,QAA0B,SAAmB;AAA7C;AAC3B,UAAM,UAAU,cACd,UAAU,aAAa,EACzB;AACA,SAAK,YAAY,IAAI,mBAAU,OAAO;AAAA,EACxC;AAAA,EAEM,KAAK,SAAmB,SAAiC;AAAA;AAC7D,YAAM,SAAS,gDACV,KAAK,SACL,UAFU;AAAA,QAGb;AAAA,MACF;AAEA,YAAM,MAAM,MAAM,IAAI,gBAAgB,MAAM,EAAE,SAAS;AAEvD,YAAM,WAAW,MAAM,KAAK,UAAU,IAAI,GAAG;AAE7C,aAAO,SAAS;AAAA,IAClB;AAAA;AACF;AAEA,IAAO,oBAAQ;","names":[]}
1
+ {"version":3,"sources":["../src/api/api-client.ts","../src/api/errors.ts","../src/namecheap.ts"],"sourcesContent":["import axios, { AxiosInstance, AxiosResponse } from \"axios\";\r\nimport { parseStringPromise } from \"xml2js\";\r\nimport { ResponseError, XMLParsingError } from \"./errors\";\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 private async onResponse(response: AxiosResponse): Promise<AxiosResponse> {\r\n try {\r\n const result = await parseStringPromise(response.data);\r\n\r\n if (result.ApiResponse.$.Status === \"ERROR\") {\r\n const responseErrors = result.ApiResponse.Errors;\r\n const code = responseErrors[0].Error[0].$.Number;\r\n const message = responseErrors[0].Error[0]._;\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 APIClient from \"./api\";\r\nimport { ICommand } from \"./commands\";\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\nexport interface ICallReponse {\r\n data: any;\r\n status: number;\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(\r\n command: ICommand,\r\n payload: Record<string, string>\r\n ): Promise<ICallReponse> {\r\n const params = {\r\n ...this.config,\r\n ...payload,\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.get(url);\r\n\r\n return { data, status };\r\n }\r\n}\r\n\r\nexport default Namecheap;\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,WAA6C;AACpD,SAAS,0BAA0B;;;ACD5B,IAAM,kBAAN,cAA8B,MAAM;AAAA,EACzC,cAAc;AACZ,UAAM,sBAAsB;AAE5B,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,gBAAN,cAA4B,MAAM;AAAA,EACvC,YAAY,SAA0B,MAAe;AACnD,WAAO,OAAO,GAAG,IAAI,OAAO,MAAM,OAAO;AADL;AAGpC,SAAK,OAAO;AAAA,EACd;AACF;;;ADVA,IAAM,YAAN,MAAgB;AAAA,EAEd,YAAY,SAAiB;AAC3B,SAAK,UAAU,MAAM,OAAO,EAAE,QAAQ,CAAC;AACvC,SAAK,QAAQ,aAAa,SAAS,IAAI,KAAK,UAAU;AAAA,EACxD;AAAA,EAEM,IAAI,KAAa;AAAA;AACrB,aAAO,MAAM,KAAK,QAAQ,IAAI,GAAG;AAAA,IACnC;AAAA;AAAA,EAEc,WAAW,UAAiD;AAAA;AACxE,UAAI;AACF,cAAM,SAAS,MAAM,mBAAmB,SAAS,IAAI;AAErD,YAAI,OAAO,YAAY,EAAE,WAAW,SAAS;AAC3C,gBAAM,iBAAiB,OAAO,YAAY;AAC1C,gBAAM,OAAO,eAAe,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE;AAC1C,gBAAM,UAAU,eAAe,CAAC,EAAE,MAAM,CAAC,EAAE;AAE3C,gBAAM,IAAI,cAAc,SAAS,IAAI;AAAA,QACvC;AAEA,iBAAS,OAAO,OAAO,YAAY;AAAA,MACrC,SAAS,KAAK;AACZ,iBAAS,SAAS;AAClB,YAAI,eAAe,eAAe;AAChC,gBAAM;AAAA,QACR;AAEA,cAAM,IAAI,gBAAgB;AAAA,MAC5B;AAEA,aAAO;AAAA,IACT;AAAA;AACF;AAEA,IAAO,qBAAQ;;;AE1Bf,IAAM,YAAN,MAAgB;AAAA,EAEd,YAA6B,QAA0B,SAAmB;AAA7C;AAC3B,UAAM,UAAU,cACd,UAAU,aAAa,EACzB;AACA,SAAK,YAAY,IAAI,mBAAU,OAAO;AAAA,EACxC;AAAA,EAEM,KACJ,SACA,SACuB;AAAA;AACvB,YAAM,SAAS,gDACV,KAAK,SACL,UAFU;AAAA,QAGb;AAAA,MACF;AAEA,YAAM,MAAM,MAAM,IAAI,gBAAgB,MAAM,EAAE,SAAS;AAEvD,YAAM,EAAE,MAAM,OAAO,IAAI,MAAM,KAAK,UAAU,IAAI,GAAG;AAErD,aAAO,EAAE,MAAM,OAAO;AAAA,IACxB;AAAA;AACF;AAEA,IAAO,oBAAQ;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "namecheap-ts",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "A simple wrapper for namecheap API",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",