wuzapi 1.6.3 → 1.6.4

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/client.js CHANGED
@@ -74,7 +74,7 @@ class BaseClient {
74
74
  if (response.data.code <= 200 && response.data.code >= 300) {
75
75
  throw new WuzapiError(
76
76
  response.data.code,
77
- "API request failed",
77
+ response.data.error || "API request failed",
78
78
  response.data
79
79
  );
80
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sources":["../src/client.ts"],"sourcesContent":["import axios, { AxiosInstance, AxiosResponse } from \"axios\";\nimport {\n WuzapiConfig,\n WuzapiResponse,\n RequestOptions,\n} from \"./types/common.js\";\n\nexport class WuzapiError extends Error {\n public code: number;\n public details?: unknown;\n\n constructor(code: number, message: string, details?: unknown) {\n super(message);\n this.name = \"WuzapiError\";\n this.code = code;\n this.details = details;\n }\n}\n\nexport class BaseClient {\n protected axios: AxiosInstance;\n protected config: WuzapiConfig;\n\n constructor(config: WuzapiConfig) {\n this.config = config;\n this.axios = axios.create({\n baseURL: config.apiUrl,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n // Add response interceptor for error handling\n this.axios.interceptors.response.use(\n (response: AxiosResponse) => response,\n (error) => {\n if (error.response) {\n // Server responded with error status\n const data = error.response.data;\n throw new WuzapiError(\n data.code || error.response.status,\n data.message || error.message,\n data\n );\n } else if (error.request) {\n // Request was made but no response received\n throw new WuzapiError(0, \"Network error: No response from server\");\n } else {\n // Something else happened\n throw new WuzapiError(0, error.message);\n }\n }\n );\n }\n\n /**\n * Resolve the token from request options or instance config\n * Throws an error if no token is available\n */\n private resolveToken(options?: RequestOptions): string {\n const token = options?.token || this.config.token;\n if (!token) {\n throw new WuzapiError(\n 401,\n \"No authentication token provided. Either set a token in the client config or provide one in the request options.\"\n );\n }\n return token;\n }\n\n protected async request<T>(\n method: \"GET\" | \"POST\" | \"DELETE\" | \"PUT\",\n endpoint: string,\n data?: unknown,\n options?: RequestOptions\n ): Promise<T> {\n const token = this.resolveToken(options);\n\n const response = await this.axios.request<WuzapiResponse<T>>({\n method,\n url: endpoint,\n data,\n headers: {\n Token: token,\n },\n });\n\n if (!response.data.success) {\n throw new WuzapiError(\n response.data.code,\n \"API request failed\",\n response.data\n );\n }\n\n if (response.data.code <= 200 && response.data.code >= 300) {\n throw new WuzapiError(\n response.data.code,\n \"API request failed\",\n response.data\n );\n }\n\n return response.data.data;\n }\n\n protected async get<T>(\n endpoint: string,\n options?: RequestOptions\n ): Promise<T> {\n return this.request<T>(\"GET\", endpoint, undefined, options);\n }\n\n protected async post<T>(\n endpoint: string,\n data?: unknown,\n options?: RequestOptions\n ): Promise<T> {\n return this.request<T>(\"POST\", endpoint, data, options);\n }\n\n protected async put<T>(\n endpoint: string,\n data?: unknown,\n options?: RequestOptions\n ): Promise<T> {\n return this.request<T>(\"PUT\", endpoint, data, options);\n }\n\n protected async delete<T>(\n endpoint: string,\n options?: RequestOptions\n ): Promise<T> {\n return this.request<T>(\"DELETE\", endpoint, undefined, options);\n }\n}\n"],"names":[],"mappings":";;;AAOO,MAAM,oBAAoB,MAAM;AAAA,EAC9B;AAAA,EACA;AAAA,EAEP,YAAY,MAAc,SAAiB,SAAmB;AAC5D,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,OAAO;AACZ,SAAK,UAAU;AAAA,EACjB;AACF;AAEO,MAAM,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,EAEV,YAAY,QAAsB;AAChC,SAAK,SAAS;AACd,SAAK,QAAQ,MAAM,OAAO;AAAA,MACxB,SAAS,OAAO;AAAA,MAChB,SAAS;AAAA,QACP,gBAAgB;AAAA,MAAA;AAAA,IAClB,CACD;AAGD,SAAK,MAAM,aAAa,SAAS;AAAA,MAC/B,CAAC,aAA4B;AAAA,MAC7B,CAAC,UAAU;AACT,YAAI,MAAM,UAAU;AAElB,gBAAM,OAAO,MAAM,SAAS;AAC5B,gBAAM,IAAI;AAAA,YACR,KAAK,QAAQ,MAAM,SAAS;AAAA,YAC5B,KAAK,WAAW,MAAM;AAAA,YACtB;AAAA,UAAA;AAAA,QAEJ,WAAW,MAAM,SAAS;AAExB,gBAAM,IAAI,YAAY,GAAG,wCAAwC;AAAA,QACnE,OAAO;AAEL,gBAAM,IAAI,YAAY,GAAG,MAAM,OAAO;AAAA,QACxC;AAAA,MACF;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMQ,aAAa,SAAkC;AACrD,UAAM,QAAQ,SAAS,SAAS,KAAK,OAAO;AAC5C,QAAI,CAAC,OAAO;AACV,YAAM,IAAI;AAAA,QACR;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAgB,QACd,QACA,UACA,MACA,SACY;AACZ,UAAM,QAAQ,KAAK,aAAa,OAAO;AAEvC,UAAM,WAAW,MAAM,KAAK,MAAM,QAA2B;AAAA,MAC3D;AAAA,MACA,KAAK;AAAA,MACL;AAAA,MACA,SAAS;AAAA,QACP,OAAO;AAAA,MAAA;AAAA,IACT,CACD;AAED,QAAI,CAAC,SAAS,KAAK,SAAS;AAC1B,YAAM,IAAI;AAAA,QACR,SAAS,KAAK;AAAA,QACd;AAAA,QACA,SAAS;AAAA,MAAA;AAAA,IAEb;AAEA,QAAI,SAAS,KAAK,QAAQ,OAAO,SAAS,KAAK,QAAQ,KAAK;AAC1D,YAAM,IAAI;AAAA,QACR,SAAS,KAAK;AAAA,QACd;AAAA,QACA,SAAS;AAAA,MAAA;AAAA,IAEb;AAEA,WAAO,SAAS,KAAK;AAAA,EACvB;AAAA,EAEA,MAAgB,IACd,UACA,SACY;AACZ,WAAO,KAAK,QAAW,OAAO,UAAU,QAAW,OAAO;AAAA,EAC5D;AAAA,EAEA,MAAgB,KACd,UACA,MACA,SACY;AACZ,WAAO,KAAK,QAAW,QAAQ,UAAU,MAAM,OAAO;AAAA,EACxD;AAAA,EAEA,MAAgB,IACd,UACA,MACA,SACY;AACZ,WAAO,KAAK,QAAW,OAAO,UAAU,MAAM,OAAO;AAAA,EACvD;AAAA,EAEA,MAAgB,OACd,UACA,SACY;AACZ,WAAO,KAAK,QAAW,UAAU,UAAU,QAAW,OAAO;AAAA,EAC/D;AACF;;;"}
1
+ {"version":3,"file":"client.js","sources":["../src/client.ts"],"sourcesContent":["import axios, { AxiosInstance, AxiosResponse } from \"axios\";\nimport {\n WuzapiConfig,\n WuzapiResponse,\n RequestOptions,\n} from \"./types/common.js\";\n\nexport class WuzapiError extends Error {\n public code: number;\n public details?: unknown;\n\n constructor(code: number, message: string, details?: unknown) {\n super(message);\n this.name = \"WuzapiError\";\n this.code = code;\n this.details = details;\n }\n}\n\nexport class BaseClient {\n protected axios: AxiosInstance;\n protected config: WuzapiConfig;\n\n constructor(config: WuzapiConfig) {\n this.config = config;\n this.axios = axios.create({\n baseURL: config.apiUrl,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n // Add response interceptor for error handling\n this.axios.interceptors.response.use(\n (response: AxiosResponse) => response,\n (error) => {\n if (error.response) {\n // Server responded with error status\n const data = error.response.data;\n throw new WuzapiError(\n data.code || error.response.status,\n data.message || error.message,\n data\n );\n } else if (error.request) {\n // Request was made but no response received\n throw new WuzapiError(0, \"Network error: No response from server\");\n } else {\n // Something else happened\n throw new WuzapiError(0, error.message);\n }\n }\n );\n }\n\n /**\n * Resolve the token from request options or instance config\n * Throws an error if no token is available\n */\n private resolveToken(options?: RequestOptions): string {\n const token = options?.token || this.config.token;\n if (!token) {\n throw new WuzapiError(\n 401,\n \"No authentication token provided. Either set a token in the client config or provide one in the request options.\"\n );\n }\n return token;\n }\n\n protected async request<T>(\n method: \"GET\" | \"POST\" | \"DELETE\" | \"PUT\",\n endpoint: string,\n data?: unknown,\n options?: RequestOptions\n ): Promise<T> {\n const token = this.resolveToken(options);\n\n const response = await this.axios.request<WuzapiResponse<T>>({\n method,\n url: endpoint,\n data,\n headers: {\n Token: token,\n },\n });\n\n if (!response.data.success) {\n throw new WuzapiError(\n response.data.code,\n \"API request failed\",\n response.data\n );\n }\n\n if (response.data.code <= 200 && response.data.code >= 300) {\n throw new WuzapiError(\n response.data.code,\n response.data.error || \"API request failed\",\n response.data\n );\n }\n\n return response.data.data;\n }\n\n protected async get<T>(\n endpoint: string,\n options?: RequestOptions\n ): Promise<T> {\n return this.request<T>(\"GET\", endpoint, undefined, options);\n }\n\n protected async post<T>(\n endpoint: string,\n data?: unknown,\n options?: RequestOptions\n ): Promise<T> {\n return this.request<T>(\"POST\", endpoint, data, options);\n }\n\n protected async put<T>(\n endpoint: string,\n data?: unknown,\n options?: RequestOptions\n ): Promise<T> {\n return this.request<T>(\"PUT\", endpoint, data, options);\n }\n\n protected async delete<T>(\n endpoint: string,\n options?: RequestOptions\n ): Promise<T> {\n return this.request<T>(\"DELETE\", endpoint, undefined, options);\n }\n}\n"],"names":[],"mappings":";;;AAOO,MAAM,oBAAoB,MAAM;AAAA,EAC9B;AAAA,EACA;AAAA,EAEP,YAAY,MAAc,SAAiB,SAAmB;AAC5D,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,OAAO;AACZ,SAAK,UAAU;AAAA,EACjB;AACF;AAEO,MAAM,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,EAEV,YAAY,QAAsB;AAChC,SAAK,SAAS;AACd,SAAK,QAAQ,MAAM,OAAO;AAAA,MACxB,SAAS,OAAO;AAAA,MAChB,SAAS;AAAA,QACP,gBAAgB;AAAA,MAAA;AAAA,IAClB,CACD;AAGD,SAAK,MAAM,aAAa,SAAS;AAAA,MAC/B,CAAC,aAA4B;AAAA,MAC7B,CAAC,UAAU;AACT,YAAI,MAAM,UAAU;AAElB,gBAAM,OAAO,MAAM,SAAS;AAC5B,gBAAM,IAAI;AAAA,YACR,KAAK,QAAQ,MAAM,SAAS;AAAA,YAC5B,KAAK,WAAW,MAAM;AAAA,YACtB;AAAA,UAAA;AAAA,QAEJ,WAAW,MAAM,SAAS;AAExB,gBAAM,IAAI,YAAY,GAAG,wCAAwC;AAAA,QACnE,OAAO;AAEL,gBAAM,IAAI,YAAY,GAAG,MAAM,OAAO;AAAA,QACxC;AAAA,MACF;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMQ,aAAa,SAAkC;AACrD,UAAM,QAAQ,SAAS,SAAS,KAAK,OAAO;AAC5C,QAAI,CAAC,OAAO;AACV,YAAM,IAAI;AAAA,QACR;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAgB,QACd,QACA,UACA,MACA,SACY;AACZ,UAAM,QAAQ,KAAK,aAAa,OAAO;AAEvC,UAAM,WAAW,MAAM,KAAK,MAAM,QAA2B;AAAA,MAC3D;AAAA,MACA,KAAK;AAAA,MACL;AAAA,MACA,SAAS;AAAA,QACP,OAAO;AAAA,MAAA;AAAA,IACT,CACD;AAED,QAAI,CAAC,SAAS,KAAK,SAAS;AAC1B,YAAM,IAAI;AAAA,QACR,SAAS,KAAK;AAAA,QACd;AAAA,QACA,SAAS;AAAA,MAAA;AAAA,IAEb;AAEA,QAAI,SAAS,KAAK,QAAQ,OAAO,SAAS,KAAK,QAAQ,KAAK;AAC1D,YAAM,IAAI;AAAA,QACR,SAAS,KAAK;AAAA,QACd,SAAS,KAAK,SAAS;AAAA,QACvB,SAAS;AAAA,MAAA;AAAA,IAEb;AAEA,WAAO,SAAS,KAAK;AAAA,EACvB;AAAA,EAEA,MAAgB,IACd,UACA,SACY;AACZ,WAAO,KAAK,QAAW,OAAO,UAAU,QAAW,OAAO;AAAA,EAC5D;AAAA,EAEA,MAAgB,KACd,UACA,MACA,SACY;AACZ,WAAO,KAAK,QAAW,QAAQ,UAAU,MAAM,OAAO;AAAA,EACxD;AAAA,EAEA,MAAgB,IACd,UACA,MACA,SACY;AACZ,WAAO,KAAK,QAAW,OAAO,UAAU,MAAM,OAAO;AAAA,EACvD;AAAA,EAEA,MAAgB,OACd,UACA,SACY;AACZ,WAAO,KAAK,QAAW,UAAU,UAAU,QAAW,OAAO;AAAA,EAC/D;AACF;;;"}
@@ -9,6 +9,7 @@ export interface WuzapiResponse<T = unknown> {
9
9
  code: number;
10
10
  data: T;
11
11
  success: boolean;
12
+ error?: string;
12
13
  }
13
14
  export interface SimpleContextInfo {
14
15
  StanzaID: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wuzapi",
3
- "version": "1.6.3",
3
+ "version": "1.6.4",
4
4
  "description": "TypeScript client library for WuzAPI WhatsApp API",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",