librechat-data-provider 0.1.9 → 0.2.0

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  import axios from 'axios';
2
2
  import { z } from 'zod';
3
- import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
3
+ import { useQueryClient, useMutation, useQuery } from '@tanstack/react-query';
4
4
 
5
5
  /******************************************************************************
6
6
  Copyright (c) Microsoft Corporation.
@@ -245,6 +245,7 @@ var request = {
245
245
  };
246
246
 
247
247
  var user = function () { return '/api/user'; };
248
+ var balance = function () { return '/api/balance'; };
248
249
  var userPlugins = function () { return '/api/user/plugins'; };
249
250
  var messages = function (conversationId, messageId) {
250
251
  return "/api/messages/".concat(conversationId).concat(messageId ? "/".concat(messageId) : '');
@@ -338,6 +339,9 @@ function getSearchEnabled() {
338
339
  function getUser() {
339
340
  return request.get(user());
340
341
  }
342
+ function getUserBalance() {
343
+ return request.get(balance());
344
+ }
341
345
  var searchConversations = function (q, pageNumber) { return __awaiter(void 0, void 0, void 0, function () {
342
346
  return __generator(this, function (_a) {
343
347
  return [2 /*return*/, request.get(search(q, pageNumber))];
@@ -705,6 +709,7 @@ var QueryKeys;
705
709
  QueryKeys["user"] = "user";
706
710
  QueryKeys["name"] = "name";
707
711
  QueryKeys["models"] = "models";
712
+ QueryKeys["balance"] = "balance";
708
713
  QueryKeys["endpoints"] = "endpoints";
709
714
  QueryKeys["presets"] = "presets";
710
715
  QueryKeys["searchResults"] = "searchResults";
@@ -713,9 +718,14 @@ var QueryKeys;
713
718
  QueryKeys["startupConfig"] = "startupConfig";
714
719
  })(QueryKeys || (QueryKeys = {}));
715
720
  var useAbortRequestWithMessage = function () {
721
+ var queryClient = useQueryClient();
716
722
  return useMutation(function (_a) {
717
723
  var endpoint = _a.endpoint, abortKey = _a.abortKey, message = _a.message;
718
724
  return abortRequestWithMessage(endpoint, abortKey, message);
725
+ }, {
726
+ onSuccess: function () {
727
+ queryClient.invalidateQueries([QueryKeys.balance]);
728
+ },
719
729
  });
720
730
  };
721
731
  var useGetUserQuery = function (config) {
@@ -724,6 +734,9 @@ var useGetUserQuery = function (config) {
724
734
  var useGetMessagesByConvoId = function (id, config) {
725
735
  return useQuery([QueryKeys.messages, id], function () { return getMessagesByConvoId(id); }, __assign({ refetchOnWindowFocus: false, refetchOnReconnect: false, refetchOnMount: false }, config));
726
736
  };
737
+ var useGetUserBalance = function (config) {
738
+ return useQuery([QueryKeys.balance], function () { return getUserBalance(); }, __assign({ refetchOnWindowFocus: true, refetchOnReconnect: true, refetchOnMount: true }, config));
739
+ };
727
740
  var useGetConversationByIdQuery = function (id, config) {
728
741
  return useQuery([QueryKeys.conversation, id], function () { return getConversationById(id); }, __assign({ refetchOnWindowFocus: false, refetchOnReconnect: false, refetchOnMount: false }, config));
729
742
  };
@@ -1192,4 +1205,4 @@ function createPayload(submission) {
1192
1205
  return { server: server, payload: payload };
1193
1206
  }
1194
1207
 
1195
- export { EModelEndpoint, QueryKeys, SSE, abortRequestWithMessage, anthropicSchema, bingAISchema, chatGPTBrowserSchema, clearAllConversations, createPayload, createPreset, deleteConversation, deletePreset, eModelEndpointSchema, getAIEndpoints, getAvailablePlugins, getConversationById, getConversations, getLoginGoogle, getMessagesByConvoId, getModels, getPresets, getResponseSender, getSearchEnabled, getStartupConfig, getUser, googleSchema, gptPluginsSchema, login, logout, openAISchema, parseConvo, refreshToken, register, requestPasswordReset, resetPassword, revokeAllUserKeys, revokeUserKey, searchConversations, setAcceptLanguageHeader, setTokenHeader, tAgentOptionsSchema, tConversationSchema, tExampleSchema, tMessageSchema, tPluginAuthConfigSchema, tPluginSchema, tPresetSchema, updateConversation, updateMessage, updatePreset, updateTokenCount, updateUserKey, updateUserPlugins, useAbortRequestWithMessage, useAvailablePluginsQuery, useClearConversationsMutation, useCreatePresetMutation, useDeleteConversationMutation, useDeletePresetMutation, useGetConversationByIdMutation, useGetConversationByIdQuery, useGetConversationsQuery, useGetEndpointsQuery, useGetMessagesByConvoId, useGetModelsQuery, useGetPresetsQuery, useGetSearchEnabledQuery, useGetStartupConfig, useGetUserQuery, useLoginUserMutation, useLogoutUserMutation, useRefreshTokenMutation, useRegisterUserMutation, useRequestPasswordResetMutation, useResetPasswordMutation, useRevokeAllUserKeysMutation, useRevokeUserKeyMutation, useSearchQuery, useUpdateConversationMutation, useUpdateMessageMutation, useUpdatePresetMutation, useUpdateTokenCountMutation, useUpdateUserKeysMutation, useUpdateUserPluginsMutation, useUserKeyQuery, userKeyQuery };
1208
+ export { EModelEndpoint, QueryKeys, SSE, abortRequestWithMessage, anthropicSchema, bingAISchema, chatGPTBrowserSchema, clearAllConversations, createPayload, createPreset, deleteConversation, deletePreset, eModelEndpointSchema, getAIEndpoints, getAvailablePlugins, getConversationById, getConversations, getLoginGoogle, getMessagesByConvoId, getModels, getPresets, getResponseSender, getSearchEnabled, getStartupConfig, getUser, getUserBalance, googleSchema, gptPluginsSchema, login, logout, openAISchema, parseConvo, refreshToken, register, requestPasswordReset, resetPassword, revokeAllUserKeys, revokeUserKey, searchConversations, setAcceptLanguageHeader, setTokenHeader, tAgentOptionsSchema, tConversationSchema, tExampleSchema, tMessageSchema, tPluginAuthConfigSchema, tPluginSchema, tPresetSchema, updateConversation, updateMessage, updatePreset, updateTokenCount, updateUserKey, updateUserPlugins, useAbortRequestWithMessage, useAvailablePluginsQuery, useClearConversationsMutation, useCreatePresetMutation, useDeleteConversationMutation, useDeletePresetMutation, useGetConversationByIdMutation, useGetConversationByIdQuery, useGetConversationsQuery, useGetEndpointsQuery, useGetMessagesByConvoId, useGetModelsQuery, useGetPresetsQuery, useGetSearchEnabledQuery, useGetStartupConfig, useGetUserBalance, useGetUserQuery, useLoginUserMutation, useLogoutUserMutation, useRefreshTokenMutation, useRegisterUserMutation, useRequestPasswordResetMutation, useResetPasswordMutation, useRevokeAllUserKeysMutation, useRevokeUserKeyMutation, useSearchQuery, useUpdateConversationMutation, useUpdateMessageMutation, useUpdatePresetMutation, useUpdateTokenCountMutation, useUpdateUserKeysMutation, useUpdateUserPluginsMutation, useUserKeyQuery, userKeyQuery };
package/dist/index.js CHANGED
@@ -247,6 +247,7 @@ var request = {
247
247
  };
248
248
 
249
249
  var user = function () { return '/api/user'; };
250
+ var balance = function () { return '/api/balance'; };
250
251
  var userPlugins = function () { return '/api/user/plugins'; };
251
252
  var messages = function (conversationId, messageId) {
252
253
  return "/api/messages/".concat(conversationId).concat(messageId ? "/".concat(messageId) : '');
@@ -340,6 +341,9 @@ function getSearchEnabled() {
340
341
  function getUser() {
341
342
  return request.get(user());
342
343
  }
344
+ function getUserBalance() {
345
+ return request.get(balance());
346
+ }
343
347
  var searchConversations = function (q, pageNumber) { return __awaiter(void 0, void 0, void 0, function () {
344
348
  return __generator(this, function (_a) {
345
349
  return [2 /*return*/, request.get(search(q, pageNumber))];
@@ -707,6 +711,7 @@ exports.QueryKeys = void 0;
707
711
  QueryKeys["user"] = "user";
708
712
  QueryKeys["name"] = "name";
709
713
  QueryKeys["models"] = "models";
714
+ QueryKeys["balance"] = "balance";
710
715
  QueryKeys["endpoints"] = "endpoints";
711
716
  QueryKeys["presets"] = "presets";
712
717
  QueryKeys["searchResults"] = "searchResults";
@@ -715,9 +720,14 @@ exports.QueryKeys = void 0;
715
720
  QueryKeys["startupConfig"] = "startupConfig";
716
721
  })(exports.QueryKeys || (exports.QueryKeys = {}));
717
722
  var useAbortRequestWithMessage = function () {
723
+ var queryClient = reactQuery.useQueryClient();
718
724
  return reactQuery.useMutation(function (_a) {
719
725
  var endpoint = _a.endpoint, abortKey = _a.abortKey, message = _a.message;
720
726
  return abortRequestWithMessage(endpoint, abortKey, message);
727
+ }, {
728
+ onSuccess: function () {
729
+ queryClient.invalidateQueries([exports.QueryKeys.balance]);
730
+ },
721
731
  });
722
732
  };
723
733
  var useGetUserQuery = function (config) {
@@ -726,6 +736,9 @@ var useGetUserQuery = function (config) {
726
736
  var useGetMessagesByConvoId = function (id, config) {
727
737
  return reactQuery.useQuery([exports.QueryKeys.messages, id], function () { return getMessagesByConvoId(id); }, __assign({ refetchOnWindowFocus: false, refetchOnReconnect: false, refetchOnMount: false }, config));
728
738
  };
739
+ var useGetUserBalance = function (config) {
740
+ return reactQuery.useQuery([exports.QueryKeys.balance], function () { return getUserBalance(); }, __assign({ refetchOnWindowFocus: true, refetchOnReconnect: true, refetchOnMount: true }, config));
741
+ };
729
742
  var useGetConversationByIdQuery = function (id, config) {
730
743
  return reactQuery.useQuery([exports.QueryKeys.conversation, id], function () { return getConversationById(id); }, __assign({ refetchOnWindowFocus: false, refetchOnReconnect: false, refetchOnMount: false }, config));
731
744
  };
@@ -1217,6 +1230,7 @@ exports.getResponseSender = getResponseSender;
1217
1230
  exports.getSearchEnabled = getSearchEnabled;
1218
1231
  exports.getStartupConfig = getStartupConfig;
1219
1232
  exports.getUser = getUser;
1233
+ exports.getUserBalance = getUserBalance;
1220
1234
  exports.googleSchema = googleSchema;
1221
1235
  exports.gptPluginsSchema = gptPluginsSchema;
1222
1236
  exports.login = login;
@@ -1260,6 +1274,7 @@ exports.useGetModelsQuery = useGetModelsQuery;
1260
1274
  exports.useGetPresetsQuery = useGetPresetsQuery;
1261
1275
  exports.useGetSearchEnabledQuery = useGetSearchEnabledQuery;
1262
1276
  exports.useGetStartupConfig = useGetStartupConfig;
1277
+ exports.useGetUserBalance = useGetUserBalance;
1263
1278
  exports.useGetUserQuery = useGetUserQuery;
1264
1279
  exports.useLoginUserMutation = useLoginUserMutation;
1265
1280
  exports.useLogoutUserMutation = useLogoutUserMutation;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "librechat-data-provider",
3
- "version": "0.1.9",
3
+ "version": "0.2.0",
4
4
  "description": "data services for librechat apps",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.es.js",
@@ -28,7 +28,8 @@
28
28
  "dependencies": {
29
29
  "@tanstack/react-query": "^4.28.0",
30
30
  "axios": "^1.3.4",
31
- "zod": "^3.22.2"
31
+ "openai": "^4.11.1",
32
+ "zod": "^3.22.4"
32
33
  },
33
34
  "devDependencies": {
34
35
  "@babel/preset-env": "^7.21.5",
@@ -1,5 +1,7 @@
1
1
  export const user = () => '/api/user';
2
2
 
3
+ export const balance = () => '/api/balance';
4
+
3
5
  export const userPlugins = () => '/api/user/plugins';
4
6
 
5
7
  export const messages = (conversationId: string, messageId?: string) =>
@@ -90,6 +90,10 @@ export function getUser(): Promise<t.TUser> {
90
90
  return request.get(endpoints.user());
91
91
  }
92
92
 
93
+ export function getUserBalance(): Promise<string> {
94
+ return request.get(endpoints.balance());
95
+ }
96
+
93
97
  export const searchConversations = async (
94
98
  q: string,
95
99
  pageNumber: string,
@@ -18,6 +18,7 @@ export enum QueryKeys {
18
18
  user = 'user',
19
19
  name = 'name', // user key name
20
20
  models = 'models',
21
+ balance = 'balance',
21
22
  endpoints = 'endpoints',
22
23
  presets = 'presets',
23
24
  searchResults = 'searchResults',
@@ -31,8 +32,15 @@ export const useAbortRequestWithMessage = (): UseMutationResult<
31
32
  Error,
32
33
  { endpoint: string; abortKey: string; message: string }
33
34
  > => {
34
- return useMutation(({ endpoint, abortKey, message }) =>
35
- dataService.abortRequestWithMessage(endpoint, abortKey, message),
35
+ const queryClient = useQueryClient();
36
+ return useMutation(
37
+ ({ endpoint, abortKey, message }) =>
38
+ dataService.abortRequestWithMessage(endpoint, abortKey, message),
39
+ {
40
+ onSuccess: () => {
41
+ queryClient.invalidateQueries([QueryKeys.balance]);
42
+ },
43
+ },
36
44
  );
37
45
  };
38
46
 
@@ -64,6 +72,17 @@ export const useGetMessagesByConvoId = (
64
72
  );
65
73
  };
66
74
 
75
+ export const useGetUserBalance = (
76
+ config?: UseQueryOptions<string>,
77
+ ): QueryObserverResult<string> => {
78
+ return useQuery<string>([QueryKeys.balance], () => dataService.getUserBalance(), {
79
+ refetchOnWindowFocus: true,
80
+ refetchOnReconnect: true,
81
+ refetchOnMount: true,
82
+ ...config,
83
+ });
84
+ };
85
+
67
86
  export const useGetConversationByIdQuery = (
68
87
  id: string,
69
88
  config?: UseQueryOptions<s.TConversation>,
package/src/types.ts CHANGED
@@ -1,5 +1,10 @@
1
- import type { TResPlugin, TMessage, TConversation, TEndpointOption } from './schemas';
1
+ import OpenAI from 'openai';
2
2
  import type { UseMutationResult } from '@tanstack/react-query';
3
+ import type { TResPlugin, TMessage, TConversation, TEndpointOption } from './schemas';
4
+
5
+ export type TOpenAIMessage = OpenAI.Chat.ChatCompletionMessageParam;
6
+ export type TOpenAIFunction = OpenAI.Chat.ChatCompletionCreateParams.Function;
7
+ export type TOpenAIFunctionCall = OpenAI.Chat.ChatCompletionCreateParams.FunctionCallOption;
3
8
 
4
9
  export type TMutation = UseMutationResult<unknown>;
5
10
 
@@ -69,6 +74,7 @@ export type TGetConversationsResponse = {
69
74
  export type TUpdateMessageRequest = {
70
75
  conversationId: string;
71
76
  messageId: string;
77
+ model: string;
72
78
  text: string;
73
79
  };
74
80
 
@@ -174,6 +180,7 @@ export type TStartupConfig = {
174
180
  registrationEnabled: boolean;
175
181
  socialLoginEnabled: boolean;
176
182
  emailEnabled: boolean;
183
+ checkBalance: boolean;
177
184
  };
178
185
 
179
186
  export type TRefreshTokenResponse = {
@@ -1,4 +1,5 @@
1
1
  export declare const user: () => string;
2
+ export declare const balance: () => string;
2
3
  export declare const userPlugins: () => string;
3
4
  export declare const messages: (conversationId: string, messageId?: string) => string;
4
5
  export declare const keys: () => string;
@@ -17,6 +17,7 @@ export declare function updatePreset(payload: s.TPreset): Promise<s.TPreset[]>;
17
17
  export declare function deletePreset(arg: s.TPreset | object): Promise<s.TPreset[]>;
18
18
  export declare function getSearchEnabled(): Promise<boolean>;
19
19
  export declare function getUser(): Promise<t.TUser>;
20
+ export declare function getUserBalance(): Promise<string>;
20
21
  export declare const searchConversations: (q: string, pageNumber: string) => Promise<t.TSearchResults>;
21
22
  export declare const getAIEndpoints: () => Promise<unknown>;
22
23
  export declare const getModels: () => Promise<unknown>;
@@ -9,6 +9,7 @@ export declare enum QueryKeys {
9
9
  user = "user",
10
10
  name = "name",
11
11
  models = "models",
12
+ balance = "balance",
12
13
  endpoints = "endpoints",
13
14
  presets = "presets",
14
15
  searchResults = "searchResults",
@@ -23,6 +24,7 @@ export declare const useAbortRequestWithMessage: () => UseMutationResult<void, E
23
24
  }>;
24
25
  export declare const useGetUserQuery: (config?: UseQueryOptions<t.TUser>) => QueryObserverResult<t.TUser>;
25
26
  export declare const useGetMessagesByConvoId: (id: string, config?: UseQueryOptions<s.TMessage[]>) => QueryObserverResult<s.TMessage[]>;
27
+ export declare const useGetUserBalance: (config?: UseQueryOptions<string>) => QueryObserverResult<string>;
26
28
  export declare const useGetConversationByIdQuery: (id: string, config?: UseQueryOptions<s.TConversation>) => QueryObserverResult<s.TConversation>;
27
29
  export declare const useGetConversationByIdMutation: (id: string) => UseMutationResult<s.TConversation>;
28
30
  export declare const useUpdateConversationMutation: (id: string) => UseMutationResult<t.TUpdateConversationResponse, unknown, t.TUpdateConversationRequest, unknown>;
package/types/types.d.ts CHANGED
@@ -1,5 +1,9 @@
1
- import type { TResPlugin, TMessage, TConversation, TEndpointOption } from './schemas';
1
+ import OpenAI from 'openai';
2
2
  import type { UseMutationResult } from '@tanstack/react-query';
3
+ import type { TResPlugin, TMessage, TConversation, TEndpointOption } from './schemas';
4
+ export type TOpenAIMessage = OpenAI.Chat.ChatCompletionMessageParam;
5
+ export type TOpenAIFunction = OpenAI.Chat.ChatCompletionCreateParams.Function;
6
+ export type TOpenAIFunctionCall = OpenAI.Chat.ChatCompletionCreateParams.FunctionCallOption;
3
7
  export type TMutation = UseMutationResult<unknown>;
4
8
  export * from './schemas';
5
9
  export type TMessages = TMessage[];
@@ -58,6 +62,7 @@ export type TGetConversationsResponse = {
58
62
  export type TUpdateMessageRequest = {
59
63
  conversationId: string;
60
64
  messageId: string;
65
+ model: string;
61
66
  text: string;
62
67
  };
63
68
  export type TUpdateUserKeyRequest = {
@@ -144,6 +149,7 @@ export type TStartupConfig = {
144
149
  registrationEnabled: boolean;
145
150
  socialLoginEnabled: boolean;
146
151
  emailEnabled: boolean;
152
+ checkBalance: boolean;
147
153
  };
148
154
  export type TRefreshTokenResponse = {
149
155
  token: string;