@bshsolutions/sdk 0.0.35-beta → 0.0.36

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.
@@ -584,7 +584,6 @@ var TenantService = class {
584
584
  this.baseEndpoint = "/api/tenants";
585
585
  }
586
586
  async create(params) {
587
- console.log("params", params);
588
587
  return this.client.post({
589
588
  path: this.baseEndpoint,
590
589
  options: {
@@ -1098,5 +1097,5 @@ var ApiKeyService = class {
1098
1097
  };
1099
1098
 
1100
1099
  export { AdminUserService, ApiKeyService, AuthService, BshUtilsService, CachingService, EntityService, ImageService, MailingService, SettingsService, TenantService, UserService };
1101
- //# sourceMappingURL=chunk-E75ULHMO.js.map
1102
- //# sourceMappingURL=chunk-E75ULHMO.js.map
1100
+ //# sourceMappingURL=chunk-C6W32LLO.js.map
1101
+ //# sourceMappingURL=chunk-C6W32LLO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/services/entities/index.ts","../src/services/auth/index.ts","../src/services/user/index.ts","../src/services/tenant/index.ts","../src/services/settings/index.ts","../src/services/image/index.ts","../src/services/mailing/index.ts","../src/services/utils/index.ts","../src/services/caching/index.ts","../src/services/api-key/index.ts"],"names":[],"mappings":"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","file":"chunk-C6W32LLO.js","sourcesContent":["import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, BshSearch } from \"@types\";\nimport { BshCallbackParams, BshCallbackParamsWithPayload } from \"@src/services\";\n\nexport type EntityFnParams<T = unknown, R = T> = BshCallbackParams<T, R> & { entity?: string }\nexport type EntityFnParamsWithPayload<T = unknown, R = T> = BshCallbackParamsWithPayload<T, R> & { entity?: string }\nexport type EntitySearchFnParams<T, R = T> = EntityFnParamsWithPayload<BshSearch<T>, R>\n\nexport class EntityService<T = unknown> {\n private readonly baseEndpoint = '/api/entities';\n\n public constructor(private readonly client: BshClient, private readonly entity?: string) {\n }\n\n // Get a single entity by ID\n public async findById<TT = T>(params: EntityFnParams<TT> & { id: string }): Promise<BshResponse<TT> | undefined> {\n return this.client.get<TT>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}/${params.id}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.findById`,\n entity: params.entity || this.entity,\n });\n }\n\n // Create a new entity\n public async create<TT = T, R = TT>(\n params: EntityFnParamsWithPayload<TT, R>\n ): Promise<BshResponse<R> | undefined> {\n return this.client.post<TT, R>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.create`,\n entity: params.entity || this.entity,\n });\n }\n\n // Create multiple entities in batch\n public async createMany<TT = T, R = TT>(\n params: EntityFnParamsWithPayload<TT[], R>\n ): Promise<BshResponse<R> | undefined> {\n return this.client.post<TT, R>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}/batch`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.createMany`,\n entity: params.entity || this.entity,\n });\n }\n\n // Update an existing entity\n public async update<TT = T, R = TT>(\n params: EntityFnParamsWithPayload<TT, R>\n ): Promise<BshResponse<R> | undefined> {\n return this.client.put<TT, R>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.update`,\n entity: params.entity || this.entity,\n });\n }\n\n // Update multiple entities in batch\n public async updateMany<TT = T, R = TT>(\n params: EntityFnParamsWithPayload<TT[], R>\n ): Promise<BshResponse<R> | undefined> {\n return this.client.put<TT, R>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}/batch`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.updateMany`,\n entity: params.entity || this.entity,\n });\n }\n\n // Search for entities\n public async search<TT extends T = T, R = TT>(\n params: EntitySearchFnParams<TT, R>\n ): Promise<BshResponse<R> | undefined> {\n return this.client.post<TT, R>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}/search`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.search`,\n entity: params.entity || this.entity,\n });\n }\n\n // Delete entities by search criteria\n public async delete<TT = T>(\n params: EntitySearchFnParams<TT, { effected: number }>\n ): Promise<BshResponse<{ effected: number }> | undefined> {\n return this.client.post<TT, { effected: number }>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}/delete`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.delete`,\n entity: params.entity || this.entity,\n });\n }\n\n // Delete a single entity by ID\n public async deleteById<TT = T>(\n params: EntityFnParams<TT, { effected: number }> & { id: string }\n ): Promise<BshResponse<{ effected: number }> | undefined> {\n return this.client.delete<{ effected: number }>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}/${params.id}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.deleteById`,\n entity: params.entity || this.entity,\n });\n }\n\n // Get entity columns\n public async columns(\n params: EntityFnParams<unknown, { name: string; type: string }>\n ): Promise<BshResponse<{ name: string; type: string }> | undefined> {\n return this.client.get<{ name: string; type: string }>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}/columns`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.columns`,\n entity: params.entity || this.entity,\n });\n }\n\n // Count entities\n public async count(\n params: EntityFnParams<unknown, { count: number }>\n ): Promise<BshResponse<{ count: number }> | undefined> {\n return this.client.get<{ count: number }>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}/count`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.count`,\n entity: params.entity || this.entity,\n });\n }\n\n // Count entities with search criteria\n public async countFiltered<TT extends T = T, R = TT>(\n params: EntitySearchFnParams<TT, R>\n ): Promise<BshResponse<R> | undefined> {\n return this.client.post<TT, R>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}/count`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.countBySearch`,\n entity: params.entity || this.entity,\n });\n }\n\n // Export entities\n public async export<TT = T>(\n params: EntityFnParamsWithPayload<BshSearch<TT>, Blob> & {\n format: 'csv' | 'json' | 'excel',\n filename?: string,\n }\n ): Promise<void> {\n const defaultName = `${params.entity || this.entity}_export_${new Date().toISOString().split('T')[0]}`;\n const exportFilename = params.filename || `${defaultName}.${params.format == 'excel' ? 'xlsx' : params.format}`;\n\n await this.client.download<TT>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}/export?format=${params.format}&filename=${exportFilename}`,\n options: {\n responseType: 'blob',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: { onDownload: params.onDownload, onError: params.onError },\n api: `entities.${params.entity || this.entity}.export`,\n entity: params.entity || this.entity,\n });\n }\n}\n","\nimport { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, BshUser, BshUserInit, LoginParams, AuthTokens } from \"@types\";\nimport { BshCallbackParams, BshCallbackParamsWithPayload } from \"@src/services\";\nimport { CoreEntities } from \"@src/types/core\";\n\nexport class AuthService {\n private readonly baseEndpoint = '/api/auth';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async login(params: BshCallbackParamsWithPayload<LoginParams, AuthTokens>): Promise<BshResponse<AuthTokens> | undefined> {\n return this.client.post<AuthTokens>({\n path: `${this.baseEndpoint}/login`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'auth.login',\n });\n }\n\n public async logout(params: BshCallbackParams<unknown>): Promise<BshResponse<unknown> | undefined> {\n return this.client.post<unknown>({\n path: `${this.baseEndpoint}/logout`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n api: 'auth.logout',\n });\n }\n\n public async register(params: BshCallbackParamsWithPayload<BshUserInit, BshUser>): Promise<BshResponse<BshUser> | undefined> {\n return this.client.post<BshUser>({\n path: `${this.baseEndpoint}/register`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'auth.register',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async refreshToken(params: BshCallbackParamsWithPayload<{ refresh: string }, AuthTokens>): Promise<BshResponse<AuthTokens> | undefined> {\n return this.client.post<AuthTokens>({\n path: `${this.baseEndpoint}/refresh`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'auth.refreshToken',\n });\n }\n\n public async forgetPassword(\n params: BshCallbackParamsWithPayload<{ email: string }, unknown>): Promise<BshResponse<unknown> | undefined> {\n return this.client.post<unknown>({\n path: `${this.baseEndpoint}/forget-password`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'auth.forgetPassword',\n });\n }\n\n public async resetPassword(params: BshCallbackParamsWithPayload<{ email: string, code: string, newPassword: string }, unknown>): Promise<BshResponse<unknown> | undefined> {\n return this.client.post<unknown>({\n path: `${this.baseEndpoint}/reset-password`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'auth.resetPassword',\n });\n }\n\n public async activateAccount(params: BshCallbackParamsWithPayload<{ email: string, code: string }, unknown>): Promise<BshResponse<unknown> | undefined> {\n return this.client.post<unknown>({\n path: `${this.baseEndpoint}/activate-account`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'auth.activateAccount',\n });\n }\n\n public async resendActivationEmail(params: BshCallbackParamsWithPayload<{ email: string }, unknown>): Promise<BshResponse<unknown> | undefined> {\n return this.client.post<unknown>({\n path: `${this.baseEndpoint}/resend-activation-email`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'auth.resendActivationEmail',\n entity: CoreEntities.BshUsers,\n });\n }\n}\n","import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, BshUser, BshUserInit, BshSearch } from \"@types\";\nimport { BshCallbackParams, BshCallbackParamsWithPayload, BshSearchCallbackParams } from \"@src/services\";\nimport { CoreEntities } from \"@src/types/core\";\n\nexport class AdminUserService {\n private readonly baseEndpoint = '/api/users/admin';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async resetPassword<T = BshUser>(params: BshCallbackParams<Partial<BshUser>, T> & { email: string }): Promise<BshResponse<T> | undefined> {\n return this.client.put<T>({\n path: `${this.baseEndpoint}/forget-password/${params.email}`,\n options: { responseType: 'json' },\n bshOptions: params,\n api: 'users.admin.resetPassword',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async activateAccount<T = BshUser>(params: BshCallbackParams<Partial<BshUser>, T> & { email: string }): Promise<BshResponse<T> | undefined> {\n return this.client.put<T>({\n path: `${this.baseEndpoint}/activate-account/${params.email}`,\n options: { responseType: 'json' },\n bshOptions: params,\n api: 'users.admin.activateAccount',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async resendActivationCode<T = BshUser>(params: BshCallbackParams<Partial<BshUser>, T> & { email: string }): Promise<BshResponse<T> | undefined> {\n return this.client.put<T>({\n path: `${this.baseEndpoint}/resend-activation-email/${params.email}`,\n options: { responseType: 'json' },\n bshOptions: params,\n api: 'users.admin.resendActivationCode',\n entity: CoreEntities.BshUsers,\n });\n }\n}\n\nexport class UserService {\n private readonly baseEndpoint = '/api/users';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async me(params: BshCallbackParams<unknown, BshUser>): Promise<BshResponse<BshUser> | undefined> {\n return this.client.get<BshUser>({\n path: `${this.baseEndpoint}/me`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n api: 'users.me',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async init<T = BshUser>(params: BshCallbackParamsWithPayload<BshUserInit, T> & { generatePassword?: boolean }): Promise<BshResponse<T> | undefined> {\n return this.client.post<T>({\n path: `${this.baseEndpoint}/init?generatePassword=${params.generatePassword === true ? 'true' : 'false'}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'users.init',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async invite(params: BshCallbackParamsWithPayload<{ email: string, roles?: string[] }, { message: string }>): Promise<BshResponse<{ message: string }> | undefined> {\n return this.client.post<{ message: string }>({\n path: `${this.baseEndpoint}/invite`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'users.invite',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async updateProfile<T = BshUser>(params: BshCallbackParamsWithPayload<Partial<BshUser['profile']>, T>): Promise<BshResponse<T> | undefined> {\n return this.client.put<T>({\n path: `${this.baseEndpoint}/profile`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'users.updateProfile',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async updatePicture<T = BshUser>(params: BshCallbackParamsWithPayload<File, T>): Promise<BshResponse<T> | undefined> {\n const formData = new FormData();\n formData.set('picture', params.payload);\n\n return this.client.post<T>({\n path: `${this.baseEndpoint}/picture`,\n options: {\n responseType: 'json',\n requestFormat: 'form',\n body: formData,\n },\n bshOptions: params,\n api: 'users.updatePicture',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async updatePassword(params: BshCallbackParamsWithPayload<{ currentPassword: string; newPassword: string }, { message: string }>): Promise<BshResponse<{ message: string }> | undefined> {\n return this.client.put<{ message: string }>({\n path: `${this.baseEndpoint}/password`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'users.updatePassword',\n entity: CoreEntities.BshUsers,\n });\n }\n\n // Admin\n public get admin() {\n return new AdminUserService(this.client);\n }\n\n // CRUD\n public async getById<T = BshUser>(params: BshCallbackParams<unknown, T> & { id: string }): Promise<BshResponse<T> | undefined> {\n return this.client.get<T>({\n path: `${this.baseEndpoint}/${params.id}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n api: 'users.getById',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async search<T = BshUser, R = BshUser>(params: BshSearchCallbackParams<T, R>): Promise<BshResponse<R> | undefined> {\n return this.client.post<T, R>({\n path: `${this.baseEndpoint}/search`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'users.search',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async list(params: BshCallbackParams<unknown, BshUser> & {\n queryParams?: {\n page?: string;\n size?: string;\n sort?: string;\n filter?: string;\n }\n }): Promise<BshResponse<BshUser> | undefined> {\n const urlSearchParams = new URLSearchParams();\n if (params.queryParams?.page) urlSearchParams.append('page', params.queryParams.page);\n if (params.queryParams?.size) urlSearchParams.append('size', params.queryParams.size);\n if (params.queryParams?.sort) urlSearchParams.append('sort', params.queryParams.sort);\n if (params.queryParams?.filter) urlSearchParams.append('filter', params.queryParams.filter);\n\n const queryString = urlSearchParams.toString();\n const endpoint = queryString ? `?${queryString}` : '';\n\n return this.client.get<BshUser>({\n path: `${this.baseEndpoint}${endpoint}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n api: 'users.list',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async update<T = BshUser>(params: BshCallbackParamsWithPayload<Partial<BshUser>, T>): Promise<BshResponse<T> | undefined> {\n return this.client.put<T>({\n path: `${this.baseEndpoint}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'users.update',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async deleteById<T = BshUser>(params: BshCallbackParams<unknown, T> & { id: string }): Promise<BshResponse<T> | undefined> {\n return this.client.delete<T>({\n path: `${this.baseEndpoint}/${params.id}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n api: 'users.deleteById',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async count(\n params: BshCallbackParams<unknown, { count: number }>\n ): Promise<BshResponse<{ count: number }> | undefined> {\n return this.client.get<{ count: number }>({\n path: `${this.baseEndpoint}/count`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n api: 'users.count',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async countFiltered(params: BshSearchCallbackParams<BshUser, { count: number }>): Promise<BshResponse<{ count: number }> | undefined> {\n return this.client.post<{ count: number }>({\n path: `${this.baseEndpoint}/count`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'users.countFiltered',\n entity: CoreEntities.BshUsers,\n });\n }\n}\n","import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, BshTenant, BshTenantPure, BshSearch } from \"@types\";\nimport { BshCallbackParams, BshCallbackParamsWithPayload, BshSearchCallbackParams } from \"@src/services\";\nimport { CoreEntities } from \"@src/types/core\";\n\nexport class TenantService {\n private readonly baseEndpoint = '/api/tenants';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async create<T = BshTenant, F = BshTenantPure>(params: BshCallbackParamsWithPayload<F, T>): Promise<BshResponse<T> | undefined> {\n return this.client.post<T>({\n path: this.baseEndpoint,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'tenants.create',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async assignAdmin<T = BshTenant>(params: BshCallbackParams<{ id: string, adminId: string }, T> & { id: string, adminId: string }): Promise<BshResponse<T> | undefined> {\n return this.client.put<T>({\n path: `${this.baseEndpoint}/${params.id}/admin/${params.adminId}`,\n options: {\n responseType: 'json',\n },\n bshOptions: params,\n api: 'tenants.assignAdmin',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async activate<T = BshTenant>(params: BshCallbackParams<{ id: string }, T> & { id: string }): Promise<BshResponse<T> | undefined> {\n return this.client.post<T>({\n path: `${this.baseEndpoint}/${params.id}/activate`,\n options: {\n responseType: 'json',\n },\n bshOptions: params,\n api: 'tenants.activate',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async deactivate<T = BshTenant>(params: BshCallbackParams<{ id: string }, T> & { id: string }): Promise<BshResponse<T> | undefined> {\n return this.client.post<T>({\n path: `${this.baseEndpoint}/${params.id}/deactivate`,\n options: {\n responseType: 'json',\n },\n bshOptions: params,\n api: 'tenants.deactivate',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async block<T = BshTenant>(params: BshCallbackParams<{ id: string }, T> & { id: string }): Promise<BshResponse<T> | undefined> {\n return this.client.post<T>({\n path: `${this.baseEndpoint}/${params.id}/block`,\n options: {\n responseType: 'json',\n },\n bshOptions: params,\n api: 'tenants.block',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async getById<T = BshTenant>(params: BshCallbackParams<{ id: string }, T> & { id: string }): Promise<BshResponse<T> | undefined> {\n return this.client.get<T>({\n path: `${this.baseEndpoint}/${params.id}`,\n options: {\n responseType: 'json',\n },\n bshOptions: params,\n api: 'tenants.getById',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async search<T = BshTenant>(params: BshSearchCallbackParams<BshTenant, T>): Promise<BshResponse<T> | undefined> {\n return this.client.post<T>({\n path: `${this.baseEndpoint}/search`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'tenants.search',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async list<T = BshTenant>(params: BshCallbackParams<unknown, T> & { page?: number, size?: number, sort?: string, filter?: string }): Promise<BshResponse<T> | undefined> {\n const queryParams: Record<string, string> = {};\n if (params.page !== undefined) queryParams.page = params.page.toString();\n if (params.size !== undefined) queryParams.size = params.size.toString();\n if (params.sort !== undefined) queryParams.sort = params.sort;\n if (params.filter !== undefined) queryParams.filter = params.filter;\n\n return this.client.get<T>({\n path: this.baseEndpoint,\n options: {\n responseType: 'json',\n queryParams,\n },\n bshOptions: params,\n api: 'tenants.list',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async update<T = BshTenant>(params: BshCallbackParamsWithPayload<Partial<T>, T>): Promise<BshResponse<T> | undefined> {\n return this.client.put<T>({\n path: this.baseEndpoint,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'tenants.update',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async delete<T = any>(params: BshCallbackParams<{ id: string }, T> & { id: string }): Promise<BshResponse<T> | undefined> {\n return this.client.delete<T>({\n path: `${this.baseEndpoint}/${params.id}`,\n options: {\n responseType: 'json',\n },\n bshOptions: params,\n api: 'tenants.delete',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async count<T = { count: number }>(params: BshCallbackParams<unknown, T>): Promise<BshResponse<T> | undefined> {\n return this.client.get<T>({\n path: `${this.baseEndpoint}/count`,\n options: {\n responseType: 'json',\n },\n bshOptions: params,\n api: 'tenants.count',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async countFiltered<T = { count: number }>(params: BshSearchCallbackParams<BshTenant, T>): Promise<BshResponse<T> | undefined> {\n return this.client.post<T>({\n path: `${this.baseEndpoint}/count`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'tenants.countFiltered',\n entity: CoreEntities.BshTenants,\n });\n }\n}\n","import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, BshSettings } from \"@types\";\nimport { BshCallbackParams, BshCallbackParamsWithPayload } from \"@src/services\";\nimport { CoreEntities } from \"@src/types/core\";\n\nexport class SettingsService {\n private readonly baseEndpoint = '/api/settings';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async load(params: BshCallbackParams<unknown, BshSettings>): Promise<BshResponse<BshSettings> | undefined> {\n return this.client.get<BshSettings>({\n path: `${this.baseEndpoint}`,\n options: {\n responseType: 'json',\n requestFormat: 'json'\n },\n bshOptions: params,\n api: 'settings.load',\n entity: CoreEntities.BshConfigurations,\n });\n }\n\n public async update(params: BshCallbackParamsWithPayload<BshSettings, BshSettings>): Promise<BshResponse<BshSettings> | undefined> {\n return this.client.put<BshSettings>({\n path: `${this.baseEndpoint}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: { ...params.payload, name: 'BshEngine' },\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'settings.update',\n entity: CoreEntities.BshConfigurations,\n });\n }\n}\n\n","import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, UploadResponse, UploadOptions } from \"@types\";\nimport { BshCallbackParamsWithPayload } from \"@src/services\";\nimport { CoreEntities } from \"@src/types/core\";\n\nexport class ImageService {\n private readonly baseEndpoint = '/api/images';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async upload(params: BshCallbackParamsWithPayload<{\n file: File;\n folder?: string;\n filename?: string;\n options?: UploadOptions;\n }, UploadResponse>): Promise<BshResponse<UploadResponse> | undefined> {\n const formData = new FormData();\n formData.set('file', params.payload.file);\n if (params.payload.folder) formData.set('folder', params.payload.folder);\n if (params.payload.filename) formData.set('filename', params.payload.filename);\n if (params.payload.options) formData.set('options', JSON.stringify(params.payload.options));\n\n return this.client.post<UploadResponse>({\n path: `${this.baseEndpoint}/upload`,\n options: {\n responseType: 'json',\n requestFormat: 'form',\n body: formData,\n },\n bshOptions: params,\n api: 'image.upload',\n entity: CoreEntities.BshFiles,\n });\n }\n}\n\n","import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, MailingPayload } from \"@types\";\nimport { BshCallbackParamsWithPayload } from \"@src/services\";\nimport { CoreEntities } from \"@src/types/core\";\n\nexport class MailingService {\n private readonly baseEndpoint = '/api/mailing';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async send(params: BshCallbackParamsWithPayload<MailingPayload, MailingPayload>): Promise<BshResponse<MailingPayload> | undefined> {\n return this.client.post<MailingPayload>({\n path: `${this.baseEndpoint}/send`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'mailing.send',\n entity: CoreEntities.BshEmails,\n });\n }\n}\n\n","import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, BshTriggerFunction, BshTriggerAction } from \"@types\";\nimport { BshCallbackParams } from \"@src/services\";\nimport { SecretSource } from \"@src/types/secrets\";\n\nexport class BshUtilsService {\n private readonly baseEndpoint = '/api/utils';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async triggerFunctions(params?: BshCallbackParams<unknown, BshTriggerFunction>): Promise<BshResponse<BshTriggerFunction> | undefined> {\n return this.client.get<BshTriggerFunction>({\n path: `${this.baseEndpoint}/triggers/functions`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: { onSuccess: params?.onSuccess, onError: params?.onError },\n api: 'utils.triggerFunctions',\n });\n }\n\n public async triggerActions(params?: BshCallbackParams<unknown, BshTriggerAction>): Promise<BshResponse<BshTriggerAction> | undefined> {\n return this.client.get<BshTriggerAction>({\n path: `${this.baseEndpoint}/triggers/actions`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: { onSuccess: params?.onSuccess, onError: params?.onError },\n api: 'utils.triggerActions',\n });\n }\n\n public async secrets(params?: BshCallbackParams<unknown, SecretSource> & {source?: string}): Promise<BshResponse<SecretSource> | undefined> {\n return this.client.get<SecretSource>({\n path: `${this.baseEndpoint}/secrets/${params?.source || 'env'}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: { onSuccess: params?.onSuccess, onError: params?.onError },\n api: 'utils.secretsEnv',\n });\n }\n\n public async version(params?: BshCallbackParams<unknown, {version: string}>): Promise<BshResponse<{version: string}> | undefined> {\n return this.client.get<{version: string}>({\n path: `${this.baseEndpoint}/version`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: { onSuccess: params?.onSuccess, onError: params?.onError },\n api: 'utils.version',\n });\n }\n}\n","import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, CacheInfo, BshSearch } from \"@types\";\nimport { BshCallbackParams, BshCallbackParamsWithPayload } from \"@src/services\";\n\nexport type CacheRemoveResponse = {\n caches: string[];\n};\n\nexport class CachingService {\n private readonly baseEndpoint = '/api/caching';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async findById(params: BshCallbackParams<unknown, CacheInfo> & { id: string }): Promise<BshResponse<CacheInfo> | undefined> {\n return this.client.get<CacheInfo>({\n path: `${this.baseEndpoint}/${params.id}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n api: 'caching.findById',\n });\n }\n\n public async search(params: BshCallbackParamsWithPayload<BshSearch, CacheInfo>): Promise<BshResponse<CacheInfo> | undefined> {\n return this.client.post<CacheInfo>({\n path: `${this.baseEndpoint}/search`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'caching.search',\n });\n }\n\n public async names(params: BshCallbackParams<unknown, string>): Promise<BshResponse<string> | undefined> {\n return this.client.get<string>({\n path: `${this.baseEndpoint}/names`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n api: 'caching.names',\n });\n }\n\n public async clearById(params: BshCallbackParams<unknown, CacheRemoveResponse> & { id: string }): Promise<BshResponse<CacheRemoveResponse> | undefined> {\n return this.client.delete<CacheRemoveResponse>({\n path: `${this.baseEndpoint}/${params.id}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n api: 'caching.clearById',\n });\n }\n\n public async clearAll(params: BshCallbackParams<unknown, CacheRemoveResponse>): Promise<BshResponse<CacheRemoveResponse> | undefined> {\n return this.client.delete<CacheRemoveResponse>({\n path: `${this.baseEndpoint}/all`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n api: 'caching.clearAll',\n });\n }\n}\n\n","import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, BshApiKeys, BshApiKeysForm } from \"@types\";\nimport { BshCallbackParams, BshCallbackParamsWithPayload, BshSearchCallbackParams } from \"@src/services\";\nimport { CoreEntities } from \"@src/types/core\";\n\nexport class ApiKeyService {\n private readonly baseEndpoint = '/api/api-keys';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async create(params: BshCallbackParamsWithPayload<BshApiKeysForm, BshApiKeys>): Promise<BshResponse<BshApiKeys> | undefined> {\n return this.client.post<BshApiKeys>({\n path: `${this.baseEndpoint}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n }\n },\n bshOptions: params,\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.create',\n });\n }\n\n public async details(params: BshCallbackParams<unknown, BshApiKeys> & { id: number }): Promise<BshResponse<BshApiKeys> | undefined> {\n return this.client.get<BshApiKeys>({\n path: `${this.baseEndpoint}/${params.id}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.details',\n });\n }\n\n public async revoke(params: BshCallbackParams<unknown, BshApiKeys> & { id: number }): Promise<BshResponse<BshApiKeys> | undefined> {\n return this.client.delete<BshApiKeys>({\n path: `${this.baseEndpoint}/${params.id}/revoke`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.revoke',\n });\n }\n\n public async rotate(params: BshCallbackParams<unknown, BshApiKeys> & { id: number }): Promise<BshResponse<BshApiKeys> | undefined> {\n return this.client.post<BshApiKeys>({\n path: `${this.baseEndpoint}/${params.id}/rotate`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.rotate',\n });\n }\n\n // CRUD\n public async getById(params: BshCallbackParams<unknown, BshApiKeys> & { id: string }): Promise<BshResponse<BshApiKeys> | undefined> {\n return this.client.get<BshApiKeys>({\n path: `${this.baseEndpoint}/${params.id}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.getById',\n });\n }\n\n public async search(params: BshSearchCallbackParams<BshApiKeys, BshApiKeys>): Promise<BshResponse<BshApiKeys> | undefined> {\n return this.client.post<BshApiKeys>({\n path: `${this.baseEndpoint}/search`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.search',\n });\n }\n\n public async list(params: BshCallbackParams<unknown, BshApiKeys> & {\n queryParams?: {\n page?: string;\n size?: string;\n sort?: string;\n filter?: string;\n }\n }): Promise<BshResponse<BshApiKeys> | undefined> {\n const urlSearchParams = new URLSearchParams();\n if (params.queryParams?.page) urlSearchParams.append('page', params.queryParams.page);\n if (params.queryParams?.size) urlSearchParams.append('size', params.queryParams.size);\n if (params.queryParams?.sort) urlSearchParams.append('sort', params.queryParams.sort);\n if (params.queryParams?.filter) urlSearchParams.append('filter', params.queryParams.filter);\n\n const queryString = urlSearchParams.toString();\n const endpoint = queryString ? `?${queryString}` : '';\n\n return this.client.get<BshApiKeys>({\n path: `${this.baseEndpoint}${endpoint}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.list',\n });\n }\n\n public async deleteById(params: BshCallbackParams<unknown, BshApiKeys> & { id: string }): Promise<BshResponse<BshApiKeys> | undefined> {\n return this.client.delete<BshApiKeys>({\n path: `${this.baseEndpoint}/${params.id}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.deleteById',\n });\n }\n\n public async count(\n params: BshCallbackParams<unknown, {count: number}>\n ): Promise<BshResponse<{count: number}> | undefined> {\n return this.client.get<{count: number}>({\n path: `${this.baseEndpoint}/count`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.count',\n });\n }\n\n public async countFiltered(params: BshSearchCallbackParams<BshApiKeys, {count: number}>): Promise<BshResponse<{count: number}> | undefined> {\n return this.client.post<{count: number}>({\n path: `${this.baseEndpoint}/count`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.countFiltered',\n });\n }\n}\n\n"]}
@@ -108,14 +108,10 @@ var BshClient = class {
108
108
  }
109
109
  getCsrfHeaders(params) {
110
110
  const method = params.options?.method?.toUpperCase() || "GET";
111
- if (method === "GET" || method === "HEAD" || method === "OPTIONS") {
112
- return {};
113
- }
111
+ if (method === "GET" || method === "HEAD" || method === "OPTIONS") return {};
114
112
  const csrfToken = this.getCookie("XSRF-TOKEN");
115
113
  if (!csrfToken) return {};
116
- return {
117
- "X-XSRF-TOKEN": csrfToken
118
- };
114
+ return { "X-XSRF-TOKEN": csrfToken };
119
115
  }
120
116
  async getAuthHeaders(params) {
121
117
  if (params.path.includes("/api/auth/")) return {};
@@ -126,7 +122,7 @@ var BshClient = class {
126
122
  if (auth.type === "JWT") authHeaders = { Authorization: `Bearer ${auth.token}` };
127
123
  else if (auth.type === "APIKEY") authHeaders = { "X-BSH-APIKEY": auth.token };
128
124
  else authHeaders = this.getCsrfHeaders(params);
129
- }
125
+ } else authHeaders = this.getCsrfHeaders(params);
130
126
  return { ...authHeaders };
131
127
  }
132
128
  async getTenantHeaders(params) {
@@ -137,11 +133,9 @@ var BshClient = class {
137
133
  async injectHeaders(params) {
138
134
  const authHeaders = await this.getAuthHeaders(params);
139
135
  const tenantHeaders = await this.getTenantHeaders(params);
140
- const csrfHeaders = this.getCsrfHeaders(params);
141
136
  return {
142
137
  ...authHeaders,
143
- ...tenantHeaders,
144
- ...csrfHeaders
138
+ ...tenantHeaders
145
139
  };
146
140
  }
147
141
  async applyPreInterceptors(params) {
@@ -154,7 +148,7 @@ var BshClient = class {
154
148
  return params;
155
149
  }
156
150
  async get(params) {
157
- const authHeaders = await this.injectHeaders(params);
151
+ const authHeaders = await this.injectHeaders({ ...params, options: { ...params.options, method: "GET" } });
158
152
  let clientParams = {
159
153
  ...params,
160
154
  path: `${this.host}${params.path}`,
@@ -172,7 +166,7 @@ var BshClient = class {
172
166
  return this.handleResponse(response, clientParams, "json");
173
167
  }
174
168
  async post(params) {
175
- const authHeaders = await this.injectHeaders(params);
169
+ const authHeaders = await this.injectHeaders({ ...params, options: { ...params.options, method: "POST" } });
176
170
  let clientParams = {
177
171
  ...params,
178
172
  path: `${this.host}${params.path}`,
@@ -190,7 +184,7 @@ var BshClient = class {
190
184
  return this.handleResponse(response, clientParams, "json");
191
185
  }
192
186
  async put(params) {
193
- const authHeaders = await this.injectHeaders(params);
187
+ const authHeaders = await this.injectHeaders({ ...params, options: { ...params.options, method: "PUT" } });
194
188
  let clientParams = {
195
189
  ...params,
196
190
  path: `${this.host}${params.path}`,
@@ -208,7 +202,7 @@ var BshClient = class {
208
202
  return this.handleResponse(response, clientParams, "json");
209
203
  }
210
204
  async delete(params) {
211
- const authHeaders = await this.injectHeaders(params);
205
+ const authHeaders = await this.injectHeaders({ ...params, options: { ...params.options, method: "DELETE" } });
212
206
  let clientParams = {
213
207
  ...params,
214
208
  path: `${this.host}${params.path}`,
@@ -226,7 +220,7 @@ var BshClient = class {
226
220
  return this.handleResponse(response, clientParams, "json");
227
221
  }
228
222
  async patch(params) {
229
- const authHeaders = await this.injectHeaders(params);
223
+ const authHeaders = await this.injectHeaders({ ...params, options: { ...params.options, method: "PATCH" } });
230
224
  let clientParams = {
231
225
  ...params,
232
226
  path: `${this.host}${params.path}`,
@@ -244,12 +238,13 @@ var BshClient = class {
244
238
  return this.handleResponse(response, clientParams, "json");
245
239
  }
246
240
  async download(params) {
247
- const authHeaders = await this.injectHeaders(params);
241
+ const authHeaders = await this.injectHeaders({ ...params, options: { ...params.options, method: "GET" } });
248
242
  let clientParams = {
249
243
  ...params,
250
244
  path: `${this.host}${params.path}`,
251
245
  options: {
252
246
  ...params.options,
247
+ method: "GET",
253
248
  headers: {
254
249
  ...params.options.headers,
255
250
  ...authHeaders
@@ -275,5 +270,5 @@ var fetchClientFn = async (params) => {
275
270
  };
276
271
 
277
272
  export { BshClient, defaultClientFn, fetchClientFn };
278
- //# sourceMappingURL=chunk-CRRQMSQ5.js.map
279
- //# sourceMappingURL=chunk-CRRQMSQ5.js.map
273
+ //# sourceMappingURL=chunk-PXKQN4D4.js.map
274
+ //# sourceMappingURL=chunk-PXKQN4D4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/client/types.ts","../src/client/bsh-client.ts","../src/client/index.ts"],"names":["error"],"mappings":";;;AAqBO,IAAM,eAAA,GAA+B,OAAO,MAAA,KAAW;AAC1D,EAAA,OAAO,KAAA;AAAA,IACH,MAAA,CAAO,IAAA;AAAA,IACP;AAAA,MACI,MAAA,EAAQ,OAAO,OAAA,CAAQ,MAAA;AAAA,MACvB,MAAM,MAAA,CAAO,OAAA,CAAQ,aAAA,KAAkB,MAAA,GACnC,OAAO,OAAA,CAAQ,IAAA,GAAmB,MAAA,CAAO,OAAA,CAAQ,OAC7C,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA,GAAI,MAAA;AAAA,MAC9C,OAAA,EAAS,OAAO,OAAA,CAAQ;AAAA;AAC5B,GACJ;AACJ;;;AC5BO,IAAM,YAAN,MAAgB;AAAA,EAQnB,YACI,IAAA,EACA,UAAA,EACA,MAAA,EACA,cAAA,EACA,UACA,SAAA,EACF;AACE,IAAA,IAAA,CAAK,OAAO,IAAA,IAAQ,EAAA;AACpB,IAAA,IAAA,CAAK,aAAa,UAAA,IAAc,eAAA;AAChC,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AACd,IAAA,IAAA,CAAK,cAAA,GAAiB,cAAA;AACtB,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAA,CAAK,SAAA,GAAY,SAAA;AAAA,EACrB;AAAA,EAIA,MAAc,cAAA,CAAwB,QAAA,EAAoB,MAAA,EAA8B,IAAA,EAAmE;AACvJ,IAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AACd,MAAA,IAAI,IAAA,GAAY,MAAA;AAChB,MAAA,IAAI;AACA,QAAA,IAAA,GAAO,MAAM,SAAS,IAAA,EAAK;AAAA,MAC/B,SAASA,MAAAA,EAAO;AACZ,QAAA,IAAI;AACA,UAAA,IAAA,GAAO,MAAM,SAAS,IAAA,EAAK;AAAA,QAC/B,SAASA,MAAAA,EAAO;AACZ,UAAA,IAAA,GAAO;AAAA,YACH,OAAA,EAAS;AAAA,WACb;AAAA,QACJ;AAAA,MACJ;AACA,MAAA,IAAI,QAAQ,IAAI,QAAA,CAAS,SAAS,MAAA,EAAQ,MAAA,CAAO,MAAM,IAAI,CAAA;AAC3D,MAAA,MAAM,sBAAA,GAAyB,MAAA,CAAO,UAAA,CAAW,MAAA,EAAQ,YAAA,EAAc,KAAA;AACvE,MAAA,IAAA,CAAK,sBAAA,IAA0B,UAAa,CAAC,sBAAA,KAA2B,KAAK,SAAA,EAAW,oBAAA,GAAuB,MAAA,EAAQ;AACnH,QAAA,KAAA,MAAW,WAAA,IAAe,IAAA,CAAK,SAAA,CAAU,oBAAA,EAAqB,EAAG;AAC7D,UAAA,MAAM,WAAW,MAAM,WAAA,CAAY,KAAA,EAAO,KAAA,CAAM,UAAU,MAAgC,CAAA;AAC1F,UAAA,IAAI,UAAU,KAAA,GAAQ,QAAA;AAAA,QAC1B;AAAA,MACJ;AACA,MAAA,IAAI,MAAA,CAAO,WAAW,OAAA,EAAS;AAC3B,QAAA,MAAA,CAAO,UAAA,CAAW,QAAQ,KAAK,CAAA;AAC/B,QAAA,OAAO,MAAA;AAAA,MACX,OACK,MAAM,KAAA;AAAA,IACf;AAEA,IAAA,IAAI,SAAS,MAAA,EAAQ;AACjB,MAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AACjC,MAAA,IAAI,MAAA,GAAS,IAAA;AACb,MAAA,MAAA,CAAO,MAAM,MAAA,CAAO,GAAA;AACpB,MAAA,MAAM,sBAAA,GAAyB,MAAA,CAAO,UAAA,CAAW,MAAA,EAAQ,YAAA,EAAc,IAAA;AACvE,MAAA,IAAA,CAAK,sBAAA,IAA0B,UAAa,CAAC,sBAAA,KAA2B,KAAK,SAAA,EAAW,mBAAA,GAAsB,MAAA,EAAQ;AAClH,QAAA,KAAA,MAAW,WAAA,IAAe,IAAA,CAAK,SAAA,CAAU,mBAAA,EAAoB,EAAG;AAC5D,UAAA,MAAM,SAAA,GAAY,MAAM,WAAA,CAAY,MAAA,EAAQ,MAAgC,CAAA;AAC5E,UAAA,IAAI,WAAW,MAAA,GAAS,SAAA;AAAA,QAC5B;AAAA,MACJ;AACA,MAAA,IAAI,MAAA,CAAO,WAAW,SAAA,EAAW;AAC7B,QAAA,MAAA,CAAO,UAAA,CAAW,UAAU,IAAI,CAAA;AAChC,QAAA,OAAO,MAAA;AAAA,MACX;AACA,MAAA,OAAO,MAAA;AAAA,IACX,CAAA,MAAA,IACS,SAAS,MAAA,EAAQ;AACtB,MAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AACjC,MAAA,IAAI,MAAA,CAAO,WAAW,UAAA,EAAY;AAC9B,QAAA,MAAA,CAAO,UAAA,CAAW,WAAW,IAAI,CAAA;AACjC,QAAA,OAAO,MAAA;AAAA,MACX,OACK,OAAO,IAAA;AAAA,IAChB;AAAA,EACJ;AAAA,EAEA,MAAc,oBAAA,CACV,IAAA,EACA,cAAA,EACqC;AACrC,IAAA,IAAI,CAAC,cAAA,IAAkB,CAAC,QAAQ,IAAA,CAAK,IAAA,KAAS,OAAO,OAAO,IAAA;AAC5D,IAAA,MAAM,cAAc,IAAA,CAAK,KAAA;AACzB,IAAA,IAAI;AACA,MAAA,MAAM,YAAA,GAAe,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,WAAA,CAAY,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAA,IAAK,EAAE,CAAC,CAAA;AACrE,MAAA,MAAM,GAAA,GAAM,aAAa,GAAA,GAAM,GAAA;AAC/B,MAAA,MAAM,GAAA,GAAA,iBAAM,IAAI,IAAA,EAAK,EAAE,OAAA,EAAQ;AAE/B,MAAA,IAAI,GAAA,IAAO,GAAA,GAAM,GAAA,EAAK,OAAO,IAAA;AAE7B,MAAA,MAAM,YAAA,GAAe,MAAM,cAAA,EAAe;AAC1C,MAAA,IAAI,CAAC,YAAA,IAAgB,CAAC,IAAA,CAAK,WAAW,OAAO,IAAA;AAE7C,MAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,SAAA,CAAU,KAAK,YAAA,CAAa;AAAA,QACpD,OAAA,EAAS,EAAE,OAAA,EAAS,YAAA,EAAa;AAAA,QACjC,SAAS,MAAM;AAAA,QAAE;AAAA,OACpB,CAAA;AAED,MAAA,IAAI,UAAU,OAAO;AAAA,QACjB,IAAA,EAAM,KAAA;AAAA,QACN,KAAA,EAAO,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,CAAE;AAAA,OAC5B;AAEA,MAAA,OAAO,IAAA;AAAA,IACX,SAAS,KAAA,EAAO;AACZ,MAAA,OAAO,IAAA;AAAA,IACX;AAAA,EACJ;AAAA,EAEQ,UAAU,IAAA,EAAkC;AAChD,IAAA,IAAI,OAAO,QAAA,KAAa,WAAA,EAAa,OAAO,MAAA;AAE5C,IAAA,MAAM,OAAA,GAAU,QAAA,CAAS,MAAA,CAAO,KAAA,CAAM,GAAG,CAAA;AAEzC,IAAA,KAAA,MAAW,UAAU,OAAA,EAAS;AAC1B,MAAA,MAAM,CAAC,KAAK,GAAG,UAAU,IAAI,MAAA,CAAO,IAAA,EAAK,CAAE,KAAA,CAAM,GAAG,CAAA;AACpD,MAAA,IAAI,QAAQ,IAAA,EAAM,OAAO,mBAAmB,UAAA,CAAW,IAAA,CAAK,GAAG,CAAC,CAAA;AAAA,IACpE;AAEA,IAAA,OAAO,MAAA;AAAA,EACX;AAAA,EAEQ,eAAe,MAAA,EAAwD;AAC3E,IAAA,MAAM,MAAA,GAAS,MAAA,CAAO,OAAA,EAAS,MAAA,EAAQ,aAAY,IAAK,KAAA;AACxD,IAAA,IAAI,WAAW,KAAA,IAAS,MAAA,KAAW,UAAU,MAAA,KAAW,SAAA,SAAkB,EAAC;AAC3E,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,SAAA,CAAU,YAAY,CAAA;AAC7C,IAAA,IAAI,CAAC,SAAA,EAAW,OAAO,EAAC;AACxB,IAAA,OAAO,EAAE,gBAAgB,SAAA,EAAU;AAAA,EACvC;AAAA,EAEA,MAAc,eAAe,MAAA,EAAiE;AAC1F,IAAA,IAAI,OAAO,IAAA,CAAK,QAAA,CAAS,YAAY,CAAA,SAAU,EAAC;AAEhD,IAAA,IAAI,OAAO,IAAA,CAAK,MAAA,GAAS,MAAM,IAAA,CAAK,QAAO,GAAI,MAAA;AAC/C,IAAA,IAAI,MAAM,IAAA,GAAO,MAAM,KAAK,oBAAA,CAAqB,IAAA,EAAM,KAAK,cAAc,CAAA;AAE1E,IAAA,IAAI,cAAc,EAAC;AACnB,IAAA,IAAI,IAAA,EAAM;AACN,MAAA,IAAI,IAAA,CAAK,SAAS,KAAA,EAAO,WAAA,GAAc,EAAE,aAAA,EAAe,CAAA,OAAA,EAAU,IAAA,CAAK,KAAK,CAAA,CAAA,EAAG;AAAA,WAAA,IACtE,KAAK,IAAA,KAAS,QAAA,gBAAwB,EAAE,cAAA,EAAgB,KAAK,KAAA,EAAM;AAAA,WACvE,WAAA,GAAc,IAAA,CAAK,cAAA,CAAe,MAAM,CAAA;AAAA,IACjD,CAAA,MAAO,WAAA,GAAc,IAAA,CAAK,cAAA,CAAe,MAAM,CAAA;AAE/C,IAAA,OAAO,EAAE,GAAG,WAAA,EAAY;AAAA,EAC5B;AAAA,EAEA,MAAc,iBAAiB,MAAA,EAAiE;AAC5F,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,QAAA,IAAW;AACrC,IAAA,IAAI,CAAC,MAAA,EAAQ,OAAO,EAAC;AACrB,IAAA,OAAO,EAAE,eAAe,MAAA,EAAO;AAAA,EACnC;AAAA,EAEA,MAAc,cAAc,MAAA,EAAiE;AACzF,IAAA,MAAM,WAAA,GAAc,MAAM,IAAA,CAAK,cAAA,CAAe,MAAM,CAAA;AACpD,IAAA,MAAM,aAAA,GAAgB,MAAM,IAAA,CAAK,gBAAA,CAAiB,MAAM,CAAA;AAExD,IAAA,OAAO;AAAA,MACH,GAAG,WAAA;AAAA,MACH,GAAG;AAAA,KACP;AAAA,EACJ;AAAA,EAEA,MAAc,qBAAyC,MAAA,EAAmE;AACtH,IAAA,MAAM,qBAAA,GAAwB,MAAA,CAAO,UAAA,CAAW,MAAA,EAAQ,YAAA,EAAc,GAAA;AACtE,IAAA,IAAI,qBAAA,IAAyB,QAAQ,CAAC,IAAA,CAAK,WAAW,kBAAA,EAAmB,CAAE,QAAQ,OAAO,MAAA;AAC1F,IAAA,KAAA,MAAW,WAAA,IAAe,IAAA,CAAK,SAAA,CAAU,kBAAA,EAAmB,EAAG;AAC3D,MAAA,MAAM,SAAA,GAAY,MAAM,WAAA,CAAY,MAA6C,CAAA;AACjF,MAAA,IAAI,WAAW,OAAO,SAAA;AAAA,IAC1B;AACA,IAAA,OAAO,MAAA;AAAA,EACX;AAAA,EAEA,MAAM,IAAiB,MAAA,EAAmE;AACtF,IAAA,MAAM,WAAA,GAAc,MAAM,IAAA,CAAK,aAAA,CAAc,EAAE,GAAG,MAAA,EAAQ,OAAA,EAAS,EAAE,GAAG,MAAA,CAAO,OAAA,EAAS,MAAA,EAAQ,KAAA,IAAS,CAAA;AAEzG,IAAA,IAAI,YAAA,GAAe;AAAA,MACf,GAAG,MAAA;AAAA,MACH,MAAM,CAAA,EAAG,IAAA,CAAK,IAAI,CAAA,EAAG,OAAO,IAAI,CAAA,CAAA;AAAA,MAChC,OAAA,EAAS;AAAA,QACL,GAAG,MAAA,CAAO,OAAA;AAAA,QACV,MAAA,EAAQ,KAAA;AAAA,QACR,OAAA,EAAS;AAAA,UACL,GAAG,OAAO,OAAA,CAAQ,OAAA;AAAA,UAClB,GAAG;AAAA;AACP;AACJ,KACJ;AAEA,IAAA,YAAA,GAAe,MAAM,IAAA,CAAK,oBAAA,CAAwB,YAAY,CAAA;AAC9D,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,UAAA,CAAW,YAAY,CAAA;AACnD,IAAA,OAAO,IAAA,CAAK,cAAA,CAAe,QAAA,EAAU,YAAA,EAAc,MAAM,CAAA;AAAA,EAC7D;AAAA,EAEA,MAAM,KAAyB,MAAA,EAAsE;AACjG,IAAA,MAAM,WAAA,GAAc,MAAM,IAAA,CAAK,aAAA,CAAc,EAAE,GAAG,MAAA,EAAQ,OAAA,EAAS,EAAE,GAAG,MAAA,CAAO,OAAA,EAAS,MAAA,EAAQ,MAAA,IAAU,CAAA;AAE1G,IAAA,IAAI,YAAA,GAAe;AAAA,MACf,GAAG,MAAA;AAAA,MACH,MAAM,CAAA,EAAG,IAAA,CAAK,IAAI,CAAA,EAAG,OAAO,IAAI,CAAA,CAAA;AAAA,MAChC,OAAA,EAAS;AAAA,QACL,GAAG,MAAA,CAAO,OAAA;AAAA,QACV,MAAA,EAAQ,MAAA;AAAA,QACR,OAAA,EAAS;AAAA,UACL,GAAG,OAAO,OAAA,CAAQ,OAAA;AAAA,UAClB,GAAG;AAAA;AACP;AACJ,KACJ;AAEA,IAAA,YAAA,GAAe,MAAM,IAAA,CAAK,oBAAA,CAA2B,YAAY,CAAA;AACjE,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,UAAA,CAAW,YAAY,CAAA;AACnD,IAAA,OAAO,IAAA,CAAK,cAAA,CAAe,QAAA,EAAU,YAAA,EAAc,MAAM,CAAA;AAAA,EAC7D;AAAA,EAEA,MAAM,IAAwB,MAAA,EAAsE;AAChG,IAAA,MAAM,WAAA,GAAc,MAAM,IAAA,CAAK,aAAA,CAAc,EAAE,GAAG,MAAA,EAAQ,OAAA,EAAS,EAAE,GAAG,MAAA,CAAO,OAAA,EAAS,MAAA,EAAQ,KAAA,IAAS,CAAA;AACzG,IAAA,IAAI,YAAA,GAAe;AAAA,MACf,GAAG,MAAA;AAAA,MACH,MAAM,CAAA,EAAG,IAAA,CAAK,IAAI,CAAA,EAAG,OAAO,IAAI,CAAA,CAAA;AAAA,MAChC,OAAA,EAAS;AAAA,QACL,GAAG,MAAA,CAAO,OAAA;AAAA,QACV,MAAA,EAAQ,KAAA;AAAA,QACR,OAAA,EAAS;AAAA,UACL,GAAG,OAAO,OAAA,CAAQ,OAAA;AAAA,UAClB,GAAG;AAAA;AACP;AACJ,KACJ;AAEA,IAAA,YAAA,GAAe,MAAM,IAAA,CAAK,oBAAA,CAA2B,YAAY,CAAA;AACjE,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,UAAA,CAAW,YAAY,CAAA;AACnD,IAAA,OAAO,IAAA,CAAK,cAAA,CAAe,QAAA,EAAU,YAAA,EAAc,MAAM,CAAA;AAAA,EAC7D;AAAA,EAEA,MAAM,OAAoB,MAAA,EAAmE;AACzF,IAAA,MAAM,WAAA,GAAc,MAAM,IAAA,CAAK,aAAA,CAAc,EAAE,GAAG,MAAA,EAAQ,OAAA,EAAS,EAAE,GAAG,MAAA,CAAO,OAAA,EAAS,MAAA,EAAQ,QAAA,IAAY,CAAA;AAC5G,IAAA,IAAI,YAAA,GAAe;AAAA,MACf,GAAG,MAAA;AAAA,MACH,MAAM,CAAA,EAAG,IAAA,CAAK,IAAI,CAAA,EAAG,OAAO,IAAI,CAAA,CAAA;AAAA,MAChC,OAAA,EAAS;AAAA,QACL,GAAG,MAAA,CAAO,OAAA;AAAA,QACV,MAAA,EAAQ,QAAA;AAAA,QACR,OAAA,EAAS;AAAA,UACL,GAAG,OAAO,OAAA,CAAQ,OAAA;AAAA,UAClB,GAAG;AAAA;AACP;AACJ,KACJ;AAEA,IAAA,YAAA,GAAe,MAAM,IAAA,CAAK,oBAAA,CAAwB,YAAY,CAAA;AAC9D,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,UAAA,CAAW,YAAY,CAAA;AACnD,IAAA,OAAO,IAAA,CAAK,cAAA,CAAe,QAAA,EAAU,YAAA,EAAc,MAAM,CAAA;AAAA,EAC7D;AAAA,EAEA,MAAM,MAAmB,MAAA,EAAmE;AACxF,IAAA,MAAM,WAAA,GAAc,MAAM,IAAA,CAAK,aAAA,CAAc,EAAE,GAAG,MAAA,EAAQ,OAAA,EAAS,EAAE,GAAG,MAAA,CAAO,OAAA,EAAS,MAAA,EAAQ,OAAA,IAAW,CAAA;AAC3G,IAAA,IAAI,YAAA,GAAe;AAAA,MACf,GAAG,MAAA;AAAA,MACH,MAAM,CAAA,EAAG,IAAA,CAAK,IAAI,CAAA,EAAG,OAAO,IAAI,CAAA,CAAA;AAAA,MAChC,OAAA,EAAS;AAAA,QACL,GAAG,MAAA,CAAO,OAAA;AAAA,QACV,MAAA,EAAQ,OAAA;AAAA,QACR,OAAA,EAAS;AAAA,UACL,GAAG,OAAO,OAAA,CAAQ,OAAA;AAAA,UAClB,GAAG;AAAA;AACP;AACJ,KACJ;AAEA,IAAA,YAAA,GAAe,MAAM,IAAA,CAAK,oBAAA,CAAwB,YAAY,CAAA;AAC9D,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,UAAA,CAAW,YAAY,CAAA;AACnD,IAAA,OAAO,IAAA,CAAK,cAAA,CAAe,QAAA,EAAU,YAAA,EAAc,MAAM,CAAA;AAAA,EAC7D;AAAA,EAEA,MAAM,SAAsB,MAAA,EAAyD;AACjF,IAAA,MAAM,WAAA,GAAc,MAAM,IAAA,CAAK,aAAA,CAAc,EAAE,GAAG,MAAA,EAAQ,OAAA,EAAS,EAAE,GAAG,MAAA,CAAO,OAAA,EAAS,MAAA,EAAQ,KAAA,IAAS,CAAA;AACzG,IAAA,IAAI,YAAA,GAAe;AAAA,MACf,GAAG,MAAA;AAAA,MACH,MAAM,CAAA,EAAG,IAAA,CAAK,IAAI,CAAA,EAAG,OAAO,IAAI,CAAA,CAAA;AAAA,MAChC,OAAA,EAAS;AAAA,QACL,GAAG,MAAA,CAAO,OAAA;AAAA,QACV,MAAA,EAAQ,KAAA;AAAA,QACR,OAAA,EAAS;AAAA,UACL,GAAG,OAAO,OAAA,CAAQ,OAAA;AAAA,UAClB,GAAG;AAAA;AACP;AACJ,KACJ;AAEA,IAAA,YAAA,GAAe,MAAM,IAAA,CAAK,oBAAA,CAAwB,YAAY,CAAA;AAC9D,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,UAAA,CAAW,YAAY,CAAA;AACnD,IAAA,OAAO,IAAA,CAAK,cAAA,CAAe,QAAA,EAAU,YAAA,EAAc,MAAM,CAAA;AAAA,EAC7D;AACJ;;;ACzSO,IAAM,aAAA,GAA6B,OAAO,MAAA,KAAW;AACxD,EAAA,OAAO,KAAA;AAAA,IACH,MAAA,CAAO,IAAA;AAAA,IACP;AAAA,MACI,MAAA,EAAQ,OAAO,OAAA,CAAQ,MAAA;AAAA,MACvB,MAAM,MAAA,CAAO,OAAA,CAAQ,aAAA,KAAkB,MAAA,GACnC,OAAO,OAAA,CAAQ,IAAA,GAAmB,MAAA,CAAO,OAAA,CAAQ,OAC7C,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA,GAAI,MAAA;AAAA,MAC9C,OAAA,EAAS,OAAO,OAAA,CAAQ;AAAA;AAC5B,GACJ;AACJ","file":"chunk-PXKQN4D4.js","sourcesContent":["import { BshCallbackParams } from \"@src/services\";\nimport { BshError, BshResponse, BshSearch } from \"@types\";\n\nexport type BshClientFnParams<T = unknown, R = T> = {\n path: string,\n options: {\n method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH',\n responseType?: 'json' | 'blob' | 'text' | 'arrayBuffer',\n requestFormat?: 'json' | 'text' | 'form',\n body?: T | BshSearch<T> | unknown,\n formData?: FormData,\n queryParams?: Record<string, string>,\n headers?: Record<string, string>,\n },\n bshOptions: BshCallbackParams<T, R>,\n api?: string,\n entity?: string\n}\n\nexport type BshClientFn = <T = unknown>(params: BshClientFnParams<T>) => Promise<Response>;\n\nexport const defaultClientFn: BshClientFn = async (params) => {\n return fetch(\n params.path,\n {\n method: params.options.method,\n body: params.options.requestFormat === 'form' ?\n params.options.body as BodyInit : params.options.body ?\n JSON.stringify(params.options.body) : undefined,\n headers: params.options.headers,\n }\n );\n};\n\nexport type AuthToken = {\n type: 'JWT' | 'APIKEY';\n token: string\n}\n\nexport type BshAuthFn = () => Promise<AuthToken | undefined | null>;\n\nexport type BshRefreshTokenFn = () => Promise<string | undefined | null>;\n\nexport type BshTenantFn = () => Promise<string | undefined | null>;\n\nexport type BshPostInterceptor<T = any> = (response: BshResponse<T>, params?: BshClientFnParams<T>) => Promise<BshResponse<T>>;\nexport type BshPreInterceptor<T = any, R = T> = (params: BshClientFnParams<T, R>) => Promise<BshClientFnParams<T, R>>;\nexport type BshErrorInterceptor<T = any> = (error: BshError, response?: BshResponse<T>, params?: BshClientFnParams<T>) => Promise<BshError | undefined>;\n","import { BshResponse, BshError } from \"@types\";\nimport { AuthToken, BshAuthFn, BshClientFn, BshClientFnParams, BshRefreshTokenFn, BshTenantFn, defaultClientFn } from \"@src/client/types\";\nimport { BshEngine } from \"@src/bshengine\";\n\nexport class BshClient {\n private readonly httpClient: BshClientFn;\n private readonly authFn?: BshAuthFn;\n private readonly refreshTokenFn?: BshRefreshTokenFn;\n private readonly tenantFn?: BshTenantFn;\n private readonly host: string;\n private readonly bshEngine?: BshEngine;\n\n constructor(\n host?: string,\n httpClient?: BshClientFn,\n authFn?: BshAuthFn,\n refreshTokenFn?: BshRefreshTokenFn,\n tenantFn?: BshTenantFn,\n bshEngine?: BshEngine\n ) {\n this.host = host || '';\n this.httpClient = httpClient || defaultClientFn;\n this.authFn = authFn;\n this.refreshTokenFn = refreshTokenFn;\n this.tenantFn = tenantFn;\n this.bshEngine = bshEngine;\n }\n\n private async handleResponse<T = any>(response: Response, params: BshClientFnParams<T>, type: 'json'): Promise<BshResponse<T> | undefined>\n private async handleResponse<T = any>(response: Response, params: BshClientFnParams<T>, type: 'blob'): Promise<Blob | undefined>\n private async handleResponse<T = any>(response: Response, params: BshClientFnParams<T>, type: 'json' | 'blob'): Promise<BshResponse<T> | Blob | undefined> {\n if (!response.ok) {\n let data: any = undefined;\n try {\n data = await response.json();\n } catch (error) {\n try {\n data = await response.text();\n } catch (error) {\n data = {\n message: 'Connection Issue'\n };\n }\n }\n let error = new BshError(response.status, params.path, data);\n const byPassErrorInterceptor = params.bshOptions.byPass?.interceptors?.error;\n if ((byPassErrorInterceptor == undefined || !byPassErrorInterceptor) && this.bshEngine?.getErrorInterceptors().length) {\n for (const interceptor of this.bshEngine.getErrorInterceptors()) {\n const newError = await interceptor(error, error.response, params as BshClientFnParams<any>);\n if (newError) error = newError;\n }\n }\n if (params.bshOptions.onError) {\n params.bshOptions.onError(error);\n return undefined;\n }\n else throw error;\n }\n\n if (type === 'json') {\n const data = await response.json();\n let result = data as BshResponse<T>;\n result.api = params.api;\n const byPassPostInterceptors = params.bshOptions.byPass?.interceptors?.post;\n if ((byPassPostInterceptors == undefined || !byPassPostInterceptors) && this.bshEngine?.getPostInterceptors().length) {\n for (const interceptor of this.bshEngine.getPostInterceptors()) {\n const newResult = await interceptor(result, params as BshClientFnParams<any>);\n if (newResult) result = newResult as BshResponse<T>;\n }\n }\n if (params.bshOptions.onSuccess) {\n params.bshOptions.onSuccess(data);\n return undefined;\n }\n return result;\n }\n else if (type === 'blob') {\n const blob = await response.blob();\n if (params.bshOptions.onDownload) {\n params.bshOptions.onDownload(blob);\n return undefined;\n }\n else return blob;\n }\n }\n\n private async refreshTokenIfNeeded(\n auth: AuthToken,\n refreshTokenFn?: BshRefreshTokenFn\n ): Promise<AuthToken | undefined | null> {\n if (!refreshTokenFn || !auth || auth.type !== 'JWT') return auth;\n const accessToken = auth.token;\n try {\n const tokenPayload = JSON.parse(atob(accessToken.split('.')[1] || ''));\n const exp = tokenPayload.exp * 1000;\n const now = new Date().getTime();\n\n if (exp && now < exp) return auth;\n\n const refreshToken = await refreshTokenFn();\n if (!refreshToken || !this.bshEngine) return auth;\n\n const response = await this.bshEngine.auth.refreshToken({\n payload: { refresh: refreshToken },\n onError: () => { }\n });\n\n if (response) return {\n type: 'JWT',\n token: response.data[0].access\n };\n\n return auth;\n } catch (error) {\n return auth;\n }\n }\n\n private getCookie(name: string): string | undefined {\n if (typeof document === 'undefined') return undefined;\n\n const cookies = document.cookie.split(';');\n\n for (const cookie of cookies) {\n const [key, ...valueParts] = cookie.trim().split('=');\n if (key === name) return decodeURIComponent(valueParts.join('='));\n }\n\n return undefined;\n }\n\n private getCsrfHeaders(params: BshClientFnParams<any>): Record<string, string> {\n const method = params.options?.method?.toUpperCase() || 'GET';\n if (method === 'GET' || method === 'HEAD' || method === 'OPTIONS') return {};\n const csrfToken = this.getCookie('XSRF-TOKEN');\n if (!csrfToken) return {};\n return { 'X-XSRF-TOKEN': csrfToken };\n }\n\n private async getAuthHeaders(params: BshClientFnParams<any>): Promise<Record<string, string>> {\n if (params.path.includes('/api/auth/')) return {};\n\n let auth = this.authFn ? await this.authFn() : undefined;\n if (auth) auth = await this.refreshTokenIfNeeded(auth, this.refreshTokenFn);\n\n let authHeaders = {};\n if (auth) {\n if (auth.type === 'JWT') authHeaders = { Authorization: `Bearer ${auth.token}` };\n else if (auth.type === 'APIKEY') authHeaders = { 'X-BSH-APIKEY': auth.token };\n else authHeaders = this.getCsrfHeaders(params);\n } else authHeaders = this.getCsrfHeaders(params);\n\n return { ...authHeaders };\n }\n\n private async getTenantHeaders(params: BshClientFnParams<any>): Promise<Record<string, string>> {\n const tenant = await this.tenantFn?.();\n if (!tenant) return {};\n return { 'X-Tenant-Id': tenant };\n }\n\n private async injectHeaders(params: BshClientFnParams<any>): Promise<Record<string, string>> {\n const authHeaders = await this.getAuthHeaders(params);\n const tenantHeaders = await this.getTenantHeaders(params);\n\n return {\n ...authHeaders,\n ...tenantHeaders,\n };\n }\n\n private async applyPreInterceptors<T = unknown, R = T>(params: BshClientFnParams<T, R>): Promise<BshClientFnParams<T, R>> {\n const byPassPreInterceptors = params.bshOptions.byPass?.interceptors?.pre;\n if (byPassPreInterceptors == true || !this.bshEngine?.getPreInterceptors().length) return params;\n for (const interceptor of this.bshEngine.getPreInterceptors()) {\n const newParams = await interceptor(params as BshClientFnParams<unknown, unknown>);\n if (newParams) return newParams as BshClientFnParams<T, R>;\n }\n return params;\n }\n\n async get<T = unknown>(params: BshClientFnParams<T>): Promise<BshResponse<T> | undefined> {\n const authHeaders = await this.injectHeaders({ ...params, options: { ...params.options, method: 'GET' } });\n\n let clientParams = {\n ...params,\n path: `${this.host}${params.path}`,\n options: {\n ...params.options,\n method: 'GET',\n headers: {\n ...params.options.headers,\n ...authHeaders\n }\n }\n } as BshClientFnParams<T>;\n\n clientParams = await this.applyPreInterceptors<T>(clientParams);\n const response = await this.httpClient(clientParams);\n return this.handleResponse(response, clientParams, 'json');\n }\n\n async post<T = unknown, R = T>(params: BshClientFnParams<T, R>): Promise<BshResponse<R> | undefined> {\n const authHeaders = await this.injectHeaders({ ...params, options: { ...params.options, method: 'POST' } });\n\n let clientParams = {\n ...params,\n path: `${this.host}${params.path}`,\n options: {\n ...params.options,\n method: 'POST',\n headers: {\n ...params.options.headers,\n ...authHeaders\n }\n }\n } as BshClientFnParams<T, R>;\n\n clientParams = await this.applyPreInterceptors<T, R>(clientParams);\n const response = await this.httpClient(clientParams);\n return this.handleResponse(response, clientParams, 'json');\n }\n\n async put<T = unknown, R = T>(params: BshClientFnParams<T, R>): Promise<BshResponse<R> | undefined> {\n const authHeaders = await this.injectHeaders({ ...params, options: { ...params.options, method: 'PUT' } });\n let clientParams = {\n ...params,\n path: `${this.host}${params.path}`,\n options: {\n ...params.options,\n method: 'PUT',\n headers: {\n ...params.options.headers,\n ...authHeaders\n }\n }\n } as BshClientFnParams<T, R>;\n\n clientParams = await this.applyPreInterceptors<T, R>(clientParams);\n const response = await this.httpClient(clientParams);\n return this.handleResponse(response, clientParams, 'json');\n }\n\n async delete<T = unknown>(params: BshClientFnParams<T>): Promise<BshResponse<T> | undefined> {\n const authHeaders = await this.injectHeaders({ ...params, options: { ...params.options, method: 'DELETE' } });\n let clientParams = {\n ...params,\n path: `${this.host}${params.path}`,\n options: {\n ...params.options,\n method: 'DELETE',\n headers: {\n ...params.options.headers,\n ...authHeaders\n }\n }\n } as BshClientFnParams<T>;\n\n clientParams = await this.applyPreInterceptors<T>(clientParams);\n const response = await this.httpClient(clientParams);\n return this.handleResponse(response, clientParams, 'json');\n }\n\n async patch<T = unknown>(params: BshClientFnParams<T>): Promise<BshResponse<T> | undefined> {\n const authHeaders = await this.injectHeaders({ ...params, options: { ...params.options, method: 'PATCH' } });\n let clientParams = {\n ...params,\n path: `${this.host}${params.path}`,\n options: {\n ...params.options,\n method: 'PATCH',\n headers: {\n ...params.options.headers,\n ...authHeaders\n }\n }\n } as BshClientFnParams<T>;\n\n clientParams = await this.applyPreInterceptors<T>(clientParams);\n const response = await this.httpClient(clientParams);\n return this.handleResponse(response, clientParams, 'json');\n }\n\n async download<T = unknown>(params: BshClientFnParams<T>): Promise<Blob | undefined> {\n const authHeaders = await this.injectHeaders({ ...params, options: { ...params.options, method: 'GET' } });\n let clientParams = {\n ...params,\n path: `${this.host}${params.path}`,\n options: {\n ...params.options,\n method: 'GET',\n headers: {\n ...params.options.headers,\n ...authHeaders\n }\n }\n } as BshClientFnParams<T>;\n\n clientParams = await this.applyPreInterceptors<T>(clientParams);\n const response = await this.httpClient(clientParams);\n return this.handleResponse(response, clientParams, 'blob');\n }\n}\n","import { BshClientFn } from './types';\n\nexport * from './types';\nexport * from './bsh-client';\n\nexport const fetchClientFn: BshClientFn = async (params) => {\n return fetch(\n params.path,\n {\n method: params.options.method,\n body: params.options.requestFormat === 'form' ?\n params.options.body as BodyInit : params.options.body ?\n JSON.stringify(params.options.body) : undefined,\n headers: params.options.headers,\n }\n );\n};\n"]}
@@ -1,4 +1,4 @@
1
- export { BshClient, defaultClientFn, fetchClientFn } from '../chunk-CRRQMSQ5.js';
1
+ export { BshClient, defaultClientFn, fetchClientFn } from '../chunk-PXKQN4D4.js';
2
2
  import '../chunk-2E5HSZT4.js';
3
3
  import '../chunk-ZOCNJXUZ.js';
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { fetchClientFn, BshClient } from './chunk-CRRQMSQ5.js';
2
- import { EntityService, AuthService, UserService, TenantService, SettingsService, ImageService, MailingService, BshUtilsService, CachingService, ApiKeyService } from './chunk-E75ULHMO.js';
1
+ import { fetchClientFn, BshClient } from './chunk-PXKQN4D4.js';
2
+ import { EntityService, AuthService, UserService, TenantService, SettingsService, ImageService, MailingService, BshUtilsService, CachingService, ApiKeyService } from './chunk-C6W32LLO.js';
3
3
  import './chunk-2E5HSZT4.js';
4
4
  import { CoreEntities } from './chunk-ZOCNJXUZ.js';
5
5
 
@@ -1,4 +1,4 @@
1
- export { AdminUserService, ApiKeyService, AuthService, BshUtilsService, CachingService, EntityService, ImageService, MailingService, SettingsService, TenantService, UserService } from '../chunk-E75ULHMO.js';
1
+ export { AdminUserService, ApiKeyService, AuthService, BshUtilsService, CachingService, EntityService, ImageService, MailingService, SettingsService, TenantService, UserService } from '../chunk-C6W32LLO.js';
2
2
  import '../chunk-ZOCNJXUZ.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bshsolutions/sdk",
3
- "version": "0.0.35-beta",
3
+ "version": "0.0.36",
4
4
  "description": "TypeScript SDK for integrating with BSH Engine <https://engine.bousalih.com>",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/client/types.ts","../src/client/bsh-client.ts","../src/client/index.ts"],"names":["error"],"mappings":"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","file":"chunk-CRRQMSQ5.js","sourcesContent":["import { BshCallbackParams } from \"@src/services\";\nimport { BshError, BshResponse, BshSearch } from \"@types\";\n\nexport type BshClientFnParams<T = unknown, R = T> = {\n path: string,\n options: {\n method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH',\n responseType?: 'json' | 'blob' | 'text' | 'arrayBuffer',\n requestFormat?: 'json' | 'text' | 'form',\n body?: T | BshSearch<T> | unknown,\n formData?: FormData,\n queryParams?: Record<string, string>,\n headers?: Record<string, string>,\n },\n bshOptions: BshCallbackParams<T, R>,\n api?: string,\n entity?: string\n}\n\nexport type BshClientFn = <T = unknown>(params: BshClientFnParams<T>) => Promise<Response>;\n\nexport const defaultClientFn: BshClientFn = async (params) => {\n return fetch(\n params.path,\n {\n method: params.options.method,\n body: params.options.requestFormat === 'form' ?\n params.options.body as BodyInit : params.options.body ?\n JSON.stringify(params.options.body) : undefined,\n headers: params.options.headers,\n }\n );\n};\n\nexport type AuthToken = {\n type: 'JWT' | 'APIKEY';\n token: string\n}\n\nexport type BshAuthFn = () => Promise<AuthToken | undefined | null>;\n\nexport type BshRefreshTokenFn = () => Promise<string | undefined | null>;\n\nexport type BshTenantFn = () => Promise<string | undefined | null>;\n\nexport type BshPostInterceptor<T = any> = (response: BshResponse<T>, params?: BshClientFnParams<T>) => Promise<BshResponse<T>>;\nexport type BshPreInterceptor<T = any, R = T> = (params: BshClientFnParams<T, R>) => Promise<BshClientFnParams<T, R>>;\nexport type BshErrorInterceptor<T = any> = (error: BshError, response?: BshResponse<T>, params?: BshClientFnParams<T>) => Promise<BshError | undefined>;\n","import { BshResponse, BshError } from \"@types\";\nimport { AuthToken, BshAuthFn, BshClientFn, BshClientFnParams, BshRefreshTokenFn, BshTenantFn, defaultClientFn } from \"@src/client/types\";\nimport { BshEngine } from \"@src/bshengine\";\n\nexport class BshClient {\n private readonly httpClient: BshClientFn;\n private readonly authFn?: BshAuthFn;\n private readonly refreshTokenFn?: BshRefreshTokenFn;\n private readonly tenantFn?: BshTenantFn;\n private readonly host: string;\n private readonly bshEngine?: BshEngine;\n\n constructor(\n host?: string,\n httpClient?: BshClientFn,\n authFn?: BshAuthFn,\n refreshTokenFn?: BshRefreshTokenFn,\n tenantFn?: BshTenantFn,\n bshEngine?: BshEngine\n ) {\n this.host = host || '';\n this.httpClient = httpClient || defaultClientFn;\n this.authFn = authFn;\n this.refreshTokenFn = refreshTokenFn;\n this.tenantFn = tenantFn;\n this.bshEngine = bshEngine;\n }\n\n private async handleResponse<T = any>(response: Response, params: BshClientFnParams<T>, type: 'json'): Promise<BshResponse<T> | undefined>\n private async handleResponse<T = any>(response: Response, params: BshClientFnParams<T>, type: 'blob'): Promise<Blob | undefined>\n private async handleResponse<T = any>(response: Response, params: BshClientFnParams<T>, type: 'json' | 'blob'): Promise<BshResponse<T> | Blob | undefined> {\n if (!response.ok) {\n let data: any = undefined;\n try {\n data = await response.json();\n } catch (error) {\n try {\n data = await response.text();\n } catch (error) {\n data = {\n message: 'Connection Issue'\n };\n }\n }\n let error = new BshError(response.status, params.path, data);\n const byPassErrorInterceptor = params.bshOptions.byPass?.interceptors?.error;\n if ((byPassErrorInterceptor == undefined || !byPassErrorInterceptor) && this.bshEngine?.getErrorInterceptors().length) {\n for (const interceptor of this.bshEngine.getErrorInterceptors()) {\n const newError = await interceptor(error, error.response, params as BshClientFnParams<any>);\n if (newError) error = newError;\n }\n }\n if (params.bshOptions.onError) {\n params.bshOptions.onError(error);\n return undefined;\n }\n else throw error;\n }\n\n if (type === 'json') {\n const data = await response.json();\n let result = data as BshResponse<T>;\n result.api = params.api;\n const byPassPostInterceptors = params.bshOptions.byPass?.interceptors?.post;\n if ((byPassPostInterceptors == undefined || !byPassPostInterceptors) && this.bshEngine?.getPostInterceptors().length) {\n for (const interceptor of this.bshEngine.getPostInterceptors()) {\n const newResult = await interceptor(result, params as BshClientFnParams<any>);\n if (newResult) result = newResult as BshResponse<T>;\n }\n }\n if (params.bshOptions.onSuccess) {\n params.bshOptions.onSuccess(data);\n return undefined;\n }\n return result;\n }\n else if (type === 'blob') {\n const blob = await response.blob();\n if (params.bshOptions.onDownload) {\n params.bshOptions.onDownload(blob);\n return undefined;\n }\n else return blob;\n }\n }\n\n private async refreshTokenIfNeeded(\n auth: AuthToken,\n refreshTokenFn?: BshRefreshTokenFn\n ): Promise<AuthToken | undefined | null> {\n if (!refreshTokenFn || !auth || auth.type !== 'JWT') return auth;\n const accessToken = auth.token;\n try {\n const tokenPayload = JSON.parse(atob(accessToken.split('.')[1] || ''));\n const exp = tokenPayload.exp * 1000;\n const now = new Date().getTime();\n\n if (exp && now < exp) return auth;\n\n const refreshToken = await refreshTokenFn();\n if (!refreshToken || !this.bshEngine) return auth;\n\n const response = await this.bshEngine.auth.refreshToken({\n payload: { refresh: refreshToken },\n onError: () => { }\n });\n\n if (response) return {\n type: 'JWT',\n token: response.data[0].access\n };\n\n return auth;\n } catch (error) {\n return auth;\n }\n }\n\n private getCookie(name: string): string | undefined {\n if (typeof document === 'undefined') return undefined;\n \n const cookies = document.cookie.split(';');\n \n for (const cookie of cookies) {\n const [key, ...valueParts] = cookie.trim().split('=');\n if (key === name) return decodeURIComponent(valueParts.join('='));\n }\n \n return undefined;\n }\n\n private getCsrfHeaders(params: BshClientFnParams<any>): Record<string, string> { \n const method = params.options?.method?.toUpperCase() || 'GET';\n if (method === 'GET' || method === 'HEAD' || method === 'OPTIONS') {return {}; }\n \n const csrfToken = this.getCookie('XSRF-TOKEN');\n \n if (!csrfToken) return {};\n \n return {\n 'X-XSRF-TOKEN': csrfToken\n };\n }\n\n private async getAuthHeaders(params: BshClientFnParams<any>): Promise<Record<string, string>> {\n if (params.path.includes('/api/auth/')) return {};\n\n let auth = this.authFn ? await this.authFn() : undefined;\n if (auth) auth = await this.refreshTokenIfNeeded(auth, this.refreshTokenFn);\n\n let authHeaders = {};\n if (auth) {\n if (auth.type === 'JWT') authHeaders = { Authorization: `Bearer ${auth.token}` };\n else if (auth.type === 'APIKEY') authHeaders = { 'X-BSH-APIKEY': auth.token };\n else authHeaders = this.getCsrfHeaders(params);\n }\n return { ...authHeaders };\n }\n\n private async getTenantHeaders(params: BshClientFnParams<any>): Promise<Record<string, string>> {\n const tenant = await this.tenantFn?.();\n if (!tenant) return {};\n return { 'X-Tenant-Id': tenant };\n }\n\n private async injectHeaders(params: BshClientFnParams<any>): Promise<Record<string, string>> {\n const authHeaders = await this.getAuthHeaders(params);\n const tenantHeaders = await this.getTenantHeaders(params);\n const csrfHeaders = this.getCsrfHeaders(params);\n \n return {\n ...authHeaders,\n ...tenantHeaders,\n ...csrfHeaders\n };\n }\n\n private async applyPreInterceptors<T = unknown, R = T>(params: BshClientFnParams<T, R>): Promise<BshClientFnParams<T, R>> {\n const byPassPreInterceptors = params.bshOptions.byPass?.interceptors?.pre;\n if (byPassPreInterceptors == true || !this.bshEngine?.getPreInterceptors().length) return params;\n for (const interceptor of this.bshEngine.getPreInterceptors()) {\n const newParams = await interceptor(params as BshClientFnParams<unknown, unknown>);\n if (newParams) return newParams as BshClientFnParams<T, R>;\n }\n return params;\n }\n\n async get<T = unknown>(params: BshClientFnParams<T>): Promise<BshResponse<T> | undefined> {\n const authHeaders = await this.injectHeaders(params);\n\n let clientParams = {\n ...params,\n path: `${this.host}${params.path}`,\n options: {\n ...params.options,\n method: 'GET',\n headers: {\n ...params.options.headers,\n ...authHeaders\n }\n }\n } as BshClientFnParams<T>;\n\n clientParams = await this.applyPreInterceptors<T>(clientParams);\n const response = await this.httpClient(clientParams);\n return this.handleResponse(response, clientParams, 'json');\n }\n\n async post<T = unknown, R = T>(params: BshClientFnParams<T, R>): Promise<BshResponse<R> | undefined> {\n const authHeaders = await this.injectHeaders(params);\n\n let clientParams = {\n ...params,\n path: `${this.host}${params.path}`,\n options: {\n ...params.options,\n method: 'POST',\n headers: {\n ...params.options.headers,\n ...authHeaders\n }\n }\n } as BshClientFnParams<T, R>;\n\n clientParams = await this.applyPreInterceptors<T, R>(clientParams);\n const response = await this.httpClient(clientParams);\n return this.handleResponse(response, clientParams, 'json');\n }\n\n async put<T = unknown, R = T>(params: BshClientFnParams<T, R>): Promise<BshResponse<R> | undefined> {\n const authHeaders = await this.injectHeaders(params);\n let clientParams = {\n ...params,\n path: `${this.host}${params.path}`,\n options: {\n ...params.options,\n method: 'PUT',\n headers: {\n ...params.options.headers,\n ...authHeaders\n }\n }\n } as BshClientFnParams<T, R>;\n\n clientParams = await this.applyPreInterceptors<T, R>(clientParams);\n const response = await this.httpClient(clientParams);\n return this.handleResponse(response, clientParams, 'json');\n }\n\n async delete<T = unknown>(params: BshClientFnParams<T>): Promise<BshResponse<T> | undefined> {\n const authHeaders = await this.injectHeaders(params);\n let clientParams = {\n ...params,\n path: `${this.host}${params.path}`,\n options: {\n ...params.options,\n method: 'DELETE',\n headers: {\n ...params.options.headers,\n ...authHeaders\n }\n }\n } as BshClientFnParams<T>;\n\n clientParams = await this.applyPreInterceptors<T>(clientParams);\n const response = await this.httpClient(clientParams);\n return this.handleResponse(response, clientParams, 'json');\n }\n\n async patch<T = unknown>(params: BshClientFnParams<T>): Promise<BshResponse<T> | undefined> {\n const authHeaders = await this.injectHeaders(params);\n let clientParams = {\n ...params,\n path: `${this.host}${params.path}`,\n options: {\n ...params.options,\n method: 'PATCH',\n headers: {\n ...params.options.headers,\n ...authHeaders\n }\n }\n } as BshClientFnParams<T>;\n\n clientParams = await this.applyPreInterceptors<T>(clientParams);\n const response = await this.httpClient(clientParams);\n return this.handleResponse(response, clientParams, 'json');\n }\n\n async download<T = unknown>(params: BshClientFnParams<T>): Promise<Blob | undefined> {\n const authHeaders = await this.injectHeaders(params);\n let clientParams = {\n ...params,\n path: `${this.host}${params.path}`,\n options: {\n ...params.options,\n headers: {\n ...params.options.headers,\n ...authHeaders\n }\n }\n } as BshClientFnParams<T>;\n\n clientParams = await this.applyPreInterceptors<T>(clientParams);\n const response = await this.httpClient(clientParams);\n return this.handleResponse(response, clientParams, 'blob');\n }\n}\n","import { BshClientFn } from './types';\n\nexport * from './types';\nexport * from './bsh-client';\n\nexport const fetchClientFn: BshClientFn = async (params) => {\n return fetch(\n params.path,\n {\n method: params.options.method,\n body: params.options.requestFormat === 'form' ?\n params.options.body as BodyInit : params.options.body ?\n JSON.stringify(params.options.body) : undefined,\n headers: params.options.headers,\n }\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/services/entities/index.ts","../src/services/auth/index.ts","../src/services/user/index.ts","../src/services/tenant/index.ts","../src/services/settings/index.ts","../src/services/image/index.ts","../src/services/mailing/index.ts","../src/services/utils/index.ts","../src/services/caching/index.ts","../src/services/api-key/index.ts"],"names":[],"mappings":"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","file":"chunk-E75ULHMO.js","sourcesContent":["import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, BshSearch } from \"@types\";\nimport { BshCallbackParams, BshCallbackParamsWithPayload } from \"@src/services\";\n\nexport type EntityFnParams<T = unknown, R = T> = BshCallbackParams<T, R> & { entity?: string }\nexport type EntityFnParamsWithPayload<T = unknown, R = T> = BshCallbackParamsWithPayload<T, R> & { entity?: string }\nexport type EntitySearchFnParams<T, R = T> = EntityFnParamsWithPayload<BshSearch<T>, R>\n\nexport class EntityService<T = unknown> {\n private readonly baseEndpoint = '/api/entities';\n\n public constructor(private readonly client: BshClient, private readonly entity?: string) {\n }\n\n // Get a single entity by ID\n public async findById<TT = T>(params: EntityFnParams<TT> & { id: string }): Promise<BshResponse<TT> | undefined> {\n return this.client.get<TT>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}/${params.id}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.findById`,\n entity: params.entity || this.entity,\n });\n }\n\n // Create a new entity\n public async create<TT = T, R = TT>(\n params: EntityFnParamsWithPayload<TT, R>\n ): Promise<BshResponse<R> | undefined> {\n return this.client.post<TT, R>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.create`,\n entity: params.entity || this.entity,\n });\n }\n\n // Create multiple entities in batch\n public async createMany<TT = T, R = TT>(\n params: EntityFnParamsWithPayload<TT[], R>\n ): Promise<BshResponse<R> | undefined> {\n return this.client.post<TT, R>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}/batch`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.createMany`,\n entity: params.entity || this.entity,\n });\n }\n\n // Update an existing entity\n public async update<TT = T, R = TT>(\n params: EntityFnParamsWithPayload<TT, R>\n ): Promise<BshResponse<R> | undefined> {\n return this.client.put<TT, R>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.update`,\n entity: params.entity || this.entity,\n });\n }\n\n // Update multiple entities in batch\n public async updateMany<TT = T, R = TT>(\n params: EntityFnParamsWithPayload<TT[], R>\n ): Promise<BshResponse<R> | undefined> {\n return this.client.put<TT, R>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}/batch`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.updateMany`,\n entity: params.entity || this.entity,\n });\n }\n\n // Search for entities\n public async search<TT extends T = T, R = TT>(\n params: EntitySearchFnParams<TT, R>\n ): Promise<BshResponse<R> | undefined> {\n return this.client.post<TT, R>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}/search`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.search`,\n entity: params.entity || this.entity,\n });\n }\n\n // Delete entities by search criteria\n public async delete<TT = T>(\n params: EntitySearchFnParams<TT, { effected: number }>\n ): Promise<BshResponse<{ effected: number }> | undefined> {\n return this.client.post<TT, { effected: number }>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}/delete`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.delete`,\n entity: params.entity || this.entity,\n });\n }\n\n // Delete a single entity by ID\n public async deleteById<TT = T>(\n params: EntityFnParams<TT, { effected: number }> & { id: string }\n ): Promise<BshResponse<{ effected: number }> | undefined> {\n return this.client.delete<{ effected: number }>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}/${params.id}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.deleteById`,\n entity: params.entity || this.entity,\n });\n }\n\n // Get entity columns\n public async columns(\n params: EntityFnParams<unknown, { name: string; type: string }>\n ): Promise<BshResponse<{ name: string; type: string }> | undefined> {\n return this.client.get<{ name: string; type: string }>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}/columns`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.columns`,\n entity: params.entity || this.entity,\n });\n }\n\n // Count entities\n public async count(\n params: EntityFnParams<unknown, { count: number }>\n ): Promise<BshResponse<{ count: number }> | undefined> {\n return this.client.get<{ count: number }>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}/count`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.count`,\n entity: params.entity || this.entity,\n });\n }\n\n // Count entities with search criteria\n public async countFiltered<TT extends T = T, R = TT>(\n params: EntitySearchFnParams<TT, R>\n ): Promise<BshResponse<R> | undefined> {\n return this.client.post<TT, R>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}/count`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: `entities.${params.entity || this.entity}.countBySearch`,\n entity: params.entity || this.entity,\n });\n }\n\n // Export entities\n public async export<TT = T>(\n params: EntityFnParamsWithPayload<BshSearch<TT>, Blob> & {\n format: 'csv' | 'json' | 'excel',\n filename?: string,\n }\n ): Promise<void> {\n const defaultName = `${params.entity || this.entity}_export_${new Date().toISOString().split('T')[0]}`;\n const exportFilename = params.filename || `${defaultName}.${params.format == 'excel' ? 'xlsx' : params.format}`;\n\n await this.client.download<TT>({\n path: `${this.baseEndpoint}/${params.entity || this.entity}/export?format=${params.format}&filename=${exportFilename}`,\n options: {\n responseType: 'blob',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: { onDownload: params.onDownload, onError: params.onError },\n api: `entities.${params.entity || this.entity}.export`,\n entity: params.entity || this.entity,\n });\n }\n}\n","\nimport { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, BshUser, BshUserInit, LoginParams, AuthTokens } from \"@types\";\nimport { BshCallbackParams, BshCallbackParamsWithPayload } from \"@src/services\";\nimport { CoreEntities } from \"@src/types/core\";\n\nexport class AuthService {\n private readonly baseEndpoint = '/api/auth';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async login(params: BshCallbackParamsWithPayload<LoginParams, AuthTokens>): Promise<BshResponse<AuthTokens> | undefined> {\n return this.client.post<AuthTokens>({\n path: `${this.baseEndpoint}/login`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'auth.login',\n });\n }\n\n public async logout(params: BshCallbackParams<unknown>): Promise<BshResponse<unknown> | undefined> {\n return this.client.post<unknown>({\n path: `${this.baseEndpoint}/logout`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n api: 'auth.logout',\n });\n }\n\n public async register(params: BshCallbackParamsWithPayload<BshUserInit, BshUser>): Promise<BshResponse<BshUser> | undefined> {\n return this.client.post<BshUser>({\n path: `${this.baseEndpoint}/register`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'auth.register',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async refreshToken(params: BshCallbackParamsWithPayload<{ refresh: string }, AuthTokens>): Promise<BshResponse<AuthTokens> | undefined> {\n return this.client.post<AuthTokens>({\n path: `${this.baseEndpoint}/refresh`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'auth.refreshToken',\n });\n }\n\n public async forgetPassword(\n params: BshCallbackParamsWithPayload<{ email: string }, unknown>): Promise<BshResponse<unknown> | undefined> {\n return this.client.post<unknown>({\n path: `${this.baseEndpoint}/forget-password`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'auth.forgetPassword',\n });\n }\n\n public async resetPassword(params: BshCallbackParamsWithPayload<{ email: string, code: string, newPassword: string }, unknown>): Promise<BshResponse<unknown> | undefined> {\n return this.client.post<unknown>({\n path: `${this.baseEndpoint}/reset-password`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'auth.resetPassword',\n });\n }\n\n public async activateAccount(params: BshCallbackParamsWithPayload<{ email: string, code: string }, unknown>): Promise<BshResponse<unknown> | undefined> {\n return this.client.post<unknown>({\n path: `${this.baseEndpoint}/activate-account`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'auth.activateAccount',\n });\n }\n\n public async resendActivationEmail(params: BshCallbackParamsWithPayload<{ email: string }, unknown>): Promise<BshResponse<unknown> | undefined> {\n return this.client.post<unknown>({\n path: `${this.baseEndpoint}/resend-activation-email`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'auth.resendActivationEmail',\n entity: CoreEntities.BshUsers,\n });\n }\n}\n","import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, BshUser, BshUserInit, BshSearch } from \"@types\";\nimport { BshCallbackParams, BshCallbackParamsWithPayload, BshSearchCallbackParams } from \"@src/services\";\nimport { CoreEntities } from \"@src/types/core\";\n\nexport class AdminUserService {\n private readonly baseEndpoint = '/api/users/admin';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async resetPassword<T = BshUser>(params: BshCallbackParams<Partial<BshUser>, T> & { email: string }): Promise<BshResponse<T> | undefined> {\n return this.client.put<T>({\n path: `${this.baseEndpoint}/forget-password/${params.email}`,\n options: { responseType: 'json' },\n bshOptions: params,\n api: 'users.admin.resetPassword',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async activateAccount<T = BshUser>(params: BshCallbackParams<Partial<BshUser>, T> & { email: string }): Promise<BshResponse<T> | undefined> {\n return this.client.put<T>({\n path: `${this.baseEndpoint}/activate-account/${params.email}`,\n options: { responseType: 'json' },\n bshOptions: params,\n api: 'users.admin.activateAccount',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async resendActivationCode<T = BshUser>(params: BshCallbackParams<Partial<BshUser>, T> & { email: string }): Promise<BshResponse<T> | undefined> {\n return this.client.put<T>({\n path: `${this.baseEndpoint}/resend-activation-email/${params.email}`,\n options: { responseType: 'json' },\n bshOptions: params,\n api: 'users.admin.resendActivationCode',\n entity: CoreEntities.BshUsers,\n });\n }\n}\n\nexport class UserService {\n private readonly baseEndpoint = '/api/users';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async me(params: BshCallbackParams<unknown, BshUser>): Promise<BshResponse<BshUser> | undefined> {\n return this.client.get<BshUser>({\n path: `${this.baseEndpoint}/me`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n api: 'users.me',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async init<T = BshUser>(params: BshCallbackParamsWithPayload<BshUserInit, T> & { generatePassword?: boolean }): Promise<BshResponse<T> | undefined> {\n return this.client.post<T>({\n path: `${this.baseEndpoint}/init?generatePassword=${params.generatePassword === true ? 'true' : 'false'}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'users.init',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async invite(params: BshCallbackParamsWithPayload<{ email: string, roles?: string[] }, { message: string }>): Promise<BshResponse<{ message: string }> | undefined> {\n return this.client.post<{ message: string }>({\n path: `${this.baseEndpoint}/invite`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'users.invite',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async updateProfile<T = BshUser>(params: BshCallbackParamsWithPayload<Partial<BshUser['profile']>, T>): Promise<BshResponse<T> | undefined> {\n return this.client.put<T>({\n path: `${this.baseEndpoint}/profile`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'users.updateProfile',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async updatePicture<T = BshUser>(params: BshCallbackParamsWithPayload<File, T>): Promise<BshResponse<T> | undefined> {\n const formData = new FormData();\n formData.set('picture', params.payload);\n\n return this.client.post<T>({\n path: `${this.baseEndpoint}/picture`,\n options: {\n responseType: 'json',\n requestFormat: 'form',\n body: formData,\n },\n bshOptions: params,\n api: 'users.updatePicture',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async updatePassword(params: BshCallbackParamsWithPayload<{ currentPassword: string; newPassword: string }, { message: string }>): Promise<BshResponse<{ message: string }> | undefined> {\n return this.client.put<{ message: string }>({\n path: `${this.baseEndpoint}/password`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'users.updatePassword',\n entity: CoreEntities.BshUsers,\n });\n }\n\n // Admin\n public get admin() {\n return new AdminUserService(this.client);\n }\n\n // CRUD\n public async getById<T = BshUser>(params: BshCallbackParams<unknown, T> & { id: string }): Promise<BshResponse<T> | undefined> {\n return this.client.get<T>({\n path: `${this.baseEndpoint}/${params.id}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n api: 'users.getById',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async search<T = BshUser, R = BshUser>(params: BshSearchCallbackParams<T, R>): Promise<BshResponse<R> | undefined> {\n return this.client.post<T, R>({\n path: `${this.baseEndpoint}/search`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'users.search',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async list(params: BshCallbackParams<unknown, BshUser> & {\n queryParams?: {\n page?: string;\n size?: string;\n sort?: string;\n filter?: string;\n }\n }): Promise<BshResponse<BshUser> | undefined> {\n const urlSearchParams = new URLSearchParams();\n if (params.queryParams?.page) urlSearchParams.append('page', params.queryParams.page);\n if (params.queryParams?.size) urlSearchParams.append('size', params.queryParams.size);\n if (params.queryParams?.sort) urlSearchParams.append('sort', params.queryParams.sort);\n if (params.queryParams?.filter) urlSearchParams.append('filter', params.queryParams.filter);\n\n const queryString = urlSearchParams.toString();\n const endpoint = queryString ? `?${queryString}` : '';\n\n return this.client.get<BshUser>({\n path: `${this.baseEndpoint}${endpoint}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n api: 'users.list',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async update<T = BshUser>(params: BshCallbackParamsWithPayload<Partial<BshUser>, T>): Promise<BshResponse<T> | undefined> {\n return this.client.put<T>({\n path: `${this.baseEndpoint}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'users.update',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async deleteById<T = BshUser>(params: BshCallbackParams<unknown, T> & { id: string }): Promise<BshResponse<T> | undefined> {\n return this.client.delete<T>({\n path: `${this.baseEndpoint}/${params.id}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n api: 'users.deleteById',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async count(\n params: BshCallbackParams<unknown, { count: number }>\n ): Promise<BshResponse<{ count: number }> | undefined> {\n return this.client.get<{ count: number }>({\n path: `${this.baseEndpoint}/count`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n api: 'users.count',\n entity: CoreEntities.BshUsers,\n });\n }\n\n public async countFiltered(params: BshSearchCallbackParams<BshUser, { count: number }>): Promise<BshResponse<{ count: number }> | undefined> {\n return this.client.post<{ count: number }>({\n path: `${this.baseEndpoint}/count`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'users.countFiltered',\n entity: CoreEntities.BshUsers,\n });\n }\n}\n","import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, BshTenant, BshTenantPure, BshSearch } from \"@types\";\nimport { BshCallbackParams, BshCallbackParamsWithPayload, BshSearchCallbackParams } from \"@src/services\";\nimport { CoreEntities } from \"@src/types/core\";\n\nexport class TenantService {\n private readonly baseEndpoint = '/api/tenants';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async create<T = BshTenant, F = BshTenantPure>(params: BshCallbackParamsWithPayload<F, T>): Promise<BshResponse<T> | undefined> {\n console.log('params', params);\n return this.client.post<T>({\n path: this.baseEndpoint,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'tenants.create',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async assignAdmin<T = BshTenant>(params: BshCallbackParams<{ id: string, adminId: string }, T> & { id: string, adminId: string }): Promise<BshResponse<T> | undefined> {\n return this.client.put<T>({\n path: `${this.baseEndpoint}/${params.id}/admin/${params.adminId}`,\n options: {\n responseType: 'json',\n },\n bshOptions: params,\n api: 'tenants.assignAdmin',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async activate<T = BshTenant>(params: BshCallbackParams<{ id: string }, T> & { id: string }): Promise<BshResponse<T> | undefined> {\n return this.client.post<T>({\n path: `${this.baseEndpoint}/${params.id}/activate`,\n options: {\n responseType: 'json',\n },\n bshOptions: params,\n api: 'tenants.activate',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async deactivate<T = BshTenant>(params: BshCallbackParams<{ id: string }, T> & { id: string }): Promise<BshResponse<T> | undefined> {\n return this.client.post<T>({\n path: `${this.baseEndpoint}/${params.id}/deactivate`,\n options: {\n responseType: 'json',\n },\n bshOptions: params,\n api: 'tenants.deactivate',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async block<T = BshTenant>(params: BshCallbackParams<{ id: string }, T> & { id: string }): Promise<BshResponse<T> | undefined> {\n return this.client.post<T>({\n path: `${this.baseEndpoint}/${params.id}/block`,\n options: {\n responseType: 'json',\n },\n bshOptions: params,\n api: 'tenants.block',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async getById<T = BshTenant>(params: BshCallbackParams<{ id: string }, T> & { id: string }): Promise<BshResponse<T> | undefined> {\n return this.client.get<T>({\n path: `${this.baseEndpoint}/${params.id}`,\n options: {\n responseType: 'json',\n },\n bshOptions: params,\n api: 'tenants.getById',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async search<T = BshTenant>(params: BshSearchCallbackParams<BshTenant, T>): Promise<BshResponse<T> | undefined> {\n return this.client.post<T>({\n path: `${this.baseEndpoint}/search`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'tenants.search',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async list<T = BshTenant>(params: BshCallbackParams<unknown, T> & { page?: number, size?: number, sort?: string, filter?: string }): Promise<BshResponse<T> | undefined> {\n const queryParams: Record<string, string> = {};\n if (params.page !== undefined) queryParams.page = params.page.toString();\n if (params.size !== undefined) queryParams.size = params.size.toString();\n if (params.sort !== undefined) queryParams.sort = params.sort;\n if (params.filter !== undefined) queryParams.filter = params.filter;\n\n return this.client.get<T>({\n path: this.baseEndpoint,\n options: {\n responseType: 'json',\n queryParams,\n },\n bshOptions: params,\n api: 'tenants.list',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async update<T = BshTenant>(params: BshCallbackParamsWithPayload<Partial<T>, T>): Promise<BshResponse<T> | undefined> {\n return this.client.put<T>({\n path: this.baseEndpoint,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'tenants.update',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async delete<T = any>(params: BshCallbackParams<{ id: string }, T> & { id: string }): Promise<BshResponse<T> | undefined> {\n return this.client.delete<T>({\n path: `${this.baseEndpoint}/${params.id}`,\n options: {\n responseType: 'json',\n },\n bshOptions: params,\n api: 'tenants.delete',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async count<T = { count: number }>(params: BshCallbackParams<unknown, T>): Promise<BshResponse<T> | undefined> {\n return this.client.get<T>({\n path: `${this.baseEndpoint}/count`,\n options: {\n responseType: 'json',\n },\n bshOptions: params,\n api: 'tenants.count',\n entity: CoreEntities.BshTenants,\n });\n }\n\n public async countFiltered<T = { count: number }>(params: BshSearchCallbackParams<BshTenant, T>): Promise<BshResponse<T> | undefined> {\n return this.client.post<T>({\n path: `${this.baseEndpoint}/count`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'tenants.countFiltered',\n entity: CoreEntities.BshTenants,\n });\n }\n}\n","import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, BshSettings } from \"@types\";\nimport { BshCallbackParams, BshCallbackParamsWithPayload } from \"@src/services\";\nimport { CoreEntities } from \"@src/types/core\";\n\nexport class SettingsService {\n private readonly baseEndpoint = '/api/settings';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async load(params: BshCallbackParams<unknown, BshSettings>): Promise<BshResponse<BshSettings> | undefined> {\n return this.client.get<BshSettings>({\n path: `${this.baseEndpoint}`,\n options: {\n responseType: 'json',\n requestFormat: 'json'\n },\n bshOptions: params,\n api: 'settings.load',\n entity: CoreEntities.BshConfigurations,\n });\n }\n\n public async update(params: BshCallbackParamsWithPayload<BshSettings, BshSettings>): Promise<BshResponse<BshSettings> | undefined> {\n return this.client.put<BshSettings>({\n path: `${this.baseEndpoint}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: { ...params.payload, name: 'BshEngine' },\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'settings.update',\n entity: CoreEntities.BshConfigurations,\n });\n }\n}\n\n","import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, UploadResponse, UploadOptions } from \"@types\";\nimport { BshCallbackParamsWithPayload } from \"@src/services\";\nimport { CoreEntities } from \"@src/types/core\";\n\nexport class ImageService {\n private readonly baseEndpoint = '/api/images';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async upload(params: BshCallbackParamsWithPayload<{\n file: File;\n folder?: string;\n filename?: string;\n options?: UploadOptions;\n }, UploadResponse>): Promise<BshResponse<UploadResponse> | undefined> {\n const formData = new FormData();\n formData.set('file', params.payload.file);\n if (params.payload.folder) formData.set('folder', params.payload.folder);\n if (params.payload.filename) formData.set('filename', params.payload.filename);\n if (params.payload.options) formData.set('options', JSON.stringify(params.payload.options));\n\n return this.client.post<UploadResponse>({\n path: `${this.baseEndpoint}/upload`,\n options: {\n responseType: 'json',\n requestFormat: 'form',\n body: formData,\n },\n bshOptions: params,\n api: 'image.upload',\n entity: CoreEntities.BshFiles,\n });\n }\n}\n\n","import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, MailingPayload } from \"@types\";\nimport { BshCallbackParamsWithPayload } from \"@src/services\";\nimport { CoreEntities } from \"@src/types/core\";\n\nexport class MailingService {\n private readonly baseEndpoint = '/api/mailing';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async send(params: BshCallbackParamsWithPayload<MailingPayload, MailingPayload>): Promise<BshResponse<MailingPayload> | undefined> {\n return this.client.post<MailingPayload>({\n path: `${this.baseEndpoint}/send`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'mailing.send',\n entity: CoreEntities.BshEmails,\n });\n }\n}\n\n","import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, BshTriggerFunction, BshTriggerAction } from \"@types\";\nimport { BshCallbackParams } from \"@src/services\";\nimport { SecretSource } from \"@src/types/secrets\";\n\nexport class BshUtilsService {\n private readonly baseEndpoint = '/api/utils';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async triggerFunctions(params?: BshCallbackParams<unknown, BshTriggerFunction>): Promise<BshResponse<BshTriggerFunction> | undefined> {\n return this.client.get<BshTriggerFunction>({\n path: `${this.baseEndpoint}/triggers/functions`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: { onSuccess: params?.onSuccess, onError: params?.onError },\n api: 'utils.triggerFunctions',\n });\n }\n\n public async triggerActions(params?: BshCallbackParams<unknown, BshTriggerAction>): Promise<BshResponse<BshTriggerAction> | undefined> {\n return this.client.get<BshTriggerAction>({\n path: `${this.baseEndpoint}/triggers/actions`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: { onSuccess: params?.onSuccess, onError: params?.onError },\n api: 'utils.triggerActions',\n });\n }\n\n public async secrets(params?: BshCallbackParams<unknown, SecretSource> & {source?: string}): Promise<BshResponse<SecretSource> | undefined> {\n return this.client.get<SecretSource>({\n path: `${this.baseEndpoint}/secrets/${params?.source || 'env'}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: { onSuccess: params?.onSuccess, onError: params?.onError },\n api: 'utils.secretsEnv',\n });\n }\n\n public async version(params?: BshCallbackParams<unknown, {version: string}>): Promise<BshResponse<{version: string}> | undefined> {\n return this.client.get<{version: string}>({\n path: `${this.baseEndpoint}/version`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: { onSuccess: params?.onSuccess, onError: params?.onError },\n api: 'utils.version',\n });\n }\n}\n","import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, CacheInfo, BshSearch } from \"@types\";\nimport { BshCallbackParams, BshCallbackParamsWithPayload } from \"@src/services\";\n\nexport type CacheRemoveResponse = {\n caches: string[];\n};\n\nexport class CachingService {\n private readonly baseEndpoint = '/api/caching';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async findById(params: BshCallbackParams<unknown, CacheInfo> & { id: string }): Promise<BshResponse<CacheInfo> | undefined> {\n return this.client.get<CacheInfo>({\n path: `${this.baseEndpoint}/${params.id}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n api: 'caching.findById',\n });\n }\n\n public async search(params: BshCallbackParamsWithPayload<BshSearch, CacheInfo>): Promise<BshResponse<CacheInfo> | undefined> {\n return this.client.post<CacheInfo>({\n path: `${this.baseEndpoint}/search`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n api: 'caching.search',\n });\n }\n\n public async names(params: BshCallbackParams<unknown, string>): Promise<BshResponse<string> | undefined> {\n return this.client.get<string>({\n path: `${this.baseEndpoint}/names`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n api: 'caching.names',\n });\n }\n\n public async clearById(params: BshCallbackParams<unknown, CacheRemoveResponse> & { id: string }): Promise<BshResponse<CacheRemoveResponse> | undefined> {\n return this.client.delete<CacheRemoveResponse>({\n path: `${this.baseEndpoint}/${params.id}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n api: 'caching.clearById',\n });\n }\n\n public async clearAll(params: BshCallbackParams<unknown, CacheRemoveResponse>): Promise<BshResponse<CacheRemoveResponse> | undefined> {\n return this.client.delete<CacheRemoveResponse>({\n path: `${this.baseEndpoint}/all`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n api: 'caching.clearAll',\n });\n }\n}\n\n","import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, BshApiKeys, BshApiKeysForm } from \"@types\";\nimport { BshCallbackParams, BshCallbackParamsWithPayload, BshSearchCallbackParams } from \"@src/services\";\nimport { CoreEntities } from \"@src/types/core\";\n\nexport class ApiKeyService {\n private readonly baseEndpoint = '/api/api-keys';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async create(params: BshCallbackParamsWithPayload<BshApiKeysForm, BshApiKeys>): Promise<BshResponse<BshApiKeys> | undefined> {\n return this.client.post<BshApiKeys>({\n path: `${this.baseEndpoint}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n }\n },\n bshOptions: params,\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.create',\n });\n }\n\n public async details(params: BshCallbackParams<unknown, BshApiKeys> & { id: number }): Promise<BshResponse<BshApiKeys> | undefined> {\n return this.client.get<BshApiKeys>({\n path: `${this.baseEndpoint}/${params.id}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.details',\n });\n }\n\n public async revoke(params: BshCallbackParams<unknown, BshApiKeys> & { id: number }): Promise<BshResponse<BshApiKeys> | undefined> {\n return this.client.delete<BshApiKeys>({\n path: `${this.baseEndpoint}/${params.id}/revoke`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.revoke',\n });\n }\n\n public async rotate(params: BshCallbackParams<unknown, BshApiKeys> & { id: number }): Promise<BshResponse<BshApiKeys> | undefined> {\n return this.client.post<BshApiKeys>({\n path: `${this.baseEndpoint}/${params.id}/rotate`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.rotate',\n });\n }\n\n // CRUD\n public async getById(params: BshCallbackParams<unknown, BshApiKeys> & { id: string }): Promise<BshResponse<BshApiKeys> | undefined> {\n return this.client.get<BshApiKeys>({\n path: `${this.baseEndpoint}/${params.id}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.getById',\n });\n }\n\n public async search(params: BshSearchCallbackParams<BshApiKeys, BshApiKeys>): Promise<BshResponse<BshApiKeys> | undefined> {\n return this.client.post<BshApiKeys>({\n path: `${this.baseEndpoint}/search`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.search',\n });\n }\n\n public async list(params: BshCallbackParams<unknown, BshApiKeys> & {\n queryParams?: {\n page?: string;\n size?: string;\n sort?: string;\n filter?: string;\n }\n }): Promise<BshResponse<BshApiKeys> | undefined> {\n const urlSearchParams = new URLSearchParams();\n if (params.queryParams?.page) urlSearchParams.append('page', params.queryParams.page);\n if (params.queryParams?.size) urlSearchParams.append('size', params.queryParams.size);\n if (params.queryParams?.sort) urlSearchParams.append('sort', params.queryParams.sort);\n if (params.queryParams?.filter) urlSearchParams.append('filter', params.queryParams.filter);\n\n const queryString = urlSearchParams.toString();\n const endpoint = queryString ? `?${queryString}` : '';\n\n return this.client.get<BshApiKeys>({\n path: `${this.baseEndpoint}${endpoint}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.list',\n });\n }\n\n public async deleteById(params: BshCallbackParams<unknown, BshApiKeys> & { id: string }): Promise<BshResponse<BshApiKeys> | undefined> {\n return this.client.delete<BshApiKeys>({\n path: `${this.baseEndpoint}/${params.id}`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.deleteById',\n });\n }\n\n public async count(\n params: BshCallbackParams<unknown, {count: number}>\n ): Promise<BshResponse<{count: number}> | undefined> {\n return this.client.get<{count: number}>({\n path: `${this.baseEndpoint}/count`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: params,\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.count',\n });\n }\n\n public async countFiltered(params: BshSearchCallbackParams<BshApiKeys, {count: number}>): Promise<BshResponse<{count: number}> | undefined> {\n return this.client.post<{count: number}>({\n path: `${this.baseEndpoint}/count`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n body: params.payload,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n bshOptions: params,\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.countFiltered',\n });\n }\n}\n\n"]}