@bshsolutions/sdk 0.0.22 → 0.0.24
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-QR3VEFJY.js → chunk-CVNHMBCG.js} +3 -3
- package/dist/{chunk-QR3VEFJY.js.map → chunk-CVNHMBCG.js.map} +1 -1
- package/dist/{chunk-FOWAW7J6.js → chunk-PUOW7V6Z.js} +53 -16
- package/dist/chunk-PUOW7V6Z.js.map +1 -0
- package/dist/{chunk-R6S4VI7X.js → chunk-ZY43Z77S.js} +2 -2
- package/dist/{chunk-R6S4VI7X.js.map → chunk-ZY43Z77S.js.map} +1 -1
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.js +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +14 -3
- package/dist/index.js.map +1 -1
- package/dist/services/index.d.ts +1 -1
- package/dist/services/index.js +1 -1
- package/dist/types/index.d.ts +8 -2
- package/dist/types/index.js +1 -1
- package/dist/{types-DM-I9vO2.d.ts → types-IoTgkIXE.d.ts} +17 -1
- package/package.json +1 -1
- package/dist/chunk-FOWAW7J6.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BshError } from './chunk-
|
|
1
|
+
import { BshError } from './chunk-ZY43Z77S.js';
|
|
2
2
|
|
|
3
3
|
// src/client/types.ts
|
|
4
4
|
var defaultClientFn = async (params) => {
|
|
@@ -244,5 +244,5 @@ var fetchClientFn = async (params) => {
|
|
|
244
244
|
};
|
|
245
245
|
|
|
246
246
|
export { BshClient, defaultClientFn, fetchClientFn };
|
|
247
|
-
//# sourceMappingURL=chunk-
|
|
248
|
-
//# sourceMappingURL=chunk-
|
|
247
|
+
//# sourceMappingURL=chunk-CVNHMBCG.js.map
|
|
248
|
+
//# sourceMappingURL=chunk-CVNHMBCG.js.map
|
|
@@ -1 +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-QR3VEFJY.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 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, 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 host: string;\n private readonly bshEngine?: BshEngine;\n\n constructor(\n host?: string,\n httpClient?: BshClientFn,\n authFn?: BshAuthFn,\n refreshTokenFn?: BshRefreshTokenFn,\n bshEngine?: BshEngine\n ) {\n this.host = host || '';\n this.httpClient = httpClient || defaultClientFn;\n this.authFn = authFn;\n this.refreshTokenFn = refreshTokenFn;\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 if (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 if (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) {\n auth = await this.refreshTokenIfNeeded(auth, this.refreshTokenFn);\n }\n\n let authHeaders = {};\n if (auth) {\n if (auth.type === 'JWT') {\n authHeaders = {\n Authorization: `Bearer ${auth.token}`\n };\n }\n else if (auth.type === 'APIKEY') {\n authHeaders = {\n 'X-BSH-APIKEY': auth.token\n };\n }\n }\n return authHeaders;\n }\n\n private async applyPreInterceptors<T = unknown, R = T>(params: BshClientFnParams<T, R>): Promise<BshClientFnParams<T, R>> {\n if (!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.getAuthHeaders(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.getAuthHeaders(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>(params: BshClientFnParams<T>): Promise<BshResponse<T> | undefined> {\n const authHeaders = await this.getAuthHeaders(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>;\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 delete<T = unknown>(params: BshClientFnParams<T>): Promise<BshResponse<T> | undefined> {\n const authHeaders = await this.getAuthHeaders(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.getAuthHeaders(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.getAuthHeaders(params);\n let clientParams = {\n ...params,\n path: `${this.host}${params.path}`,\n options: {\n ...params.options,\n headers: {\n ...params.options.headers,\n ...authHeaders\n }\n }\n } as BshClientFnParams<T>;\n\n clientParams = await this.applyPreInterceptors<T>(clientParams);\n const response = await this.httpClient(clientParams);\n return this.handleResponse(response, clientParams, 'blob');\n }\n}\n","import { BshClientFn } from './types';\n\nexport * from './types';\nexport * from './bsh-client';\n\nexport const fetchClientFn: BshClientFn = async (params) => {\n return fetch(\n params.path,\n {\n method: params.options.method,\n body: params.options.requestFormat === 'form' ?\n params.options.body as BodyInit : params.options.body ?\n JSON.stringify(params.options.body) : undefined,\n headers: params.options.headers,\n }\n );\n};\n"]}
|
|
1
|
+
{"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-CVNHMBCG.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 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, 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 host: string;\n private readonly bshEngine?: BshEngine;\n\n constructor(\n host?: string,\n httpClient?: BshClientFn,\n authFn?: BshAuthFn,\n refreshTokenFn?: BshRefreshTokenFn,\n bshEngine?: BshEngine\n ) {\n this.host = host || '';\n this.httpClient = httpClient || defaultClientFn;\n this.authFn = authFn;\n this.refreshTokenFn = refreshTokenFn;\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 if (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 if (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) {\n auth = await this.refreshTokenIfNeeded(auth, this.refreshTokenFn);\n }\n\n let authHeaders = {};\n if (auth) {\n if (auth.type === 'JWT') {\n authHeaders = {\n Authorization: `Bearer ${auth.token}`\n };\n }\n else if (auth.type === 'APIKEY') {\n authHeaders = {\n 'X-BSH-APIKEY': auth.token\n };\n }\n }\n return authHeaders;\n }\n\n private async applyPreInterceptors<T = unknown, R = T>(params: BshClientFnParams<T, R>): Promise<BshClientFnParams<T, R>> {\n if (!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.getAuthHeaders(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.getAuthHeaders(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>(params: BshClientFnParams<T>): Promise<BshResponse<T> | undefined> {\n const authHeaders = await this.getAuthHeaders(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>;\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 delete<T = unknown>(params: BshClientFnParams<T>): Promise<BshResponse<T> | undefined> {\n const authHeaders = await this.getAuthHeaders(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.getAuthHeaders(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.getAuthHeaders(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"]}
|
|
@@ -338,6 +338,39 @@ var AuthService = class {
|
|
|
338
338
|
};
|
|
339
339
|
|
|
340
340
|
// src/services/user/index.ts
|
|
341
|
+
var AdminUserService = class {
|
|
342
|
+
constructor(client) {
|
|
343
|
+
this.client = client;
|
|
344
|
+
this.baseEndpoint = "/api/users/admin";
|
|
345
|
+
}
|
|
346
|
+
async resetPassword(params) {
|
|
347
|
+
return this.client.put({
|
|
348
|
+
path: `${this.baseEndpoint}/forget-password/${params.email}`,
|
|
349
|
+
options: { responseType: "json" },
|
|
350
|
+
bshOptions: { onSuccess: params.onSuccess, onError: params.onError },
|
|
351
|
+
api: "users.admin.resetPassword",
|
|
352
|
+
entity: CoreEntities.BshUsers
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
async activateAccount(params) {
|
|
356
|
+
return this.client.put({
|
|
357
|
+
path: `${this.baseEndpoint}/activate-account/${params.email}`,
|
|
358
|
+
options: { responseType: "json" },
|
|
359
|
+
bshOptions: { onSuccess: params.onSuccess, onError: params.onError },
|
|
360
|
+
api: "users.admin.activateAccount",
|
|
361
|
+
entity: CoreEntities.BshUsers
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
async resendActivationCode(params) {
|
|
365
|
+
return this.client.put({
|
|
366
|
+
path: `${this.baseEndpoint}/resend-activation-email/${params.email}`,
|
|
367
|
+
options: { responseType: "json" },
|
|
368
|
+
bshOptions: { onSuccess: params.onSuccess, onError: params.onError },
|
|
369
|
+
api: "users.admin.resendActivationCode",
|
|
370
|
+
entity: CoreEntities.BshUsers
|
|
371
|
+
});
|
|
372
|
+
}
|
|
373
|
+
};
|
|
341
374
|
var UserService = class {
|
|
342
375
|
constructor(client) {
|
|
343
376
|
this.client = client;
|
|
@@ -351,7 +384,7 @@ var UserService = class {
|
|
|
351
384
|
requestFormat: "json"
|
|
352
385
|
},
|
|
353
386
|
bshOptions: { onSuccess: params.onSuccess, onError: params.onError },
|
|
354
|
-
api: "
|
|
387
|
+
api: "users.me",
|
|
355
388
|
entity: CoreEntities.BshUsers
|
|
356
389
|
});
|
|
357
390
|
}
|
|
@@ -367,7 +400,7 @@ var UserService = class {
|
|
|
367
400
|
}
|
|
368
401
|
},
|
|
369
402
|
bshOptions: { onSuccess: params.onSuccess, onError: params.onError },
|
|
370
|
-
api: "
|
|
403
|
+
api: "users.init",
|
|
371
404
|
entity: CoreEntities.BshUsers
|
|
372
405
|
});
|
|
373
406
|
}
|
|
@@ -383,7 +416,7 @@ var UserService = class {
|
|
|
383
416
|
}
|
|
384
417
|
},
|
|
385
418
|
bshOptions: { onSuccess: params.onSuccess, onError: params.onError },
|
|
386
|
-
api: "
|
|
419
|
+
api: "users.invite",
|
|
387
420
|
entity: CoreEntities.BshUsers
|
|
388
421
|
});
|
|
389
422
|
}
|
|
@@ -399,7 +432,7 @@ var UserService = class {
|
|
|
399
432
|
}
|
|
400
433
|
},
|
|
401
434
|
bshOptions: { onSuccess: params.onSuccess, onError: params.onError },
|
|
402
|
-
api: "
|
|
435
|
+
api: "users.updateProfile",
|
|
403
436
|
entity: CoreEntities.BshUsers
|
|
404
437
|
});
|
|
405
438
|
}
|
|
@@ -414,7 +447,7 @@ var UserService = class {
|
|
|
414
447
|
body: formData
|
|
415
448
|
},
|
|
416
449
|
bshOptions: { onSuccess: params.onSuccess, onError: params.onError },
|
|
417
|
-
api: "
|
|
450
|
+
api: "users.updatePicture",
|
|
418
451
|
entity: CoreEntities.BshUsers
|
|
419
452
|
});
|
|
420
453
|
}
|
|
@@ -430,10 +463,14 @@ var UserService = class {
|
|
|
430
463
|
}
|
|
431
464
|
},
|
|
432
465
|
bshOptions: { onSuccess: params.onSuccess, onError: params.onError },
|
|
433
|
-
api: "
|
|
466
|
+
api: "users.updatePassword",
|
|
434
467
|
entity: CoreEntities.BshUsers
|
|
435
468
|
});
|
|
436
469
|
}
|
|
470
|
+
// Admin
|
|
471
|
+
get admin() {
|
|
472
|
+
return new AdminUserService(this.client);
|
|
473
|
+
}
|
|
437
474
|
// CRUD
|
|
438
475
|
async getById(params) {
|
|
439
476
|
return this.client.get({
|
|
@@ -443,7 +480,7 @@ var UserService = class {
|
|
|
443
480
|
requestFormat: "json"
|
|
444
481
|
},
|
|
445
482
|
bshOptions: { onSuccess: params.onSuccess, onError: params.onError },
|
|
446
|
-
api: "
|
|
483
|
+
api: "users.getById",
|
|
447
484
|
entity: CoreEntities.BshUsers
|
|
448
485
|
});
|
|
449
486
|
}
|
|
@@ -459,7 +496,7 @@ var UserService = class {
|
|
|
459
496
|
}
|
|
460
497
|
},
|
|
461
498
|
bshOptions: { onSuccess: params.onSuccess, onError: params.onError },
|
|
462
|
-
api: "
|
|
499
|
+
api: "users.search",
|
|
463
500
|
entity: CoreEntities.BshUsers
|
|
464
501
|
});
|
|
465
502
|
}
|
|
@@ -478,7 +515,7 @@ var UserService = class {
|
|
|
478
515
|
requestFormat: "json"
|
|
479
516
|
},
|
|
480
517
|
bshOptions: { onSuccess: params.onSuccess, onError: params.onError },
|
|
481
|
-
api: "
|
|
518
|
+
api: "users.list",
|
|
482
519
|
entity: CoreEntities.BshUsers
|
|
483
520
|
});
|
|
484
521
|
}
|
|
@@ -494,7 +531,7 @@ var UserService = class {
|
|
|
494
531
|
}
|
|
495
532
|
},
|
|
496
533
|
bshOptions: { onSuccess: params.onSuccess, onError: params.onError },
|
|
497
|
-
api: "
|
|
534
|
+
api: "users.update",
|
|
498
535
|
entity: CoreEntities.BshUsers
|
|
499
536
|
});
|
|
500
537
|
}
|
|
@@ -506,7 +543,7 @@ var UserService = class {
|
|
|
506
543
|
requestFormat: "json"
|
|
507
544
|
},
|
|
508
545
|
bshOptions: { onSuccess: params.onSuccess, onError: params.onError },
|
|
509
|
-
api: "
|
|
546
|
+
api: "users.deleteById",
|
|
510
547
|
entity: CoreEntities.BshUsers
|
|
511
548
|
});
|
|
512
549
|
}
|
|
@@ -518,7 +555,7 @@ var UserService = class {
|
|
|
518
555
|
requestFormat: "json"
|
|
519
556
|
},
|
|
520
557
|
bshOptions: { onSuccess: params.onSuccess, onError: params.onError },
|
|
521
|
-
api: "
|
|
558
|
+
api: "users.count",
|
|
522
559
|
entity: CoreEntities.BshUsers
|
|
523
560
|
});
|
|
524
561
|
}
|
|
@@ -534,7 +571,7 @@ var UserService = class {
|
|
|
534
571
|
}
|
|
535
572
|
},
|
|
536
573
|
bshOptions: { onSuccess: params.onSuccess, onError: params.onError },
|
|
537
|
-
api: "
|
|
574
|
+
api: "users.countFiltered",
|
|
538
575
|
entity: CoreEntities.BshUsers
|
|
539
576
|
});
|
|
540
577
|
}
|
|
@@ -881,6 +918,6 @@ var ApiKeyService = class {
|
|
|
881
918
|
}
|
|
882
919
|
};
|
|
883
920
|
|
|
884
|
-
export { ApiKeyService, AuthService, BshUtilsService, CachingService, EntityService, ImageService, MailingService, SettingsService, UserService };
|
|
885
|
-
//# sourceMappingURL=chunk-
|
|
886
|
-
//# sourceMappingURL=chunk-
|
|
921
|
+
export { AdminUserService, ApiKeyService, AuthService, BshUtilsService, CachingService, EntityService, ImageService, MailingService, SettingsService, UserService };
|
|
922
|
+
//# sourceMappingURL=chunk-PUOW7V6Z.js.map
|
|
923
|
+
//# sourceMappingURL=chunk-PUOW7V6Z.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/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-PUOW7V6Z.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: { onSuccess: params.onSuccess, onError: params.onError },\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>(\n params: EntityFnParamsWithPayload<TT>\n ): Promise<BshResponse<TT> | undefined> {\n return this.client.post<TT>({\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: { onSuccess: params.onSuccess, onError: params.onError },\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>(\n params: EntityFnParamsWithPayload<TT[], TT>\n ): Promise<BshResponse<TT> | undefined> {\n return this.client.post<TT>({\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: { onSuccess: params.onSuccess, onError: params.onError },\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>(\n params: EntityFnParamsWithPayload<TT>\n ): Promise<BshResponse<TT> | undefined> {\n return this.client.put<TT>({\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: { onSuccess: params.onSuccess, onError: params.onError },\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>(\n params: EntityFnParamsWithPayload<TT[], TT>\n ): Promise<BshResponse<TT> | undefined> {\n return this.client.put<TT>({\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\n api: 'users.countFiltered',\n entity: CoreEntities.BshUsers,\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.revoke',\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.countFiltered',\n });\n }\n}\n\n"]}
|
|
@@ -51,5 +51,5 @@ var formatFileSize = (file) => {
|
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
export { BshEntityPermissions, BshEntityTypes, BshError, BshInsertDuplicates, BshPKStrategies, BshPKTypes, BshUpdateStrategies, PolicyActions, PrincipalType, defaultSettings, formatFileSize, isOk };
|
|
54
|
-
//# sourceMappingURL=chunk-
|
|
55
|
-
//# sourceMappingURL=chunk-
|
|
54
|
+
//# sourceMappingURL=chunk-ZY43Z77S.js.map
|
|
55
|
+
//# sourceMappingURL=chunk-ZY43Z77S.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/response/index.ts","../src/types/entities/index.ts","../src/types/security/index.ts","../src/types/config/index.ts","../src/types/storage/index.ts"],"names":[],"mappings":";AAyBO,IAAM,IAAA,GAAO,CAAC,QAAA,KAA+C,QAAA,IAAY,MAAA,GAAY,QAAQ,QAAA,EAAU,IAAA,IAAQ,GAAA,IAAO,QAAA,EAAU,IAAA,GAAO;AAEvI,IAAM,QAAA,GAAN,cAAuB,KAAA,CAAM;AAAA,EAChC,WAAA,CACW,MAAA,EACA,QAAA,EACA,QAAA,EACT;AACE,IAAA,IAAI,QAAA,WAAmB,QAAA,GAAW,QAAA;AAClC,IAAA,KAAA,CAAM,IAAA,CAAK,SAAA,CAAU,QAAA,EAAU,IAAA,EAAM,CAAC,CAAC,CAAA;AALhC,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AACA,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA;AACA,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA;AAIP,IAAA,IAAA,CAAK,IAAA,GAAO,UAAA;AAAA,EAChB;AACJ;;;ACRO,IAAM,cAAA,GAAiB,CAAC,OAAA,EAAS,MAAA,EAAQ,UAAU;AACnD,IAAM,mBAAA,GAAsB,CAAC,SAAA,EAAW,QAAQ;AAChD,IAAM,mBAAA,GAAsB,CAAC,QAAA,EAAU,OAAO;AAC9C,IAAM,eAAA,GAAkB,CAAC,eAAA,EAAiB,MAAA,EAAQ,OAAO;AACzD,IAAM,UAAA,GAAa,CAAC,QAAA,EAAU,QAAQ;AACtC,IAAM,oBAAA,GAAuB,CAAC,MAAA,EAAQ,OAAA,EAAS,UAAU,QAAQ;;;
|
|
1
|
+
{"version":3,"sources":["../src/types/response/index.ts","../src/types/entities/index.ts","../src/types/security/index.ts","../src/types/config/index.ts","../src/types/storage/index.ts"],"names":[],"mappings":";AAyBO,IAAM,IAAA,GAAO,CAAC,QAAA,KAA+C,QAAA,IAAY,MAAA,GAAY,QAAQ,QAAA,EAAU,IAAA,IAAQ,GAAA,IAAO,QAAA,EAAU,IAAA,GAAO;AAEvI,IAAM,QAAA,GAAN,cAAuB,KAAA,CAAM;AAAA,EAChC,WAAA,CACW,MAAA,EACA,QAAA,EACA,QAAA,EACT;AACE,IAAA,IAAI,QAAA,WAAmB,QAAA,GAAW,QAAA;AAClC,IAAA,KAAA,CAAM,IAAA,CAAK,SAAA,CAAU,QAAA,EAAU,IAAA,EAAM,CAAC,CAAC,CAAA;AALhC,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AACA,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA;AACA,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA;AAIP,IAAA,IAAA,CAAK,IAAA,GAAO,UAAA;AAAA,EAChB;AACJ;;;ACRO,IAAM,cAAA,GAAiB,CAAC,OAAA,EAAS,MAAA,EAAQ,UAAU;AACnD,IAAM,mBAAA,GAAsB,CAAC,SAAA,EAAW,QAAQ;AAChD,IAAM,mBAAA,GAAsB,CAAC,QAAA,EAAU,OAAO;AAC9C,IAAM,eAAA,GAAkB,CAAC,eAAA,EAAiB,MAAA,EAAQ,OAAO;AACzD,IAAM,UAAA,GAAa,CAAC,QAAA,EAAU,QAAQ;AACtC,IAAM,oBAAA,GAAuB,CAAC,MAAA,EAAQ,OAAA,EAAS,UAAU,QAAQ;;;ACsBjE,IAAM,aAAA,GAAgB;AAAA,EAAC,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,KAAA;AAAA,EAAO;AAAA;AAAqB;AACnE,IAAM,gBAAgB,CAAC,GAAA,EAAK,QAAQ,OAAA,EAAS,QAAA,EAAU,UAAU,QAAQ;;;ACpCzE,IAAM,eAAA,GAA+B;AAAA,EACxC,IAAA,EAAM,WAAA;AAAA,EACN,GAAA,EAAK;AAAA,IACD,QAAA,EAAU;AAAA,MACN,OAAA,EAAS;AAAA,KACb;AAAA,IACA,IAAA,EAAM;AAAA,MACF,cAAA,EAAgB;AAAA;AACpB;AAER;;;ACgBO,IAAM,cAAA,GAAiB,CAAC,IAAA,KAA2B;AACtD,EAAA,IAAI,CAAC,IAAA,EAAM,KAAA,EAAO,OAAO,SAAA;AACzB,EAAA,MAAM,KAAA,GAAQ,CAAC,OAAA,EAAS,IAAA,EAAM,MAAM,IAAI,CAAA;AACxC,EAAA,MAAM,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,KAAK,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,IAAI,CAAC,CAAA;AAC1D,EAAA,OAAO,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,KAAA,GAAQ,KAAK,GAAA,CAAI,IAAA,EAAM,CAAC,CAAA,GAAI,GAAG,CAAA,GAAI,GAAA,GAAM,GAAA,GAAM,MAAM,CAAC,CAAA;AACjF","file":"chunk-ZY43Z77S.js","sourcesContent":["export type BshResponse<T> = {\n data: T[]\n timestamp: number\n code: number\n status: string\n message?: string\n error?: string\n meta?: {\n type?: string,\n sql?: string,\n error?: string,\n tips?: {[key: string]: string}\n }\n pagination?: {\n current: number,\n total: number,\n pages: number,\n first: boolean,\n last: boolean\n }\n endpoint?: string,\n api?: string,\n validations?: {field: string, error: string}[]\n}\n\nexport const isOk = (response: BshResponse<unknown> | undefined) => response == undefined ? false : response?.code >= 200 && response?.code < 300\n\nexport class BshError extends Error {\n constructor(\n public status: number,\n public endpoint: string,\n public response?: BshResponse<unknown>\n ) {\n if (response) response.endpoint = endpoint\n super(JSON.stringify(response, null, 2));\n this.name = 'BshError';\n }\n}\n","import { BshObject, BshObjectPure } from '@types';\n\nexport type BshEntities = {\n name: string\n dbTable: string\n dbSchema: string\n type: 'Table' | 'View' | 'Function'\n dbSource: string\n updateStrategy: 'Replace' | 'Upsert'\n insertDuplicate: 'Upsert' | 'Error'\n bshSchema?: string\n bshPlugin?: string\n auditable?: boolean\n isPluginBased?: boolean\n pks: {\n key: string\n strategy: 'AutoIncrement' | 'UUID' | 'Fixed'\n type: 'string' | 'number'\n }[]\n permissions?: {\n write?: boolean\n read?: boolean\n delete?: boolean\n update?: boolean\n }\n} & BshObject;\n\nexport type BshEntitiesPure = BshObjectPure<BshEntities>;\nexport type BshEntityPermissions = 'read' | 'write' | 'update' | 'delete';\nexport const BshEntityTypes = ['Table', 'View', 'Function'] as const;\nexport const BshUpdateStrategies = ['Replace', 'Upsert'] as const;\nexport const BshInsertDuplicates = ['Upsert', 'Error'] as const;\nexport const BshPKStrategies = ['AutoIncrement', 'UUID', 'Fixed'] as const;\nexport const BshPKTypes = ['string', 'number'] as const;\nexport const BshEntityPermissions = ['read', 'write', 'update', 'delete'] as const;\n\nexport type BshSchemas = {\n name: string\n label: string\n description: string\n bshPlugin: string\n properties: {\n type: string\n name: string\n label: string\n\n meta?: {\n description?: string\n\n required?: boolean\n unique?: boolean\n default?: string\n\n length?: number\n maxLength?: number\n minLength?: number\n\n pattern?: string\n }\n }[]\n} & BshObject;\n\nexport type BshSchemasPure = BshObjectPure<BshSchemas>;\nexport type BshSchemaProperty = BshSchemas['properties'][number];\n\nexport type BshTypes = {\n name: string\n label: string\n bshPlugin?: string\n baseType?: string\n schema?: string\n meta?: {\n description?: string\n pattern?: string\n maxLength?: number\n minLength?: number\n max?: number\n min?: number\n }\n} & BshObject;\n\nexport type BshTypesPure = BshObjectPure<BshTypes>;\n\n","import {BshDate, BshObject, BshObjectPure} from '@types';\n\nexport type BshUser = {\n userId: string\n email: string\n password?: string\n roles: string[]\n status: 'ACTIVATED' | 'REQUIRED_ACTIVATION' | 'DISABLED' | 'REQUIRED_RESET_PASSWORD'\n profile?: {\n firstName?: string\n lastName?: string\n phone?: string\n picture?: string\n tags?: string[]\n [k: string]: unknown\n }\n} & BshObject;\n\nexport type BshUserInit = {\n email: string\n password?: string\n roles?: string[]\n profile: BshUser['profile']\n}\n\nexport type BshUserPure = BshObjectPure<BshUser>;\n\nexport type BshRole = {\n name: string\n public?: boolean\n admin?: boolean\n description?: string\n bshPlugin?: string;\n} & BshObject;\n\nexport type BshRolePure = BshObjectPure<BshRole>;\n\nexport type BshPolicy = {\n name: string\n description?: string\n principals: {\n type: Uppercase<'user' | 'group' | 'role' | 'apiKey' | 'any'>\n value: string[]\n }[]\n permissions: {\n entity: string[]\n actions: ('READ' | 'WRITE' | 'DELETE' | 'UPDATE' | 'SEARCH' | '*')[]\n allow: boolean\n }[]\n enabled: boolean\n priority?: number\n apiKeyId?: number\n bshPlugin?: string;\n} & BshObject;\n\nexport type BshPolicyPure = BshObjectPure<BshPolicy>;\nexport const PrincipalType = ['user', 'role', 'any', 'apiKey', /*'group'*/] as const;\nexport const PolicyActions = ['*', 'READ', 'WRITE', 'DELETE', 'UPDATE', 'SEARCH'] as const;\n\nexport type BshApiKeysScopes = {\n read: boolean\n write: boolean\n delete: boolean\n update: boolean\n}\n\nexport type BshApiKeysForm = {\n name: string\n description?: string\n duration: number\n type: 'PERSONAL' | 'MACHINE'\n scopes: string[] // Format: [\"EntityName:ACTION\", ...]\n}\n\nexport type BshApiKeys = BshApiKeysForm & {\n id: number\n apiKey: string\n startedAt: BshDate\n expiresAt?: BshDate\n status: 'ACTIVE' | 'REVOKED'\n userId?: string\n} & BshObject;\n\n","import {BshObject} from \"@types\";\n\nexport type BshConfigurations<T extends Record<string, unknown> = Record<string, unknown>> = {\n name: string;\n description: string;\n bshPlugin?: string;\n config?: T;\n} & BshObject\n\nexport type BshSettings = {\n name: string;\n api: {\n response?: {\n showSql?: boolean;\n };\n auth?: {\n enableRegister?: boolean;\n };\n };\n}\n\nexport const defaultSettings: BshSettings = {\n name: 'BshEngine',\n api: {\n response: {\n showSql: true\n },\n auth: {\n enableRegister: false\n }\n }\n}\n\n","import { BshObject, BshConfigurations } from '@types';\n\nexport type StorageProvider = 'cloudinary';\n\nexport type CloudinaryConfig = {\n url: string;\n folder?: string;\n}\n\nexport type StorageConfiguration = BshConfigurations & {\n enabled?: StorageProvider;\n cloudinary: CloudinaryConfig\n}\n\nexport type BshFiles = {\n storageId: string;\n id: string;\n filename: string;\n mediaType: string;\n uri: string;\n secureUri: string;\n bytes: number;\n format: string;\n folder: string;\n width: number;\n height: number;\n tags: string[];\n context: { [key: string]: unknown };\n fileId: string;\n} & BshObject\n\nexport type UploadOptions = {\n tags: string[]\n context: { [key: string]: unknown }\n [key: string]: unknown;\n}\n\nexport type UploadResponse = {\n fileId: string\n publicId: string\n assetId: string\n uri: string\n secureUri: string\n tags: string[]\n context: { [key: string]: unknown }\n}\n\nexport const formatFileSize = (file: BshFiles): string => {\n if (!file?.bytes) return 'Unknown';\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(file.bytes) / Math.log(1024));\n return Math.round(file.bytes / Math.pow(1024, i) * 100) / 100 + ' ' + sizes[i];\n};\n\n"]}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { B as BshClientFn } from '../types-
|
|
2
|
-
export { A as AuthToken, a as BshAuthFn, i as BshClient, c as BshClientFnParams, h as BshErrorInterceptor, f as BshPostInterceptor, g as BshPreInterceptor, e as BshRefreshTokenFn, d as defaultClientFn } from '../types-
|
|
1
|
+
import { B as BshClientFn } from '../types-IoTgkIXE.js';
|
|
2
|
+
export { A as AuthToken, a as BshAuthFn, i as BshClient, c as BshClientFnParams, h as BshErrorInterceptor, f as BshPostInterceptor, g as BshPreInterceptor, e as BshRefreshTokenFn, d as defaultClientFn } from '../types-IoTgkIXE.js';
|
|
3
3
|
import '../types/index.js';
|
|
4
4
|
|
|
5
5
|
declare const fetchClientFn: BshClientFn;
|
package/dist/client/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { BshClient, defaultClientFn, fetchClientFn } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { BshClient, defaultClientFn, fetchClientFn } from '../chunk-CVNHMBCG.js';
|
|
2
|
+
import '../chunk-ZY43Z77S.js';
|
|
3
3
|
import '../chunk-CAQ6G7NK.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { fetchClientFn, BshClient } from './chunk-
|
|
2
|
-
import { EntityService, AuthService, UserService, SettingsService, ImageService, MailingService, BshUtilsService, CachingService, ApiKeyService } from './chunk-
|
|
3
|
-
import './chunk-
|
|
1
|
+
import { fetchClientFn, BshClient } from './chunk-CVNHMBCG.js';
|
|
2
|
+
import { EntityService, AuthService, UserService, SettingsService, ImageService, MailingService, BshUtilsService, CachingService, ApiKeyService } from './chunk-PUOW7V6Z.js';
|
|
3
|
+
import './chunk-ZY43Z77S.js';
|
|
4
4
|
import { CoreEntities } from './chunk-CAQ6G7NK.js';
|
|
5
5
|
|
|
6
6
|
// src/services/plugins/index.ts
|
|
@@ -24,6 +24,17 @@ var PluginService = class {
|
|
|
24
24
|
entity: CoreEntities.BshPlugins
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
|
+
async installCore(params) {
|
|
28
|
+
return this.client.post({
|
|
29
|
+
path: `${this.baseEndpoint}/install/core`,
|
|
30
|
+
options: {
|
|
31
|
+
responseType: "json"
|
|
32
|
+
},
|
|
33
|
+
bshOptions: { onSuccess: params.onSuccess, onError: params.onError },
|
|
34
|
+
api: "plugins.installZip",
|
|
35
|
+
entity: CoreEntities.BshPlugins
|
|
36
|
+
});
|
|
37
|
+
}
|
|
27
38
|
};
|
|
28
39
|
|
|
29
40
|
// src/services/status/index.ts
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/services/plugins/index.ts","../src/services/status/index.ts","../src/bshengine.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, UploadResponse, UploadOptions, PluginInstalledResponse } from \"@types\";\nimport { BshCallbackParamsWithPayload } from \"@src/services\";\nimport { CoreEntities } from \"@src/types/core\";\n\nexport class PluginService {\n private readonly baseEndpoint = '/api/plugins';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async installZip(\n params: BshCallbackParamsWithPayload<{ file: File }, PluginInstalledResponse>\n ): Promise<BshResponse<PluginInstalledResponse> | undefined> {\n const formData = new FormData();\n formData.set('file', params.payload.file);\n\n return this.client.post<PluginInstalledResponse>({\n path: `${this.baseEndpoint}/install/zip`,\n options: {\n responseType: 'json',\n requestFormat: 'form',\n body: formData,\n },\n bshOptions: { onSuccess: params.onSuccess, onError: params.onError },\n api: 'plugins.installZip',\n entity: CoreEntities.BshPlugins,\n });\n }\n}\n","import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse } from \"@types\";\nimport { BshCallbackParams } from \"@src/services\";\nimport { EngineStatus, HealthCheckData } from \"@src/types\";\n\nexport class StatusService {\n private readonly baseEndpoint = '/api/status';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async load(params?: BshCallbackParams<unknown, EngineStatus>): Promise<BshResponse<EngineStatus> | undefined> {\n return this.client.get<EngineStatus>({\n path: this.baseEndpoint,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: { onSuccess: params?.onSuccess, onError: params?.onError },\n api: 'status.load',\n });\n }\n\n public async health(params?: BshCallbackParams<unknown, HealthCheckData>): Promise<BshResponse<HealthCheckData> | undefined> {\n return this.client.get<HealthCheckData>({\n path: `${this.baseEndpoint}/health`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: { onSuccess: params?.onSuccess, onError: params?.onError },\n api: 'status.health',\n });\n }\n}\n","import { BshAuthFn, BshClient, BshClientFn, BshErrorInterceptor, BshPostInterceptor, BshPreInterceptor, BshRefreshTokenFn, fetchClientFn } from \"@client\";\nimport { ApiKeyService, AuthService, BshUtilsService, CachingService, EntityService, ImageService, MailingService, SettingsService, UserService } from \"@src/services\";\nimport { BshEntities, BshPolicy,BshRole, BshEmailTemplate, BshEventLogs, BshSchemas, BshTypes, BshUser, SentEmail, BshTrigger, BshTriggerInstance, BshFiles, BshConfigurations, BshPlugin } from \"@types\";\nimport { PluginService } from \"./services/plugins\";\nimport { StatusService } from \"./services/status\";\n\nexport class BshEngine {\n private host?: string;\n private clientFn: BshClientFn = fetchClientFn;\n private authFn?: BshAuthFn;\n private refreshTokenFn?: BshRefreshTokenFn;\n\n private postInterceptors: BshPostInterceptor<unknown>[] = [];\n private preInterceptors: BshPreInterceptor<unknown>[] = [];\n private errorInterceptors: BshErrorInterceptor<unknown>[] = [];\n\n constructor(params: {\n host?: string;\n apiKey?: string;\n jwtToken?: string;\n refreshToken?: string;\n clientFn?: BshClientFn;\n authFn?: BshAuthFn;\n refreshTokenFn?: BshRefreshTokenFn;\n postInterceptors?: BshPostInterceptor<unknown>[];\n preInterceptors?: BshPreInterceptor<unknown>[];\n errorInterceptors?: BshErrorInterceptor<unknown>[];\n } = {}) {\n this.host = params.host;\n if (params.apiKey && !params.authFn) this.authFn = async () => ({ type: 'APIKEY', token: params.apiKey! });\n if (params.jwtToken && !params.authFn) this.authFn = async () => ({ type: 'JWT', token: params.jwtToken! });\n if (params.refreshToken) this.refreshTokenFn = async () => params.refreshToken!;\n this.clientFn = params.clientFn || this.clientFn || fetchClientFn;\n this.authFn = params.authFn || this.authFn;\n this.refreshTokenFn = params.refreshTokenFn || this.refreshTokenFn;\n this.postInterceptors = params.postInterceptors || [];\n this.preInterceptors = params.preInterceptors || [];\n this.errorInterceptors = params.errorInterceptors || [];\n }\n\n // Configuration\n public withClient(clientFn: BshClientFn) {\n this.clientFn = clientFn;\n return this;\n }\n\n public withAuth(authFn: BshAuthFn) {\n this.authFn = authFn;\n return this;\n }\n\n public withRefreshToken(refreshTokenFn: BshRefreshTokenFn) {\n this.refreshTokenFn = refreshTokenFn;\n return this;\n }\n\n // Interceptors\n public postInterceptor(interceptor: BshPostInterceptor<unknown>) {\n this.postInterceptors.push(interceptor);\n return this;\n }\n\n public preInterceptor(interceptor: BshPreInterceptor<unknown>) {\n this.preInterceptors.push(interceptor);\n return this;\n }\n\n public errorInterceptor(interceptor: BshErrorInterceptor<unknown>) {\n this.errorInterceptors.push(interceptor);\n return this;\n }\n\n // getters\n public getPostInterceptors() {\n return this.postInterceptors;\n }\n\n public getPreInterceptors() {\n return this.preInterceptors;\n }\n\n public getErrorInterceptors() {\n return this.errorInterceptors;\n }\n\n // Client\n private get client(): BshClient {\n return new BshClient(this.host, this.clientFn, this.authFn, this.refreshTokenFn, this);\n }\n\n // Services\n public get entities() {\n return new EntityService(this.client);\n }\n\n public entity<T>(entity: string) {\n return new EntityService<T>(this.client, entity);\n }\n\n public get core() {\n return {\n BshEntities: this.entity<BshEntities>('BshEntities'),\n BshSchemas: this.entity<BshSchemas>('BshSchemas'),\n BshTypes: this.entity<BshTypes>('BshTypes'),\n BshUsers: this.entity<BshUser>('BshUsers'),\n BshPolicies: this.entity<BshPolicy>('BshPolicies'),\n BshRoles: this.entity<BshRole>('BshRoles'),\n BshFiles: this.entity<BshFiles>('BshFiles'),\n BshConfigurations: this.entity<BshConfigurations>('BshConfigurations'),\n BshEmails: this.entity<SentEmail>('BshEmails'),\n BshEmailTemplates: this.entity<BshEmailTemplate>('BshEmailTemplates'),\n BshEventLogs: this.entity<BshEventLogs>('BshEventLogs'),\n BshTriggers: this.entity<BshTrigger>('BshTriggers'),\n BshTriggerInstances: this.entity<BshTriggerInstance>('BshTriggerInstances'),\n BshPlugins: this.entity<BshPlugin>('BshPlugins'),\n }\n }\n\n public get auth() {\n return new AuthService(this.client);\n }\n\n public get users() {\n return new UserService(this.client);\n }\n\n public get settings() {\n return new SettingsService(this.client);\n }\n\n public get image() {\n return new ImageService(this.client);\n }\n\n public get mailing() {\n return new MailingService(this.client);\n }\n\n public get utils() {\n return new BshUtilsService(this.client);\n }\n\n public get caching() {\n return new CachingService(this.client);\n }\n\n public get apiKey() {\n return new ApiKeyService(this.client);\n }\n\n public get plugins() {\n return new PluginService(this.client);\n }\n\n public get status() {\n return new StatusService(this.client);\n }\n}\n","export { type BshClientFn, type BshAuthFn } from './client'\nexport { type BshResponse } from './types'\nexport { BshEngine } from './bshengine';\nexport const version = '0.0.1' as const;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/services/plugins/index.ts","../src/services/status/index.ts","../src/bshengine.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse, PluginInstalledResponse } from \"@types\";\nimport { BshCallbackParams, BshCallbackParamsWithPayload } from \"@src/services\";\nimport { CoreEntities } from \"@src/types/core\";\n\nexport class PluginService {\n private readonly baseEndpoint = '/api/plugins';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async installZip(\n params: BshCallbackParamsWithPayload<{ file: File }, PluginInstalledResponse>\n ): Promise<BshResponse<PluginInstalledResponse> | undefined> {\n const formData = new FormData();\n formData.set('file', params.payload.file);\n\n return this.client.post<PluginInstalledResponse>({\n path: `${this.baseEndpoint}/install/zip`,\n options: {\n responseType: 'json',\n requestFormat: 'form',\n body: formData,\n },\n bshOptions: { onSuccess: params.onSuccess, onError: params.onError },\n api: 'plugins.installZip',\n entity: CoreEntities.BshPlugins,\n });\n }\n\n public async installCore(\n params: BshCallbackParams<PluginInstalledResponse>\n ): Promise<BshResponse<PluginInstalledResponse> | undefined> {\n return this.client.post<PluginInstalledResponse>({\n path: `${this.baseEndpoint}/install/core`,\n options: {\n responseType: 'json'\n },\n bshOptions: { onSuccess: params.onSuccess, onError: params.onError },\n api: 'plugins.installZip',\n entity: CoreEntities.BshPlugins,\n });\n }\n}\n","import { BshClient } from \"@src/client/bsh-client\";\nimport { BshResponse } from \"@types\";\nimport { BshCallbackParams } from \"@src/services\";\nimport { EngineStatus, HealthCheckData } from \"@src/types\";\n\nexport class StatusService {\n private readonly baseEndpoint = '/api/status';\n\n public constructor(private readonly client: BshClient) {\n }\n\n public async load(params?: BshCallbackParams<unknown, EngineStatus>): Promise<BshResponse<EngineStatus> | undefined> {\n return this.client.get<EngineStatus>({\n path: this.baseEndpoint,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: { onSuccess: params?.onSuccess, onError: params?.onError },\n api: 'status.load',\n });\n }\n\n public async health(params?: BshCallbackParams<unknown, HealthCheckData>): Promise<BshResponse<HealthCheckData> | undefined> {\n return this.client.get<HealthCheckData>({\n path: `${this.baseEndpoint}/health`,\n options: {\n responseType: 'json',\n requestFormat: 'json',\n },\n bshOptions: { onSuccess: params?.onSuccess, onError: params?.onError },\n api: 'status.health',\n });\n }\n}\n","import { BshAuthFn, BshClient, BshClientFn, BshErrorInterceptor, BshPostInterceptor, BshPreInterceptor, BshRefreshTokenFn, fetchClientFn } from \"@client\";\nimport { ApiKeyService, AuthService, BshUtilsService, CachingService, EntityService, ImageService, MailingService, SettingsService, UserService } from \"@src/services\";\nimport { BshEntities, BshPolicy,BshRole, BshEmailTemplate, BshEventLogs, BshSchemas, BshTypes, BshUser, SentEmail, BshTrigger, BshTriggerInstance, BshFiles, BshConfigurations, BshPlugin } from \"@types\";\nimport { PluginService } from \"./services/plugins\";\nimport { StatusService } from \"./services/status\";\n\nexport class BshEngine {\n private host?: string;\n private clientFn: BshClientFn = fetchClientFn;\n private authFn?: BshAuthFn;\n private refreshTokenFn?: BshRefreshTokenFn;\n\n private postInterceptors: BshPostInterceptor<unknown>[] = [];\n private preInterceptors: BshPreInterceptor<unknown>[] = [];\n private errorInterceptors: BshErrorInterceptor<unknown>[] = [];\n\n constructor(params: {\n host?: string;\n apiKey?: string;\n jwtToken?: string;\n refreshToken?: string;\n clientFn?: BshClientFn;\n authFn?: BshAuthFn;\n refreshTokenFn?: BshRefreshTokenFn;\n postInterceptors?: BshPostInterceptor<unknown>[];\n preInterceptors?: BshPreInterceptor<unknown>[];\n errorInterceptors?: BshErrorInterceptor<unknown>[];\n } = {}) {\n this.host = params.host;\n if (params.apiKey && !params.authFn) this.authFn = async () => ({ type: 'APIKEY', token: params.apiKey! });\n if (params.jwtToken && !params.authFn) this.authFn = async () => ({ type: 'JWT', token: params.jwtToken! });\n if (params.refreshToken) this.refreshTokenFn = async () => params.refreshToken!;\n this.clientFn = params.clientFn || this.clientFn || fetchClientFn;\n this.authFn = params.authFn || this.authFn;\n this.refreshTokenFn = params.refreshTokenFn || this.refreshTokenFn;\n this.postInterceptors = params.postInterceptors || [];\n this.preInterceptors = params.preInterceptors || [];\n this.errorInterceptors = params.errorInterceptors || [];\n }\n\n // Configuration\n public withClient(clientFn: BshClientFn) {\n this.clientFn = clientFn;\n return this;\n }\n\n public withAuth(authFn: BshAuthFn) {\n this.authFn = authFn;\n return this;\n }\n\n public withRefreshToken(refreshTokenFn: BshRefreshTokenFn) {\n this.refreshTokenFn = refreshTokenFn;\n return this;\n }\n\n // Interceptors\n public postInterceptor(interceptor: BshPostInterceptor<unknown>) {\n this.postInterceptors.push(interceptor);\n return this;\n }\n\n public preInterceptor(interceptor: BshPreInterceptor<unknown>) {\n this.preInterceptors.push(interceptor);\n return this;\n }\n\n public errorInterceptor(interceptor: BshErrorInterceptor<unknown>) {\n this.errorInterceptors.push(interceptor);\n return this;\n }\n\n // getters\n public getPostInterceptors() {\n return this.postInterceptors;\n }\n\n public getPreInterceptors() {\n return this.preInterceptors;\n }\n\n public getErrorInterceptors() {\n return this.errorInterceptors;\n }\n\n // Client\n private get client(): BshClient {\n return new BshClient(this.host, this.clientFn, this.authFn, this.refreshTokenFn, this);\n }\n\n // Services\n public get entities() {\n return new EntityService(this.client);\n }\n\n public entity<T>(entity: string) {\n return new EntityService<T>(this.client, entity);\n }\n\n public get core() {\n return {\n BshEntities: this.entity<BshEntities>('BshEntities'),\n BshSchemas: this.entity<BshSchemas>('BshSchemas'),\n BshTypes: this.entity<BshTypes>('BshTypes'),\n BshUsers: this.entity<BshUser>('BshUsers'),\n BshPolicies: this.entity<BshPolicy>('BshPolicies'),\n BshRoles: this.entity<BshRole>('BshRoles'),\n BshFiles: this.entity<BshFiles>('BshFiles'),\n BshConfigurations: this.entity<BshConfigurations>('BshConfigurations'),\n BshEmails: this.entity<SentEmail>('BshEmails'),\n BshEmailTemplates: this.entity<BshEmailTemplate>('BshEmailTemplates'),\n BshEventLogs: this.entity<BshEventLogs>('BshEventLogs'),\n BshTriggers: this.entity<BshTrigger>('BshTriggers'),\n BshTriggerInstances: this.entity<BshTriggerInstance>('BshTriggerInstances'),\n BshPlugins: this.entity<BshPlugin>('BshPlugins'),\n }\n }\n\n public get auth() {\n return new AuthService(this.client);\n }\n\n public get users() {\n return new UserService(this.client);\n }\n\n public get settings() {\n return new SettingsService(this.client);\n }\n\n public get image() {\n return new ImageService(this.client);\n }\n\n public get mailing() {\n return new MailingService(this.client);\n }\n\n public get utils() {\n return new BshUtilsService(this.client);\n }\n\n public get caching() {\n return new CachingService(this.client);\n }\n\n public get apiKey() {\n return new ApiKeyService(this.client);\n }\n\n public get plugins() {\n return new PluginService(this.client);\n }\n\n public get status() {\n return new StatusService(this.client);\n }\n}\n","export { type BshClientFn, type BshAuthFn } from './client'\nexport { type BshResponse } from './types'\nexport { BshEngine } from './bshengine';\nexport const version = '0.0.1' as const;\n"]}
|
package/dist/services/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import '../types/index.js';
|
|
2
|
-
export {
|
|
2
|
+
export { q as AdminUserService, t as ApiKeyService, p as AuthService, j as BshCallbackParams, k as BshCallbackParamsWithPayload, l as BshSearchCallbackParams, r as BshUtilsService, C as CacheRemoveResponse, s as CachingService, E as EntityFnParams, m as EntityFnParamsWithPayload, n as EntitySearchFnParams, o as EntityService, I as ImageService, M as MailingService, S as SettingsService, U as UserService } from '../types-IoTgkIXE.js';
|
package/dist/services/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { ApiKeyService, AuthService, BshUtilsService, CachingService, EntityService, ImageService, MailingService, SettingsService, UserService } from '../chunk-
|
|
1
|
+
export { AdminUserService, ApiKeyService, AuthService, BshUtilsService, CachingService, EntityService, ImageService, MailingService, SettingsService, UserService } from '../chunk-PUOW7V6Z.js';
|
|
2
2
|
import '../chunk-CAQ6G7NK.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/dist/types/index.d.ts
CHANGED
|
@@ -203,6 +203,7 @@ type BshUserPure = BshObjectPure<BshUser>;
|
|
|
203
203
|
type BshRole = {
|
|
204
204
|
name: string;
|
|
205
205
|
public?: boolean;
|
|
206
|
+
admin?: boolean;
|
|
206
207
|
description?: string;
|
|
207
208
|
bshPlugin?: string;
|
|
208
209
|
} & BshObject;
|
|
@@ -279,6 +280,9 @@ type BshTriggerEvent = {
|
|
|
279
280
|
output?: object;
|
|
280
281
|
failed?: object;
|
|
281
282
|
enabled: boolean;
|
|
283
|
+
infiniteLoop?: {
|
|
284
|
+
maxDeep: number;
|
|
285
|
+
};
|
|
282
286
|
} & BshObject;
|
|
283
287
|
type BshTriggerEventPure = BshObjectPure<BshTriggerEvent>;
|
|
284
288
|
type BshTriggerInstance = {
|
|
@@ -289,15 +293,17 @@ type BshTriggerInstance = {
|
|
|
289
293
|
};
|
|
290
294
|
event: {
|
|
291
295
|
name: string;
|
|
292
|
-
|
|
296
|
+
function: string;
|
|
297
|
+
entity: string;
|
|
293
298
|
};
|
|
294
299
|
payload: object;
|
|
295
300
|
output: object;
|
|
296
301
|
input: object;
|
|
297
|
-
status: 'InProgress' | 'Success' | 'Failed';
|
|
302
|
+
status: 'InProgress' | 'Success' | 'Failed' | 'InfiniteLoop' | 'Interrupted';
|
|
298
303
|
error?: string;
|
|
299
304
|
trac?: string;
|
|
300
305
|
entityUpdateError?: object;
|
|
306
|
+
infiniteLoopCause?: string;
|
|
301
307
|
} & BshObject;
|
|
302
308
|
type BshTriggerFunction = {
|
|
303
309
|
name: string;
|
package/dist/types/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { BshEntityPermissions, BshEntityTypes, BshError, BshInsertDuplicates, BshPKStrategies, BshPKTypes, BshUpdateStrategies, PolicyActions, PrincipalType, defaultSettings, formatFileSize, isOk } from '../chunk-
|
|
1
|
+
export { BshEntityPermissions, BshEntityTypes, BshError, BshInsertDuplicates, BshPKStrategies, BshPKTypes, BshUpdateStrategies, PolicyActions, PrincipalType, defaultSettings, formatFileSize, isOk } from '../chunk-ZY43Z77S.js';
|
|
2
2
|
export { CoreEntities, PluginBasedEntities } from '../chunk-CAQ6G7NK.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -7,6 +7,7 @@ declare class PluginService {
|
|
|
7
7
|
installZip(params: BshCallbackParamsWithPayload<{
|
|
8
8
|
file: File;
|
|
9
9
|
}, PluginInstalledResponse>): Promise<BshResponse<PluginInstalledResponse> | undefined>;
|
|
10
|
+
installCore(params: BshCallbackParams<PluginInstalledResponse>): Promise<BshResponse<PluginInstalledResponse> | undefined>;
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
declare class StatusService {
|
|
@@ -174,6 +175,20 @@ declare class AuthService {
|
|
|
174
175
|
}, unknown>): Promise<BshResponse<unknown> | undefined>;
|
|
175
176
|
}
|
|
176
177
|
|
|
178
|
+
declare class AdminUserService {
|
|
179
|
+
private readonly client;
|
|
180
|
+
private readonly baseEndpoint;
|
|
181
|
+
constructor(client: BshClient);
|
|
182
|
+
resetPassword<T = BshUser>(params: BshCallbackParams<Partial<BshUser>, T> & {
|
|
183
|
+
email: string;
|
|
184
|
+
}): Promise<BshResponse<T> | undefined>;
|
|
185
|
+
activateAccount<T = BshUser>(params: BshCallbackParams<Partial<BshUser>, T> & {
|
|
186
|
+
email: string;
|
|
187
|
+
}): Promise<BshResponse<T> | undefined>;
|
|
188
|
+
resendActivationCode<T = BshUser>(params: BshCallbackParams<Partial<BshUser>, T> & {
|
|
189
|
+
email: string;
|
|
190
|
+
}): Promise<BshResponse<T> | undefined>;
|
|
191
|
+
}
|
|
177
192
|
declare class UserService {
|
|
178
193
|
private readonly client;
|
|
179
194
|
private readonly baseEndpoint;
|
|
@@ -200,6 +215,7 @@ declare class UserService {
|
|
|
200
215
|
}>): Promise<BshResponse<{
|
|
201
216
|
message: string;
|
|
202
217
|
}> | undefined>;
|
|
218
|
+
get admin(): AdminUserService;
|
|
203
219
|
getById<T = BshUser>(params: BshCallbackParams<unknown, T> & {
|
|
204
220
|
id: string;
|
|
205
221
|
}): Promise<BshResponse<T> | undefined>;
|
|
@@ -364,4 +380,4 @@ type BshPostInterceptor<T = any> = (response: BshResponse<T>, params?: BshClient
|
|
|
364
380
|
type BshPreInterceptor<T = any, R = T> = (params: BshClientFnParams<T, R>) => Promise<BshClientFnParams<T, R>>;
|
|
365
381
|
type BshErrorInterceptor<T = any> = (error: BshError, response?: BshResponse<T>, params?: BshClientFnParams<T>) => Promise<BshError | undefined>;
|
|
366
382
|
|
|
367
|
-
export { type AuthToken as A, type BshClientFn as B, type CacheRemoveResponse as C, type EntityFnParams as E, ImageService as I, MailingService as M, SettingsService as S, UserService as U, type BshAuthFn as a, BshEngine as b, type BshClientFnParams as c, defaultClientFn as d, type BshRefreshTokenFn as e, type BshPostInterceptor as f, type BshPreInterceptor as g, type BshErrorInterceptor as h, BshClient as i, type BshCallbackParams as j, type BshCallbackParamsWithPayload as k, type BshSearchCallbackParams as l, type EntityFnParamsWithPayload as m, type EntitySearchFnParams as n, EntityService as o, AuthService as p,
|
|
383
|
+
export { type AuthToken as A, type BshClientFn as B, type CacheRemoveResponse as C, type EntityFnParams as E, ImageService as I, MailingService as M, SettingsService as S, UserService as U, type BshAuthFn as a, BshEngine as b, type BshClientFnParams as c, defaultClientFn as d, type BshRefreshTokenFn as e, type BshPostInterceptor as f, type BshPreInterceptor as g, type BshErrorInterceptor as h, BshClient as i, type BshCallbackParams as j, type BshCallbackParamsWithPayload as k, type BshSearchCallbackParams as l, type EntityFnParamsWithPayload as m, type EntitySearchFnParams as n, EntityService as o, AuthService as p, AdminUserService as q, BshUtilsService as r, CachingService as s, ApiKeyService as t };
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/services/entities/index.ts","../src/services/auth/index.ts","../src/services/user/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-FOWAW7J6.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: { onSuccess: params.onSuccess, onError: params.onError },\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>(\n params: EntityFnParamsWithPayload<TT>\n ): Promise<BshResponse<TT> | undefined> {\n return this.client.post<TT>({\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: { onSuccess: params.onSuccess, onError: params.onError },\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>(\n params: EntityFnParamsWithPayload<TT[], TT>\n ): Promise<BshResponse<TT> | undefined> {\n return this.client.post<TT>({\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: { onSuccess: params.onSuccess, onError: params.onError },\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>(\n params: EntityFnParamsWithPayload<TT>\n ): Promise<BshResponse<TT> | undefined> {\n return this.client.put<TT>({\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: { onSuccess: params.onSuccess, onError: params.onError },\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>(\n params: EntityFnParamsWithPayload<TT[], TT>\n ): Promise<BshResponse<TT> | undefined> {\n return this.client.put<TT>({\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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 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: { onSuccess: params.onSuccess, onError: params.onError },\n api: 'user.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: { onSuccess: params.onSuccess, onError: params.onError },\n api: 'user.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: { onSuccess: params.onSuccess, onError: params.onError },\n api: 'user.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: { onSuccess: params.onSuccess, onError: params.onError },\n api: 'user.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: { onSuccess: params.onSuccess, onError: params.onError },\n api: 'user.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: { onSuccess: params.onSuccess, onError: params.onError },\n api: 'user.updatePassword',\n entity: CoreEntities.BshUsers,\n });\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: { onSuccess: params.onSuccess, onError: params.onError },\n api: 'user.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: { onSuccess: params.onSuccess, onError: params.onError },\n api: 'user.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: { onSuccess: params.onSuccess, onError: params.onError },\n api: 'user.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: { onSuccess: params.onSuccess, onError: params.onError },\n api: 'user.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: { onSuccess: params.onSuccess, onError: params.onError },\n api: 'user.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: { onSuccess: params.onSuccess, onError: params.onError },\n api: 'user.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: { onSuccess: params.onSuccess, onError: params.onError },\n api: 'user.countFiltered',\n entity: CoreEntities.BshUsers,\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.revoke',\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\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: { onSuccess: params.onSuccess, onError: params.onError },\n entity: CoreEntities.BshApiKeys,\n api: 'api-key.countFiltered',\n });\n }\n}\n\n"]}
|