@bshsolutions/sdk 0.0.20 → 0.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-CTUE55AU.js → chunk-QR3VEFJY.js} +7 -7
- package/dist/{chunk-CTUE55AU.js.map → chunk-QR3VEFJY.js.map} +1 -1
- package/dist/{chunk-6BZWTPPD.js → chunk-R6S4VI7X.js} +2 -2
- package/dist/chunk-R6S4VI7X.js.map +1 -0
- 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 +35 -2
- package/dist/index.js.map +1 -1
- package/dist/services/index.d.ts +1 -1
- package/dist/types/index.d.ts +106 -1
- package/dist/types/index.js +1 -1
- package/dist/{types-BQeAVmT5.d.ts → types-DM-I9vO2.d.ts} +10 -1
- package/package.json +1 -1
- package/dist/chunk-6BZWTPPD.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BshError } from './chunk-
|
|
1
|
+
import { BshError } from './chunk-R6S4VI7X.js';
|
|
2
2
|
|
|
3
3
|
// src/client/types.ts
|
|
4
4
|
var defaultClientFn = async (params) => {
|
|
@@ -49,10 +49,6 @@ var BshClient = class {
|
|
|
49
49
|
}
|
|
50
50
|
if (type === "json") {
|
|
51
51
|
const data = await response.json();
|
|
52
|
-
if (params.bshOptions.onSuccess) {
|
|
53
|
-
params.bshOptions.onSuccess(data);
|
|
54
|
-
return void 0;
|
|
55
|
-
}
|
|
56
52
|
let result = data;
|
|
57
53
|
result.api = params.api;
|
|
58
54
|
if (this.bshEngine?.getPostInterceptors().length) {
|
|
@@ -61,6 +57,10 @@ var BshClient = class {
|
|
|
61
57
|
if (newResult) result = newResult;
|
|
62
58
|
}
|
|
63
59
|
}
|
|
60
|
+
if (params.bshOptions.onSuccess) {
|
|
61
|
+
params.bshOptions.onSuccess(data);
|
|
62
|
+
return void 0;
|
|
63
|
+
}
|
|
64
64
|
return result;
|
|
65
65
|
} else if (type === "blob") {
|
|
66
66
|
const blob = await response.blob();
|
|
@@ -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-QR3VEFJY.js.map
|
|
248
|
+
//# sourceMappingURL=chunk-QR3VEFJY.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-CTUE55AU.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 if (params.bshOptions.onSuccess) {\n params.bshOptions.onSuccess(data);\n return undefined;\n }\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 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-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"]}
|
|
@@ -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-R6S4VI7X.js.map
|
|
55
|
+
//# sourceMappingURL=chunk-R6S4VI7X.js.map
|
|
@@ -0,0 +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;;;ACqBjE,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;;;ACnCzE,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-R6S4VI7X.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 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-DM-I9vO2.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-DM-I9vO2.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-QR3VEFJY.js';
|
|
2
|
+
import '../chunk-R6S4VI7X.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-
|
|
1
|
+
import { fetchClientFn, BshClient } from './chunk-QR3VEFJY.js';
|
|
2
2
|
import { EntityService, AuthService, UserService, SettingsService, ImageService, MailingService, BshUtilsService, CachingService, ApiKeyService } from './chunk-FOWAW7J6.js';
|
|
3
|
-
import './chunk-
|
|
3
|
+
import './chunk-R6S4VI7X.js';
|
|
4
4
|
import { CoreEntities } from './chunk-CAQ6G7NK.js';
|
|
5
5
|
|
|
6
6
|
// src/services/plugins/index.ts
|
|
@@ -26,6 +26,36 @@ var PluginService = class {
|
|
|
26
26
|
}
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
+
// src/services/status/index.ts
|
|
30
|
+
var StatusService = class {
|
|
31
|
+
constructor(client) {
|
|
32
|
+
this.client = client;
|
|
33
|
+
this.baseEndpoint = "/api/status";
|
|
34
|
+
}
|
|
35
|
+
async load(params) {
|
|
36
|
+
return this.client.get({
|
|
37
|
+
path: this.baseEndpoint,
|
|
38
|
+
options: {
|
|
39
|
+
responseType: "json",
|
|
40
|
+
requestFormat: "json"
|
|
41
|
+
},
|
|
42
|
+
bshOptions: { onSuccess: params?.onSuccess, onError: params?.onError },
|
|
43
|
+
api: "status.load"
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
async health(params) {
|
|
47
|
+
return this.client.get({
|
|
48
|
+
path: `${this.baseEndpoint}/health`,
|
|
49
|
+
options: {
|
|
50
|
+
responseType: "json",
|
|
51
|
+
requestFormat: "json"
|
|
52
|
+
},
|
|
53
|
+
bshOptions: { onSuccess: params?.onSuccess, onError: params?.onError },
|
|
54
|
+
api: "status.health"
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
|
|
29
59
|
// src/bshengine.ts
|
|
30
60
|
var BshEngine = class {
|
|
31
61
|
constructor(params = {}) {
|
|
@@ -136,6 +166,9 @@ var BshEngine = class {
|
|
|
136
166
|
get plugins() {
|
|
137
167
|
return new PluginService(this.client);
|
|
138
168
|
}
|
|
169
|
+
get status() {
|
|
170
|
+
return new StatusService(this.client);
|
|
171
|
+
}
|
|
139
172
|
};
|
|
140
173
|
|
|
141
174
|
// src/index.ts
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/services/plugins/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 { 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\";\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}","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, 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"]}
|
package/dist/services/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import '../types/index.js';
|
|
2
|
-
export { s as ApiKeyService, p as AuthService, j as BshCallbackParams, k as BshCallbackParamsWithPayload, l as BshSearchCallbackParams, q as BshUtilsService, C as CacheRemoveResponse, r 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-
|
|
2
|
+
export { s as ApiKeyService, p as AuthService, j as BshCallbackParams, k as BshCallbackParamsWithPayload, l as BshSearchCallbackParams, q as BshUtilsService, C as CacheRemoveResponse, r 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-DM-I9vO2.js';
|
package/dist/types/index.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ type BshResponse<T> = {
|
|
|
35
35
|
timestamp: number;
|
|
36
36
|
code: number;
|
|
37
37
|
status: string;
|
|
38
|
+
message?: string;
|
|
38
39
|
error?: string;
|
|
39
40
|
meta?: {
|
|
40
41
|
type?: string;
|
|
@@ -492,6 +493,110 @@ type SecretSource = {
|
|
|
492
493
|
secrets?: Record<string, any>;
|
|
493
494
|
};
|
|
494
495
|
|
|
496
|
+
type ServiceStatusType = 'OK' | 'WARNING' | 'ERROR';
|
|
497
|
+
type EngineStatusType = 'HEALTHY' | 'DEGRADED' | 'UNHEALTHY';
|
|
498
|
+
type ServiceStatus = {
|
|
499
|
+
name: string;
|
|
500
|
+
status: ServiceStatusType;
|
|
501
|
+
message: string;
|
|
502
|
+
details?: Record<string, unknown>;
|
|
503
|
+
};
|
|
504
|
+
interface ConfigurationDetails {
|
|
505
|
+
datasource: 'configured' | 'missing';
|
|
506
|
+
'datasource.url'?: 'configured' | 'missing';
|
|
507
|
+
'datasource.user'?: 'configured' | 'missing';
|
|
508
|
+
'datasource.password'?: 'configured' | 'missing';
|
|
509
|
+
admin: 'configured' | 'missing';
|
|
510
|
+
'admin.email'?: 'missing';
|
|
511
|
+
env: string;
|
|
512
|
+
host: string;
|
|
513
|
+
}
|
|
514
|
+
interface DatabaseDetails {
|
|
515
|
+
'pool.name': string;
|
|
516
|
+
'pool.active': number;
|
|
517
|
+
'pool.idle': number;
|
|
518
|
+
'pool.total': number;
|
|
519
|
+
'pool.waiting': number;
|
|
520
|
+
'pool.maximumSize': number;
|
|
521
|
+
error?: string;
|
|
522
|
+
}
|
|
523
|
+
interface SecretsDetails {
|
|
524
|
+
'jwt.secret': string;
|
|
525
|
+
mailing: string;
|
|
526
|
+
cloudinary: string;
|
|
527
|
+
secrets?: string;
|
|
528
|
+
}
|
|
529
|
+
interface ProviderDetails {
|
|
530
|
+
status?: string;
|
|
531
|
+
provider?: string;
|
|
532
|
+
config?: 'present' | 'missing';
|
|
533
|
+
}
|
|
534
|
+
interface AdminDetails {
|
|
535
|
+
email?: string;
|
|
536
|
+
status?: string;
|
|
537
|
+
configuredEmail?: string;
|
|
538
|
+
exists?: boolean;
|
|
539
|
+
config?: string;
|
|
540
|
+
adminUsers?: number;
|
|
541
|
+
error?: string;
|
|
542
|
+
}
|
|
543
|
+
interface CorePluginDetails {
|
|
544
|
+
status?: string;
|
|
545
|
+
version?: string;
|
|
546
|
+
installedAt?: BshDate;
|
|
547
|
+
InstallationMode?: string;
|
|
548
|
+
}
|
|
549
|
+
interface CachesDetails {
|
|
550
|
+
totalCaches: number;
|
|
551
|
+
totalEntries: number;
|
|
552
|
+
cacheNames: string[];
|
|
553
|
+
}
|
|
554
|
+
type ConfigurationServiceStatus = ServiceStatus & {
|
|
555
|
+
name: 'configuration';
|
|
556
|
+
details?: ConfigurationDetails;
|
|
557
|
+
};
|
|
558
|
+
type DatabaseServiceStatus = ServiceStatus & {
|
|
559
|
+
name: 'database';
|
|
560
|
+
details?: DatabaseDetails;
|
|
561
|
+
};
|
|
562
|
+
type SecretsServiceStatus = ServiceStatus & {
|
|
563
|
+
name: 'secrets';
|
|
564
|
+
details?: SecretsDetails;
|
|
565
|
+
};
|
|
566
|
+
type MailingServiceStatus = ServiceStatus & {
|
|
567
|
+
name: 'mailing';
|
|
568
|
+
details?: ProviderDetails;
|
|
569
|
+
};
|
|
570
|
+
type StorageServiceStatus = ServiceStatus & {
|
|
571
|
+
name: 'storage';
|
|
572
|
+
details?: ProviderDetails;
|
|
573
|
+
};
|
|
574
|
+
type AdminServiceStatus = ServiceStatus & {
|
|
575
|
+
name: 'admin';
|
|
576
|
+
details?: AdminDetails;
|
|
577
|
+
};
|
|
578
|
+
type CorePluginServiceStatus = ServiceStatus & {
|
|
579
|
+
name: 'corePlugin';
|
|
580
|
+
details?: CorePluginDetails;
|
|
581
|
+
};
|
|
582
|
+
type CachesServiceStatus = ServiceStatus & {
|
|
583
|
+
name: 'caches';
|
|
584
|
+
details?: CachesDetails;
|
|
585
|
+
};
|
|
586
|
+
type AllServiceStatuses = ConfigurationServiceStatus | DatabaseServiceStatus | SecretsServiceStatus | MailingServiceStatus | StorageServiceStatus | AdminServiceStatus | CorePluginServiceStatus | CachesServiceStatus;
|
|
587
|
+
interface EngineStatus {
|
|
588
|
+
status: EngineStatusType;
|
|
589
|
+
version: string;
|
|
590
|
+
environment: string;
|
|
591
|
+
timestamp: BshDate;
|
|
592
|
+
services: AllServiceStatuses[];
|
|
593
|
+
}
|
|
594
|
+
interface HealthCheckData {
|
|
595
|
+
status: EngineStatusType;
|
|
596
|
+
version: string;
|
|
597
|
+
timestamp: BshDate;
|
|
598
|
+
}
|
|
599
|
+
|
|
495
600
|
type LoginParams = {
|
|
496
601
|
email: string;
|
|
497
602
|
password: string;
|
|
@@ -501,4 +606,4 @@ type AuthTokens = {
|
|
|
501
606
|
refresh: string;
|
|
502
607
|
};
|
|
503
608
|
|
|
504
|
-
export { type Aggregate, type AggregateFunction, type AuthTokens, type BshApiKeys, type BshApiKeysForm, type BshApiKeysScopes, type BshConfigurations, type BshDate, type BshEmailTemplate, type BshEmailTemplatePure, type BshEntities, type BshEntitiesPure, BshEntityPermissions, BshEntityTypes, BshError, type BshEventLogs, type BshFiles, BshInsertDuplicates, type BshObject, type BshObjectPure, BshPKStrategies, BshPKTypes, type BshPlugin, type BshPluginHistory, type BshPluginPure, type BshPolicy, type BshPolicyPure, type BshResponse, type BshRole, type BshRolePure, type BshSchemaProperty, type BshSchemas, type BshSchemasPure, type BshSearch, type BshSettings, type BshTrigger, type BshTriggerAction, type BshTriggerEvent, type BshTriggerEventPure, type BshTriggerFunction, type BshTriggerInstance, type BshTriggerPure, type BshTypes, type BshTypesPure, BshUpdateStrategies, type BshUser, type BshUserInit, type BshUserPure, type CacheInfo, type CloudinaryConfig, type ComparisonOperator, CoreEntities, type EmailConfiguration, type EmailProvider, type Filter, type GmailConfig, type GroupBy, type LogicalOperator, type LoginParams, type MailDevConfig, type MailingPayload, type Pagination, PluginBasedEntities, type PluginInstalledResponse, PolicyActions, PrincipalType, type SecretSource, type SentEmail, type Sort, type StorageConfiguration, type StorageProvider, type UploadOptions, type UploadResponse, defaultSettings, formatFileSize, isOk };
|
|
609
|
+
export { type AdminDetails, type AdminServiceStatus, type Aggregate, type AggregateFunction, type AllServiceStatuses, type AuthTokens, type BshApiKeys, type BshApiKeysForm, type BshApiKeysScopes, type BshConfigurations, type BshDate, type BshEmailTemplate, type BshEmailTemplatePure, type BshEntities, type BshEntitiesPure, BshEntityPermissions, BshEntityTypes, BshError, type BshEventLogs, type BshFiles, BshInsertDuplicates, type BshObject, type BshObjectPure, BshPKStrategies, BshPKTypes, type BshPlugin, type BshPluginHistory, type BshPluginPure, type BshPolicy, type BshPolicyPure, type BshResponse, type BshRole, type BshRolePure, type BshSchemaProperty, type BshSchemas, type BshSchemasPure, type BshSearch, type BshSettings, type BshTrigger, type BshTriggerAction, type BshTriggerEvent, type BshTriggerEventPure, type BshTriggerFunction, type BshTriggerInstance, type BshTriggerPure, type BshTypes, type BshTypesPure, BshUpdateStrategies, type BshUser, type BshUserInit, type BshUserPure, type CacheInfo, type CachesDetails, type CachesServiceStatus, type CloudinaryConfig, type ComparisonOperator, type ConfigurationDetails, type ConfigurationServiceStatus, CoreEntities, type CorePluginDetails, type CorePluginServiceStatus, type DatabaseDetails, type DatabaseServiceStatus, type EmailConfiguration, type EmailProvider, type EngineStatus, type EngineStatusType, type Filter, type GmailConfig, type GroupBy, type HealthCheckData, type LogicalOperator, type LoginParams, type MailDevConfig, type MailingPayload, type MailingServiceStatus, type Pagination, PluginBasedEntities, type PluginInstalledResponse, PolicyActions, PrincipalType, type ProviderDetails, type SecretSource, type SecretsDetails, type SecretsServiceStatus, type SentEmail, type ServiceStatus, type ServiceStatusType, type Sort, type StorageConfiguration, type StorageProvider, type StorageServiceStatus, type UploadOptions, type UploadResponse, defaultSettings, formatFileSize, isOk };
|
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-R6S4VI7X.js';
|
|
2
2
|
export { CoreEntities, PluginBasedEntities } from '../chunk-CAQ6G7NK.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PluginInstalledResponse, BshResponse, BshEntities, BshSchemas, BshTypes, BshUser, BshPolicy, BshRole, BshFiles, BshConfigurations, SentEmail, BshEmailTemplate, BshEventLogs, BshTrigger, BshTriggerInstance, BshPlugin, BshSearch, LoginParams, AuthTokens, BshUserInit, BshSettings, UploadOptions, UploadResponse, MailingPayload, BshTriggerFunction, BshTriggerAction, SecretSource, CacheInfo, BshApiKeysForm, BshApiKeys, BshError } from './types/index.js';
|
|
1
|
+
import { PluginInstalledResponse, BshResponse, EngineStatus, HealthCheckData, BshEntities, BshSchemas, BshTypes, BshUser, BshPolicy, BshRole, BshFiles, BshConfigurations, SentEmail, BshEmailTemplate, BshEventLogs, BshTrigger, BshTriggerInstance, BshPlugin, BshSearch, LoginParams, AuthTokens, BshUserInit, BshSettings, UploadOptions, UploadResponse, MailingPayload, BshTriggerFunction, BshTriggerAction, SecretSource, CacheInfo, BshApiKeysForm, BshApiKeys, BshError } from './types/index.js';
|
|
2
2
|
|
|
3
3
|
declare class PluginService {
|
|
4
4
|
private readonly client;
|
|
@@ -9,6 +9,14 @@ declare class PluginService {
|
|
|
9
9
|
}, PluginInstalledResponse>): Promise<BshResponse<PluginInstalledResponse> | undefined>;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
+
declare class StatusService {
|
|
13
|
+
private readonly client;
|
|
14
|
+
private readonly baseEndpoint;
|
|
15
|
+
constructor(client: BshClient);
|
|
16
|
+
load(params?: BshCallbackParams<unknown, EngineStatus>): Promise<BshResponse<EngineStatus> | undefined>;
|
|
17
|
+
health(params?: BshCallbackParams<unknown, HealthCheckData>): Promise<BshResponse<HealthCheckData> | undefined>;
|
|
18
|
+
}
|
|
19
|
+
|
|
12
20
|
declare class BshEngine {
|
|
13
21
|
private host?;
|
|
14
22
|
private clientFn;
|
|
@@ -66,6 +74,7 @@ declare class BshEngine {
|
|
|
66
74
|
get caching(): CachingService;
|
|
67
75
|
get apiKey(): ApiKeyService;
|
|
68
76
|
get plugins(): PluginService;
|
|
77
|
+
get status(): StatusService;
|
|
69
78
|
}
|
|
70
79
|
|
|
71
80
|
declare class BshClient {
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
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":";AAwBO,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;;;ACPO,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;;;ACqBjE,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;;;ACnCzE,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-6BZWTPPD.js","sourcesContent":["export type BshResponse<T> = {\n data: T[]\n timestamp: number\n code: number\n status: 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 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"]}
|