@bshsolutions/sdk 0.0.34 → 0.0.36-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-E75ULHMO.js → chunk-C6W32LLO.js} +2 -3
- package/dist/chunk-C6W32LLO.js.map +1 -0
- package/dist/{chunk-WER47MVE.js → chunk-PXKQN4D4.js} +31 -10
- package/dist/chunk-PXKQN4D4.js.map +1 -0
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/services/index.d.ts +1 -1
- package/dist/services/index.js +1 -1
- package/dist/{types-B0_3Fol9.d.ts → types-DSzlEe09.d.ts} +2 -0
- package/package.json +5 -1
- package/dist/chunk-E75ULHMO.js.map +0 -1
- package/dist/chunk-WER47MVE.js.map +0 -1
|
@@ -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-
|
|
1102
|
-
//# sourceMappingURL=chunk-
|
|
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"]}
|
|
@@ -97,6 +97,22 @@ var BshClient = class {
|
|
|
97
97
|
return auth;
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
|
+
getCookie(name) {
|
|
101
|
+
if (typeof document === "undefined") return void 0;
|
|
102
|
+
const cookies = document.cookie.split(";");
|
|
103
|
+
for (const cookie of cookies) {
|
|
104
|
+
const [key, ...valueParts] = cookie.trim().split("=");
|
|
105
|
+
if (key === name) return decodeURIComponent(valueParts.join("="));
|
|
106
|
+
}
|
|
107
|
+
return void 0;
|
|
108
|
+
}
|
|
109
|
+
getCsrfHeaders(params) {
|
|
110
|
+
const method = params.options?.method?.toUpperCase() || "GET";
|
|
111
|
+
if (method === "GET" || method === "HEAD" || method === "OPTIONS") return {};
|
|
112
|
+
const csrfToken = this.getCookie("XSRF-TOKEN");
|
|
113
|
+
if (!csrfToken) return {};
|
|
114
|
+
return { "X-XSRF-TOKEN": csrfToken };
|
|
115
|
+
}
|
|
100
116
|
async getAuthHeaders(params) {
|
|
101
117
|
if (params.path.includes("/api/auth/")) return {};
|
|
102
118
|
let auth = this.authFn ? await this.authFn() : void 0;
|
|
@@ -105,7 +121,8 @@ var BshClient = class {
|
|
|
105
121
|
if (auth) {
|
|
106
122
|
if (auth.type === "JWT") authHeaders = { Authorization: `Bearer ${auth.token}` };
|
|
107
123
|
else if (auth.type === "APIKEY") authHeaders = { "X-BSH-APIKEY": auth.token };
|
|
108
|
-
|
|
124
|
+
else authHeaders = this.getCsrfHeaders(params);
|
|
125
|
+
} else authHeaders = this.getCsrfHeaders(params);
|
|
109
126
|
return { ...authHeaders };
|
|
110
127
|
}
|
|
111
128
|
async getTenantHeaders(params) {
|
|
@@ -116,7 +133,10 @@ var BshClient = class {
|
|
|
116
133
|
async injectHeaders(params) {
|
|
117
134
|
const authHeaders = await this.getAuthHeaders(params);
|
|
118
135
|
const tenantHeaders = await this.getTenantHeaders(params);
|
|
119
|
-
return {
|
|
136
|
+
return {
|
|
137
|
+
...authHeaders,
|
|
138
|
+
...tenantHeaders
|
|
139
|
+
};
|
|
120
140
|
}
|
|
121
141
|
async applyPreInterceptors(params) {
|
|
122
142
|
const byPassPreInterceptors = params.bshOptions.byPass?.interceptors?.pre;
|
|
@@ -128,7 +148,7 @@ var BshClient = class {
|
|
|
128
148
|
return params;
|
|
129
149
|
}
|
|
130
150
|
async get(params) {
|
|
131
|
-
const authHeaders = await this.injectHeaders(params);
|
|
151
|
+
const authHeaders = await this.injectHeaders({ ...params, options: { ...params.options, method: "GET" } });
|
|
132
152
|
let clientParams = {
|
|
133
153
|
...params,
|
|
134
154
|
path: `${this.host}${params.path}`,
|
|
@@ -146,7 +166,7 @@ var BshClient = class {
|
|
|
146
166
|
return this.handleResponse(response, clientParams, "json");
|
|
147
167
|
}
|
|
148
168
|
async post(params) {
|
|
149
|
-
const authHeaders = await this.injectHeaders(params);
|
|
169
|
+
const authHeaders = await this.injectHeaders({ ...params, options: { ...params.options, method: "POST" } });
|
|
150
170
|
let clientParams = {
|
|
151
171
|
...params,
|
|
152
172
|
path: `${this.host}${params.path}`,
|
|
@@ -164,7 +184,7 @@ var BshClient = class {
|
|
|
164
184
|
return this.handleResponse(response, clientParams, "json");
|
|
165
185
|
}
|
|
166
186
|
async put(params) {
|
|
167
|
-
const authHeaders = await this.injectHeaders(params);
|
|
187
|
+
const authHeaders = await this.injectHeaders({ ...params, options: { ...params.options, method: "PUT" } });
|
|
168
188
|
let clientParams = {
|
|
169
189
|
...params,
|
|
170
190
|
path: `${this.host}${params.path}`,
|
|
@@ -182,7 +202,7 @@ var BshClient = class {
|
|
|
182
202
|
return this.handleResponse(response, clientParams, "json");
|
|
183
203
|
}
|
|
184
204
|
async delete(params) {
|
|
185
|
-
const authHeaders = await this.injectHeaders(params);
|
|
205
|
+
const authHeaders = await this.injectHeaders({ ...params, options: { ...params.options, method: "DELETE" } });
|
|
186
206
|
let clientParams = {
|
|
187
207
|
...params,
|
|
188
208
|
path: `${this.host}${params.path}`,
|
|
@@ -200,7 +220,7 @@ var BshClient = class {
|
|
|
200
220
|
return this.handleResponse(response, clientParams, "json");
|
|
201
221
|
}
|
|
202
222
|
async patch(params) {
|
|
203
|
-
const authHeaders = await this.injectHeaders(params);
|
|
223
|
+
const authHeaders = await this.injectHeaders({ ...params, options: { ...params.options, method: "PATCH" } });
|
|
204
224
|
let clientParams = {
|
|
205
225
|
...params,
|
|
206
226
|
path: `${this.host}${params.path}`,
|
|
@@ -218,12 +238,13 @@ var BshClient = class {
|
|
|
218
238
|
return this.handleResponse(response, clientParams, "json");
|
|
219
239
|
}
|
|
220
240
|
async download(params) {
|
|
221
|
-
const authHeaders = await this.injectHeaders(params);
|
|
241
|
+
const authHeaders = await this.injectHeaders({ ...params, options: { ...params.options, method: "GET" } });
|
|
222
242
|
let clientParams = {
|
|
223
243
|
...params,
|
|
224
244
|
path: `${this.host}${params.path}`,
|
|
225
245
|
options: {
|
|
226
246
|
...params.options,
|
|
247
|
+
method: "GET",
|
|
227
248
|
headers: {
|
|
228
249
|
...params.options.headers,
|
|
229
250
|
...authHeaders
|
|
@@ -249,5 +270,5 @@ var fetchClientFn = async (params) => {
|
|
|
249
270
|
};
|
|
250
271
|
|
|
251
272
|
export { BshClient, defaultClientFn, fetchClientFn };
|
|
252
|
-
//# sourceMappingURL=chunk-
|
|
253
|
-
//# sourceMappingURL=chunk-
|
|
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":"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","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"]}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as BshClientFn } from '../types-
|
|
2
|
-
export { A as AuthToken, B as BshAuthFn, c as BshClient, d as BshClientFnParams, e as BshErrorInterceptor, f as BshPostInterceptor, g as BshPreInterceptor, h as BshRefreshTokenFn, i as BshTenantFn, j as defaultClientFn } from '../types-
|
|
1
|
+
import { a as BshClientFn } from '../types-DSzlEe09.js';
|
|
2
|
+
export { A as AuthToken, B as BshAuthFn, c as BshClient, d as BshClientFnParams, e as BshErrorInterceptor, f as BshPostInterceptor, g as BshPreInterceptor, h as BshRefreshTokenFn, i as BshTenantFn, j as defaultClientFn } from '../types-DSzlEe09.js';
|
|
3
3
|
import '../types/index.js';
|
|
4
4
|
|
|
5
5
|
declare const fetchClientFn: BshClientFn;
|
package/dist/client/index.js
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { fetchClientFn, BshClient } from './chunk-
|
|
2
|
-
import { EntityService, AuthService, UserService, TenantService, SettingsService, ImageService, MailingService, BshUtilsService, CachingService, ApiKeyService } from './chunk-
|
|
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
|
|
package/dist/services/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import '../types/index.js';
|
|
2
|
-
export { k as AdminUserService, l as ApiKeyService, m as AuthService, n as BshCallbackParams, o as BshCallbackParamsWithPayload, p as BshSearchCallbackParams, q as BshUtilsService, C as CacheRemoveResponse, r as CachingService, E as EntityFnParams, s as EntityFnParamsWithPayload, t as EntitySearchFnParams, u as EntityService, I as ImageService, M as MailingService, S as SettingsService, T as TenantService, U as UserService } from '../types-
|
|
2
|
+
export { k as AdminUserService, l as ApiKeyService, m as AuthService, n as BshCallbackParams, o as BshCallbackParamsWithPayload, p as BshSearchCallbackParams, q as BshUtilsService, C as CacheRemoveResponse, r as CachingService, E as EntityFnParams, s as EntityFnParamsWithPayload, t as EntitySearchFnParams, u as EntityService, I as ImageService, M as MailingService, S as SettingsService, T as TenantService, U as UserService } from '../types-DSzlEe09.js';
|
package/dist/services/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { AdminUserService, ApiKeyService, AuthService, BshUtilsService, CachingService, EntityService, ImageService, MailingService, SettingsService, TenantService, UserService } from '../chunk-
|
|
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
|
|
@@ -92,6 +92,8 @@ declare class BshClient {
|
|
|
92
92
|
constructor(host?: string, httpClient?: BshClientFn, authFn?: BshAuthFn, refreshTokenFn?: BshRefreshTokenFn, tenantFn?: BshTenantFn, bshEngine?: BshEngine);
|
|
93
93
|
private handleResponse;
|
|
94
94
|
private refreshTokenIfNeeded;
|
|
95
|
+
private getCookie;
|
|
96
|
+
private getCsrfHeaders;
|
|
95
97
|
private getAuthHeaders;
|
|
96
98
|
private getTenantHeaders;
|
|
97
99
|
private injectHeaders;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bshsolutions/sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.36-beta",
|
|
4
4
|
"description": "TypeScript SDK for integrating with BSH Engine <https://engine.bousalih.com>",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -66,5 +66,9 @@
|
|
|
66
66
|
},
|
|
67
67
|
"overrides": {
|
|
68
68
|
"esbuild": "^0.25.0"
|
|
69
|
+
},
|
|
70
|
+
"allowScripts": {
|
|
71
|
+
"esbuild@0.25.12": true,
|
|
72
|
+
"fsevents@2.3.3": true
|
|
69
73
|
}
|
|
70
74
|
}
|
|
@@ -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"]}
|
|
@@ -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-WER47MVE.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 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 }\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 return { ...authHeaders, ...tenantHeaders };\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"]}
|