@vitalfit/sdk 0.0.20 → 0.0.22

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
@@ -166,6 +166,7 @@ type BranchStatusCount = {
166
166
  Active: number;
167
167
  Inactive: number;
168
168
  Maintenance: number;
169
+ Total: number;
169
170
  };
170
171
  type PaginationBranchRequest = PaginationRequest & {
171
172
  status?: string;
package/dist/index.d.ts CHANGED
@@ -166,6 +166,7 @@ type BranchStatusCount = {
166
166
  Active: number;
167
167
  Inactive: number;
168
168
  Maintenance: number;
169
+ Total: number;
169
170
  };
170
171
  type PaginationBranchRequest = PaginationRequest & {
171
172
  status?: string;
package/dist/index.js CHANGED
@@ -295,7 +295,7 @@ var BranchService = class {
295
295
  }
296
296
  async getBranchStatusCount(jwt) {
297
297
  const response = await this.client.get({
298
- url: "/branches/status-count",
298
+ url: "/branches/status",
299
299
  jwt
300
300
  });
301
301
  return response;
@@ -354,7 +354,7 @@ var VitalFit = class _VitalFit {
354
354
  return _VitalFit.instance;
355
355
  }
356
356
  version() {
357
- return "0.0.20";
357
+ return "0.0.22";
358
358
  }
359
359
  };
360
360
  // 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\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.20'\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 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): Promise<any> {\n const isPaginated = config.params && 'page' in config.params\n\n if (isPaginated) {\n const response = (await this.call(\n 'get',\n config,\n )) as unknown as Pagination<any>\n\n const baseURL = this.client.defaults.baseURL || ''\n\n if (response.next) {\n response.next = `${baseURL}${response.next}`\n }\n if (response.previous) {\n response.previous = `${baseURL}${response.previous}`\n }\n\n return 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\";\nimport type { DataResponse } from \"../../dist\";\n\nexport class UserService {\n client: Client;\n constructor(client: Client) {\n this.client = client;\n this.WhoAmI = this.WhoAmI.bind(this);\n this.getBranchAdmins = this.getBranchAdmins.bind(this);\n\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 async getBranchAdmins(jwt:string): Promise<DataResponse<UserApiResponse[]>> {\n const response = await this.client.get({\n url: '/user/branch-admins',\n jwt\n });\n return response as unknown as DataResponse<UserApiResponse[]>;\n }\n\n}","import type { Pagination, CreateBranchRequest } 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 this.createBranch = this.createBranch.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 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\n\n async createBranch(branchData: CreateBranchRequest, jwt:string): Promise<void> {\n await this.client.post({\n url: '/branches',\n jwt,\n data: branchData,\n });\n }\n} \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":"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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\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.22'\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 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): Promise<any> {\n const isPaginated = config.params && 'page' in config.params\n\n if (isPaginated) {\n const response = (await this.call(\n 'get',\n config,\n )) as unknown as Pagination<any>\n\n const baseURL = this.client.defaults.baseURL || ''\n\n if (response.next) {\n response.next = `${baseURL}${response.next}`\n }\n if (response.previous) {\n response.previous = `${baseURL}${response.previous}`\n }\n\n return 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\";\nimport type { DataResponse } from \"../../dist\";\n\nexport class UserService {\n client: Client;\n constructor(client: Client) {\n this.client = client;\n this.WhoAmI = this.WhoAmI.bind(this);\n this.getBranchAdmins = this.getBranchAdmins.bind(this);\n\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 async getBranchAdmins(jwt:string): Promise<DataResponse<UserApiResponse[]>> {\n const response = await this.client.get({\n url: '/user/branch-admins',\n jwt\n });\n return response as unknown as DataResponse<UserApiResponse[]>;\n }\n\n}","import type { Pagination, CreateBranchRequest } 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 this.createBranch = this.createBranch.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 async getBranchStatusCount( jwt:string): Promise<BranchStatusCount> {\n const response = await this.client.get({\n url: '/branches/status',\n jwt,\n });\n return response as unknown as BranchStatusCount;\n }\n\n\n async createBranch(branchData: CreateBranchRequest, jwt:string): Promise<void> {\n await this.client.post({\n url: '/branches',\n jwt,\n data: branchData,\n });\n }\n} \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":"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","names":["axios","UserGender"]}
package/dist/index.mjs CHANGED
@@ -256,7 +256,7 @@ var BranchService = class {
256
256
  }
257
257
  async getBranchStatusCount(jwt) {
258
258
  const response = await this.client.get({
259
- url: "/branches/status-count",
259
+ url: "/branches/status",
260
260
  jwt
261
261
  });
262
262
  return response;
@@ -315,7 +315,7 @@ var VitalFit = class _VitalFit {
315
315
  return _VitalFit.instance;
316
316
  }
317
317
  version() {
318
- return "0.0.20";
318
+ return "0.0.22";
319
319
  }
320
320
  };
321
321
  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 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): Promise<any> {\n const isPaginated = config.params && 'page' in config.params\n\n if (isPaginated) {\n const response = (await this.call(\n 'get',\n config,\n )) as unknown as Pagination<any>\n\n const baseURL = this.client.defaults.baseURL || ''\n\n if (response.next) {\n response.next = `${baseURL}${response.next}`\n }\n if (response.previous) {\n response.previous = `${baseURL}${response.previous}`\n }\n\n return 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\";\nimport type { DataResponse } from \"../../dist\";\n\nexport class UserService {\n client: Client;\n constructor(client: Client) {\n this.client = client;\n this.WhoAmI = this.WhoAmI.bind(this);\n this.getBranchAdmins = this.getBranchAdmins.bind(this);\n\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 async getBranchAdmins(jwt:string): Promise<DataResponse<UserApiResponse[]>> {\n const response = await this.client.get({\n url: '/user/branch-admins',\n jwt\n });\n return response as unknown as DataResponse<UserApiResponse[]>;\n }\n\n}","import type { Pagination, CreateBranchRequest } 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 this.createBranch = this.createBranch.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 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\n\n async createBranch(branchData: CreateBranchRequest, jwt:string): Promise<void> {\n await this.client.post({\n url: '/branches',\n jwt,\n data: branchData,\n });\n }\n} \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\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.20'\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 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): Promise<any> {\n const isPaginated = config.params && 'page' in config.params\n\n if (isPaginated) {\n const response = (await this.call(\n 'get',\n config,\n )) as unknown as Pagination<any>\n\n const baseURL = this.client.defaults.baseURL || ''\n\n if (response.next) {\n response.next = `${baseURL}${response.next}`\n }\n if (response.previous) {\n response.previous = `${baseURL}${response.previous}`\n }\n\n return 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\";\nimport type { DataResponse } from \"../../dist\";\n\nexport class UserService {\n client: Client;\n constructor(client: Client) {\n this.client = client;\n this.WhoAmI = this.WhoAmI.bind(this);\n this.getBranchAdmins = this.getBranchAdmins.bind(this);\n\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 async getBranchAdmins(jwt:string): Promise<DataResponse<UserApiResponse[]>> {\n const response = await this.client.get({\n url: '/user/branch-admins',\n jwt\n });\n return response as unknown as DataResponse<UserApiResponse[]>;\n }\n\n}","import type { Pagination, CreateBranchRequest } 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 this.createBranch = this.createBranch.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 async getBranchStatusCount( jwt:string): Promise<BranchStatusCount> {\n const response = await this.client.get({\n url: '/branches/status',\n jwt,\n });\n return response as unknown as BranchStatusCount;\n }\n\n\n async createBranch(branchData: CreateBranchRequest, jwt:string): Promise<void> {\n await this.client.post({\n url: '/branches',\n jwt,\n data: branchData,\n });\n }\n} \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\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.22'\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.20",
3
+ "version": "0.0.22",
4
4
  "description": "VitalFit Core API SDK",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",