@vitalfit/sdk 0.0.17 → 0.0.19

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.js CHANGED
@@ -105,9 +105,9 @@ var Client = class {
105
105
  }
106
106
  async get(config) {
107
107
  const isPaginated = config.params && "page" in config.params;
108
- const baseURL = this.client.defaults.baseURL || "";
109
108
  if (isPaginated) {
110
109
  const response = await this.call("get", config);
110
+ const baseURL = this.client.defaults.baseURL;
111
111
  if ("results" in response) {
112
112
  const data = response;
113
113
  return {
@@ -354,7 +354,7 @@ var VitalFit = class _VitalFit {
354
354
  return _VitalFit.instance;
355
355
  }
356
356
  version() {
357
- return "0.0.16";
357
+ return "0.0.19";
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.16'\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) {\n const isPaginated = config.params && 'page' in config.params\n const baseURL = this.client.defaults.baseURL || ''\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: `${baseURL}${data.next}`,\n previous: `${baseURL}${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\";\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.19'\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) {\n const isPaginated = config.params && 'page' in config.params\n if (isPaginated) {\n const response = await this.call('get', config)\n const baseURL = this.client.defaults.baseURL\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: `${baseURL}${data.next}`,\n previous: `${baseURL}${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\";\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"]}
package/dist/index.mjs CHANGED
@@ -66,9 +66,9 @@ var Client = class {
66
66
  }
67
67
  async get(config) {
68
68
  const isPaginated = config.params && "page" in config.params;
69
- const baseURL = this.client.defaults.baseURL || "";
70
69
  if (isPaginated) {
71
70
  const response = await this.call("get", config);
71
+ const baseURL = this.client.defaults.baseURL;
72
72
  if ("results" in response) {
73
73
  const data = response;
74
74
  return {
@@ -315,7 +315,7 @@ var VitalFit = class _VitalFit {
315
315
  return _VitalFit.instance;
316
316
  }
317
317
  version() {
318
- return "0.0.16";
318
+ return "0.0.19";
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) {\n const isPaginated = config.params && 'page' in config.params\n const baseURL = this.client.defaults.baseURL || ''\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: `${baseURL}${data.next}`,\n previous: `${baseURL}${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\";\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.16'\n }\n}\n\nexport * from './types'\nexport * from './errors'"],"mappings":";AAAA,OAAO,WAAmC;;;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,MAAM,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,MAAM,aAAa,KAAK,GAAG;AAC7B,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,UAAM,UAAU,KAAK,OAAO,SAAS,WAAW;AAChD,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,GAAG,OAAO,GAAG,KAAK,IAAI;AAAA,UAC5B,UAAU,GAAG,OAAO,GAAG,KAAK,QAAQ;AAAA,QACtC;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;;;ACjGO,IAAM,cAAN,MAAkB;AAAA,EACrB;AAAA,EACA,YAAY,QAAgB;AACxB,SAAK,SAAS;AACd,SAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AACnC,SAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI;AAAA,EAEzD;AAAA,EAGA,MAAM,OAAO,KAAsC;AAC/C,UAAM,WAAW,MAAM,KAAK,OAAO,IAAI;AAAA,MACnC,KAAK;AAAA,MACL;AAAA,IACJ,CAAC;AACD,WAAO;AAAA,EACX;AAAA,EACA,MAAM,gBAAgB,KAAsD;AACxE,UAAM,WAAW,MAAM,KAAK,OAAO,IAAI;AAAA,MACnC,KAAK;AAAA,MACL;AAAA,IACJ,CAAC;AACD,WAAO;AAAA,EACX;AAEJ;;;AC1BO,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;AAC/D,SAAK,eAAe,KAAK,aAAa,KAAK,IAAI;AAAA,EAEnD;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;AAAA,EAGA,MAAM,aAAa,YAAiC,KAA2B;AAC3E,UAAM,KAAK,OAAO,KAAK;AAAA,MACnB,KAAK;AAAA,MACL;AAAA,MACA,MAAM;AAAA,IACV,CAAC;AAAA,EACL;AACJ;;;ACvDO,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,kBAAKA,gBAAL;AACL,EAAAA,YAAA,UAAO;AACP,EAAAA,YAAA,YAAS;AAFC,SAAAA;AAAA,GAAA;;;ACML,IAAM,WAAN,MAAM,UAAS;AAAA,EACpB,OAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAIA,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":["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) {\n const isPaginated = config.params && 'page' in config.params\n if (isPaginated) {\n const response = await this.call('get', config)\n const baseURL = this.client.defaults.baseURL\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: `${baseURL}${data.next}`,\n previous: `${baseURL}${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\";\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.19'\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.17",
3
+ "version": "0.0.19",
4
4
  "description": "VitalFit Core API SDK",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",