@lobehub/chat 1.42.6 → 1.43.1

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.
Files changed (140) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/changelog/v1.json +21 -0
  3. package/docs/.cdn.cache.json +1 -0
  4. package/docs/changelog/2025-01-03-user-profile.mdx +27 -0
  5. package/docs/changelog/2025-01-03-user-profile.zh-CN.mdx +26 -0
  6. package/docs/self-hosting/advanced/auth/next-auth/wechat.mdx +3 -1
  7. package/docs/self-hosting/advanced/auth/next-auth/wechat.zh-CN.mdx +2 -2
  8. package/locales/ar/auth.json +83 -4
  9. package/locales/bg-BG/auth.json +82 -3
  10. package/locales/de-DE/auth.json +85 -6
  11. package/locales/en-US/auth.json +85 -6
  12. package/locales/es-ES/auth.json +82 -3
  13. package/locales/fa-IR/auth.json +84 -5
  14. package/locales/fr-FR/auth.json +85 -6
  15. package/locales/it-IT/auth.json +83 -4
  16. package/locales/ja-JP/auth.json +83 -4
  17. package/locales/ko-KR/auth.json +82 -3
  18. package/locales/nl-NL/auth.json +83 -4
  19. package/locales/pl-PL/auth.json +83 -4
  20. package/locales/pt-BR/auth.json +83 -4
  21. package/locales/ru-RU/auth.json +82 -3
  22. package/locales/tr-TR/auth.json +82 -3
  23. package/locales/vi-VN/auth.json +82 -3
  24. package/locales/zh-CN/auth.json +82 -3
  25. package/locales/zh-TW/auth.json +82 -3
  26. package/package.json +4 -3
  27. package/src/app/(main)/(mobile)/me/(home)/__tests__/UserBanner.test.tsx +4 -0
  28. package/src/app/(main)/(mobile)/me/(home)/__tests__/useCategory.test.tsx +0 -46
  29. package/src/app/(main)/(mobile)/me/(home)/features/UserBanner.tsx +11 -14
  30. package/src/app/(main)/(mobile)/me/(home)/features/useCategory.tsx +6 -21
  31. package/src/app/(main)/(mobile)/me/profile/features/Category.tsx +38 -21
  32. package/src/app/(main)/(mobile)/me/profile/layout.tsx +0 -3
  33. package/src/app/(main)/(mobile)/me/profile/page.tsx +3 -3
  34. package/src/app/(main)/chat/loading.tsx +2 -2
  35. package/src/app/(main)/discover/loading.tsx +2 -8
  36. package/src/app/(main)/files/loading.tsx +2 -2
  37. package/src/app/(main)/profile/(home)/Client.tsx +53 -0
  38. package/src/app/(main)/profile/(home)/[[...slugs]]/page.tsx +38 -0
  39. package/src/app/(main)/profile/@category/default.tsx +9 -0
  40. package/src/app/(main)/profile/@category/features/CategoryContent.tsx +38 -0
  41. package/src/app/(main)/profile/_layout/Desktop/Header.tsx +85 -0
  42. package/src/app/(main)/profile/_layout/Desktop/SideBar.tsx +42 -0
  43. package/src/app/(main)/profile/_layout/Desktop/index.tsx +48 -0
  44. package/src/app/(main)/profile/_layout/Mobile/Header.tsx +23 -5
  45. package/src/app/(main)/profile/_layout/Mobile/index.tsx +12 -5
  46. package/src/app/(main)/profile/_layout/type.ts +6 -0
  47. package/src/app/(main)/profile/error.tsx +5 -0
  48. package/src/app/(main)/profile/features/ClerkProfile.tsx +72 -0
  49. package/src/app/(main)/profile/hooks/useCategory.tsx +51 -0
  50. package/src/app/(main)/profile/layout.tsx +7 -17
  51. package/src/app/(main)/profile/loading.tsx +2 -22
  52. package/src/app/(main)/profile/not-found.tsx +3 -0
  53. package/src/app/(main)/profile/security/page.tsx +34 -0
  54. package/src/app/(main)/profile/stats/Client.tsx +52 -0
  55. package/src/app/(main)/profile/stats/features/AiHeatmaps.tsx +130 -0
  56. package/src/app/(main)/profile/stats/features/AssistantsRank.tsx +115 -0
  57. package/src/app/(main)/profile/stats/features/ModelsRank.tsx +84 -0
  58. package/src/app/(main)/profile/stats/features/ShareButton/Preview.tsx +159 -0
  59. package/src/app/(main)/profile/stats/features/ShareButton/ShareModal.tsx +87 -0
  60. package/src/app/(main)/profile/stats/features/ShareButton/TotalCard.tsx +39 -0
  61. package/src/app/(main)/profile/stats/features/ShareButton/index.tsx +26 -0
  62. package/src/app/(main)/profile/stats/features/TimeLabel.tsx +30 -0
  63. package/src/app/(main)/profile/stats/features/TopicsRank.tsx +104 -0
  64. package/src/app/(main)/profile/stats/features/TotalAssistants.tsx +56 -0
  65. package/src/app/(main)/profile/stats/features/TotalMessages.tsx +56 -0
  66. package/src/app/(main)/profile/stats/features/TotalTopics.tsx +53 -0
  67. package/src/app/(main)/profile/stats/features/TotalWords.tsx +54 -0
  68. package/src/app/(main)/profile/stats/features/Welcome.tsx +86 -0
  69. package/src/app/(main)/profile/{[[...slugs]] → stats}/page.tsx +4 -5
  70. package/src/app/(main)/repos/[id]/evals/dataset/page.tsx +2 -2
  71. package/src/app/(main)/repos/[id]/evals/evaluation/page.tsx +2 -2
  72. package/src/app/(main)/settings/@category/features/CategoryContent.tsx +1 -1
  73. package/src/app/(main)/settings/_layout/Desktop/index.tsx +1 -1
  74. package/src/app/(main)/settings/_layout/Mobile/Header.tsx +1 -1
  75. package/src/app/(main)/settings/_layout/Mobile/index.tsx +2 -0
  76. package/src/app/(main)/settings/common/features/Theme/index.tsx +2 -17
  77. package/src/app/(main)/settings/loading.tsx +2 -2
  78. package/src/components/Loading/BrandTextLoading/index.tsx +2 -2
  79. package/src/components/Statistic/index.tsx +15 -0
  80. package/src/components/StatisticCard/TitleWithPercentage.tsx +80 -0
  81. package/src/components/StatisticCard/growthPercentage.tsx +8 -0
  82. package/src/components/StatisticCard/index.tsx +209 -0
  83. package/src/const/url.ts +3 -3
  84. package/src/database/server/models/__tests__/message.test.ts +346 -35
  85. package/src/database/server/models/__tests__/session.test.ts +185 -2
  86. package/src/database/server/models/__tests__/topic.test.ts +136 -0
  87. package/src/database/server/models/__tests__/user.test.ts +140 -1
  88. package/src/database/server/models/message.ts +109 -14
  89. package/src/database/server/models/session.ts +76 -4
  90. package/src/database/server/models/topic.ts +44 -3
  91. package/src/database/server/models/user.ts +22 -0
  92. package/src/database/utils/genWhere.ts +39 -0
  93. package/src/features/ShareModal/ShareImage/index.tsx +11 -24
  94. package/src/features/ShareModal/ShareImage/type.ts +1 -6
  95. package/src/features/User/DataStatistics.tsx +21 -14
  96. package/src/features/User/UserPanel/PanelContent.tsx +12 -16
  97. package/src/features/User/UserPanel/useMenu.tsx +4 -6
  98. package/src/features/User/__tests__/PanelContent.test.tsx +4 -0
  99. package/src/features/User/__tests__/useMenu.test.tsx +1 -21
  100. package/src/hooks/useActiveTabKey.ts +34 -1
  101. package/src/{features/ShareModal/ShareImage → hooks}/useScreenshot.ts +51 -6
  102. package/src/locales/default/auth.ts +81 -2
  103. package/src/server/ld.test.ts +1 -1
  104. package/src/server/modules/AssistantStore/index.ts +3 -2
  105. package/src/server/routers/lambda/message.ts +35 -6
  106. package/src/server/routers/lambda/session.ts +17 -3
  107. package/src/server/routers/lambda/topic.ts +17 -3
  108. package/src/server/routers/lambda/user.ts +4 -0
  109. package/src/server/services/changelog/index.ts +1 -1
  110. package/src/services/message/_deprecated.ts +16 -0
  111. package/src/services/message/client.test.ts +0 -18
  112. package/src/services/message/client.ts +12 -9
  113. package/src/services/message/server.ts +12 -4
  114. package/src/services/message/type.ts +15 -3
  115. package/src/services/session/_deprecated.ts +5 -0
  116. package/src/services/session/client.ts +6 -2
  117. package/src/services/session/server.ts +6 -2
  118. package/src/services/session/type.ts +7 -1
  119. package/src/services/topic/_deprecated.ts +5 -0
  120. package/src/services/topic/client.ts +6 -2
  121. package/src/services/topic/server.ts +7 -1
  122. package/src/services/topic/type.ts +7 -2
  123. package/src/services/user/_deprecated.ts +4 -0
  124. package/src/services/user/client.ts +4 -0
  125. package/src/services/user/server.ts +4 -0
  126. package/src/services/user/type.ts +5 -0
  127. package/src/store/global/initialState.ts +6 -0
  128. package/src/store/user/slices/auth/action.test.ts +1 -33
  129. package/src/store/user/slices/auth/action.ts +0 -9
  130. package/src/store/user/slices/common/action.test.ts +2 -2
  131. package/src/types/message/index.ts +5 -0
  132. package/src/types/session/index.ts +8 -0
  133. package/src/types/topic/topic.ts +7 -0
  134. package/src/utils/format.ts +1 -1
  135. package/src/utils/time.ts +23 -0
  136. package/src/app/(main)/profile/[[...slugs]]/Client.tsx +0 -76
  137. package/src/components/Loading/BrandTextLoading/LobeChatText/SVG.tsx +0 -44
  138. package/src/components/Loading/BrandTextLoading/LobeChatText/index.tsx +0 -6
  139. package/src/components/Loading/BrandTextLoading/LobeChatText/style.css +0 -32
  140. package/src/hooks/useActiveSettingsKey.ts +0 -20
@@ -1,8 +1,87 @@
1
1
  {
2
+ "date": {
3
+ "prevMonth": "Último Mês",
4
+ "recent30Days": "Últimos 30 Dias"
5
+ },
6
+ "header": {
7
+ "desc": "Gerencie as informações da sua conta.",
8
+ "title": "Conta"
9
+ },
10
+ "heatmaps": {
11
+ "legend": {
12
+ "less": "Inativo",
13
+ "more": "Ativo"
14
+ },
15
+ "months": {
16
+ "apr": "Abr",
17
+ "aug": "Ago",
18
+ "dec": "Dez",
19
+ "feb": "Fev",
20
+ "jan": "Jan",
21
+ "jul": "Jul",
22
+ "jun": "Jun",
23
+ "mar": "Mar",
24
+ "may": "Mai",
25
+ "nov": "Nov",
26
+ "oct": "Out",
27
+ "sep": "Set"
28
+ },
29
+ "tooltip": "{{date}} enviou {{count}} mensagens naquele dia",
30
+ "totalCount": "Um total de {{count}} mensagens enviadas no último ano"
31
+ },
2
32
  "login": "Entrar",
3
- "loginOrSignup": "Entrar / Registrar",
4
- "profile": "Perfil",
5
- "security": "Segurança",
33
+ "loginOrSignup": "Entrar / Cadastrar",
34
+ "profile": {
35
+ "avatar": "Avatar",
36
+ "email": "Endereço de E-mail",
37
+ "username": "Nome de Usuário"
38
+ },
6
39
  "signout": "Sair",
7
- "signup": "Cadastre-se"
40
+ "signup": "Cadastrar",
41
+ "stats": {
42
+ "aiheatmaps": "Índice de Atividade",
43
+ "assistants": "Assistentes",
44
+ "assistantsRank": {
45
+ "left": "Assistente",
46
+ "right": "Tópicos",
47
+ "title": "Ranking de Uso do Assistente"
48
+ },
49
+ "createdAt": "Registrado em",
50
+ "days": "dias",
51
+ "empty": {
52
+ "desc": "Por favor, acumule mais dados de chat para visualizar",
53
+ "title": "Sem Dados"
54
+ },
55
+ "lastYearActivity": "atividade no último ano",
56
+ "loginGuide": {
57
+ "f1": "Obter uso gratuito",
58
+ "f2": "Sincronizar mensagens em vários dispositivos",
59
+ "f3": "Ter assistentes ricos",
60
+ "f4": "Explorar poderosos plugins",
61
+ "title": "Após o login, você pode:"
62
+ },
63
+ "messages": "Mensagens",
64
+ "modelsRank": {
65
+ "left": "Modelo",
66
+ "right": "Mensagens",
67
+ "title": "Ranking de Uso do Modelo"
68
+ },
69
+ "share": {
70
+ "title": "Meu Índice de Atividade de IA"
71
+ },
72
+ "topics": "Tópicos",
73
+ "topicsRank": {
74
+ "left": "Tópico",
75
+ "right": "Mensagens",
76
+ "title": "Ranking de Conteúdo do Tópico"
77
+ },
78
+ "updatedAt": "Atualizado em",
79
+ "welcome": "{{username}}, este é seu <span>{{days}}</span> dia com {{appName}}",
80
+ "words": "Palavras"
81
+ },
82
+ "tab": {
83
+ "profile": "Perfil",
84
+ "security": "Segurança",
85
+ "stats": "Estatísticas"
86
+ }
8
87
  }
@@ -1,8 +1,87 @@
1
1
  {
2
+ "date": {
3
+ "prevMonth": "Прошлый месяц",
4
+ "recent30Days": "Последние 30 дней"
5
+ },
6
+ "header": {
7
+ "desc": "Управляйте информацией о своей учетной записи.",
8
+ "title": "Учетная запись"
9
+ },
10
+ "heatmaps": {
11
+ "legend": {
12
+ "less": "Неактивный",
13
+ "more": "Активный"
14
+ },
15
+ "months": {
16
+ "apr": "Апр",
17
+ "aug": "Авг",
18
+ "dec": "Дек",
19
+ "feb": "Фев",
20
+ "jan": "Янв",
21
+ "jul": "Июл",
22
+ "jun": "Июн",
23
+ "mar": "Мар",
24
+ "may": "Май",
25
+ "nov": "Ноя",
26
+ "oct": "Окт",
27
+ "sep": "Сен"
28
+ },
29
+ "tooltip": "{{date}} отправил {{count}} сообщений в этот день",
30
+ "totalCount": "Всего {{count}} сообщений отправлено за последний год"
31
+ },
2
32
  "login": "Войти",
3
33
  "loginOrSignup": "Войти / Зарегистрироваться",
4
- "profile": "Профиль",
5
- "security": "Безопасность",
34
+ "profile": {
35
+ "avatar": "Аватар",
36
+ "email": "Электронная почта",
37
+ "username": "Имя пользователя"
38
+ },
6
39
  "signout": "Выйти",
7
- "signup": "Зарегистрироваться"
40
+ "signup": "Зарегистрироваться",
41
+ "stats": {
42
+ "aiheatmaps": "Индекс активности",
43
+ "assistants": "Ассистенты",
44
+ "assistantsRank": {
45
+ "left": "Ассистент",
46
+ "right": "Темы",
47
+ "title": "Рейтинг использования ассистентов"
48
+ },
49
+ "createdAt": "Зарегистрирован",
50
+ "days": "дней",
51
+ "empty": {
52
+ "desc": "Пожалуйста, накопите больше данных чата для просмотра",
53
+ "title": "Нет данных"
54
+ },
55
+ "lastYearActivity": "активность за последний год",
56
+ "loginGuide": {
57
+ "f1": "Получите бесплатный объем",
58
+ "f2": "Синхронизируйте сообщения на разных устройствах",
59
+ "f3": "Имеете доступ к богатым помощникам",
60
+ "f4": "Исследуйте мощные плагины",
61
+ "title": "После входа в систему вы можете:"
62
+ },
63
+ "messages": "Сообщения",
64
+ "modelsRank": {
65
+ "left": "Модель",
66
+ "right": "Сообщения",
67
+ "title": "Рейтинг использования моделей"
68
+ },
69
+ "share": {
70
+ "title": "Мой индекс активности ИИ"
71
+ },
72
+ "topics": "Темы",
73
+ "topicsRank": {
74
+ "left": "Тема",
75
+ "right": "Сообщения",
76
+ "title": "Рейтинг содержания тем"
77
+ },
78
+ "updatedAt": "Обновлено",
79
+ "welcome": "{{username}}, это ваш <span>{{days}}</span> день с {{appName}}",
80
+ "words": "Слова"
81
+ },
82
+ "tab": {
83
+ "profile": "Профиль",
84
+ "security": "Безопасность",
85
+ "stats": "Статистика"
86
+ }
8
87
  }
@@ -1,8 +1,87 @@
1
1
  {
2
+ "date": {
3
+ "prevMonth": "Geçen Ay",
4
+ "recent30Days": "Son 30 Gün"
5
+ },
6
+ "header": {
7
+ "desc": "Hesap bilgilerinizi yönetin.",
8
+ "title": "Hesap"
9
+ },
10
+ "heatmaps": {
11
+ "legend": {
12
+ "less": "Pasif",
13
+ "more": "Aktif"
14
+ },
15
+ "months": {
16
+ "apr": "Nis",
17
+ "aug": "Ağu",
18
+ "dec": "Ara",
19
+ "feb": "Şub",
20
+ "jan": "Oca",
21
+ "jul": "Tem",
22
+ "jun": "Haz",
23
+ "mar": "Mar",
24
+ "may": "May",
25
+ "nov": "Kas",
26
+ "oct": "Eki",
27
+ "sep": "Eyl"
28
+ },
29
+ "tooltip": "{{date}} tarihinde {{count}} mesaj gönderildi",
30
+ "totalCount": "Geçen yıl toplam {{count}} mesaj gönderildi"
31
+ },
2
32
  "login": "Giriş Yap",
3
33
  "loginOrSignup": "Giriş Yap / Kayıt Ol",
4
- "profile": "Profil",
5
- "security": "Güvenlik",
34
+ "profile": {
35
+ "avatar": "Avatar",
36
+ "email": "E-posta Adresi",
37
+ "username": "Kullanıcı Adı"
38
+ },
6
39
  "signout": "Çıkış Yap",
7
- "signup": "Kaydol"
40
+ "signup": "Kayıt Ol",
41
+ "stats": {
42
+ "aiheatmaps": "Aktivite İndeksi",
43
+ "assistants": "Asistanlar",
44
+ "assistantsRank": {
45
+ "left": "Asistan",
46
+ "right": "Konu",
47
+ "title": "Asistan Kullanım Sıralaması"
48
+ },
49
+ "createdAt": "Kayıtlı olduğu tarih",
50
+ "days": "gün",
51
+ "empty": {
52
+ "desc": "Görüntülemek için daha fazla sohbet verisi biriktirin",
53
+ "title": "Veri Yok"
54
+ },
55
+ "lastYearActivity": "geçen yılki aktivite",
56
+ "loginGuide": {
57
+ "f1": "Ücretsiz kullanım al",
58
+ "f2": "Çoklu cihazda mesaj senkronizasyonu",
59
+ "f3": "Zengin asistanlara sahip ol",
60
+ "f4": "Güçlü eklentileri keşfet",
61
+ "title": "Giriş yaptıktan sonra şunları yapabilirsiniz:"
62
+ },
63
+ "messages": "Mesajlar",
64
+ "modelsRank": {
65
+ "left": "Model",
66
+ "right": "Mesajlar",
67
+ "title": "Model Kullanım Sıralaması"
68
+ },
69
+ "share": {
70
+ "title": "AI Aktivite İndeksim"
71
+ },
72
+ "topics": "Konu",
73
+ "topicsRank": {
74
+ "left": "Konu",
75
+ "right": "Mesajlar",
76
+ "title": "Konu İçerik Sıralaması"
77
+ },
78
+ "updatedAt": "Güncellenme tarihi",
79
+ "welcome": "{{username}}, bu {{appName}} ile geçirdiğin <span>{{days}}</span> gün.",
80
+ "words": "Toplam kelime sayısı"
81
+ },
82
+ "tab": {
83
+ "profile": "Profil",
84
+ "security": "Güvenlik",
85
+ "stats": "İstatistikler"
86
+ }
8
87
  }
@@ -1,8 +1,87 @@
1
1
  {
2
+ "date": {
3
+ "prevMonth": "Tháng trước",
4
+ "recent30Days": "30 ngày qua"
5
+ },
6
+ "header": {
7
+ "desc": "Quản lý thông tin tài khoản của bạn.",
8
+ "title": "Tài khoản"
9
+ },
10
+ "heatmaps": {
11
+ "legend": {
12
+ "less": "Không hoạt động",
13
+ "more": "Hoạt động"
14
+ },
15
+ "months": {
16
+ "apr": "Th4",
17
+ "aug": "Th8",
18
+ "dec": "Th12",
19
+ "feb": "Th2",
20
+ "jan": "Th1",
21
+ "jul": "Th7",
22
+ "jun": "Th6",
23
+ "mar": "Th3",
24
+ "may": "Th5",
25
+ "nov": "Th11",
26
+ "oct": "Th10",
27
+ "sep": "Th9"
28
+ },
29
+ "tooltip": "{{date}} đã gửi {{count}} tin nhắn trong ngày đó",
30
+ "totalCount": "Tổng cộng {{count}} tin nhắn đã gửi trong năm qua"
31
+ },
2
32
  "login": "Đăng nhập",
3
33
  "loginOrSignup": "Đăng nhập / Đăng ký",
4
- "profile": "Hồ sơ cá nhân",
5
- "security": "Bảo mật",
34
+ "profile": {
35
+ "avatar": "Ảnh đại diện",
36
+ "email": "Địa chỉ email",
37
+ "username": "Tên người dùng"
38
+ },
6
39
  "signout": "Đăng xuất",
7
- "signup": "Đăng ký"
40
+ "signup": "Đăng ký",
41
+ "stats": {
42
+ "aiheatmaps": "Chỉ số hoạt động",
43
+ "assistants": "Trợ lý",
44
+ "assistantsRank": {
45
+ "left": "Trợ lý",
46
+ "right": "Chủ đề",
47
+ "title": "Xếp hạng sử dụng trợ lý"
48
+ },
49
+ "createdAt": "Đăng ký vào",
50
+ "days": "ngày",
51
+ "empty": {
52
+ "desc": "Vui lòng tích lũy thêm dữ liệu trò chuyện để xem",
53
+ "title": "Không có dữ liệu"
54
+ },
55
+ "lastYearActivity": "hoạt động trong năm qua",
56
+ "loginGuide": {
57
+ "f1": "Nhận lượng sử dụng miễn phí",
58
+ "f2": "Đồng bộ tin nhắn trên nhiều thiết bị",
59
+ "f3": "Sở hữu trợ lý phong phú",
60
+ "f4": "Khám phá các plugin mạnh mẽ",
61
+ "title": "Sau khi đăng nhập, bạn có thể:"
62
+ },
63
+ "messages": "Tin nhắn",
64
+ "modelsRank": {
65
+ "left": "Mô hình",
66
+ "right": "Tin nhắn",
67
+ "title": "Xếp hạng sử dụng mô hình"
68
+ },
69
+ "share": {
70
+ "title": "Chỉ số hoạt động AI của tôi"
71
+ },
72
+ "topics": "Chủ đề",
73
+ "topicsRank": {
74
+ "left": "Chủ đề",
75
+ "right": "Tin nhắn",
76
+ "title": "Xếp hạng nội dung chủ đề"
77
+ },
78
+ "updatedAt": "Cập nhật vào",
79
+ "welcome": "{{username}}, đây là ngày <span>{{days}}</span> của bạn với {{appName}}",
80
+ "words": "Từ"
81
+ },
82
+ "tab": {
83
+ "profile": "Hồ sơ",
84
+ "security": "Bảo mật",
85
+ "stats": "Thống kê"
86
+ }
8
87
  }
@@ -1,8 +1,87 @@
1
1
  {
2
+ "date": {
3
+ "prevMonth": "上个月",
4
+ "recent30Days": "最近30天"
5
+ },
6
+ "header": {
7
+ "desc": "管理您的账户信息。",
8
+ "title": "账户"
9
+ },
10
+ "heatmaps": {
11
+ "legend": {
12
+ "less": "不活跃",
13
+ "more": "活跃"
14
+ },
15
+ "months": {
16
+ "apr": "四月",
17
+ "aug": "八月",
18
+ "dec": "十二月",
19
+ "feb": "二月",
20
+ "jan": "一月",
21
+ "jul": "七月",
22
+ "jun": "六月",
23
+ "mar": "三月",
24
+ "may": "五月",
25
+ "nov": "十一月",
26
+ "oct": "十月",
27
+ "sep": "九月"
28
+ },
29
+ "tooltip": "{{date}} 当日发送 {{count}} 条消息",
30
+ "totalCount": "过去一年共发送 {{count}} 条消息"
31
+ },
2
32
  "login": "登录",
3
33
  "loginOrSignup": "登录 / 注册",
4
- "profile": "个人资料",
5
- "security": "安全",
34
+ "profile": {
35
+ "avatar": "头像",
36
+ "email": "电子邮件地址",
37
+ "username": "用户名"
38
+ },
6
39
  "signout": "退出登录",
7
- "signup": "注册"
40
+ "signup": "注册",
41
+ "stats": {
42
+ "aiheatmaps": "AI 指数",
43
+ "assistants": "助手数",
44
+ "assistantsRank": {
45
+ "left": "助手名称",
46
+ "right": "话题数",
47
+ "title": "助手使用率"
48
+ },
49
+ "createdAt": "用户创建于",
50
+ "days": "天",
51
+ "empty": {
52
+ "desc": "请积累更多聊天数据后查看",
53
+ "title": "暂无数据"
54
+ },
55
+ "lastYearActivity": "过去一年活跃度",
56
+ "loginGuide": {
57
+ "f1": "获取免费用量",
58
+ "f2": "多端同步消息",
59
+ "f3": "拥有丰富助手",
60
+ "f4": "探索强大插件",
61
+ "title": "登陆后你可以:"
62
+ },
63
+ "messages": "消息数",
64
+ "modelsRank": {
65
+ "left": "模型名称",
66
+ "right": "消息数",
67
+ "title": "模型使用率"
68
+ },
69
+ "share": {
70
+ "title": "我的 AI 活跃指数"
71
+ },
72
+ "topics": "话题数",
73
+ "topicsRank": {
74
+ "left": "话题名称",
75
+ "right": "消息数",
76
+ "title": "话题内容量"
77
+ },
78
+ "updatedAt": "数据更新至",
79
+ "welcome": "{{username}}, 这是你和 {{appName}} 相伴的第 <span>{{days}}</span> 天",
80
+ "words": "累计字数"
81
+ },
82
+ "tab": {
83
+ "profile": "个人资料",
84
+ "security": "安全",
85
+ "stats": "数据统计"
86
+ }
8
87
  }
@@ -1,8 +1,87 @@
1
1
  {
2
+ "date": {
3
+ "prevMonth": "上個月",
4
+ "recent30Days": "最近30天"
5
+ },
6
+ "header": {
7
+ "desc": "管理您的帳戶資訊。",
8
+ "title": "帳戶"
9
+ },
10
+ "heatmaps": {
11
+ "legend": {
12
+ "less": "不活躍",
13
+ "more": "活躍"
14
+ },
15
+ "months": {
16
+ "apr": "四月",
17
+ "aug": "八月",
18
+ "dec": "十二月",
19
+ "feb": "二月",
20
+ "jan": "一月",
21
+ "jul": "七月",
22
+ "jun": "六月",
23
+ "mar": "三月",
24
+ "may": "五月",
25
+ "nov": "十一月",
26
+ "oct": "十月",
27
+ "sep": "九月"
28
+ },
29
+ "tooltip": "{{date}} 當日發送 {{count}} 條消息",
30
+ "totalCount": "過去一年共發送 {{count}} 條消息"
31
+ },
2
32
  "login": "登入",
3
33
  "loginOrSignup": "登入 / 註冊",
4
- "profile": "個人檔案",
5
- "security": "安全",
34
+ "profile": {
35
+ "avatar": "頭像",
36
+ "email": "電子郵件地址",
37
+ "username": "用戶名"
38
+ },
6
39
  "signout": "登出",
7
- "signup": "註冊"
40
+ "signup": "註冊",
41
+ "stats": {
42
+ "aiheatmaps": "AI 指數",
43
+ "assistants": "助手數",
44
+ "assistantsRank": {
45
+ "left": "助手名稱",
46
+ "right": "話題數",
47
+ "title": "助手使用率"
48
+ },
49
+ "createdAt": "用戶創建於",
50
+ "days": "天",
51
+ "empty": {
52
+ "desc": "請累積更多聊天數據後查看",
53
+ "title": "暫無數據"
54
+ },
55
+ "lastYearActivity": "過去一年活躍度",
56
+ "loginGuide": {
57
+ "f1": "獲取免費用量",
58
+ "f2": "多端同步消息",
59
+ "f3": "擁有豐富助手",
60
+ "f4": "探索強大插件",
61
+ "title": "登錄後你可以:"
62
+ },
63
+ "messages": "消息數",
64
+ "modelsRank": {
65
+ "left": "模型名稱",
66
+ "right": "消息數",
67
+ "title": "模型使用率"
68
+ },
69
+ "share": {
70
+ "title": "我的 AI 活躍指數"
71
+ },
72
+ "topics": "話題數",
73
+ "topicsRank": {
74
+ "left": "話題名稱",
75
+ "right": "消息數",
76
+ "title": "話題內容量"
77
+ },
78
+ "updatedAt": "數據更新至",
79
+ "welcome": "{{username}}, 這是你和 {{appName}} 相伴的第 <span>{{days}}</span> 天",
80
+ "words": "總字數"
81
+ },
82
+ "tab": {
83
+ "profile": "個人資料",
84
+ "security": "安全",
85
+ "stats": "數據統計"
86
+ }
8
87
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/chat",
3
- "version": "1.42.6",
3
+ "version": "1.43.1",
4
4
  "description": "Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.",
5
5
  "keywords": [
6
6
  "framework",
@@ -125,11 +125,12 @@
125
125
  "@icons-pack/react-simple-icons": "9.6.0",
126
126
  "@khmyznikov/pwa-install": "^0.3.9",
127
127
  "@langchain/community": "^0.3.0",
128
+ "@lobehub/charts": "^1.9.12",
128
129
  "@lobehub/chat-plugin-sdk": "^1.32.4",
129
130
  "@lobehub/chat-plugins-gateway": "^1.9.0",
130
131
  "@lobehub/icons": "^1.56.0",
131
132
  "@lobehub/tts": "^1.25.1",
132
- "@lobehub/ui": "^1.155.8",
133
+ "@lobehub/ui": "^1.156.3",
133
134
  "@neondatabase/serverless": "^0.10.1",
134
135
  "@next/third-parties": "^15.0.0",
135
136
  "@react-spring/web": "^9.7.5",
@@ -176,7 +177,7 @@
176
177
  "mammoth": "^1.8.0",
177
178
  "modern-screenshot": "^4.4.39",
178
179
  "nanoid": "^5.0.7",
179
- "next": "^15.1.2",
180
+ "next": "^15.1.3",
180
181
  "next-auth": "beta",
181
182
  "next-mdx-remote": "^4.4.1",
182
183
  "nextjs-toploader": "^3.7.15",
@@ -24,6 +24,10 @@ vi.mock('@/features/User/UserLoginOrSignup/Community', () => ({
24
24
  default: vi.fn(() => <div>Mocked UserLoginOrSignup</div>),
25
25
  }));
26
26
 
27
+ vi.mock('@/const/version', () => ({
28
+ isDeprecatedEdition: false,
29
+ }));
30
+
27
31
  // 定义一个变量来存储 enableAuth 的值
28
32
  let enableAuth = true;
29
33
  let enableClerk = false;
@@ -57,26 +57,6 @@ describe('useCategory', () => {
57
57
 
58
58
  const { result } = renderHook(() => useCategory(), { wrapper });
59
59
 
60
- act(() => {
61
- const items = result.current;
62
- expect(items.some((item) => item.key === 'profile')).toBe(false);
63
- expect(items.some((item) => item.key === 'setting')).toBe(true);
64
- expect(items.some((item) => item.key === 'data')).toBe(true);
65
- expect(items.some((item) => item.key === 'docs')).toBe(true);
66
- expect(items.some((item) => item.key === 'feedback')).toBe(true);
67
- expect(items.some((item) => item.key === 'changelog')).toBe(true);
68
- });
69
- });
70
-
71
- it('should return correct items when the user is logged in with Clerk', () => {
72
- act(() => {
73
- useUserStore.setState({ isSignedIn: true });
74
- });
75
- enableAuth = true;
76
- enableClerk = true;
77
-
78
- const { result } = renderHook(() => useCategory(), { wrapper });
79
-
80
60
  act(() => {
81
61
  const items = result.current;
82
62
  expect(items.some((item) => item.key === 'profile')).toBe(true);
@@ -88,31 +68,6 @@ describe('useCategory', () => {
88
68
  });
89
69
  });
90
70
 
91
- it('should return correct items when the user is logged in with NextAuth', () => {
92
- act(() => {
93
- useUserStore.setState({
94
- isSignedIn: true,
95
- enableAuth: () => true,
96
- enabledNextAuth: true,
97
- });
98
- });
99
- enableClerk = false;
100
-
101
- const { result } = renderHook(() => useCategory(), { wrapper });
102
-
103
- act(() => {
104
- const items = result.current;
105
- // Should not render profile for NextAuth, it's Clerk only
106
- expect(items.some((item) => item.key === 'profile')).toBe(false);
107
- expect(items.some((item) => item.key === 'setting')).toBe(true);
108
- expect(items.some((item) => item.key === 'data')).toBe(true);
109
- expect(items.some((item) => item.key === 'docs')).toBe(true);
110
- expect(items.some((item) => item.key === 'feedback')).toBe(true);
111
- expect(items.some((item) => item.key === 'changelog')).toBe(true);
112
- expect(items.some((item) => item.key === 'nextauthSignout')).toBe(true);
113
- });
114
- });
115
-
116
71
  it('should return correct items when the user is not logged in', () => {
117
72
  act(() => {
118
73
  useUserStore.setState({ isSignedIn: false, enableAuth: () => true });
@@ -128,7 +83,6 @@ describe('useCategory', () => {
128
83
  expect(items.some((item) => item.key === 'docs')).toBe(true);
129
84
  expect(items.some((item) => item.key === 'feedback')).toBe(true);
130
85
  expect(items.some((item) => item.key === 'changelog')).toBe(true);
131
- expect(items.some((item) => item.key === 'nextauthSignout')).toBe(false);
132
86
  });
133
87
  });
134
88