@lobehub/lobehub 2.0.0-next.195 → 2.0.0-next.197
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/CHANGELOG.md +58 -0
- package/changelog/v1.json +21 -0
- package/locales/ar/setting.json +0 -3
- package/locales/bg-BG/setting.json +0 -3
- package/locales/de-DE/setting.json +0 -3
- package/locales/en-US/setting.json +0 -3
- package/locales/es-ES/setting.json +0 -3
- package/locales/fa-IR/setting.json +0 -3
- package/locales/fr-FR/setting.json +0 -3
- package/locales/it-IT/setting.json +0 -3
- package/locales/ja-JP/setting.json +0 -3
- package/locales/ko-KR/setting.json +0 -3
- package/locales/nl-NL/setting.json +0 -3
- package/locales/pl-PL/setting.json +0 -3
- package/locales/pt-BR/setting.json +0 -3
- package/locales/ru-RU/setting.json +0 -3
- package/locales/tr-TR/setting.json +0 -3
- package/locales/vi-VN/setting.json +0 -3
- package/locales/zh-CN/setting.json +0 -3
- package/locales/zh-TW/setting.json +0 -3
- package/package.json +2 -3
- package/packages/const/src/fetch.ts +1 -4
- package/packages/database/src/core/getTestDB.ts +50 -0
- package/packages/database/src/models/__tests__/_test_template.ts +1 -1
- package/packages/database/src/models/__tests__/agent.test.ts +1 -1
- package/packages/database/src/models/__tests__/aiModel.test.ts +1 -1
- package/packages/database/src/models/__tests__/aiProvider.test.ts +1 -1
- package/packages/database/src/models/__tests__/apiKey.test.ts +1 -1
- package/packages/database/src/models/__tests__/asyncTask.test.ts +1 -1
- package/packages/database/src/models/__tests__/chatGroup.test.ts +1 -1
- package/packages/database/src/models/__tests__/chunk.test.ts +1 -1
- package/packages/database/src/models/__tests__/document.test.ts +1 -1
- package/packages/database/src/models/__tests__/drizzleMigration.test.ts +1 -1
- package/packages/database/src/models/__tests__/embedding.test.ts +1 -1
- package/packages/database/src/models/__tests__/file.test.ts +1 -1
- package/packages/database/src/models/__tests__/generation.test.ts +1 -1
- package/packages/database/src/models/__tests__/generationBatch.test.ts +1 -1
- package/packages/database/src/models/__tests__/generationTopic.test.ts +1 -1
- package/packages/database/src/models/__tests__/knowledgeBase.test.ts +1 -1
- package/packages/database/src/models/__tests__/messages/message.create.test.ts +1 -1
- package/packages/database/src/models/__tests__/messages/message.delete.test.ts +1 -1
- package/packages/database/src/models/__tests__/messages/message.query.test.ts +1 -1
- package/packages/database/src/models/__tests__/messages/message.stats.test.ts +1 -1
- package/packages/database/src/models/__tests__/messages/message.thread-query.test.ts +1 -1
- package/packages/database/src/models/__tests__/messages/message.update.test.ts +1 -1
- package/packages/database/src/models/__tests__/messages/messageWithTask.test.ts +1 -1
- package/packages/database/src/models/__tests__/messages/queryWithMessageGroup.perf.test.ts +1 -1
- package/packages/database/src/models/__tests__/messages/queryWithMessageGroup.test.ts +1 -1
- package/packages/database/src/models/__tests__/oauthHandoff.test.ts +1 -1
- package/packages/database/src/models/__tests__/plugin.test.ts +1 -1
- package/packages/database/src/models/__tests__/session.test.ts +1 -1
- package/packages/database/src/models/__tests__/sessionGroup.test.ts +1 -1
- package/packages/database/src/models/__tests__/thread.test.ts +1 -1
- package/packages/database/src/models/__tests__/topicDocument.test.ts +1 -1
- package/packages/database/src/models/__tests__/topics/topic.create.test.ts +1 -1
- package/packages/database/src/models/__tests__/topics/topic.delete.test.ts +1 -1
- package/packages/database/src/models/__tests__/topics/topic.query.test.ts +1 -1
- package/packages/database/src/models/__tests__/topics/topic.stats.test.ts +1 -1
- package/packages/database/src/models/__tests__/topics/topic.update.test.ts +1 -1
- package/packages/database/src/models/__tests__/user.test.ts +1 -1
- package/packages/database/src/models/__tests__/userMemories.test.ts +1 -1
- package/packages/database/src/models/__tests__/userMemoryIdentity.test.ts +1 -1
- package/packages/database/src/models/userMemory/__tests__/context.test.ts +1 -1
- package/packages/database/src/models/userMemory/__tests__/experience.test.ts +1 -1
- package/packages/database/src/models/userMemory/__tests__/identity.test.ts +1 -1
- package/packages/database/src/models/userMemory/__tests__/preference.test.ts +1 -1
- package/packages/database/src/repositories/agentGroup/index.test.ts +1 -1
- package/packages/database/src/repositories/agentMigration/__tests__/agentMigrationRepo.test.ts +1 -1
- package/packages/database/src/repositories/aiInfra/index.test.ts +1 -1
- package/packages/database/src/repositories/compression/index.test.ts +1 -1
- package/packages/database/src/repositories/dataExporter/index.test.ts +1 -1
- package/packages/database/src/repositories/dataImporter/__tests__/index.test.ts +1 -1
- package/packages/database/src/repositories/dataImporter/deprecated/__tests__/index.test.ts +2 -2
- package/packages/database/src/repositories/home/__tests__/index.test.ts +1 -1
- package/packages/database/src/repositories/home/index.test.ts +1 -1
- package/packages/database/src/repositories/knowledge/index.test.ts +1 -1
- package/packages/database/src/repositories/search/index.test.ts +1 -1
- package/packages/database/src/repositories/topicImporter/__tests__/importTopic.test.ts +1 -1
- package/packages/database/src/repositories/userMemory/__tests__/UserMemoryTopicRepository.test.ts +1 -1
- package/packages/database/src/server/models/__tests__/adapter.test.ts +2 -2
- package/packages/database/src/server/models/__tests__/user.test.ts +2 -2
- package/packages/database/tests/test-utils.ts +1 -1
- package/packages/types/src/auth.ts +0 -4
- package/packages/types/src/export.ts +1 -1
- package/packages/types/src/index.ts +0 -1
- package/packages/utils/src/server/xor.test.ts +1 -2
- package/src/app/(backend)/_deprecated/createBizOpenAI/auth.test.ts +7 -41
- package/src/app/(backend)/_deprecated/createBizOpenAI/auth.ts +1 -15
- package/src/app/(backend)/_deprecated/createBizOpenAI/index.ts +2 -9
- package/src/app/(backend)/middleware/auth/index.ts +0 -1
- package/src/app/(backend)/middleware/auth/utils.test.ts +2 -42
- package/src/app/(backend)/middleware/auth/utils.ts +3 -17
- package/src/app/(backend)/webapi/chat/[provider]/route.test.ts +0 -5
- package/src/app/(backend)/webapi/models/[provider]/route.test.ts +0 -6
- package/src/app/(backend)/webapi/plugin/gateway/route.ts +2 -32
- package/src/app/[variants]/(main)/settings/common/features/Common/Common.tsx +1 -16
- package/src/features/ChatInput/ActionBar/Token/TokenTag.tsx +1 -0
- package/src/features/LibraryModal/AssignKnowledgeBase/List.tsx +12 -13
- package/src/features/ResourceManager/components/Explorer/MasonryView/index.tsx +1 -0
- package/src/locales/default/setting.ts +0 -3
- package/src/server/routers/lambda/__tests__/file.test.ts +76 -3
- package/src/server/routers/lambda/file.ts +13 -1
- package/src/services/config.ts +2 -16
- package/packages/database/src/core/dbForTest.ts +0 -43
- package/packages/database/src/core/migrations.json +0 -1080
- package/packages/database/src/models/__tests__/_util.ts +0 -30
- package/packages/database/src/repositories/tableViewer/index.test.ts +0 -255
- package/packages/database/src/repositories/tableViewer/index.ts +0 -251
- package/packages/types/src/tableViewer.ts +0 -30
- package/scripts/migrateClientDB/compile-migrations.ts +0 -14
|
@@ -5,7 +5,7 @@ import { ThreadStatus, ThreadType } from '@/types/index';
|
|
|
5
5
|
import { messages, sessions, threads, topics, users } from '../../../schemas';
|
|
6
6
|
import { LobeChatDatabase } from '../../../type';
|
|
7
7
|
import { MessageModel } from '../../message';
|
|
8
|
-
import { getTestDB } from '
|
|
8
|
+
import { getTestDB } from '../../../core/getTestDB';
|
|
9
9
|
|
|
10
10
|
const userId = 'message-task-user-test';
|
|
11
11
|
const sessionId = 'message-task-session';
|
|
@@ -6,7 +6,7 @@ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
|
6
6
|
import { messageGroups, messages, topics, users } from '../../../schemas';
|
|
7
7
|
import { LobeChatDatabase } from '../../../type';
|
|
8
8
|
import { MessageModel } from '../../message';
|
|
9
|
-
import { getTestDB } from '
|
|
9
|
+
import { getTestDB } from '../../../core/getTestDB';
|
|
10
10
|
|
|
11
11
|
const userId = 'message-query-perf-test-user';
|
|
12
12
|
const topicId = 'perf-test-topic-1';
|
|
@@ -6,7 +6,7 @@ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
|
6
6
|
import { messageGroups, messages, topics, users } from '../../../schemas';
|
|
7
7
|
import { LobeChatDatabase } from '../../../type';
|
|
8
8
|
import { MessageModel } from '../../message';
|
|
9
|
-
import { getTestDB } from '
|
|
9
|
+
import { getTestDB } from '../../../core/getTestDB';
|
|
10
10
|
|
|
11
11
|
const userId = 'message-query-test-user';
|
|
12
12
|
const topicId = 'test-topic-1';
|
|
@@ -4,7 +4,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
|
4
4
|
import { oauthHandoffs } from '../../schemas';
|
|
5
5
|
import { LobeChatDatabase } from '../../type';
|
|
6
6
|
import { OAuthHandoffModel } from '../oauthHandoff';
|
|
7
|
-
import { getTestDB } from '
|
|
7
|
+
import { getTestDB } from '../../core/getTestDB';
|
|
8
8
|
|
|
9
9
|
const serverDB: LobeChatDatabase = await getTestDB();
|
|
10
10
|
const oauthHandoffModel = new OAuthHandoffModel(serverDB);
|
|
@@ -4,7 +4,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
|
4
4
|
import { LobeChatDatabase } from '../../type';
|
|
5
5
|
import { NewInstalledPlugin, userInstalledPlugins, users } from '../../schemas';
|
|
6
6
|
import { PluginModel } from '../plugin';
|
|
7
|
-
import { getTestDB } from '
|
|
7
|
+
import { getTestDB } from '../../core/getTestDB';
|
|
8
8
|
|
|
9
9
|
const serverDB: LobeChatDatabase = await getTestDB();
|
|
10
10
|
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
import { LobeChatDatabase } from '../../type';
|
|
18
18
|
import { idGenerator } from '../../utils/idGenerator';
|
|
19
19
|
import { SessionModel } from '../session';
|
|
20
|
-
import { getTestDB } from '
|
|
20
|
+
import { getTestDB } from '../../core/getTestDB';
|
|
21
21
|
|
|
22
22
|
const serverDB: LobeChatDatabase = await getTestDB();
|
|
23
23
|
|
|
@@ -5,7 +5,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
|
5
5
|
import { sessionGroups, users } from '../../schemas';
|
|
6
6
|
import { LobeChatDatabase } from '../../type';
|
|
7
7
|
import { SessionGroupModel } from '../sessionGroup';
|
|
8
|
-
import { getTestDB } from '
|
|
8
|
+
import { getTestDB } from '../../core/getTestDB';
|
|
9
9
|
|
|
10
10
|
const serverDB: LobeChatDatabase = await getTestDB();
|
|
11
11
|
|
|
@@ -5,7 +5,7 @@ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
|
5
5
|
import { sessions, threads, topics, users } from '../../schemas';
|
|
6
6
|
import { LobeChatDatabase } from '../../type';
|
|
7
7
|
import { ThreadModel } from '../thread';
|
|
8
|
-
import { getTestDB } from '
|
|
8
|
+
import { getTestDB } from '../../core/getTestDB';
|
|
9
9
|
|
|
10
10
|
const userId = 'thread-user-test';
|
|
11
11
|
const otherUserId = 'other-user-test';
|
|
@@ -5,7 +5,7 @@ import { documents, sessions, topicDocuments, topics, users } from '../../schema
|
|
|
5
5
|
import { LobeChatDatabase } from '../../type';
|
|
6
6
|
import { DocumentModel } from '../document';
|
|
7
7
|
import { TopicDocumentModel } from '../topicDocument';
|
|
8
|
-
import { getTestDB } from '
|
|
8
|
+
import { getTestDB } from '../../core/getTestDB';
|
|
9
9
|
|
|
10
10
|
const serverDB: LobeChatDatabase = await getTestDB();
|
|
11
11
|
|
|
@@ -4,7 +4,7 @@ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
|
4
4
|
import { agents, messages, sessions, topics, users } from '../../../schemas';
|
|
5
5
|
import { LobeChatDatabase } from '../../../type';
|
|
6
6
|
import { CreateTopicParams, TopicModel } from '../../topic';
|
|
7
|
-
import { getTestDB } from '
|
|
7
|
+
import { getTestDB } from '../../../core/getTestDB';
|
|
8
8
|
|
|
9
9
|
const userId = 'topic-create-user';
|
|
10
10
|
const userId2 = 'topic-create-user-2';
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from '../../../schemas';
|
|
13
13
|
import { LobeChatDatabase } from '../../../type';
|
|
14
14
|
import { TopicModel } from '../../topic';
|
|
15
|
-
import { getTestDB } from '
|
|
15
|
+
import { getTestDB } from '../../../core/getTestDB';
|
|
16
16
|
|
|
17
17
|
const userId = 'topic-delete-user';
|
|
18
18
|
const userId2 = 'topic-delete-user-2';
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from '../../../schemas';
|
|
12
12
|
import { LobeChatDatabase } from '../../../type';
|
|
13
13
|
import { TopicModel } from '../../topic';
|
|
14
|
-
import { getTestDB } from '
|
|
14
|
+
import { getTestDB } from '../../../core/getTestDB';
|
|
15
15
|
|
|
16
16
|
const userId = 'topic-query-user';
|
|
17
17
|
const userId2 = 'topic-query-user-2';
|
|
@@ -3,7 +3,7 @@ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
|
3
3
|
import { agents, agentsToSessions, messages, sessions, topics, users } from '../../../schemas';
|
|
4
4
|
import { LobeChatDatabase } from '../../../type';
|
|
5
5
|
import { TopicModel } from '../../topic';
|
|
6
|
-
import { getTestDB } from '
|
|
6
|
+
import { getTestDB } from '../../../core/getTestDB';
|
|
7
7
|
|
|
8
8
|
const userId = 'topic-stats-user';
|
|
9
9
|
const userId2 = 'topic-stats-user-2';
|
|
@@ -3,7 +3,7 @@ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
|
3
3
|
import { sessions, topics, users } from '../../../schemas';
|
|
4
4
|
import { LobeChatDatabase } from '../../../type';
|
|
5
5
|
import { TopicModel } from '../../topic';
|
|
6
|
-
import { getTestDB } from '
|
|
6
|
+
import { getTestDB } from '../../../core/getTestDB';
|
|
7
7
|
|
|
8
8
|
const userId = 'topic-update-user';
|
|
9
9
|
const sessionId = 'topic-update-session';
|
|
@@ -5,7 +5,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
|
5
5
|
import { nextauthAccounts, userSettings, users } from '../../schemas';
|
|
6
6
|
import { LobeChatDatabase } from '../../type';
|
|
7
7
|
import { ListUsersForMemoryExtractorCursor, UserModel, UserNotFoundError } from '../user';
|
|
8
|
-
import { getTestDB } from '
|
|
8
|
+
import { getTestDB } from '../../core/getTestDB';
|
|
9
9
|
|
|
10
10
|
const userId = 'user-model-test';
|
|
11
11
|
const otherUserId = 'other-user-test';
|
|
@@ -9,7 +9,7 @@ import { idGenerator } from '@/database/utils/idGenerator';
|
|
|
9
9
|
import { userMemoriesIdentities, users } from '../../schemas';
|
|
10
10
|
import { LobeChatDatabase } from '../../type';
|
|
11
11
|
import { UserMemoryIdentityModel } from '../userMemory/identity';
|
|
12
|
-
import { getTestDB } from '
|
|
12
|
+
import { getTestDB } from '../../core/getTestDB';
|
|
13
13
|
|
|
14
14
|
// Helper to generate unique identity IDs
|
|
15
15
|
const genIdentityId = () => `mem_${nanoid(12)}`;
|
|
@@ -3,7 +3,7 @@ import { beforeEach, describe, expect, it } from 'vitest';
|
|
|
3
3
|
|
|
4
4
|
import { NewUserMemoryContext, userMemories, userMemoriesContexts, users } from '../../../schemas';
|
|
5
5
|
import { LobeChatDatabase } from '../../../type';
|
|
6
|
-
import { getTestDB } from '
|
|
6
|
+
import { getTestDB } from '../../../core/getTestDB';
|
|
7
7
|
import { UserMemoryContextModel } from '../context';
|
|
8
8
|
|
|
9
9
|
const userId = 'context-test-user';
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
users,
|
|
9
9
|
} from '../../../schemas';
|
|
10
10
|
import { LobeChatDatabase } from '../../../type';
|
|
11
|
-
import { getTestDB } from '
|
|
11
|
+
import { getTestDB } from '../../../core/getTestDB';
|
|
12
12
|
import { UserMemoryExperienceModel } from '../experience';
|
|
13
13
|
|
|
14
14
|
const userId = 'experience-test-user';
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
users,
|
|
10
10
|
} from '../../../schemas';
|
|
11
11
|
import { LobeChatDatabase } from '../../../type';
|
|
12
|
-
import { getTestDB } from '
|
|
12
|
+
import { getTestDB } from '../../../core/getTestDB';
|
|
13
13
|
import { UserMemoryIdentityModel } from '../identity';
|
|
14
14
|
|
|
15
15
|
const userId = 'identity-test-user';
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
users,
|
|
9
9
|
} from '../../../schemas';
|
|
10
10
|
import { LobeChatDatabase } from '../../../type';
|
|
11
|
-
import { getTestDB } from '
|
|
11
|
+
import { getTestDB } from '../../../core/getTestDB';
|
|
12
12
|
import { UserMemoryPreferenceModel } from '../preference';
|
|
13
13
|
|
|
14
14
|
const userId = 'preference-test-user';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { BUILTIN_AGENT_SLUGS } from '@lobechat/builtin-agents';
|
|
3
3
|
import { beforeEach, describe, expect, it } from 'vitest';
|
|
4
4
|
|
|
5
|
-
import { getTestDB } from '../../
|
|
5
|
+
import { getTestDB } from '../../core/getTestDB';
|
|
6
6
|
import { agents } from '../../schemas/agent';
|
|
7
7
|
import { chatGroups, chatGroupsAgents } from '../../schemas/chatGroup';
|
|
8
8
|
import { users } from '../../schemas/user';
|
package/packages/database/src/repositories/agentMigration/__tests__/agentMigrationRepo.test.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { eq, inArray } from 'drizzle-orm';
|
|
2
2
|
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
3
3
|
|
|
4
|
-
import { getTestDB } from '../../../
|
|
4
|
+
import { getTestDB } from '../../../core/getTestDB';
|
|
5
5
|
import { agents, messages, sessions, topics, users } from '../../../schemas';
|
|
6
6
|
import { LobeChatDatabase } from '../../../type';
|
|
7
7
|
import { AgentMigrationRepo } from '../index';
|
|
@@ -8,7 +8,7 @@ import { AiProviderModelListItem, EnabledAiModel } from 'model-bank';
|
|
|
8
8
|
import { DEFAULT_MODEL_PROVIDER_LIST } from 'model-bank/modelProviders';
|
|
9
9
|
import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
10
10
|
|
|
11
|
-
import { getTestDB } from '../../
|
|
11
|
+
import { getTestDB } from '../../core/getTestDB';
|
|
12
12
|
import { LobeChatDatabase } from '../../type';
|
|
13
13
|
import { AiInfraRepos } from './index';
|
|
14
14
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { MessageGroupType } from '@lobechat/types';
|
|
3
3
|
import { beforeEach, describe, expect, it } from 'vitest';
|
|
4
4
|
|
|
5
|
-
import { getTestDB } from '../../
|
|
5
|
+
import { getTestDB } from '../../core/getTestDB';
|
|
6
6
|
import { messageGroups, messages } from '../../schemas/message';
|
|
7
7
|
import { topics } from '../../schemas/topic';
|
|
8
8
|
import { users } from '../../schemas/user';
|
|
@@ -2,7 +2,7 @@ import type { ImportPgDataStructure } from '@lobechat/types';
|
|
|
2
2
|
import { eq, inArray } from 'drizzle-orm';
|
|
3
3
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
4
4
|
|
|
5
|
-
import { getTestDB } from '../../../
|
|
5
|
+
import { getTestDB } from '../../../core/getTestDB';
|
|
6
6
|
import * as Schema from '../../../schemas';
|
|
7
7
|
import { DataImporterRepos } from '../index';
|
|
8
8
|
import agentsData from './fixtures/agents.json';
|
|
@@ -3,7 +3,7 @@ import type { ImporterEntryData } from '@lobechat/types';
|
|
|
3
3
|
import { eq, inArray } from 'drizzle-orm';
|
|
4
4
|
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { getTestDB } from '../../../../core/getTestDB';
|
|
7
7
|
import {
|
|
8
8
|
agents,
|
|
9
9
|
agentsToSessions,
|
|
@@ -19,7 +19,7 @@ import mockImportData from './fixtures/messages.json';
|
|
|
19
19
|
|
|
20
20
|
const CURRENT_CONFIG_VERSION = 7;
|
|
21
21
|
|
|
22
|
-
const serverDB = await
|
|
22
|
+
const serverDB = await getTestDB();
|
|
23
23
|
|
|
24
24
|
const userId = 'test-user-id';
|
|
25
25
|
let importer: DataImporterRepos;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { eq } from 'drizzle-orm';
|
|
2
2
|
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
3
3
|
|
|
4
|
-
import { getTestDB } from '../../../
|
|
4
|
+
import { getTestDB } from '../../../core/getTestDB';
|
|
5
5
|
import * as Schema from '../../../schemas';
|
|
6
6
|
import { HomeRepository } from '../index';
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @vitest-environment node
|
|
2
2
|
import { beforeEach, describe, expect, it } from 'vitest';
|
|
3
3
|
|
|
4
|
-
import { getTestDB } from '../../
|
|
4
|
+
import { getTestDB } from '../../core/getTestDB';
|
|
5
5
|
import { NewAgent, agents } from '../../schemas/agent';
|
|
6
6
|
import { NewChatGroup, chatGroups } from '../../schemas/chatGroup';
|
|
7
7
|
import { agentsToSessions } from '../../schemas/relations';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { FilesTabs } from '@lobechat/types';
|
|
3
3
|
import { beforeEach, describe, expect, it } from 'vitest';
|
|
4
4
|
|
|
5
|
-
import { getTestDB } from '../../
|
|
5
|
+
import { getTestDB } from '../../core/getTestDB';
|
|
6
6
|
import { NewDocument, documents } from '../../schemas/file';
|
|
7
7
|
import { NewFile, files } from '../../schemas/file';
|
|
8
8
|
import { users } from '../../schemas/user';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @vitest-environment node
|
|
2
2
|
import { beforeEach, describe, expect, it } from 'vitest';
|
|
3
3
|
|
|
4
|
-
import { getTestDB } from '../../
|
|
4
|
+
import { getTestDB } from '../../core/getTestDB';
|
|
5
5
|
import { NewAgent, agents } from '../../schemas/agent';
|
|
6
6
|
import { NewFile, files } from '../../schemas/file';
|
|
7
7
|
import { messages } from '../../schemas/message';
|
|
@@ -4,7 +4,7 @@ import { readFileSync } from 'node:fs';
|
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
6
6
|
|
|
7
|
-
import { getTestDB } from '../../../
|
|
7
|
+
import { getTestDB } from '../../../core/getTestDB';
|
|
8
8
|
import { agents, messagePlugins, messages, topics, users } from '../../../schemas';
|
|
9
9
|
import { LobeChatDatabase } from '../../../type';
|
|
10
10
|
import { TopicImporterRepo } from '../index';
|
package/packages/database/src/repositories/userMemory/__tests__/UserMemoryTopicRepository.test.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @vitest-environment node
|
|
2
2
|
import { beforeEach, describe, expect, it } from 'vitest';
|
|
3
3
|
|
|
4
|
-
import { getTestDB } from '../../../
|
|
4
|
+
import { getTestDB } from '../../../core/getTestDB';
|
|
5
5
|
import { messages } from '../../../schemas/message';
|
|
6
6
|
import { topics } from '../../../schemas/topic';
|
|
7
7
|
import { users } from '../../../schemas/user';
|
|
@@ -3,7 +3,7 @@ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
|
3
3
|
|
|
4
4
|
import { DrizzleAdapter } from '@/libs/oidc-provider/adapter';
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { getTestDB } from '../../../core/getTestDB';
|
|
7
7
|
import { users } from '../../../schemas';
|
|
8
8
|
import {
|
|
9
9
|
oidcAccessTokens,
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
oidcSessions,
|
|
15
15
|
} from '../../../schemas/oidc';
|
|
16
16
|
|
|
17
|
-
let serverDB = await
|
|
17
|
+
let serverDB = await getTestDB();
|
|
18
18
|
|
|
19
19
|
// Test data
|
|
20
20
|
const testModelName = 'Session';
|
|
@@ -7,12 +7,12 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
|
7
7
|
|
|
8
8
|
import { KeyVaultsGateKeeper } from '@/server/modules/KeyVaultsEncrypt';
|
|
9
9
|
|
|
10
|
-
import {
|
|
10
|
+
import { getTestDB } from '../../../core/getTestDB';
|
|
11
11
|
import { SessionModel } from '../../../models/session';
|
|
12
12
|
import { UserModel, UserNotFoundError } from '../../../models/user';
|
|
13
13
|
import { UserSettingsItem, nextauthAccounts, userSettings, users } from '../../../schemas';
|
|
14
14
|
|
|
15
|
-
let serverDB = await
|
|
15
|
+
let serverDB = await getTestDB();
|
|
16
16
|
|
|
17
17
|
const userId = 'user-db';
|
|
18
18
|
const userEmail = 'user@example.com';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from '../src/
|
|
1
|
+
export * from '../src/core/getTestDB';
|
|
@@ -7,7 +7,6 @@ describe('getXorPayload', () => {
|
|
|
7
7
|
it('should correctly decode XOR obfuscated payload with user data', () => {
|
|
8
8
|
const originalPayload = {
|
|
9
9
|
userId: '001362c3-48c5-4635-bd3b-837bfff58fc0',
|
|
10
|
-
accessCode: 'test-access-code',
|
|
11
10
|
apiKey: 'test-api-key',
|
|
12
11
|
baseURL: 'https://api.example.com',
|
|
13
12
|
};
|
|
@@ -86,7 +85,7 @@ describe('getXorPayload', () => {
|
|
|
86
85
|
it('should handle payload with undefined values', () => {
|
|
87
86
|
const originalPayload = {
|
|
88
87
|
userId: 'test-user',
|
|
89
|
-
|
|
88
|
+
baseURL: undefined,
|
|
90
89
|
apiKey: 'test-key',
|
|
91
90
|
};
|
|
92
91
|
|
|
@@ -1,53 +1,19 @@
|
|
|
1
1
|
// @vitest-environment node
|
|
2
2
|
import { checkAuth } from './auth';
|
|
3
3
|
|
|
4
|
-
describe('
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
beforeEach(() => {
|
|
8
|
-
auth = false;
|
|
9
|
-
process.env.ACCESS_CODE = undefined;
|
|
10
|
-
// Reset environment variables before each test case
|
|
11
|
-
vi.restoreAllMocks();
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
it('set multiple access codes', () => {
|
|
15
|
-
process.env.ACCESS_CODE = ',code1,code2,code3';
|
|
16
|
-
({ auth } = checkAuth({ accessCode: 'code1' }));
|
|
17
|
-
expect(auth).toBe(true);
|
|
18
|
-
({ auth } = checkAuth({ accessCode: 'code2' }));
|
|
19
|
-
expect(auth).toBe(true);
|
|
20
|
-
({ auth } = checkAuth({ accessCode: 'code1,code2' }));
|
|
21
|
-
expect(auth).toBe(false);
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
it('set individual access code', () => {
|
|
25
|
-
process.env.ACCESS_CODE = 'code1';
|
|
26
|
-
({ auth } = checkAuth({ accessCode: 'code1' }));
|
|
4
|
+
describe('checkAuth', () => {
|
|
5
|
+
it('should pass with oauth authorized', () => {
|
|
6
|
+
const { auth } = checkAuth({ oauthAuthorized: true });
|
|
27
7
|
expect(auth).toBe(true);
|
|
28
|
-
({ auth } = checkAuth({ accessCode: 'code2' }));
|
|
29
|
-
expect(auth).toBe(false);
|
|
30
8
|
});
|
|
31
9
|
|
|
32
|
-
it('
|
|
33
|
-
|
|
34
|
-
({ auth } = checkAuth({ accessCode: 'code1' }));
|
|
35
|
-
expect(auth).toBe(true);
|
|
36
|
-
({ auth } = checkAuth({}));
|
|
10
|
+
it('should pass with api key', () => {
|
|
11
|
+
const { auth } = checkAuth({ apiKey: 'test-api-key' });
|
|
37
12
|
expect(auth).toBe(true);
|
|
38
13
|
});
|
|
39
14
|
|
|
40
|
-
it('
|
|
41
|
-
|
|
42
|
-
({ auth } = checkAuth({ accessCode: 'code1' }));
|
|
43
|
-
expect(auth).toBe(true);
|
|
44
|
-
({ auth } = checkAuth({}));
|
|
45
|
-
expect(auth).toBe(true);
|
|
46
|
-
|
|
47
|
-
process.env.ACCESS_CODE = ',,';
|
|
48
|
-
({ auth } = checkAuth({ accessCode: 'code1' }));
|
|
49
|
-
expect(auth).toBe(true);
|
|
50
|
-
({ auth } = checkAuth({}));
|
|
15
|
+
it('should pass with no params', () => {
|
|
16
|
+
const { auth } = checkAuth({});
|
|
51
17
|
expect(auth).toBe(true);
|
|
52
18
|
});
|
|
53
19
|
});
|
|
@@ -1,32 +1,18 @@
|
|
|
1
|
-
import { ChatErrorType } from '@lobechat/types';
|
|
2
|
-
|
|
3
|
-
import { getAppConfig } from '@/envs/app';
|
|
4
|
-
|
|
5
1
|
interface AuthConfig {
|
|
6
|
-
accessCode?: string | null;
|
|
7
2
|
apiKey?: string | null;
|
|
8
3
|
oauthAuthorized?: boolean;
|
|
9
4
|
}
|
|
10
5
|
|
|
11
|
-
export const checkAuth = ({ apiKey,
|
|
6
|
+
export const checkAuth = ({ apiKey, oauthAuthorized }: AuthConfig) => {
|
|
12
7
|
// If authorized by oauth
|
|
13
8
|
if (oauthAuthorized) {
|
|
14
9
|
return { auth: true };
|
|
15
10
|
}
|
|
16
11
|
|
|
17
|
-
const { ACCESS_CODES } = getAppConfig();
|
|
18
|
-
|
|
19
12
|
// if apiKey exist
|
|
20
13
|
if (apiKey) {
|
|
21
14
|
return { auth: true };
|
|
22
15
|
}
|
|
23
16
|
|
|
24
|
-
// if accessCode doesn't exist
|
|
25
|
-
if (!ACCESS_CODES.length) return { auth: true };
|
|
26
|
-
|
|
27
|
-
if (!accessCode || !ACCESS_CODES.includes(accessCode)) {
|
|
28
|
-
return { auth: false, error: ChatErrorType.InvalidAccessCode };
|
|
29
|
-
}
|
|
30
|
-
|
|
31
17
|
return { auth: true };
|
|
32
18
|
};
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { ChatErrorType
|
|
1
|
+
import { ChatErrorType } from '@lobechat/types';
|
|
2
2
|
import type OpenAI from 'openai';
|
|
3
3
|
|
|
4
4
|
import { getOpenAIAuthFromRequest } from '@/const/fetch';
|
|
5
5
|
import { createErrorResponse } from '@/utils/errorResponse';
|
|
6
6
|
|
|
7
|
-
import { checkAuth } from './auth';
|
|
8
7
|
import { createOpenai } from './createOpenai';
|
|
9
8
|
|
|
10
9
|
/**
|
|
@@ -13,13 +12,7 @@ import { createOpenai } from './createOpenai';
|
|
|
13
12
|
* if auth not pass ,just return error response
|
|
14
13
|
*/
|
|
15
14
|
export const createBizOpenAI = (req: Request): Response | OpenAI => {
|
|
16
|
-
const { apiKey,
|
|
17
|
-
|
|
18
|
-
const result = checkAuth({ accessCode, apiKey, oauthAuthorized });
|
|
19
|
-
|
|
20
|
-
if (!result.auth) {
|
|
21
|
-
return createErrorResponse(result.error as ErrorType);
|
|
22
|
-
}
|
|
15
|
+
const { apiKey, endpoint } = getOpenAIAuthFromRequest(req);
|
|
23
16
|
|
|
24
17
|
let openai: OpenAI;
|
|
25
18
|
|