librechat-data-provider 0.2.1 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.es.js +45 -46
- package/dist/index.js +45 -46
- package/package.json +2 -2
- package/src/api-endpoints.ts +1 -1
- package/src/data-service.ts +2 -2
- package/src/react-query-service.ts +13 -6
- package/src/request.ts +27 -24
- package/src/types.ts +2 -1
- package/types/api-endpoints.d.ts +1 -1
- package/types/data-service.d.ts +2 -2
- package/types/react-query-service.d.ts +1 -1
- package/types/types.d.ts +2 -1
package/dist/index.es.js
CHANGED
|
@@ -95,55 +95,58 @@ var processQueue = function (error, token) {
|
|
|
95
95
|
failedQueue = [];
|
|
96
96
|
};
|
|
97
97
|
axios.interceptors.response.use(function (response) { return response; }, function (error) { return __awaiter(void 0, void 0, void 0, function () {
|
|
98
|
-
var originalRequest, token, err_1;
|
|
99
|
-
|
|
100
|
-
|
|
98
|
+
var originalRequest, token, err_1, token, err_2;
|
|
99
|
+
var _a;
|
|
100
|
+
return __generator(this, function (_b) {
|
|
101
|
+
switch (_b.label) {
|
|
101
102
|
case 0:
|
|
102
103
|
originalRequest = error.config;
|
|
103
|
-
if (!(error.response.status === 401 && !originalRequest._retry)) return [3 /*break*/,
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
if (!(error.response.status === 401 && !originalRequest._retry)) return [3 /*break*/, 13];
|
|
105
|
+
originalRequest._retry = true;
|
|
106
|
+
if (!isRefreshing) return [3 /*break*/, 5];
|
|
107
|
+
_b.label = 1;
|
|
106
108
|
case 1:
|
|
107
|
-
|
|
109
|
+
_b.trys.push([1, 4, , 5]);
|
|
108
110
|
return [4 /*yield*/, new Promise(function (resolve, reject) {
|
|
109
111
|
failedQueue.push({ resolve: resolve, reject: reject });
|
|
110
112
|
})];
|
|
111
113
|
case 2:
|
|
112
|
-
token =
|
|
114
|
+
token = _b.sent();
|
|
113
115
|
originalRequest.headers['Authorization'] = 'Bearer ' + token;
|
|
114
116
|
return [4 /*yield*/, axios(originalRequest)];
|
|
115
|
-
case 3: return [2 /*return*/,
|
|
117
|
+
case 3: return [2 /*return*/, _b.sent()];
|
|
116
118
|
case 4:
|
|
117
|
-
err_1 =
|
|
118
|
-
return [
|
|
119
|
-
case 5:
|
|
120
|
-
case 6:
|
|
121
|
-
originalRequest._retry = true;
|
|
119
|
+
err_1 = _b.sent();
|
|
120
|
+
return [2 /*return*/, Promise.reject(err_1)];
|
|
121
|
+
case 5:
|
|
122
122
|
isRefreshing = true;
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
case
|
|
123
|
+
_b.label = 6;
|
|
124
|
+
case 6:
|
|
125
|
+
_b.trys.push([6, 11, 12, 13]);
|
|
126
|
+
return [4 /*yield*/, refreshToken(
|
|
127
|
+
// Handle edge case where we get a blank screen if the initial 401 error is from a refresh token request
|
|
128
|
+
((_a = originalRequest.url) === null || _a === void 0 ? void 0 : _a.includes('api/auth/refresh')) ? true : false)];
|
|
129
|
+
case 7:
|
|
130
|
+
token = (_b.sent()).token;
|
|
131
|
+
if (!token) return [3 /*break*/, 9];
|
|
132
|
+
originalRequest.headers['Authorization'] = 'Bearer ' + token;
|
|
133
|
+
setTokenHeader(token);
|
|
134
|
+
window.dispatchEvent(new CustomEvent('tokenUpdated', { detail: token }));
|
|
135
|
+
processQueue(null, token);
|
|
136
|
+
return [4 /*yield*/, axios(originalRequest)];
|
|
137
|
+
case 8: return [2 /*return*/, _b.sent()];
|
|
138
|
+
case 9:
|
|
139
|
+
window.location.href = '/login';
|
|
140
|
+
_b.label = 10;
|
|
141
|
+
case 10: return [3 /*break*/, 13];
|
|
142
|
+
case 11:
|
|
143
|
+
err_2 = _b.sent();
|
|
144
|
+
processQueue(err_2, null);
|
|
145
|
+
return [2 /*return*/, Promise.reject(err_2)];
|
|
146
|
+
case 12:
|
|
147
|
+
isRefreshing = false;
|
|
148
|
+
return [7 /*endfinally*/];
|
|
149
|
+
case 13: return [2 /*return*/, Promise.reject(error)];
|
|
147
150
|
}
|
|
148
151
|
});
|
|
149
152
|
}); });
|
|
@@ -283,7 +286,7 @@ var login$1 = function () { return '/api/auth/login'; };
|
|
|
283
286
|
var logout$1 = function () { return '/api/auth/logout'; };
|
|
284
287
|
var register$1 = function () { return '/api/auth/register'; };
|
|
285
288
|
var loginGoogle = function () { return '/api/auth/google'; };
|
|
286
|
-
var refreshToken$1 = function () { return
|
|
289
|
+
var refreshToken$1 = function (retry) { return "/api/auth/refresh".concat(retry ? '?retry=true' : ''); };
|
|
287
290
|
var requestPasswordReset$1 = function () { return '/api/auth/requestPasswordReset'; };
|
|
288
291
|
var resetPassword$1 = function () { return '/api/auth/resetPassword'; };
|
|
289
292
|
var plugins = function () { return '/api/plugins'; };
|
|
@@ -377,7 +380,7 @@ var logout = function () {
|
|
|
377
380
|
var register = function (payload) {
|
|
378
381
|
return request.post(register$1(), payload);
|
|
379
382
|
};
|
|
380
|
-
var refreshToken = function () { return request.post(refreshToken$1()); };
|
|
383
|
+
var refreshToken = function (retry) { return request.post(refreshToken$1(retry)); };
|
|
381
384
|
var userKeyQuery = function (name) {
|
|
382
385
|
return request.get(userKeyQuery$1(name));
|
|
383
386
|
};
|
|
@@ -827,12 +830,8 @@ var useGetConversationsQuery = function (pageNumber, config) {
|
|
|
827
830
|
var useGetSearchEnabledQuery = function (config) {
|
|
828
831
|
return useQuery([QueryKeys.searchEnabled], function () { return getSearchEnabled(); }, __assign({ refetchOnWindowFocus: false, refetchOnReconnect: false, refetchOnMount: false }, config));
|
|
829
832
|
};
|
|
830
|
-
var useGetEndpointsQuery = function () {
|
|
831
|
-
return useQuery([QueryKeys.endpoints], function () { return getAIEndpoints(); }, {
|
|
832
|
-
refetchOnWindowFocus: false,
|
|
833
|
-
refetchOnReconnect: false,
|
|
834
|
-
refetchOnMount: false,
|
|
835
|
-
});
|
|
833
|
+
var useGetEndpointsQuery = function (config) {
|
|
834
|
+
return useQuery([QueryKeys.endpoints], function () { return getAIEndpoints(); }, __assign({ refetchOnWindowFocus: false, refetchOnReconnect: false, refetchOnMount: false }, config));
|
|
836
835
|
};
|
|
837
836
|
var useGetModelsQuery = function (config) {
|
|
838
837
|
return useQuery([QueryKeys.models], function () { return getModels(); }, __assign({ refetchOnWindowFocus: false, refetchOnReconnect: false, refetchOnMount: false }, config));
|
package/dist/index.js
CHANGED
|
@@ -97,55 +97,58 @@ var processQueue = function (error, token) {
|
|
|
97
97
|
failedQueue = [];
|
|
98
98
|
};
|
|
99
99
|
axios.interceptors.response.use(function (response) { return response; }, function (error) { return __awaiter(void 0, void 0, void 0, function () {
|
|
100
|
-
var originalRequest, token, err_1;
|
|
101
|
-
|
|
102
|
-
|
|
100
|
+
var originalRequest, token, err_1, token, err_2;
|
|
101
|
+
var _a;
|
|
102
|
+
return __generator(this, function (_b) {
|
|
103
|
+
switch (_b.label) {
|
|
103
104
|
case 0:
|
|
104
105
|
originalRequest = error.config;
|
|
105
|
-
if (!(error.response.status === 401 && !originalRequest._retry)) return [3 /*break*/,
|
|
106
|
-
|
|
107
|
-
|
|
106
|
+
if (!(error.response.status === 401 && !originalRequest._retry)) return [3 /*break*/, 13];
|
|
107
|
+
originalRequest._retry = true;
|
|
108
|
+
if (!isRefreshing) return [3 /*break*/, 5];
|
|
109
|
+
_b.label = 1;
|
|
108
110
|
case 1:
|
|
109
|
-
|
|
111
|
+
_b.trys.push([1, 4, , 5]);
|
|
110
112
|
return [4 /*yield*/, new Promise(function (resolve, reject) {
|
|
111
113
|
failedQueue.push({ resolve: resolve, reject: reject });
|
|
112
114
|
})];
|
|
113
115
|
case 2:
|
|
114
|
-
token =
|
|
116
|
+
token = _b.sent();
|
|
115
117
|
originalRequest.headers['Authorization'] = 'Bearer ' + token;
|
|
116
118
|
return [4 /*yield*/, axios(originalRequest)];
|
|
117
|
-
case 3: return [2 /*return*/,
|
|
119
|
+
case 3: return [2 /*return*/, _b.sent()];
|
|
118
120
|
case 4:
|
|
119
|
-
err_1 =
|
|
120
|
-
return [
|
|
121
|
-
case 5:
|
|
122
|
-
case 6:
|
|
123
|
-
originalRequest._retry = true;
|
|
121
|
+
err_1 = _b.sent();
|
|
122
|
+
return [2 /*return*/, Promise.reject(err_1)];
|
|
123
|
+
case 5:
|
|
124
124
|
isRefreshing = true;
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
case
|
|
125
|
+
_b.label = 6;
|
|
126
|
+
case 6:
|
|
127
|
+
_b.trys.push([6, 11, 12, 13]);
|
|
128
|
+
return [4 /*yield*/, refreshToken(
|
|
129
|
+
// Handle edge case where we get a blank screen if the initial 401 error is from a refresh token request
|
|
130
|
+
((_a = originalRequest.url) === null || _a === void 0 ? void 0 : _a.includes('api/auth/refresh')) ? true : false)];
|
|
131
|
+
case 7:
|
|
132
|
+
token = (_b.sent()).token;
|
|
133
|
+
if (!token) return [3 /*break*/, 9];
|
|
134
|
+
originalRequest.headers['Authorization'] = 'Bearer ' + token;
|
|
135
|
+
setTokenHeader(token);
|
|
136
|
+
window.dispatchEvent(new CustomEvent('tokenUpdated', { detail: token }));
|
|
137
|
+
processQueue(null, token);
|
|
138
|
+
return [4 /*yield*/, axios(originalRequest)];
|
|
139
|
+
case 8: return [2 /*return*/, _b.sent()];
|
|
140
|
+
case 9:
|
|
141
|
+
window.location.href = '/login';
|
|
142
|
+
_b.label = 10;
|
|
143
|
+
case 10: return [3 /*break*/, 13];
|
|
144
|
+
case 11:
|
|
145
|
+
err_2 = _b.sent();
|
|
146
|
+
processQueue(err_2, null);
|
|
147
|
+
return [2 /*return*/, Promise.reject(err_2)];
|
|
148
|
+
case 12:
|
|
149
|
+
isRefreshing = false;
|
|
150
|
+
return [7 /*endfinally*/];
|
|
151
|
+
case 13: return [2 /*return*/, Promise.reject(error)];
|
|
149
152
|
}
|
|
150
153
|
});
|
|
151
154
|
}); });
|
|
@@ -285,7 +288,7 @@ var login$1 = function () { return '/api/auth/login'; };
|
|
|
285
288
|
var logout$1 = function () { return '/api/auth/logout'; };
|
|
286
289
|
var register$1 = function () { return '/api/auth/register'; };
|
|
287
290
|
var loginGoogle = function () { return '/api/auth/google'; };
|
|
288
|
-
var refreshToken$1 = function () { return
|
|
291
|
+
var refreshToken$1 = function (retry) { return "/api/auth/refresh".concat(retry ? '?retry=true' : ''); };
|
|
289
292
|
var requestPasswordReset$1 = function () { return '/api/auth/requestPasswordReset'; };
|
|
290
293
|
var resetPassword$1 = function () { return '/api/auth/resetPassword'; };
|
|
291
294
|
var plugins = function () { return '/api/plugins'; };
|
|
@@ -379,7 +382,7 @@ var logout = function () {
|
|
|
379
382
|
var register = function (payload) {
|
|
380
383
|
return request.post(register$1(), payload);
|
|
381
384
|
};
|
|
382
|
-
var refreshToken = function () { return request.post(refreshToken$1()); };
|
|
385
|
+
var refreshToken = function (retry) { return request.post(refreshToken$1(retry)); };
|
|
383
386
|
var userKeyQuery = function (name) {
|
|
384
387
|
return request.get(userKeyQuery$1(name));
|
|
385
388
|
};
|
|
@@ -829,12 +832,8 @@ var useGetConversationsQuery = function (pageNumber, config) {
|
|
|
829
832
|
var useGetSearchEnabledQuery = function (config) {
|
|
830
833
|
return reactQuery.useQuery([exports.QueryKeys.searchEnabled], function () { return getSearchEnabled(); }, __assign({ refetchOnWindowFocus: false, refetchOnReconnect: false, refetchOnMount: false }, config));
|
|
831
834
|
};
|
|
832
|
-
var useGetEndpointsQuery = function () {
|
|
833
|
-
return reactQuery.useQuery([exports.QueryKeys.endpoints], function () { return getAIEndpoints(); }, {
|
|
834
|
-
refetchOnWindowFocus: false,
|
|
835
|
-
refetchOnReconnect: false,
|
|
836
|
-
refetchOnMount: false,
|
|
837
|
-
});
|
|
835
|
+
var useGetEndpointsQuery = function (config) {
|
|
836
|
+
return reactQuery.useQuery([exports.QueryKeys.endpoints], function () { return getAIEndpoints(); }, __assign({ refetchOnWindowFocus: false, refetchOnReconnect: false, refetchOnMount: false }, config));
|
|
838
837
|
};
|
|
839
838
|
var useGetModelsQuery = function (config) {
|
|
840
839
|
return reactQuery.useQuery([exports.QueryKeys.models], function () { return getModels(); }, __assign({ refetchOnWindowFocus: false, refetchOnReconnect: false, refetchOnMount: false }, config));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "librechat-data-provider",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.5",
|
|
4
4
|
"description": "data services for librechat apps",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.es.js",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@tanstack/react-query": "^4.28.0",
|
|
30
30
|
"axios": "^1.3.4",
|
|
31
|
-
"openai": "
|
|
31
|
+
"openai": "4.11.1",
|
|
32
32
|
"zod": "^3.22.4"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
package/src/api-endpoints.ts
CHANGED
|
@@ -52,7 +52,7 @@ export const loginFacebook = () => '/api/auth/facebook';
|
|
|
52
52
|
|
|
53
53
|
export const loginGoogle = () => '/api/auth/google';
|
|
54
54
|
|
|
55
|
-
export const refreshToken = () =>
|
|
55
|
+
export const refreshToken = (retry?: boolean) => `/api/auth/refresh${retry ? '?retry=true' : ''}`;
|
|
56
56
|
|
|
57
57
|
export const requestPasswordReset = () => '/api/auth/requestPasswordReset';
|
|
58
58
|
|
package/src/data-service.ts
CHANGED
|
@@ -101,7 +101,7 @@ export const searchConversations = async (
|
|
|
101
101
|
return request.get(endpoints.search(q, pageNumber));
|
|
102
102
|
};
|
|
103
103
|
|
|
104
|
-
export const getAIEndpoints = () => {
|
|
104
|
+
export const getAIEndpoints = (): Promise<t.TEndpointsConfig> => {
|
|
105
105
|
return request.get(endpoints.aiEndpoints());
|
|
106
106
|
};
|
|
107
107
|
|
|
@@ -125,7 +125,7 @@ export const register = (payload: t.TRegisterUser) => {
|
|
|
125
125
|
return request.post(endpoints.register(), payload);
|
|
126
126
|
};
|
|
127
127
|
|
|
128
|
-
export const refreshToken = () => request.post(endpoints.refreshToken());
|
|
128
|
+
export const refreshToken = (retry?: boolean) => request.post(endpoints.refreshToken(retry));
|
|
129
129
|
|
|
130
130
|
export const userKeyQuery = (name: string): Promise<t.TCheckUserKeyResponse> =>
|
|
131
131
|
request.get(endpoints.userKeyQuery(name));
|
|
@@ -230,12 +230,19 @@ export const useGetSearchEnabledQuery = (
|
|
|
230
230
|
});
|
|
231
231
|
};
|
|
232
232
|
|
|
233
|
-
export const useGetEndpointsQuery =
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
233
|
+
export const useGetEndpointsQuery = <TData = t.TEndpointsConfig>(
|
|
234
|
+
config?: UseQueryOptions<t.TEndpointsConfig, unknown, TData>,
|
|
235
|
+
): QueryObserverResult<TData> => {
|
|
236
|
+
return useQuery<t.TEndpointsConfig, unknown, TData>(
|
|
237
|
+
[QueryKeys.endpoints],
|
|
238
|
+
() => dataService.getAIEndpoints(),
|
|
239
|
+
{
|
|
240
|
+
refetchOnWindowFocus: false,
|
|
241
|
+
refetchOnReconnect: false,
|
|
242
|
+
refetchOnMount: false,
|
|
243
|
+
...config,
|
|
244
|
+
},
|
|
245
|
+
);
|
|
239
246
|
};
|
|
240
247
|
|
|
241
248
|
export const useGetModelsQuery = (
|
package/src/request.ts
CHANGED
|
@@ -23,44 +23,47 @@ axios.interceptors.response.use(
|
|
|
23
23
|
(response) => response,
|
|
24
24
|
async (error) => {
|
|
25
25
|
const originalRequest = error.config;
|
|
26
|
+
|
|
26
27
|
if (error.response.status === 401 && !originalRequest._retry) {
|
|
28
|
+
originalRequest._retry = true;
|
|
29
|
+
|
|
27
30
|
if (isRefreshing) {
|
|
28
31
|
try {
|
|
29
|
-
const token = await new Promise(
|
|
32
|
+
const token = await new Promise((resolve, reject) => {
|
|
30
33
|
failedQueue.push({ resolve, reject });
|
|
31
34
|
});
|
|
32
35
|
originalRequest.headers['Authorization'] = 'Bearer ' + token;
|
|
33
36
|
return await axios(originalRequest);
|
|
34
37
|
} catch (err) {
|
|
35
|
-
return
|
|
38
|
+
return Promise.reject(err);
|
|
36
39
|
}
|
|
37
40
|
}
|
|
38
41
|
|
|
39
|
-
originalRequest._retry = true;
|
|
40
42
|
isRefreshing = true;
|
|
41
43
|
|
|
42
|
-
|
|
43
|
-
refreshToken(
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
44
|
+
try {
|
|
45
|
+
const { token } = await refreshToken(
|
|
46
|
+
// Handle edge case where we get a blank screen if the initial 401 error is from a refresh token request
|
|
47
|
+
originalRequest.url?.includes('api/auth/refresh') ? true : false,
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
if (token) {
|
|
51
|
+
originalRequest.headers['Authorization'] = 'Bearer ' + token;
|
|
52
|
+
setTokenHeader(token);
|
|
53
|
+
window.dispatchEvent(new CustomEvent('tokenUpdated', { detail: token }));
|
|
54
|
+
processQueue(null, token);
|
|
55
|
+
return await axios(originalRequest);
|
|
56
|
+
} else {
|
|
57
|
+
window.location.href = '/login';
|
|
58
|
+
}
|
|
59
|
+
} catch (err) {
|
|
60
|
+
processQueue(err as AxiosError, null);
|
|
61
|
+
return Promise.reject(err);
|
|
62
|
+
} finally {
|
|
63
|
+
isRefreshing = false;
|
|
64
|
+
}
|
|
63
65
|
}
|
|
66
|
+
|
|
64
67
|
return Promise.reject(error);
|
|
65
68
|
},
|
|
66
69
|
);
|
package/src/types.ts
CHANGED
|
@@ -120,7 +120,7 @@ export type TConfig = {
|
|
|
120
120
|
availableModels?: [];
|
|
121
121
|
userProvide?: boolean | null;
|
|
122
122
|
availableTools?: [];
|
|
123
|
-
plugins?:
|
|
123
|
+
plugins?: Record<string, string>;
|
|
124
124
|
azure?: boolean;
|
|
125
125
|
};
|
|
126
126
|
|
|
@@ -181,6 +181,7 @@ export type TStartupConfig = {
|
|
|
181
181
|
socialLoginEnabled: boolean;
|
|
182
182
|
emailEnabled: boolean;
|
|
183
183
|
checkBalance: boolean;
|
|
184
|
+
customFooter?: string;
|
|
184
185
|
};
|
|
185
186
|
|
|
186
187
|
export type TRefreshTokenResponse = {
|
package/types/api-endpoints.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export declare const logout: () => string;
|
|
|
23
23
|
export declare const register: () => string;
|
|
24
24
|
export declare const loginFacebook: () => string;
|
|
25
25
|
export declare const loginGoogle: () => string;
|
|
26
|
-
export declare const refreshToken: () => string;
|
|
26
|
+
export declare const refreshToken: (retry?: boolean) => string;
|
|
27
27
|
export declare const requestPasswordReset: () => string;
|
|
28
28
|
export declare const resetPassword: () => string;
|
|
29
29
|
export declare const plugins: () => string;
|
package/types/data-service.d.ts
CHANGED
|
@@ -19,13 +19,13 @@ export declare function getSearchEnabled(): Promise<boolean>;
|
|
|
19
19
|
export declare function getUser(): Promise<t.TUser>;
|
|
20
20
|
export declare function getUserBalance(): Promise<string>;
|
|
21
21
|
export declare const searchConversations: (q: string, pageNumber: string) => Promise<t.TSearchResults>;
|
|
22
|
-
export declare const getAIEndpoints: () => Promise<
|
|
22
|
+
export declare const getAIEndpoints: () => Promise<t.TEndpointsConfig>;
|
|
23
23
|
export declare const getModels: () => Promise<t.TModelsConfig>;
|
|
24
24
|
export declare const updateTokenCount: (text: string) => Promise<any>;
|
|
25
25
|
export declare const login: (payload: t.TLoginUser) => Promise<any>;
|
|
26
26
|
export declare const logout: () => Promise<any>;
|
|
27
27
|
export declare const register: (payload: t.TRegisterUser) => Promise<any>;
|
|
28
|
-
export declare const refreshToken: () => Promise<any>;
|
|
28
|
+
export declare const refreshToken: (retry?: boolean) => Promise<any>;
|
|
29
29
|
export declare const userKeyQuery: (name: string) => Promise<t.TCheckUserKeyResponse>;
|
|
30
30
|
export declare const getLoginGoogle: () => Promise<unknown>;
|
|
31
31
|
export declare const requestPasswordReset: (payload: t.TRequestPasswordReset) => Promise<t.TRequestPasswordResetResponse>;
|
|
@@ -36,7 +36,7 @@ export declare const useRevokeUserKeyMutation: (name: string) => UseMutationResu
|
|
|
36
36
|
export declare const useRevokeAllUserKeysMutation: () => UseMutationResult<unknown>;
|
|
37
37
|
export declare const useGetConversationsQuery: (pageNumber: string, config?: UseQueryOptions<t.TGetConversationsResponse>) => QueryObserverResult<t.TGetConversationsResponse>;
|
|
38
38
|
export declare const useGetSearchEnabledQuery: (config?: UseQueryOptions<boolean>) => QueryObserverResult<boolean>;
|
|
39
|
-
export declare const useGetEndpointsQuery: () => QueryObserverResult<
|
|
39
|
+
export declare const useGetEndpointsQuery: <TData = t.TEndpointsConfig>(config?: UseQueryOptions<t.TEndpointsConfig, unknown, TData, import("@tanstack/react-query").QueryKey> | undefined) => QueryObserverResult<TData>;
|
|
40
40
|
export declare const useGetModelsQuery: (config?: UseQueryOptions<t.TModelsConfig>) => QueryObserverResult<t.TModelsConfig>;
|
|
41
41
|
export declare const useCreatePresetMutation: () => UseMutationResult<s.TPreset[], unknown, s.TPreset, unknown>;
|
|
42
42
|
export declare const useUpdatePresetMutation: () => UseMutationResult<s.TPreset[], unknown, s.TPreset, unknown>;
|
package/types/types.d.ts
CHANGED
|
@@ -101,7 +101,7 @@ export type TConfig = {
|
|
|
101
101
|
availableModels?: [];
|
|
102
102
|
userProvide?: boolean | null;
|
|
103
103
|
availableTools?: [];
|
|
104
|
-
plugins?:
|
|
104
|
+
plugins?: Record<string, string>;
|
|
105
105
|
azure?: boolean;
|
|
106
106
|
};
|
|
107
107
|
export type TModelsConfig = Record<string, string[]>;
|
|
@@ -150,6 +150,7 @@ export type TStartupConfig = {
|
|
|
150
150
|
socialLoginEnabled: boolean;
|
|
151
151
|
emailEnabled: boolean;
|
|
152
152
|
checkBalance: boolean;
|
|
153
|
+
customFooter?: string;
|
|
153
154
|
};
|
|
154
155
|
export type TRefreshTokenResponse = {
|
|
155
156
|
token: string;
|