@vitalfit/sdk 0.0.10 → 0.0.11

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
@@ -43,6 +43,9 @@ type BaseModel = UUIDModel & {
43
43
  updated_at: string;
44
44
  deleted_at: string | null;
45
45
  };
46
+ type DataResponse<T> = {
47
+ data: T[];
48
+ };
46
49
 
47
50
  declare enum UserGender {
48
51
  MALE = "male",
@@ -128,7 +131,7 @@ type PaginatedBranch = {
128
131
  country_name: string;
129
132
  manager_name: string;
130
133
  manager_last_name: string;
131
- status: string;
134
+ status: "Active" | "Inactive" | "Maintenance";
132
135
  };
133
136
  type BranchPaymentMethod = {
134
137
  branch_id: string;
@@ -155,7 +158,7 @@ type BranchDetails = {
155
158
  longitude: number;
156
159
  max_capacity: number;
157
160
  phone: string;
158
- status: string;
161
+ status: "Active" | "Inactive" | "Maintenance";
159
162
  state: string;
160
163
  country: string;
161
164
  manager: string;
@@ -164,6 +167,11 @@ type BranchDetails = {
164
167
  operating_hours: OperatingHour[];
165
168
  payment_methods: BranchPaymentMethod[];
166
169
  };
170
+ type BranchStatusCount = {
171
+ Active: number;
172
+ Inactive: number;
173
+ Maintenance: number;
174
+ };
167
175
  type PaginationBranchRequest = PaginationRequest & {
168
176
  status?: string;
169
177
  location?: string;
@@ -185,20 +193,21 @@ declare class AuthService {
185
193
  declare class UserService {
186
194
  client: Client;
187
195
  constructor(client: Client);
188
- WhoAmI(jwt: string): Promise<UserApiResponse>;
196
+ WhoAmI(jwt: string): Promise<DataResponse<UserApiResponse[]>>;
189
197
  }
190
198
 
191
199
  declare class BranchService {
192
200
  private client;
193
201
  constructor(client: any);
194
- getBranches({ page, limit, search, status, location }: PaginationBranchRequest, jwt: string): Promise<Pagination<PaginatedBranch>>;
202
+ getBranches({ page, limit, search, status, location }: PaginationBranchRequest, jwt: string): Promise<Pagination<PaginatedBranch[]>>;
195
203
  delete(branchId: string, jwt: string): Promise<void>;
204
+ getBranchStatusCount(jwt: string): Promise<BranchStatusCount>;
196
205
  }
197
206
 
198
207
  declare class PaymentMethodService {
199
208
  private client;
200
209
  constructor(client: Client);
201
- getPaymentMethods(jwt: string): Promise<PaymentMethod[]>;
210
+ getPaymentMethods(jwt: string): Promise<DataResponse<PaymentMethod[]>>;
202
211
  }
203
212
 
204
213
  declare class APIError extends Error {
@@ -220,4 +229,4 @@ declare class VitalFit {
220
229
  version(): string;
221
230
  }
222
231
 
223
- export { APIError, type BaseModel, type BranchDetails, type BranchPaymentMethod, type ClientProfile, type LoginRequest, type LoginResponse, type OperatingHour, type PaginatedBranch, type Pagination, type PaginationBranchRequest, type PaginationRequest, type PaymentMethod, type Role, type SignUpRequest, type UUIDModel, type User, type UserApiResponse, UserGender, VitalFit, isAPIError };
232
+ export { APIError, type BaseModel, type BranchDetails, type BranchPaymentMethod, type BranchStatusCount, type ClientProfile, type DataResponse, type LoginRequest, type LoginResponse, type OperatingHour, type PaginatedBranch, type Pagination, type PaginationBranchRequest, type PaginationRequest, type PaymentMethod, type Role, type SignUpRequest, type UUIDModel, type User, type UserApiResponse, UserGender, VitalFit, isAPIError };
package/dist/index.d.ts CHANGED
@@ -43,6 +43,9 @@ type BaseModel = UUIDModel & {
43
43
  updated_at: string;
44
44
  deleted_at: string | null;
45
45
  };
46
+ type DataResponse<T> = {
47
+ data: T[];
48
+ };
46
49
 
47
50
  declare enum UserGender {
48
51
  MALE = "male",
@@ -128,7 +131,7 @@ type PaginatedBranch = {
128
131
  country_name: string;
129
132
  manager_name: string;
130
133
  manager_last_name: string;
131
- status: string;
134
+ status: "Active" | "Inactive" | "Maintenance";
132
135
  };
133
136
  type BranchPaymentMethod = {
134
137
  branch_id: string;
@@ -155,7 +158,7 @@ type BranchDetails = {
155
158
  longitude: number;
156
159
  max_capacity: number;
157
160
  phone: string;
158
- status: string;
161
+ status: "Active" | "Inactive" | "Maintenance";
159
162
  state: string;
160
163
  country: string;
161
164
  manager: string;
@@ -164,6 +167,11 @@ type BranchDetails = {
164
167
  operating_hours: OperatingHour[];
165
168
  payment_methods: BranchPaymentMethod[];
166
169
  };
170
+ type BranchStatusCount = {
171
+ Active: number;
172
+ Inactive: number;
173
+ Maintenance: number;
174
+ };
167
175
  type PaginationBranchRequest = PaginationRequest & {
168
176
  status?: string;
169
177
  location?: string;
@@ -185,20 +193,21 @@ declare class AuthService {
185
193
  declare class UserService {
186
194
  client: Client;
187
195
  constructor(client: Client);
188
- WhoAmI(jwt: string): Promise<UserApiResponse>;
196
+ WhoAmI(jwt: string): Promise<DataResponse<UserApiResponse[]>>;
189
197
  }
190
198
 
191
199
  declare class BranchService {
192
200
  private client;
193
201
  constructor(client: any);
194
- getBranches({ page, limit, search, status, location }: PaginationBranchRequest, jwt: string): Promise<Pagination<PaginatedBranch>>;
202
+ getBranches({ page, limit, search, status, location }: PaginationBranchRequest, jwt: string): Promise<Pagination<PaginatedBranch[]>>;
195
203
  delete(branchId: string, jwt: string): Promise<void>;
204
+ getBranchStatusCount(jwt: string): Promise<BranchStatusCount>;
196
205
  }
197
206
 
198
207
  declare class PaymentMethodService {
199
208
  private client;
200
209
  constructor(client: Client);
201
- getPaymentMethods(jwt: string): Promise<PaymentMethod[]>;
210
+ getPaymentMethods(jwt: string): Promise<DataResponse<PaymentMethod[]>>;
202
211
  }
203
212
 
204
213
  declare class APIError extends Error {
@@ -220,4 +229,4 @@ declare class VitalFit {
220
229
  version(): string;
221
230
  }
222
231
 
223
- export { APIError, type BaseModel, type BranchDetails, type BranchPaymentMethod, type ClientProfile, type LoginRequest, type LoginResponse, type OperatingHour, type PaginatedBranch, type Pagination, type PaginationBranchRequest, type PaginationRequest, type PaymentMethod, type Role, type SignUpRequest, type UUIDModel, type User, type UserApiResponse, UserGender, VitalFit, isAPIError };
232
+ export { APIError, type BaseModel, type BranchDetails, type BranchPaymentMethod, type BranchStatusCount, type ClientProfile, type DataResponse, type LoginRequest, type LoginResponse, type OperatingHour, type PaginatedBranch, type Pagination, type PaginationBranchRequest, type PaginationRequest, type PaymentMethod, type Role, type SignUpRequest, type UUIDModel, type User, type UserApiResponse, UserGender, VitalFit, isAPIError };
package/dist/index.js CHANGED
@@ -255,6 +255,7 @@ var BranchService = class {
255
255
  this.client = client;
256
256
  this.getBranches = this.getBranches.bind(this);
257
257
  this.delete = this.delete.bind(this);
258
+ this.getBranchStatusCount = this.getBranchStatusCount.bind(this);
258
259
  }
259
260
  async getBranches({
260
261
  page = 1,
@@ -282,6 +283,13 @@ var BranchService = class {
282
283
  jwt
283
284
  });
284
285
  }
286
+ async getBranchStatusCount(jwt) {
287
+ const response = await this.client.get({
288
+ url: "/branches/status-count",
289
+ jwt
290
+ });
291
+ return response;
292
+ }
285
293
  };
286
294
 
287
295
  // src/services/payment-methods.ts
@@ -329,7 +337,7 @@ var VitalFit = class _VitalFit {
329
337
  return _VitalFit.instance;
330
338
  }
331
339
  version() {
332
- return "0.0.10";
340
+ return "0.0.11";
333
341
  }
334
342
  };
335
343
  // Annotate the CommonJS export names for ESM import in node:
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/client.ts","../src/settings.ts","../src/errors/errors.ts","../src/services/auth.ts","../src/services/user.ts","../src/services/branch.ts","../src/services/payment-methods.ts","../src/types/auth.ts"],"sourcesContent":["import { Client } from './client'\nimport { AuthService, UserService, BranchService, PaymentMethodService } from './services'\n\n\n\n\nexport class VitalFit {\n private static instance: VitalFit\n client: Client\n auth: AuthService\n user: UserService\n branch: BranchService\n paymentMethod: PaymentMethodService\n \n\n constructor(isDevMode: boolean, origin?: string) {\n this.client = new Client(isDevMode, origin)\n this.auth= new AuthService(this.client)\n this.user= new UserService(this.client)\n this.branch= new BranchService(this.client)\n this.paymentMethod= new PaymentMethodService(this.client) \n \n }\n\n static getInstance(isDevMode = false): VitalFit {\n if (!VitalFit.instance) {\n VitalFit.instance = new VitalFit(isDevMode)\n }\n return VitalFit.instance\n }\n\n version(): string {\n return '0.0.10'\n }\n}\n\nexport * from './types'\nexport * from './errors'","import axios, { type AxiosInstance } from 'axios'\nimport { BASE_URL, DEV_URL } from './settings'\nimport { APIError } from './errors'\nimport type { Pagination } from './types'\n\nexport type ClientConfig = {\n url: string\n jwt?: string\n data?: object\n params?: object\n}\n\nexport class Client {\n private client: AxiosInstance\n jwt?: string\n\n constructor(isDevMode: boolean, origin?: string) {\n let headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n }\n if (origin) {\n headers['Origin'] = origin\n }\n this.client = axios.create({\n baseURL: isDevMode ? DEV_URL : BASE_URL,\n headers,\n })\n }\n\n async call(method: string, config: ClientConfig): Promise<Response> {\n if (config.jwt) {\n this.client.interceptors.request.use((axiosConfig) => {\n if (axiosConfig.headers) {\n axiosConfig.headers['Authorization'] = `Bearer ${config.jwt}`\n }\n return axiosConfig\n })\n }\n try {\n const response = await this.client.request({\n method: method,\n url: config.url,\n data: config.data,\n params: config.params,\n })\n this.client.interceptors.request.clear()\n return response.data\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: unknown) {\n if (axios.isAxiosError(error)) {\n // Adaptado para el formato de error de la API de Go: { \"error\": \"mensaje\" }\n const errorMessage = error.response?.data?.error\n if (typeof errorMessage === 'string') {\n throw new APIError([errorMessage], error.response?.status ?? 500)\n }\n throw new APIError(['Ocurrió un error inesperado'], error.response?.status ?? 500)\n }\n throw new Error(error as string)\n }\n }\n\n async get(config: ClientConfig) {\n const isPaginated = config.params && 'page' in config.params\n if (isPaginated) {\n const response = await this.call('get', config)\n if ('results' in response) {\n const data: Pagination<any> = response as unknown as Pagination<any>\n return {\n data: data.data,\n count: data.count,\n next: data.next,\n previous: data.previous,\n }\n }\n throw new Error('Expected Pagination response')\n } else {\n const data = await this.call('get', config)\n return data\n }\n }\n\n async post(config: ClientConfig) {\n const data = await this.call('post', config)\n return data\n }\n\n async put(config: ClientConfig) {\n const data = await this.call('put', config)\n return data\n }\n\n async patch(config: ClientConfig) {\n const data = await this.call('patch', config)\n return data\n }\n\n async delete(config: ClientConfig) {\n const data = await this.call('delete', config)\n return data\n }\n\n setJWT(jwt: string) {\n this.jwt = jwt\n }\n\n removeJWT() {\n this.jwt = undefined\n }\n}","export const BASE_URL = 'https://api-rm8x.onrender.com/v1'\nexport const DEV_URL = 'https://api-rm8x.onrender.com/v1'\n","export class APIError extends Error {\n status: number\n messages: string[]\n constructor(messages: string[], status: number) {\n super(messages.join(', '))\n this.status = status\n this.messages = messages\n }\n}\n\nexport const isAPIError = (error: unknown): error is APIError => {\n return error instanceof APIError\n}\n\n\n","import { Client } from '../client'\nimport type {\n LoginRequest,\n LoginResponse,\n SignUpRequest,\n} from '../types'\n\nexport class AuthService {\n private client: Client\n constructor(client: Client) {\n this.client = client\n this.login = this.login.bind(this)\n this.signUp = this.signUp.bind(this)\n this.signUpStaff = this.signUpStaff.bind(this)\n this.forgotPassword = this.forgotPassword.bind(this)\n this.resetPassword = this.resetPassword.bind(this)\n this.verifyEmail = this.verifyEmail.bind(this)\n\n this.logout = this.logout.bind(this)\n this.saveJWT = this.saveJWT.bind(this)\n }\n\n async login({ email, password, context}: LoginRequest): Promise<LoginResponse> {\n const response = await this.client.post({\n url: '/auth/login',\n data: {\n email,\n password,\n context\n },\n })\n return response as unknown as LoginResponse\n }\n\n logout(): void {\n this.client.removeJWT()\n }\n\n saveJWT(jwt: string): void {\n this.client.setJWT(jwt)\n }\n\n async signUp(signUpData: SignUpRequest): Promise<void> {\n const birthDateRegex = /^\\d{4}-\\d{2}-\\d{2}$/\n if (signUpData.roleName !='client'){\n throw new Error('Only clients can sign up using this method')\n }\n if (!birthDateRegex.test(signUpData.birthDate)) {\n throw new Error(\n 'Birth date must be in the format YYYY-MM-DD',\n )\n }\n await this.client.post({\n url: '/auth/register',\n data: signUpData,\n })\n }\n\n\n async signUpStaff(signUpData: SignUpRequest): Promise<void> {\n const birthDateRegex = /^\\d{4}-\\d{2}-\\d{2}$/\n if (!birthDateRegex.test(signUpData.birthDate)) {\n throw new Error(\n 'Birth date must be in the format YYYY-MM-DD',\n )\n }\n await this.client.post({\n url: '/auth/register-staff',\n data: signUpData,\n })\n }\n async forgotPassword(email: string): Promise<void> {\n await this.client.post({\n url: '/auth/password/forgot',\n data: {\n email,\n },\n })\n }\n\n async resetPassword(otp: string, password: string, repeatPassword: string): Promise<void> {\n await this.client.post({\n url: '/auth/password/reset',\n data: {\n otp,\n password,\n repeatPassword,\n },\n })\n }\n\n async verifyEmail(otp: string): Promise<void> {\n await this.client.post({\n url: '/auth/activate',\n data: {\n otp,\n },\n })\n }\n\n\n}\n","import { Client } from \"@/client\";\nimport type { UserApiResponse } from \"@/types\";\n\nexport class UserService {\n client: Client;\n constructor(client: Client) {\n this.client = client;\n this.WhoAmI = this.WhoAmI.bind(this);\n }\n\n\n async WhoAmI(jwt:string): Promise<UserApiResponse> {\n const response = await this.client.get({\n url: '/user/whoami',\n jwt\n });\n return response as unknown as UserApiResponse;\n }\n}","import type { Pagination } from '@/types';\nimport type{ PaginatedBranch, PaginationBranchRequest } from '../types/branch';\n\nexport class BranchService {\n private client: any;\n\n constructor(client: any) {\n this.client = client;\n this.getBranches = this.getBranches.bind(this);\n this.delete = this.delete.bind(this);\n \n }\n\n async getBranches({\n page = 1,\n limit = 10,\n search,\n status,\n location\n }: PaginationBranchRequest, jwt:string): Promise<Pagination<PaginatedBranch>> {\n const response = await this.client.get({\n url: '/branches',\n jwt,\n params : {\n page,\n limit,\n search,\n status,\n location\n }\n });\n return response as unknown as Pagination<PaginatedBranch>;\n }\n async delete(branchId: string, jwt:string): Promise<void> {\n await this.client.delete({\n url: `/branches/${branchId}`,\n jwt,\n });\n }\n \n} ","import { Client } from '../client';\nimport type { PaymentMethod } from '../types';\n\nexport class PaymentMethodService {\n private client: Client;\n\n constructor(client: Client) {\n this.client = client;\n this.getPaymentMethods = this.getPaymentMethods.bind(this);\n }\n\n async getPaymentMethods(jwt: string): Promise<PaymentMethod[]> {\n const response = await this.client.get({\n url: '/branches/payment-methods',\n jwt,\n });\n return response as unknown as PaymentMethod[];\n }\n}\n\n\n\n\n\n\n\n\n","export enum UserGender {\n MALE = 'male',\n FEMALE = 'female',\n}\n\nexport type LoginRequest = {\n email: string\n password: string\n context?: string\n}\n\nexport type LoginResponse = {\n token: string\n}\n\nexport type SignUpRequest = {\n firstName: string\n lastName: string\n email: string\n password: string\n documentId: string\n phoneNumber?: string | null\n birthDate: string\n gender?: UserGender | null\n profilePictureUrl?: string | null\n roleName?: string | null\n}\n"],"mappings":"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","names":["axios","UserGender"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/client.ts","../src/settings.ts","../src/errors/errors.ts","../src/services/auth.ts","../src/services/user.ts","../src/services/branch.ts","../src/services/payment-methods.ts","../src/types/auth.ts"],"sourcesContent":["import { Client } from './client'\nimport { AuthService, UserService, BranchService, PaymentMethodService } from './services'\n\n\n\n\nexport class VitalFit {\n private static instance: VitalFit\n client: Client\n auth: AuthService\n user: UserService\n branch: BranchService\n paymentMethod: PaymentMethodService\n \n\n constructor(isDevMode: boolean, origin?: string) {\n this.client = new Client(isDevMode, origin)\n this.auth= new AuthService(this.client)\n this.user= new UserService(this.client)\n this.branch= new BranchService(this.client)\n this.paymentMethod= new PaymentMethodService(this.client) \n \n }\n\n static getInstance(isDevMode = false): VitalFit {\n if (!VitalFit.instance) {\n VitalFit.instance = new VitalFit(isDevMode)\n }\n return VitalFit.instance\n }\n\n version(): string {\n return '0.0.11'\n }\n}\n\nexport * from './types'\nexport * from './errors'","import axios, { type AxiosInstance } from 'axios'\nimport { BASE_URL, DEV_URL } from './settings'\nimport { APIError } from './errors'\nimport type { Pagination } from './types'\n\nexport type ClientConfig = {\n url: string\n jwt?: string\n data?: object\n params?: object\n}\n\nexport class Client {\n private client: AxiosInstance\n jwt?: string\n\n constructor(isDevMode: boolean, origin?: string) {\n let headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n }\n if (origin) {\n headers['Origin'] = origin\n }\n this.client = axios.create({\n baseURL: isDevMode ? DEV_URL : BASE_URL,\n headers,\n })\n }\n\n async call(method: string, config: ClientConfig): Promise<Response> {\n if (config.jwt) {\n this.client.interceptors.request.use((axiosConfig) => {\n if (axiosConfig.headers) {\n axiosConfig.headers['Authorization'] = `Bearer ${config.jwt}`\n }\n return axiosConfig\n })\n }\n try {\n const response = await this.client.request({\n method: method,\n url: config.url,\n data: config.data,\n params: config.params,\n })\n this.client.interceptors.request.clear()\n return response.data\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: unknown) {\n if (axios.isAxiosError(error)) {\n // Adaptado para el formato de error de la API de Go: { \"error\": \"mensaje\" }\n const errorMessage = error.response?.data?.error\n if (typeof errorMessage === 'string') {\n throw new APIError([errorMessage], error.response?.status ?? 500)\n }\n throw new APIError(['Ocurrió un error inesperado'], error.response?.status ?? 500)\n }\n throw new Error(error as string)\n }\n }\n\n async get(config: ClientConfig) {\n const isPaginated = config.params && 'page' in config.params\n if (isPaginated) {\n const response = await this.call('get', config)\n if ('results' in response) {\n const data: Pagination<any> = response as unknown as Pagination<any>\n return {\n data: data.data,\n count: data.count,\n next: data.next,\n previous: data.previous,\n }\n }\n throw new Error('Expected Pagination response')\n } else {\n const data = await this.call('get', config)\n return data\n }\n }\n\n async post(config: ClientConfig) {\n const data = await this.call('post', config)\n return data\n }\n\n async put(config: ClientConfig) {\n const data = await this.call('put', config)\n return data\n }\n\n async patch(config: ClientConfig) {\n const data = await this.call('patch', config)\n return data\n }\n\n async delete(config: ClientConfig) {\n const data = await this.call('delete', config)\n return data\n }\n\n setJWT(jwt: string) {\n this.jwt = jwt\n }\n\n removeJWT() {\n this.jwt = undefined\n }\n}","export const BASE_URL = 'https://api-rm8x.onrender.com/v1'\nexport const DEV_URL = 'https://api-rm8x.onrender.com/v1'\n","export class APIError extends Error {\n status: number\n messages: string[]\n constructor(messages: string[], status: number) {\n super(messages.join(', '))\n this.status = status\n this.messages = messages\n }\n}\n\nexport const isAPIError = (error: unknown): error is APIError => {\n return error instanceof APIError\n}\n\n\n","import { Client } from '../client'\nimport type {\n LoginRequest,\n LoginResponse,\n SignUpRequest,\n} from '../types'\n\nexport class AuthService {\n private client: Client\n constructor(client: Client) {\n this.client = client\n this.login = this.login.bind(this)\n this.signUp = this.signUp.bind(this)\n this.signUpStaff = this.signUpStaff.bind(this)\n this.forgotPassword = this.forgotPassword.bind(this)\n this.resetPassword = this.resetPassword.bind(this)\n this.verifyEmail = this.verifyEmail.bind(this)\n\n this.logout = this.logout.bind(this)\n this.saveJWT = this.saveJWT.bind(this)\n }\n\n async login({ email, password, context}: LoginRequest): Promise<LoginResponse> {\n const response = await this.client.post({\n url: '/auth/login',\n data: {\n email,\n password,\n context\n },\n })\n return response as unknown as LoginResponse\n }\n\n logout(): void {\n this.client.removeJWT()\n }\n\n saveJWT(jwt: string): void {\n this.client.setJWT(jwt)\n }\n\n async signUp(signUpData: SignUpRequest): Promise<void> {\n const birthDateRegex = /^\\d{4}-\\d{2}-\\d{2}$/\n if (signUpData.roleName !='client'){\n throw new Error('Only clients can sign up using this method')\n }\n if (!birthDateRegex.test(signUpData.birthDate)) {\n throw new Error(\n 'Birth date must be in the format YYYY-MM-DD',\n )\n }\n await this.client.post({\n url: '/auth/register',\n data: signUpData,\n })\n }\n\n\n async signUpStaff(signUpData: SignUpRequest): Promise<void> {\n const birthDateRegex = /^\\d{4}-\\d{2}-\\d{2}$/\n if (!birthDateRegex.test(signUpData.birthDate)) {\n throw new Error(\n 'Birth date must be in the format YYYY-MM-DD',\n )\n }\n await this.client.post({\n url: '/auth/register-staff',\n data: signUpData,\n })\n }\n async forgotPassword(email: string): Promise<void> {\n await this.client.post({\n url: '/auth/password/forgot',\n data: {\n email,\n },\n })\n }\n\n async resetPassword(otp: string, password: string, repeatPassword: string): Promise<void> {\n await this.client.post({\n url: '/auth/password/reset',\n data: {\n otp,\n password,\n repeatPassword,\n },\n })\n }\n\n async verifyEmail(otp: string): Promise<void> {\n await this.client.post({\n url: '/auth/activate',\n data: {\n otp,\n },\n })\n }\n\n\n}\n","import { Client } from \"@/client\";\nimport type { DataResponse, UserApiResponse } from \"@/types\";\n\nexport class UserService {\n client: Client;\n constructor(client: Client) {\n this.client = client;\n this.WhoAmI = this.WhoAmI.bind(this);\n }\n\n\n async WhoAmI(jwt:string): Promise<DataResponse<UserApiResponse[]>> {\n const response = await this.client.get({\n url: '/user/whoami',\n jwt\n });\n return response as unknown as DataResponse<UserApiResponse[]>;\n }\n}","import type { Pagination } from '@/types';\nimport type{ PaginatedBranch, PaginationBranchRequest, BranchStatusCount } from '../types/branch';\n\nexport class BranchService {\n private client: any;\n\n constructor(client: any) {\n this.client = client;\n this.getBranches = this.getBranches.bind(this);\n this.delete = this.delete.bind(this);\n this.getBranchStatusCount = this.getBranchStatusCount.bind(this);\n }\n\n async getBranches({\n page = 1,\n limit = 10,\n search,\n status,\n location\n }: PaginationBranchRequest, jwt:string): Promise<Pagination<PaginatedBranch[]>> {\n const response = await this.client.get({\n url: '/branches',\n jwt,\n params : {\n page,\n limit,\n search,\n status,\n location\n }\n });\n return response as unknown as Pagination<PaginatedBranch[]>;\n }\n async delete(branchId: string, jwt:string): Promise<void> {\n await this.client.delete({\n url: `/branches/${branchId}`,\n jwt,\n });\n }\n \n async getBranchStatusCount( jwt:string): Promise<BranchStatusCount> {\n const response = await this.client.get({\n url: '/branches/status-count',\n jwt,\n });\n return response as unknown as BranchStatusCount;\n }\n} ","import { Client } from '../client';\nimport type { DataResponse, PaymentMethod } from '../types';\n\nexport class PaymentMethodService {\n private client: Client;\n\n constructor(client: Client) {\n this.client = client;\n this.getPaymentMethods = this.getPaymentMethods.bind(this);\n }\n\n async getPaymentMethods(jwt: string): Promise<DataResponse<PaymentMethod[]>> {\n const response = await this.client.get({\n url: '/branches/payment-methods',\n jwt,\n });\n return response as unknown as DataResponse<PaymentMethod[]>;\n }\n}\n\n\n\n\n\n\n\n\n","export enum UserGender {\n MALE = 'male',\n FEMALE = 'female',\n}\n\nexport type LoginRequest = {\n email: string\n password: string\n context?: string\n}\n\nexport type LoginResponse = {\n token: string\n}\n\nexport type SignUpRequest = {\n firstName: string\n lastName: string\n email: string\n password: string\n documentId: string\n phoneNumber?: string | null\n birthDate: string\n gender?: UserGender | null\n profilePictureUrl?: string | null\n roleName?: string | null\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAA0C;;;ACAnC,IAAM,WAAW;AACjB,IAAM,UAAU;;;ACDhB,IAAM,WAAN,cAAuB,MAAM;AAAA,EAClC;AAAA,EACA;AAAA,EACA,YAAY,UAAoB,QAAgB;AAC9C,UAAM,SAAS,KAAK,IAAI,CAAC;AACzB,SAAK,SAAS;AACd,SAAK,WAAW;AAAA,EAClB;AACF;AAEO,IAAM,aAAa,CAAC,UAAsC;AAC/D,SAAO,iBAAiB;AAC1B;;;AFAO,IAAM,SAAN,MAAa;AAAA,EACV;AAAA,EACR;AAAA,EAEA,YAAY,WAAoB,QAAiB;AAC/C,QAAI,UAAkC;AAAA,MACpC,gBAAgB;AAAA,IAClB;AACA,QAAI,QAAQ;AACV,cAAQ,QAAQ,IAAI;AAAA,IACtB;AACA,SAAK,SAAS,aAAAA,QAAM,OAAO;AAAA,MACzB,SAAS,YAAY,UAAU;AAAA,MAC/B;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,KAAK,QAAgB,QAAyC;AAClE,QAAI,OAAO,KAAK;AACd,WAAK,OAAO,aAAa,QAAQ,IAAI,CAAC,gBAAgB;AACpD,YAAI,YAAY,SAAS;AACvB,sBAAY,QAAQ,eAAe,IAAI,UAAU,OAAO,GAAG;AAAA,QAC7D;AACA,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AACA,QAAI;AACF,YAAM,WAAW,MAAM,KAAK,OAAO,QAAQ;AAAA,QACzC;AAAA,QACA,KAAK,OAAO;AAAA,QACZ,MAAM,OAAO;AAAA,QACb,QAAQ,OAAO;AAAA,MACjB,CAAC;AACD,WAAK,OAAO,aAAa,QAAQ,MAAM;AACvC,aAAO,SAAS;AAAA,IAElB,SAAS,OAAgB;AACvB,UAAI,aAAAA,QAAM,aAAa,KAAK,GAAG;AAE7B,cAAM,eAAe,MAAM,UAAU,MAAM;AAC3C,YAAI,OAAO,iBAAiB,UAAU;AACpC,gBAAM,IAAI,SAAS,CAAC,YAAY,GAAG,MAAM,UAAU,UAAU,GAAG;AAAA,QAClE;AACA,cAAM,IAAI,SAAS,CAAC,gCAA6B,GAAG,MAAM,UAAU,UAAU,GAAG;AAAA,MACnF;AACA,YAAM,IAAI,MAAM,KAAe;AAAA,IACjC;AAAA,EACF;AAAA,EAEA,MAAM,IAAI,QAAsB;AAC9B,UAAM,cAAc,OAAO,UAAU,UAAU,OAAO;AACtD,QAAI,aAAa;AACf,YAAM,WAAW,MAAM,KAAK,KAAK,OAAO,MAAM;AAC9C,UAAI,aAAa,UAAU;AACzB,cAAM,OAAwB;AAC9B,eAAO;AAAA,UACL,MAAM,KAAK;AAAA,UACX,OAAO,KAAK;AAAA,UACZ,MAAM,KAAK;AAAA,UACX,UAAU,KAAK;AAAA,QACjB;AAAA,MACF;AACA,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD,OAAO;AACL,YAAM,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM;AAC1C,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,MAAM,KAAK,QAAsB;AAC/B,UAAM,OAAO,MAAM,KAAK,KAAK,QAAQ,MAAM;AAC3C,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,IAAI,QAAsB;AAC9B,UAAM,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM;AAC1C,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,MAAM,QAAsB;AAChC,UAAM,OAAO,MAAM,KAAK,KAAK,SAAS,MAAM;AAC5C,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAAsB;AACjC,UAAM,OAAO,MAAM,KAAK,KAAK,UAAU,MAAM;AAC7C,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,KAAa;AAClB,SAAK,MAAM;AAAA,EACb;AAAA,EAEA,YAAY;AACV,SAAK,MAAM;AAAA,EACb;AACF;;;AGrGO,IAAM,cAAN,MAAkB;AAAA,EACf;AAAA,EACR,YAAY,QAAgB;AAC1B,SAAK,SAAS;AACd,SAAK,QAAQ,KAAK,MAAM,KAAK,IAAI;AACjC,SAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AACnC,SAAK,cAAc,KAAK,YAAY,KAAK,IAAI;AAC7C,SAAK,iBAAiB,KAAK,eAAe,KAAK,IAAI;AACnD,SAAK,gBAAgB,KAAK,cAAc,KAAK,IAAI;AACjD,SAAK,cAAc,KAAK,YAAY,KAAK,IAAI;AAE7C,SAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AACnC,SAAK,UAAU,KAAK,QAAQ,KAAK,IAAI;AAAA,EACvC;AAAA,EAEA,MAAM,MAAM,EAAE,OAAO,UAAU,QAAO,GAAyC;AAC7E,UAAM,WAAW,MAAM,KAAK,OAAO,KAAK;AAAA,MACtC,KAAK;AAAA,MACL,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,SAAe;AACb,SAAK,OAAO,UAAU;AAAA,EACxB;AAAA,EAEA,QAAQ,KAAmB;AACzB,SAAK,OAAO,OAAO,GAAG;AAAA,EACxB;AAAA,EAEA,MAAM,OAAO,YAA0C;AACrD,UAAM,iBAAiB;AACvB,QAAI,WAAW,YAAW,UAAS;AAC/B,YAAM,IAAI,MAAM,4CAA4C;AAAA,IAChE;AACA,QAAI,CAAC,eAAe,KAAK,WAAW,SAAS,GAAG;AAC9C,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AACA,UAAM,KAAK,OAAO,KAAK;AAAA,MACrB,KAAK;AAAA,MACL,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AAAA,EAGA,MAAM,YAAY,YAA0C;AAC1D,UAAM,iBAAiB;AACvB,QAAI,CAAC,eAAe,KAAK,WAAW,SAAS,GAAG;AAC9C,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AACA,UAAM,KAAK,OAAO,KAAK;AAAA,MACrB,KAAK;AAAA,MACL,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AAAA,EACA,MAAM,eAAe,OAA8B;AACjD,UAAM,KAAK,OAAO,KAAK;AAAA,MACrB,KAAK;AAAA,MACL,MAAM;AAAA,QACJ;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,cAAc,KAAa,UAAkB,gBAAuC;AACxF,UAAM,KAAK,OAAO,KAAK;AAAA,MACrB,KAAK;AAAA,MACL,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEE,MAAM,YAAY,KAA4B;AAC9C,UAAM,KAAK,OAAO,KAAK;AAAA,MACrB,KAAK;AAAA,MACL,MAAM;AAAA,QACJ;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAGF;;;AClGO,IAAM,cAAN,MAAkB;AAAA,EACrB;AAAA,EACA,YAAY,QAAgB;AACxB,SAAK,SAAS;AACd,SAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AAAA,EACvC;AAAA,EAGA,MAAM,OAAO,KAAsD;AAC/D,UAAM,WAAW,MAAM,KAAK,OAAO,IAAI;AAAA,MACnC,KAAK;AAAA,MACL;AAAA,IACJ,CAAC;AACD,WAAO;AAAA,EACX;AACJ;;;ACfO,IAAM,gBAAN,MAAoB;AAAA,EACf;AAAA,EAER,YAAY,QAAa;AACrB,SAAK,SAAS;AACd,SAAK,cAAc,KAAK,YAAY,KAAK,IAAI;AAC7C,SAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AACnC,SAAK,uBAAuB,KAAK,qBAAqB,KAAK,IAAI;AAAA,EACnE;AAAA,EAEA,MAAM,YAAY;AAAA,IAClB,OAAO;AAAA,IACP,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAA4B,KAAoD;AAC1E,UAAM,WAAW,MAAM,KAAK,OAAO,IAAI;AAAA,MACnC,KAAK;AAAA,MACL;AAAA,MACA,QAAS;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AAAA,IACJ,CAAC;AACD,WAAO;AAAA,EACX;AAAA,EACA,MAAM,OAAO,UAAkB,KAA2B;AACtD,UAAM,KAAK,OAAO,OAAO;AAAA,MACrB,KAAK,aAAa,QAAQ;AAAA,MAC1B;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,qBAAsB,KAAwC;AAChE,UAAM,WAAW,MAAM,KAAK,OAAO,IAAI;AAAA,MACnC,KAAK;AAAA,MACL;AAAA,IACJ,CAAC;AACD,WAAO;AAAA,EACX;AACJ;;;AC5CO,IAAM,uBAAN,MAA2B;AAAA,EACtB;AAAA,EAER,YAAY,QAAgB;AACxB,SAAK,SAAS;AACd,SAAK,oBAAoB,KAAK,kBAAkB,KAAK,IAAI;AAAA,EAC7D;AAAA,EAEA,MAAM,kBAAkB,KAAqD;AACzE,UAAM,WAAW,MAAM,KAAK,OAAO,IAAI;AAAA,MACnC,KAAK;AAAA,MACL;AAAA,IACJ,CAAC;AACD,WAAO;AAAA,EACX;AACJ;;;AClBO,IAAK,aAAL,kBAAKC,gBAAL;AACL,EAAAA,YAAA,UAAO;AACP,EAAAA,YAAA,YAAS;AAFC,SAAAA;AAAA,GAAA;;;ARML,IAAM,WAAN,MAAM,UAAS;AAAA,EACpB,OAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA,YAAY,WAAoB,QAAiB;AAC/C,SAAK,SAAS,IAAI,OAAO,WAAW,MAAM;AAC1C,SAAK,OAAM,IAAI,YAAY,KAAK,MAAM;AACtC,SAAK,OAAM,IAAI,YAAY,KAAK,MAAM;AACtC,SAAK,SAAQ,IAAI,cAAc,KAAK,MAAM;AAC1C,SAAK,gBAAe,IAAI,qBAAqB,KAAK,MAAM;AAAA,EAE1D;AAAA,EAEA,OAAO,YAAY,YAAY,OAAiB;AAC9C,QAAI,CAAC,UAAS,UAAU;AACtB,gBAAS,WAAW,IAAI,UAAS,SAAS;AAAA,IAC5C;AACA,WAAO,UAAS;AAAA,EAClB;AAAA,EAEA,UAAkB;AAChB,WAAO;AAAA,EACT;AACF;","names":["axios","UserGender"]}
package/dist/index.mjs CHANGED
@@ -216,6 +216,7 @@ var BranchService = class {
216
216
  this.client = client;
217
217
  this.getBranches = this.getBranches.bind(this);
218
218
  this.delete = this.delete.bind(this);
219
+ this.getBranchStatusCount = this.getBranchStatusCount.bind(this);
219
220
  }
220
221
  async getBranches({
221
222
  page = 1,
@@ -243,6 +244,13 @@ var BranchService = class {
243
244
  jwt
244
245
  });
245
246
  }
247
+ async getBranchStatusCount(jwt) {
248
+ const response = await this.client.get({
249
+ url: "/branches/status-count",
250
+ jwt
251
+ });
252
+ return response;
253
+ }
246
254
  };
247
255
 
248
256
  // src/services/payment-methods.ts
@@ -290,7 +298,7 @@ var VitalFit = class _VitalFit {
290
298
  return _VitalFit.instance;
291
299
  }
292
300
  version() {
293
- return "0.0.10";
301
+ return "0.0.11";
294
302
  }
295
303
  };
296
304
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/client.ts","../src/settings.ts","../src/errors/errors.ts","../src/services/auth.ts","../src/services/user.ts","../src/services/branch.ts","../src/services/payment-methods.ts","../src/types/auth.ts","../src/index.ts"],"sourcesContent":["import axios, { type AxiosInstance } from 'axios'\nimport { BASE_URL, DEV_URL } from './settings'\nimport { APIError } from './errors'\nimport type { Pagination } from './types'\n\nexport type ClientConfig = {\n url: string\n jwt?: string\n data?: object\n params?: object\n}\n\nexport class Client {\n private client: AxiosInstance\n jwt?: string\n\n constructor(isDevMode: boolean, origin?: string) {\n let headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n }\n if (origin) {\n headers['Origin'] = origin\n }\n this.client = axios.create({\n baseURL: isDevMode ? DEV_URL : BASE_URL,\n headers,\n })\n }\n\n async call(method: string, config: ClientConfig): Promise<Response> {\n if (config.jwt) {\n this.client.interceptors.request.use((axiosConfig) => {\n if (axiosConfig.headers) {\n axiosConfig.headers['Authorization'] = `Bearer ${config.jwt}`\n }\n return axiosConfig\n })\n }\n try {\n const response = await this.client.request({\n method: method,\n url: config.url,\n data: config.data,\n params: config.params,\n })\n this.client.interceptors.request.clear()\n return response.data\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: unknown) {\n if (axios.isAxiosError(error)) {\n // Adaptado para el formato de error de la API de Go: { \"error\": \"mensaje\" }\n const errorMessage = error.response?.data?.error\n if (typeof errorMessage === 'string') {\n throw new APIError([errorMessage], error.response?.status ?? 500)\n }\n throw new APIError(['Ocurrió un error inesperado'], error.response?.status ?? 500)\n }\n throw new Error(error as string)\n }\n }\n\n async get(config: ClientConfig) {\n const isPaginated = config.params && 'page' in config.params\n if (isPaginated) {\n const response = await this.call('get', config)\n if ('results' in response) {\n const data: Pagination<any> = response as unknown as Pagination<any>\n return {\n data: data.data,\n count: data.count,\n next: data.next,\n previous: data.previous,\n }\n }\n throw new Error('Expected Pagination response')\n } else {\n const data = await this.call('get', config)\n return data\n }\n }\n\n async post(config: ClientConfig) {\n const data = await this.call('post', config)\n return data\n }\n\n async put(config: ClientConfig) {\n const data = await this.call('put', config)\n return data\n }\n\n async patch(config: ClientConfig) {\n const data = await this.call('patch', config)\n return data\n }\n\n async delete(config: ClientConfig) {\n const data = await this.call('delete', config)\n return data\n }\n\n setJWT(jwt: string) {\n this.jwt = jwt\n }\n\n removeJWT() {\n this.jwt = undefined\n }\n}","export const BASE_URL = 'https://api-rm8x.onrender.com/v1'\nexport const DEV_URL = 'https://api-rm8x.onrender.com/v1'\n","export class APIError extends Error {\n status: number\n messages: string[]\n constructor(messages: string[], status: number) {\n super(messages.join(', '))\n this.status = status\n this.messages = messages\n }\n}\n\nexport const isAPIError = (error: unknown): error is APIError => {\n return error instanceof APIError\n}\n\n\n","import { Client } from '../client'\nimport type {\n LoginRequest,\n LoginResponse,\n SignUpRequest,\n} from '../types'\n\nexport class AuthService {\n private client: Client\n constructor(client: Client) {\n this.client = client\n this.login = this.login.bind(this)\n this.signUp = this.signUp.bind(this)\n this.signUpStaff = this.signUpStaff.bind(this)\n this.forgotPassword = this.forgotPassword.bind(this)\n this.resetPassword = this.resetPassword.bind(this)\n this.verifyEmail = this.verifyEmail.bind(this)\n\n this.logout = this.logout.bind(this)\n this.saveJWT = this.saveJWT.bind(this)\n }\n\n async login({ email, password, context}: LoginRequest): Promise<LoginResponse> {\n const response = await this.client.post({\n url: '/auth/login',\n data: {\n email,\n password,\n context\n },\n })\n return response as unknown as LoginResponse\n }\n\n logout(): void {\n this.client.removeJWT()\n }\n\n saveJWT(jwt: string): void {\n this.client.setJWT(jwt)\n }\n\n async signUp(signUpData: SignUpRequest): Promise<void> {\n const birthDateRegex = /^\\d{4}-\\d{2}-\\d{2}$/\n if (signUpData.roleName !='client'){\n throw new Error('Only clients can sign up using this method')\n }\n if (!birthDateRegex.test(signUpData.birthDate)) {\n throw new Error(\n 'Birth date must be in the format YYYY-MM-DD',\n )\n }\n await this.client.post({\n url: '/auth/register',\n data: signUpData,\n })\n }\n\n\n async signUpStaff(signUpData: SignUpRequest): Promise<void> {\n const birthDateRegex = /^\\d{4}-\\d{2}-\\d{2}$/\n if (!birthDateRegex.test(signUpData.birthDate)) {\n throw new Error(\n 'Birth date must be in the format YYYY-MM-DD',\n )\n }\n await this.client.post({\n url: '/auth/register-staff',\n data: signUpData,\n })\n }\n async forgotPassword(email: string): Promise<void> {\n await this.client.post({\n url: '/auth/password/forgot',\n data: {\n email,\n },\n })\n }\n\n async resetPassword(otp: string, password: string, repeatPassword: string): Promise<void> {\n await this.client.post({\n url: '/auth/password/reset',\n data: {\n otp,\n password,\n repeatPassword,\n },\n })\n }\n\n async verifyEmail(otp: string): Promise<void> {\n await this.client.post({\n url: '/auth/activate',\n data: {\n otp,\n },\n })\n }\n\n\n}\n","import { Client } from \"@/client\";\nimport type { UserApiResponse } from \"@/types\";\n\nexport class UserService {\n client: Client;\n constructor(client: Client) {\n this.client = client;\n this.WhoAmI = this.WhoAmI.bind(this);\n }\n\n\n async WhoAmI(jwt:string): Promise<UserApiResponse> {\n const response = await this.client.get({\n url: '/user/whoami',\n jwt\n });\n return response as unknown as UserApiResponse;\n }\n}","import type { Pagination } from '@/types';\nimport type{ PaginatedBranch, PaginationBranchRequest } from '../types/branch';\n\nexport class BranchService {\n private client: any;\n\n constructor(client: any) {\n this.client = client;\n this.getBranches = this.getBranches.bind(this);\n this.delete = this.delete.bind(this);\n \n }\n\n async getBranches({\n page = 1,\n limit = 10,\n search,\n status,\n location\n }: PaginationBranchRequest, jwt:string): Promise<Pagination<PaginatedBranch>> {\n const response = await this.client.get({\n url: '/branches',\n jwt,\n params : {\n page,\n limit,\n search,\n status,\n location\n }\n });\n return response as unknown as Pagination<PaginatedBranch>;\n }\n async delete(branchId: string, jwt:string): Promise<void> {\n await this.client.delete({\n url: `/branches/${branchId}`,\n jwt,\n });\n }\n \n} ","import { Client } from '../client';\nimport type { PaymentMethod } from '../types';\n\nexport class PaymentMethodService {\n private client: Client;\n\n constructor(client: Client) {\n this.client = client;\n this.getPaymentMethods = this.getPaymentMethods.bind(this);\n }\n\n async getPaymentMethods(jwt: string): Promise<PaymentMethod[]> {\n const response = await this.client.get({\n url: '/branches/payment-methods',\n jwt,\n });\n return response as unknown as PaymentMethod[];\n }\n}\n\n\n\n\n\n\n\n\n","export enum UserGender {\n MALE = 'male',\n FEMALE = 'female',\n}\n\nexport type LoginRequest = {\n email: string\n password: string\n context?: string\n}\n\nexport type LoginResponse = {\n token: string\n}\n\nexport type SignUpRequest = {\n firstName: string\n lastName: string\n email: string\n password: string\n documentId: string\n phoneNumber?: string | null\n birthDate: string\n gender?: UserGender | null\n profilePictureUrl?: string | null\n roleName?: string | null\n}\n","import { Client } from './client'\nimport { AuthService, UserService, BranchService, PaymentMethodService } from './services'\n\n\n\n\nexport class VitalFit {\n private static instance: VitalFit\n client: Client\n auth: AuthService\n user: UserService\n branch: BranchService\n paymentMethod: PaymentMethodService\n \n\n constructor(isDevMode: boolean, origin?: string) {\n this.client = new Client(isDevMode, origin)\n this.auth= new AuthService(this.client)\n this.user= new UserService(this.client)\n this.branch= new BranchService(this.client)\n this.paymentMethod= new PaymentMethodService(this.client) \n \n }\n\n static getInstance(isDevMode = false): VitalFit {\n if (!VitalFit.instance) {\n VitalFit.instance = new VitalFit(isDevMode)\n }\n return VitalFit.instance\n }\n\n version(): string {\n return '0.0.10'\n }\n}\n\nexport * from './types'\nexport * from './errors'"],"mappings":"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","names":["UserGender"]}
1
+ {"version":3,"sources":["../src/client.ts","../src/settings.ts","../src/errors/errors.ts","../src/services/auth.ts","../src/services/user.ts","../src/services/branch.ts","../src/services/payment-methods.ts","../src/types/auth.ts","../src/index.ts"],"sourcesContent":["import axios, { type AxiosInstance } from 'axios'\nimport { BASE_URL, DEV_URL } from './settings'\nimport { APIError } from './errors'\nimport type { Pagination } from './types'\n\nexport type ClientConfig = {\n url: string\n jwt?: string\n data?: object\n params?: object\n}\n\nexport class Client {\n private client: AxiosInstance\n jwt?: string\n\n constructor(isDevMode: boolean, origin?: string) {\n let headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n }\n if (origin) {\n headers['Origin'] = origin\n }\n this.client = axios.create({\n baseURL: isDevMode ? DEV_URL : BASE_URL,\n headers,\n })\n }\n\n async call(method: string, config: ClientConfig): Promise<Response> {\n if (config.jwt) {\n this.client.interceptors.request.use((axiosConfig) => {\n if (axiosConfig.headers) {\n axiosConfig.headers['Authorization'] = `Bearer ${config.jwt}`\n }\n return axiosConfig\n })\n }\n try {\n const response = await this.client.request({\n method: method,\n url: config.url,\n data: config.data,\n params: config.params,\n })\n this.client.interceptors.request.clear()\n return response.data\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: unknown) {\n if (axios.isAxiosError(error)) {\n // Adaptado para el formato de error de la API de Go: { \"error\": \"mensaje\" }\n const errorMessage = error.response?.data?.error\n if (typeof errorMessage === 'string') {\n throw new APIError([errorMessage], error.response?.status ?? 500)\n }\n throw new APIError(['Ocurrió un error inesperado'], error.response?.status ?? 500)\n }\n throw new Error(error as string)\n }\n }\n\n async get(config: ClientConfig) {\n const isPaginated = config.params && 'page' in config.params\n if (isPaginated) {\n const response = await this.call('get', config)\n if ('results' in response) {\n const data: Pagination<any> = response as unknown as Pagination<any>\n return {\n data: data.data,\n count: data.count,\n next: data.next,\n previous: data.previous,\n }\n }\n throw new Error('Expected Pagination response')\n } else {\n const data = await this.call('get', config)\n return data\n }\n }\n\n async post(config: ClientConfig) {\n const data = await this.call('post', config)\n return data\n }\n\n async put(config: ClientConfig) {\n const data = await this.call('put', config)\n return data\n }\n\n async patch(config: ClientConfig) {\n const data = await this.call('patch', config)\n return data\n }\n\n async delete(config: ClientConfig) {\n const data = await this.call('delete', config)\n return data\n }\n\n setJWT(jwt: string) {\n this.jwt = jwt\n }\n\n removeJWT() {\n this.jwt = undefined\n }\n}","export const BASE_URL = 'https://api-rm8x.onrender.com/v1'\nexport const DEV_URL = 'https://api-rm8x.onrender.com/v1'\n","export class APIError extends Error {\n status: number\n messages: string[]\n constructor(messages: string[], status: number) {\n super(messages.join(', '))\n this.status = status\n this.messages = messages\n }\n}\n\nexport const isAPIError = (error: unknown): error is APIError => {\n return error instanceof APIError\n}\n\n\n","import { Client } from '../client'\nimport type {\n LoginRequest,\n LoginResponse,\n SignUpRequest,\n} from '../types'\n\nexport class AuthService {\n private client: Client\n constructor(client: Client) {\n this.client = client\n this.login = this.login.bind(this)\n this.signUp = this.signUp.bind(this)\n this.signUpStaff = this.signUpStaff.bind(this)\n this.forgotPassword = this.forgotPassword.bind(this)\n this.resetPassword = this.resetPassword.bind(this)\n this.verifyEmail = this.verifyEmail.bind(this)\n\n this.logout = this.logout.bind(this)\n this.saveJWT = this.saveJWT.bind(this)\n }\n\n async login({ email, password, context}: LoginRequest): Promise<LoginResponse> {\n const response = await this.client.post({\n url: '/auth/login',\n data: {\n email,\n password,\n context\n },\n })\n return response as unknown as LoginResponse\n }\n\n logout(): void {\n this.client.removeJWT()\n }\n\n saveJWT(jwt: string): void {\n this.client.setJWT(jwt)\n }\n\n async signUp(signUpData: SignUpRequest): Promise<void> {\n const birthDateRegex = /^\\d{4}-\\d{2}-\\d{2}$/\n if (signUpData.roleName !='client'){\n throw new Error('Only clients can sign up using this method')\n }\n if (!birthDateRegex.test(signUpData.birthDate)) {\n throw new Error(\n 'Birth date must be in the format YYYY-MM-DD',\n )\n }\n await this.client.post({\n url: '/auth/register',\n data: signUpData,\n })\n }\n\n\n async signUpStaff(signUpData: SignUpRequest): Promise<void> {\n const birthDateRegex = /^\\d{4}-\\d{2}-\\d{2}$/\n if (!birthDateRegex.test(signUpData.birthDate)) {\n throw new Error(\n 'Birth date must be in the format YYYY-MM-DD',\n )\n }\n await this.client.post({\n url: '/auth/register-staff',\n data: signUpData,\n })\n }\n async forgotPassword(email: string): Promise<void> {\n await this.client.post({\n url: '/auth/password/forgot',\n data: {\n email,\n },\n })\n }\n\n async resetPassword(otp: string, password: string, repeatPassword: string): Promise<void> {\n await this.client.post({\n url: '/auth/password/reset',\n data: {\n otp,\n password,\n repeatPassword,\n },\n })\n }\n\n async verifyEmail(otp: string): Promise<void> {\n await this.client.post({\n url: '/auth/activate',\n data: {\n otp,\n },\n })\n }\n\n\n}\n","import { Client } from \"@/client\";\nimport type { DataResponse, UserApiResponse } from \"@/types\";\n\nexport class UserService {\n client: Client;\n constructor(client: Client) {\n this.client = client;\n this.WhoAmI = this.WhoAmI.bind(this);\n }\n\n\n async WhoAmI(jwt:string): Promise<DataResponse<UserApiResponse[]>> {\n const response = await this.client.get({\n url: '/user/whoami',\n jwt\n });\n return response as unknown as DataResponse<UserApiResponse[]>;\n }\n}","import type { Pagination } from '@/types';\nimport type{ PaginatedBranch, PaginationBranchRequest, BranchStatusCount } from '../types/branch';\n\nexport class BranchService {\n private client: any;\n\n constructor(client: any) {\n this.client = client;\n this.getBranches = this.getBranches.bind(this);\n this.delete = this.delete.bind(this);\n this.getBranchStatusCount = this.getBranchStatusCount.bind(this);\n }\n\n async getBranches({\n page = 1,\n limit = 10,\n search,\n status,\n location\n }: PaginationBranchRequest, jwt:string): Promise<Pagination<PaginatedBranch[]>> {\n const response = await this.client.get({\n url: '/branches',\n jwt,\n params : {\n page,\n limit,\n search,\n status,\n location\n }\n });\n return response as unknown as Pagination<PaginatedBranch[]>;\n }\n async delete(branchId: string, jwt:string): Promise<void> {\n await this.client.delete({\n url: `/branches/${branchId}`,\n jwt,\n });\n }\n \n async getBranchStatusCount( jwt:string): Promise<BranchStatusCount> {\n const response = await this.client.get({\n url: '/branches/status-count',\n jwt,\n });\n return response as unknown as BranchStatusCount;\n }\n} ","import { Client } from '../client';\nimport type { DataResponse, PaymentMethod } from '../types';\n\nexport class PaymentMethodService {\n private client: Client;\n\n constructor(client: Client) {\n this.client = client;\n this.getPaymentMethods = this.getPaymentMethods.bind(this);\n }\n\n async getPaymentMethods(jwt: string): Promise<DataResponse<PaymentMethod[]>> {\n const response = await this.client.get({\n url: '/branches/payment-methods',\n jwt,\n });\n return response as unknown as DataResponse<PaymentMethod[]>;\n }\n}\n\n\n\n\n\n\n\n\n","export enum UserGender {\n MALE = 'male',\n FEMALE = 'female',\n}\n\nexport type LoginRequest = {\n email: string\n password: string\n context?: string\n}\n\nexport type LoginResponse = {\n token: string\n}\n\nexport type SignUpRequest = {\n firstName: string\n lastName: string\n email: string\n password: string\n documentId: string\n phoneNumber?: string | null\n birthDate: string\n gender?: UserGender | null\n profilePictureUrl?: string | null\n roleName?: string | null\n}\n","import { Client } from './client'\nimport { AuthService, UserService, BranchService, PaymentMethodService } from './services'\n\n\n\n\nexport class VitalFit {\n private static instance: VitalFit\n client: Client\n auth: AuthService\n user: UserService\n branch: BranchService\n paymentMethod: PaymentMethodService\n \n\n constructor(isDevMode: boolean, origin?: string) {\n this.client = new Client(isDevMode, origin)\n this.auth= new AuthService(this.client)\n this.user= new UserService(this.client)\n this.branch= new BranchService(this.client)\n this.paymentMethod= new PaymentMethodService(this.client) \n \n }\n\n static getInstance(isDevMode = false): VitalFit {\n if (!VitalFit.instance) {\n VitalFit.instance = new VitalFit(isDevMode)\n }\n return VitalFit.instance\n }\n\n version(): string {\n return '0.0.11'\n }\n}\n\nexport * from './types'\nexport * from './errors'"],"mappings":"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","names":["UserGender"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitalfit/sdk",
3
- "version": "0.0.10",
3
+ "version": "0.0.11",
4
4
  "description": "VitalFit Core API SDK",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",