@manonero/chat-client-sdk 0.0.1-beta.5 → 0.0.1-beta.6
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/README.md +131 -35
- package/dist/ChatClient.d.ts +3 -0
- package/dist/ChatClient.d.ts.map +1 -1
- package/dist/ChatClient.js +2 -0
- package/dist/ChatClient.js.map +1 -1
- package/dist/http/ConversationApi.d.ts +8 -5
- package/dist/http/ConversationApi.d.ts.map +1 -1
- package/dist/http/ConversationApi.js +11 -11
- package/dist/http/ConversationApi.js.map +1 -1
- package/dist/http/SearchApi.d.ts +39 -0
- package/dist/http/SearchApi.d.ts.map +1 -0
- package/dist/http/SearchApi.js +44 -0
- package/dist/http/SearchApi.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types/search.d.ts +47 -0
- package/dist/types/search.d.ts.map +1 -0
- package/dist/types/search.js +3 -0
- package/dist/types/search.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -13,19 +13,20 @@
|
|
|
13
13
|
5. [Participant — ParticipantApi](#5-participant--participantapi)
|
|
14
14
|
6. [Conversation — ConversationApi](#6-conversation--conversationapi)
|
|
15
15
|
7. [Message — MessageApi](#7-message--messageapi)
|
|
16
|
-
8. [
|
|
17
|
-
9. [
|
|
18
|
-
10. [
|
|
19
|
-
11. [
|
|
20
|
-
12. [
|
|
21
|
-
13. [Real-time:
|
|
22
|
-
14. [
|
|
23
|
-
15. [
|
|
24
|
-
16. [
|
|
25
|
-
17. [
|
|
26
|
-
18. [
|
|
27
|
-
19. [
|
|
28
|
-
20. [
|
|
16
|
+
8. [Tìm kiếm — SearchApi](#8-tìm-kiếm--searchapi)
|
|
17
|
+
9. [File — FileApi](#9-file--fileapi)
|
|
18
|
+
10. [Bot — BotApi](#10-bot--botapi)
|
|
19
|
+
11. [Proxy — ProxyApi](#11-proxy--proxyapi)
|
|
20
|
+
12. [Health — HealthApi](#12-health--healthapi)
|
|
21
|
+
13. [Real-time: ChatHubClient](#13-real-time-chathubclient)
|
|
22
|
+
14. [Real-time: NotificationHubClient](#14-real-time-notificationhubclient)
|
|
23
|
+
15. [ReconnectionManager](#15-reconnectionmanager)
|
|
24
|
+
16. [Hệ thống Block (nội dung tin nhắn)](#16-hệ-thống-block-nội-dung-tin-nhắn)
|
|
25
|
+
17. [Toàn bộ kiểu dữ liệu (Types)](#17-toàn-bộ-kiểu-dữ-liệu-types)
|
|
26
|
+
18. [Xử lý lỗi — ChatApiError](#18-xử-lý-lỗi--chatapierror)
|
|
27
|
+
19. [TypedEventEmitter](#19-typedeventemitter)
|
|
28
|
+
20. [Lưu ý quan trọng](#20-lưu-ý-quan-trọng)
|
|
29
|
+
21. [Ví dụ đầy đủ](#21-ví-dụ-đầy-đủ)
|
|
29
30
|
|
|
30
31
|
---
|
|
31
32
|
|
|
@@ -37,6 +38,7 @@ ChatClient (facade chính)
|
|
|
37
38
|
├── participants → ParticipantApi (quản lý người dùng)
|
|
38
39
|
├── conversations → ConversationApi (quản lý cuộc hội thoại)
|
|
39
40
|
├── messages → MessageApi (tin nhắn)
|
|
41
|
+
├── search → SearchApi (tìm kiếm tổng hợp conversations + messages)
|
|
40
42
|
├── files → FileApi (upload/download file)
|
|
41
43
|
├── bots → BotApi (quản lý bot)
|
|
42
44
|
├── proxy → ProxyApi (proxy đến backend khác)
|
|
@@ -217,6 +219,7 @@ new ChatClient(options: ChatClientOptions)
|
|
|
217
219
|
| `participants` | `ParticipantApi` | Quản lý participant |
|
|
218
220
|
| `conversations` | `ConversationApi` | Quản lý cuộc hội thoại |
|
|
219
221
|
| `messages` | `MessageApi` | Thao tác với tin nhắn |
|
|
222
|
+
| `search` | `SearchApi` | Tìm kiếm tổng hợp conversations + messages |
|
|
220
223
|
| `files` | `FileApi` | Upload/download file |
|
|
221
224
|
| `bots` | `BotApi` | Quản lý bot |
|
|
222
225
|
| `proxy` | `ProxyApi` | Proxy đến backend khác |
|
|
@@ -435,20 +438,24 @@ const conv = await client.conversations.create({
|
|
|
435
438
|
});
|
|
436
439
|
```
|
|
437
440
|
|
|
438
|
-
|
|
441
|
+
> ⚠️ **Đã gỡ bỏ `conversations.search()`** — endpoint backend `GET /api/conversations/search` không còn được proxy qua gateway (trả `404`). Dùng endpoint tìm kiếm tổng hợp `client.search.search()` thay thế — xem [mục 8 — SearchApi](#8-tìm-kiếm--searchapi).
|
|
439
442
|
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
```ts
|
|
443
|
-
const results = await client.conversations.search('team', 10);
|
|
444
|
-
```
|
|
445
|
-
|
|
446
|
-
### `getById(id: string): Promise<ConversationDto>`
|
|
443
|
+
### `getById(id, options?): Promise<ConversationDto>`
|
|
447
444
|
|
|
448
445
|
```ts
|
|
446
|
+
// Mặc định: bao gồm danh sách thành viên
|
|
449
447
|
const conv = await client.conversations.getById('conv-id-here');
|
|
448
|
+
|
|
449
|
+
// Bỏ danh sách thành viên để giảm payload — khi đó `participants` trả về []
|
|
450
|
+
const light = await client.conversations.getById('conv-id-here', {
|
|
451
|
+
includeParticipants: false,
|
|
452
|
+
});
|
|
450
453
|
```
|
|
451
454
|
|
|
455
|
+
| Param | Kiểu | Mặc định | Mô tả |
|
|
456
|
+
|-------|------|----------|-------|
|
|
457
|
+
| `options.includeParticipants` | `boolean` | `true` | Đặt `false` để bỏ mảng `participants` khỏi response (spec §6.4). Khi `false`, `participants` là `[]`. |
|
|
458
|
+
|
|
452
459
|
### `update(id, request): Promise<ConversationDto>`
|
|
453
460
|
|
|
454
461
|
```ts
|
|
@@ -661,12 +668,14 @@ const newer = await client.messages.getHistory('conv-id', {
|
|
|
661
668
|
|
|
662
669
|
### `search(conversationId, query, limit?): Promise<MessageDto[]>`
|
|
663
670
|
|
|
664
|
-
Full-text search trong cuộc hội thoại.
|
|
671
|
+
Full-text search **trong phạm vi một cuộc hội thoại** (`GET /api/conversations/{conversationId}/messages/search`, spec §7.3).
|
|
665
672
|
|
|
666
673
|
```ts
|
|
667
674
|
const results = await client.messages.search('conv-id', 'từ khóa tìm kiếm', 20);
|
|
668
675
|
```
|
|
669
676
|
|
|
677
|
+
> ℹ️ Để tìm kiếm **xuyên suốt tất cả** cuộc hội thoại và tin nhắn, dùng `client.search.search()` — xem [mục 8 — SearchApi](#8-tìm-kiếm--searchapi).
|
|
678
|
+
|
|
670
679
|
### `getById(messageId): Promise<MessageDto>`
|
|
671
680
|
|
|
672
681
|
```ts
|
|
@@ -773,7 +782,67 @@ interface EditMessageRequest {
|
|
|
773
782
|
|
|
774
783
|
---
|
|
775
784
|
|
|
776
|
-
## 8.
|
|
785
|
+
## 8. Tìm kiếm — SearchApi
|
|
786
|
+
|
|
787
|
+
**Truy cập:** `client.search`
|
|
788
|
+
|
|
789
|
+
Endpoint tìm kiếm tổng hợp do gateway cung cấp (`GET /api/search`, spec §6.3) — tìm **conversations**, **messages**, hoặc **cả hai** trong một request. Yêu cầu JWT.
|
|
790
|
+
|
|
791
|
+
> Endpoint này **thay thế** cho `GET /api/conversations/search` và `GET /api/messages/search` (global) của backend — hai endpoint đó không còn được proxy qua gateway. Việc tìm kiếm tin nhắn trong phạm vi **một** cuộc hội thoại vẫn dùng `client.messages.search()` (spec §7.3).
|
|
792
|
+
|
|
793
|
+
### `search(params): Promise<SearchResult>`
|
|
794
|
+
|
|
795
|
+
| Param | Kiểu | Mặc định | Mô tả |
|
|
796
|
+
|-------|------|----------|-------|
|
|
797
|
+
| `q` | `string` | — (**bắt buộc**) | Từ khóa tìm kiếm. Thiếu/rỗng → `400 Bad Request`. |
|
|
798
|
+
| `type` | `'MESSAGE' \| 'CONVERSATION' \| 'BOTH'` | `'BOTH'` | Phạm vi tìm kiếm. Giá trị khác → `400 Bad Request`. |
|
|
799
|
+
| `limit` | `number` | `20` | Số kết quả mỗi loại. |
|
|
800
|
+
| `cursor` | `string` | — | Phân trang — **chỉ áp dụng cho messages** (opaque `nextCursor` từ response trước). |
|
|
801
|
+
|
|
802
|
+
**Hành vi theo `type`:**
|
|
803
|
+
|
|
804
|
+
- `CONVERSATION` — tìm conversations; mỗi item kèm `lastMessage` (full `MessageDto`). `messages` trả về `null`.
|
|
805
|
+
- `MESSAGE` — tìm messages, **gom nhóm theo conversation**; mỗi nhóm kèm thông tin `conversation`. Phân trang (`nextCursor`/`hasMore`) phản ánh messages. `conversations` trả về `null`.
|
|
806
|
+
- `BOTH` — thực hiện cả hai (mặc định).
|
|
807
|
+
|
|
808
|
+
> Response **luôn có cả hai key** `conversations` và `messages`; phần không được yêu cầu bởi `type` sẽ là `null`.
|
|
809
|
+
|
|
810
|
+
```ts
|
|
811
|
+
// Tìm cả hai loại (mặc định)
|
|
812
|
+
const result = await client.search.search({ q: 'hello' });
|
|
813
|
+
|
|
814
|
+
// Conversations: kiểm tra lastMessage.isDeleted trước khi hiển thị
|
|
815
|
+
for (const conv of result.conversations ?? []) {
|
|
816
|
+
const preview = conv.lastMessage?.isDeleted
|
|
817
|
+
? 'Tin nhắn đã xóa'
|
|
818
|
+
: conv.lastMessage?.plainTextIndex ?? '';
|
|
819
|
+
console.log(conv.name, preview);
|
|
820
|
+
}
|
|
821
|
+
|
|
822
|
+
// Messages: gom nhóm theo conversation
|
|
823
|
+
for (const group of result.messages?.groups ?? []) {
|
|
824
|
+
console.log('Trong:', group.conversation?.name ?? '(không rõ)');
|
|
825
|
+
for (const msg of group.messages) console.log(' -', msg.plainTextIndex);
|
|
826
|
+
}
|
|
827
|
+
```
|
|
828
|
+
|
|
829
|
+
```ts
|
|
830
|
+
// Chỉ tìm messages + phân trang
|
|
831
|
+
let page = await client.search.search({ q: 'hello', type: 'MESSAGE', limit: 20 });
|
|
832
|
+
while (page.messages?.hasMore) {
|
|
833
|
+
page = await client.search.search({
|
|
834
|
+
q: 'hello',
|
|
835
|
+
type: 'MESSAGE',
|
|
836
|
+
cursor: page.messages.nextCursor!, // opaque string — KHÔNG cast sang number
|
|
837
|
+
});
|
|
838
|
+
}
|
|
839
|
+
```
|
|
840
|
+
|
|
841
|
+
> ⚠️ Giống `client.conversations.list()`, backend **không** filter `isDeleted` cho `lastMessage` — client **phải** tự kiểm tra `lastMessage.isDeleted` trước khi hiển thị. Nếu batch fetch lỗi, `lastMessage` (của conversation) hoặc `conversation` (của nhóm message) có thể là `null` (degrade graceful).
|
|
842
|
+
|
|
843
|
+
---
|
|
844
|
+
|
|
845
|
+
## 9. File — FileApi
|
|
777
846
|
|
|
778
847
|
**Truy cập:** `client.files`
|
|
779
848
|
|
|
@@ -873,7 +942,7 @@ interface UploadResponse {
|
|
|
873
942
|
|
|
874
943
|
---
|
|
875
944
|
|
|
876
|
-
##
|
|
945
|
+
## 10. Bot — BotApi
|
|
877
946
|
|
|
878
947
|
**Truy cập:** `client.bots`
|
|
879
948
|
|
|
@@ -1005,7 +1074,7 @@ interface UpdateBotRequest {
|
|
|
1005
1074
|
|
|
1006
1075
|
---
|
|
1007
1076
|
|
|
1008
|
-
##
|
|
1077
|
+
## 11. Proxy — ProxyApi
|
|
1009
1078
|
|
|
1010
1079
|
**Truy cập:** `client.proxy`
|
|
1011
1080
|
|
|
@@ -1062,7 +1131,7 @@ const result = await client.proxy.request<unknown>('myservice', 'api/resource/12
|
|
|
1062
1131
|
|
|
1063
1132
|
---
|
|
1064
1133
|
|
|
1065
|
-
##
|
|
1134
|
+
## 12. Health — HealthApi
|
|
1066
1135
|
|
|
1067
1136
|
**Truy cập:** `client.health`
|
|
1068
1137
|
|
|
@@ -1082,7 +1151,7 @@ const ready = await client.health.ready(); // "Healthy"
|
|
|
1082
1151
|
|
|
1083
1152
|
---
|
|
1084
1153
|
|
|
1085
|
-
##
|
|
1154
|
+
## 13. Real-time: ChatHubClient
|
|
1086
1155
|
|
|
1087
1156
|
**Truy cập:** `client.realtime.chat`
|
|
1088
1157
|
|
|
@@ -1340,7 +1409,7 @@ client.realtime.chat.on('streamAborted', (dto) => {
|
|
|
1340
1409
|
|
|
1341
1410
|
---
|
|
1342
1411
|
|
|
1343
|
-
##
|
|
1412
|
+
## 14. Real-time: NotificationHubClient
|
|
1344
1413
|
|
|
1345
1414
|
**Truy cập:** `client.realtime.notifications`
|
|
1346
1415
|
|
|
@@ -1456,7 +1525,7 @@ interface ConversationUnpinnedDto {
|
|
|
1456
1525
|
|
|
1457
1526
|
---
|
|
1458
1527
|
|
|
1459
|
-
##
|
|
1528
|
+
## 15. ReconnectionManager
|
|
1460
1529
|
|
|
1461
1530
|
Class quản lý reconnect thủ công khi cả `withAutomaticReconnect` của SignalR đã thất bại và hub bị `disconnected`. Cung cấp exponential backoff và xử lý token hết hạn.
|
|
1462
1531
|
|
|
@@ -1490,7 +1559,7 @@ manager.stop();
|
|
|
1490
1559
|
|
|
1491
1560
|
---
|
|
1492
1561
|
|
|
1493
|
-
##
|
|
1562
|
+
## 16. Hệ thống Block (nội dung tin nhắn)
|
|
1494
1563
|
|
|
1495
1564
|
`Block` là **discriminated union** — mỗi block phân biệt bằng field `$type`.
|
|
1496
1565
|
|
|
@@ -1779,7 +1848,7 @@ interface Mention {
|
|
|
1779
1848
|
|
|
1780
1849
|
---
|
|
1781
1850
|
|
|
1782
|
-
##
|
|
1851
|
+
## 17. Toàn bộ kiểu dữ liệu (Types)
|
|
1783
1852
|
|
|
1784
1853
|
### CursorPaginatedResult (cursor-based)
|
|
1785
1854
|
|
|
@@ -1802,6 +1871,33 @@ interface PagedResult<T> {
|
|
|
1802
1871
|
}
|
|
1803
1872
|
```
|
|
1804
1873
|
|
|
1874
|
+
### SearchResult (GET /api/search — §8)
|
|
1875
|
+
|
|
1876
|
+
```ts
|
|
1877
|
+
type SearchType = 'MESSAGE' | 'CONVERSATION' | 'BOTH';
|
|
1878
|
+
|
|
1879
|
+
interface SearchResult {
|
|
1880
|
+
// null khi type=MESSAGE. Mỗi item có `lastMessage` đã hydrate —
|
|
1881
|
+
// kiểm tra lastMessage.isDeleted trước khi hiển thị.
|
|
1882
|
+
conversations: ConversationListItemDto[] | null;
|
|
1883
|
+
// null khi type=CONVERSATION.
|
|
1884
|
+
messages: SearchMessagesResult | null;
|
|
1885
|
+
}
|
|
1886
|
+
|
|
1887
|
+
interface SearchMessagesResult {
|
|
1888
|
+
groups: SearchMessageGroup[];
|
|
1889
|
+
nextCursor: string | null; // opaque — chỉ phân trang cho messages
|
|
1890
|
+
hasMore: boolean;
|
|
1891
|
+
}
|
|
1892
|
+
|
|
1893
|
+
interface SearchMessageGroup {
|
|
1894
|
+
// null nếu batch fetch conversation lỗi (degrade graceful).
|
|
1895
|
+
// `participants` luôn là [] (fetch với includeParticipants=false).
|
|
1896
|
+
conversation: ConversationDto | null;
|
|
1897
|
+
messages: MessageDto[];
|
|
1898
|
+
}
|
|
1899
|
+
```
|
|
1900
|
+
|
|
1805
1901
|
### MediaReference
|
|
1806
1902
|
|
|
1807
1903
|
```ts
|
|
@@ -2005,7 +2101,7 @@ interface ReactionAck {
|
|
|
2005
2101
|
|
|
2006
2102
|
---
|
|
2007
2103
|
|
|
2008
|
-
##
|
|
2104
|
+
## 18. Xử lý lỗi — ChatApiError
|
|
2009
2105
|
|
|
2010
2106
|
Tất cả lỗi HTTP đều throw `ChatApiError` (kế thừa `Error`).
|
|
2011
2107
|
|
|
@@ -2157,7 +2253,7 @@ manager.start();
|
|
|
2157
2253
|
|
|
2158
2254
|
---
|
|
2159
2255
|
|
|
2160
|
-
##
|
|
2256
|
+
## 19. TypedEventEmitter
|
|
2161
2257
|
|
|
2162
2258
|
SDK dùng `TypedEventEmitter<TEventMap>` nội bộ cho cả hai hub. Giao diện public của nó được expose qua `.on()` và `.off()`.
|
|
2163
2259
|
|
|
@@ -2187,7 +2283,7 @@ unsubs.forEach(fn => fn());
|
|
|
2187
2283
|
|
|
2188
2284
|
---
|
|
2189
2285
|
|
|
2190
|
-
##
|
|
2286
|
+
## 20. Lưu ý quan trọng
|
|
2191
2287
|
|
|
2192
2288
|
### Cursor pagination — KHÔNG cast sang number
|
|
2193
2289
|
|
|
@@ -2264,7 +2360,7 @@ console.log(participant.fullName); // Tên hiển thị của bot
|
|
|
2264
2360
|
|
|
2265
2361
|
---
|
|
2266
2362
|
|
|
2267
|
-
##
|
|
2363
|
+
## 21. Ví dụ đầy đủ
|
|
2268
2364
|
|
|
2269
2365
|
### Ví dụ 1: Chat app cơ bản
|
|
2270
2366
|
|
package/dist/ChatClient.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { FileApi } from './http/FileApi.js';
|
|
|
7
7
|
import { BotApi } from './http/BotApi.js';
|
|
8
8
|
import { ProxyApi } from './http/ProxyApi.js';
|
|
9
9
|
import { HealthApi } from './http/HealthApi.js';
|
|
10
|
+
import { SearchApi } from './http/SearchApi.js';
|
|
10
11
|
import { ChatHubClient } from './realtime/ChatHubClient.js';
|
|
11
12
|
import { NotificationHubClient } from './realtime/NotificationHubClient.js';
|
|
12
13
|
import type { AuthUserInfo } from './types/auth.js';
|
|
@@ -112,6 +113,8 @@ export declare class ChatClient {
|
|
|
112
113
|
readonly proxy: ProxyApi;
|
|
113
114
|
/** Health check endpoints */
|
|
114
115
|
readonly health: HealthApi;
|
|
116
|
+
/** Unified search (conversations + messages) */
|
|
117
|
+
readonly search: SearchApi;
|
|
115
118
|
/** SignalR hub clients */
|
|
116
119
|
readonly realtime: ChatClientRealtime;
|
|
117
120
|
private _currentUser;
|
package/dist/ChatClient.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatClient.d.ts","sourceRoot":"","sources":["../src/ChatClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAgB,YAAY,EAAgB,MAAM,iBAAiB,CAAC;AAoDhF,MAAM,WAAW,wBAAwB;IACvC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;;;;OAcG;IACH,aAAa,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACpC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,0CAA0C;IAC1C,cAAc,CAAC,EAAE,wBAAwB,CAAC;CAC3C;AAMD,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC;CAC/C;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,UAAU;IAKrB;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAgB;IAE9B;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAsB;IAM7D,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAEvB,6BAA6B;IAC7B,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC;IAEtC,8BAA8B;IAC9B,QAAQ,CAAC,aAAa,EAAE,eAAe,CAAC;IAExC,yBAAyB;IACzB,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAE9B,6BAA6B;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAExB,qBAAqB;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IAEzB,6BAA6B;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAM3B,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IAMtC,OAAO,CAAC,YAAY,CAA6B;IAEjD,+EAA+E;IAC/E,IAAI,WAAW,IAAI,YAAY,GAAG,IAAI,CAErC;gBAMW,OAAO,EAAE,iBAAiB;
|
|
1
|
+
{"version":3,"file":"ChatClient.d.ts","sourceRoot":"","sources":["../src/ChatClient.ts"],"names":[],"mappings":"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"}
|
package/dist/ChatClient.js
CHANGED
|
@@ -9,6 +9,7 @@ import { FileApi } from './http/FileApi.js';
|
|
|
9
9
|
import { BotApi } from './http/BotApi.js';
|
|
10
10
|
import { ProxyApi } from './http/ProxyApi.js';
|
|
11
11
|
import { HealthApi } from './http/HealthApi.js';
|
|
12
|
+
import { SearchApi } from './http/SearchApi.js';
|
|
12
13
|
import { ChatHubClient } from './realtime/ChatHubClient.js';
|
|
13
14
|
import { NotificationHubClient } from './realtime/NotificationHubClient.js';
|
|
14
15
|
// ---------------------------------------------------------------------------
|
|
@@ -123,6 +124,7 @@ export class ChatClient {
|
|
|
123
124
|
this.bots = new BotApi(http);
|
|
124
125
|
this.proxy = new ProxyApi(http);
|
|
125
126
|
this.health = new HealthApi(http);
|
|
127
|
+
this.search = new SearchApi(http);
|
|
126
128
|
// AuthApi is wrapped in InterceptingAuthApi to auto-set token + currentUser
|
|
127
129
|
this.auth = new InterceptingAuthApi(http, (res) => this._onLoginSuccess(res));
|
|
128
130
|
// Build SignalR hub URLs from baseUrl (strip trailing slash already done by HttpClient)
|
package/dist/ChatClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatClient.js","sourceRoot":"","sources":["../src/ChatClient.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAElC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAG5E,8EAA8E;AAC9E,uEAAuE;AACvE,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,mBAAoB,SAAQ,OAAO;IAGvC,YAAY,IAAgB,EAAE,SAAsC;QAClE,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAEQ,KAAK,CAAC,QAAgB,EAAE,IAAkB;QACjD,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAEQ,eAAe,CAAC,OAAe;QACtC,OAAO,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACjD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAEQ,kBAAkB,CAAC,KAAa;QACvC,OAAO,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YAClD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAEQ,YAAY,CAAC,QAAgB,EAAE,QAAgB;QACtD,OAAO,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACzD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAuDD,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,OAAO,UAAU;
|
|
1
|
+
{"version":3,"file":"ChatClient.js","sourceRoot":"","sources":["../src/ChatClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,12 +32,15 @@ export declare class ConversationApi {
|
|
|
32
32
|
/** POST /api/conversations */
|
|
33
33
|
create(request: CreateConversationRequest): Promise<ConversationDto>;
|
|
34
34
|
/**
|
|
35
|
-
* GET /api/conversations/
|
|
36
|
-
*
|
|
35
|
+
* GET /api/conversations/{id}?includeParticipants={bool}
|
|
36
|
+
*
|
|
37
|
+
* @param includeParticipants - Default `true`. Pass `false` to omit the
|
|
38
|
+
* participants array from the response (reduces payload). When `false`,
|
|
39
|
+
* `participants` is returned as `[]` (spec §6.4).
|
|
37
40
|
*/
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
+
getById(id: string, options?: {
|
|
42
|
+
includeParticipants?: boolean;
|
|
43
|
+
}): Promise<ConversationDto>;
|
|
41
44
|
/** PATCH /api/conversations/{id} */
|
|
42
45
|
update(id: string, request: UpdateConversationRequest): Promise<ConversationDto>;
|
|
43
46
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationApi.d.ts","sourceRoot":"","sources":["../../src/http/ConversationApi.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE;;;;;;;GAOG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;gBAEtB,IAAI,EAAE,UAAU;IAI5B;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;IAU3D,8BAA8B;IAC9B,MAAM,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,eAAe,CAAC;IAIpE
|
|
1
|
+
{"version":3,"file":"ConversationApi.d.ts","sourceRoot":"","sources":["../../src/http/ConversationApi.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE;;;;;;;GAOG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;gBAEtB,IAAI,EAAE,UAAU;IAI5B;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;IAU3D,8BAA8B;IAC9B,MAAM,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,eAAe,CAAC;IAIpE;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAS1F,oCAAoC;IACpC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,eAAe,CAAC;IAIhF;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjC;;;;OAIG;IACH,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhC;;;OAGG;IACH,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrF;;;OAGG;IACH,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/E;;;OAGG;IACH,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,EAAE,CAAC;IAM9E,uCAAuC;IACvC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9B,yCAAyC;IACzC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhC;;;;;;;;;;;OAWG;IACH,QAAQ,CACN,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,2BAA2B,CAAC;QACnC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GACA,OAAO,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAAC;CAU5D"}
|
|
@@ -39,18 +39,18 @@ export class ConversationApi {
|
|
|
39
39
|
return this.http.post('/api/conversations', request);
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
|
-
* GET /api/conversations/
|
|
43
|
-
*
|
|
42
|
+
* GET /api/conversations/{id}?includeParticipants={bool}
|
|
43
|
+
*
|
|
44
|
+
* @param includeParticipants - Default `true`. Pass `false` to omit the
|
|
45
|
+
* participants array from the response (reduces payload). When `false`,
|
|
46
|
+
* `participants` is returned as `[]` (spec §6.4).
|
|
44
47
|
*/
|
|
45
|
-
|
|
46
|
-
const qs = new URLSearchParams(
|
|
47
|
-
if (
|
|
48
|
-
qs.set('
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
/** GET /api/conversations/{id} */
|
|
52
|
-
getById(id) {
|
|
53
|
-
return this.http.get(`/api/conversations/${encodeURIComponent(id)}`);
|
|
48
|
+
getById(id, options) {
|
|
49
|
+
const qs = new URLSearchParams();
|
|
50
|
+
if (options?.includeParticipants === false)
|
|
51
|
+
qs.set('includeParticipants', 'false');
|
|
52
|
+
const q = qs.toString();
|
|
53
|
+
return this.http.get(`/api/conversations/${encodeURIComponent(id)}${q ? `?${q}` : ''}`);
|
|
54
54
|
}
|
|
55
55
|
/** PATCH /api/conversations/{id} */
|
|
56
56
|
update(id, request) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationApi.js","sourceRoot":"","sources":["../../src/http/ConversationApi.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAa7C;;;;;;;GAOG;AACH,MAAM,OAAO,eAAe;IAG1B,YAAY,IAAgB;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,MAGJ;QACC,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;QACjC,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS;YAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvE,IAAI,MAAM,EAAE,MAAM,KAAK,SAAS;YAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACxC,CAAC;IACJ,CAAC;IAED,8BAA8B;IAC9B,MAAM,CAAC,OAAkC;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"ConversationApi.js","sourceRoot":"","sources":["../../src/http/ConversationApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { HttpClient } from './HttpClient.js';
|
|
2
|
+
import type { SearchResult, SearchType } from '../types/search.js';
|
|
3
|
+
/**
|
|
4
|
+
* Search API client.
|
|
5
|
+
* Requires JWT Bearer token.
|
|
6
|
+
*
|
|
7
|
+
* Replaces the removed `GET /api/conversations/search` backend endpoint.
|
|
8
|
+
* `GET /api/messages/search` (global, non-conversation-scoped) is also removed.
|
|
9
|
+
* Per-conversation message search (`GET /api/conversations/{id}/messages/search`)
|
|
10
|
+
* is still available via MessageApi.search().
|
|
11
|
+
*/
|
|
12
|
+
export declare class SearchApi {
|
|
13
|
+
private readonly http;
|
|
14
|
+
constructor(http: HttpClient);
|
|
15
|
+
/**
|
|
16
|
+
* GET /api/search?q={q}&type={type}&limit={limit}&cursor={cursor}
|
|
17
|
+
*
|
|
18
|
+
* Unified search for conversations and/or messages in a single request.
|
|
19
|
+
*
|
|
20
|
+
* - `q` is required; omitting or sending an empty string returns 400.
|
|
21
|
+
* - `type` defaults to `BOTH` server-side.
|
|
22
|
+
* - `cursor` is opaque and applies **only to messages** — pass `nextCursor`
|
|
23
|
+
* from a prior `messages` result to paginate through more message hits.
|
|
24
|
+
* - Conversations are not paginated; `limit` caps how many are returned.
|
|
25
|
+
*
|
|
26
|
+
* Response always contains both `conversations` and `messages` keys;
|
|
27
|
+
* the key for the unused scope is `null` (e.g. `type=MESSAGE` → `conversations: null`).
|
|
28
|
+
*
|
|
29
|
+
* NOTE: `lastMessage.isDeleted` may be `true` — always check before displaying
|
|
30
|
+
* (backend does not filter deleted messages for the aggregated lastMessage, spec §6.3).
|
|
31
|
+
*/
|
|
32
|
+
search(params: {
|
|
33
|
+
q: string;
|
|
34
|
+
type?: SearchType;
|
|
35
|
+
limit?: number;
|
|
36
|
+
cursor?: string;
|
|
37
|
+
}): Promise<SearchResult>;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=SearchApi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchApi.d.ts","sourceRoot":"","sources":["../../src/http/SearchApi.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEnE;;;;;;;;GAQG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;gBAEtB,IAAI,EAAE,UAAU;IAI5B;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,MAAM,EAAE;QACb,CAAC,EAAE,MAAM,CAAC;QACV,IAAI,CAAC,EAAE,UAAU,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,YAAY,CAAC;CAO1B"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// SearchApi.ts — Unified search endpoint (spec §6.3)
|
|
2
|
+
import { HttpClient } from './HttpClient.js';
|
|
3
|
+
/**
|
|
4
|
+
* Search API client.
|
|
5
|
+
* Requires JWT Bearer token.
|
|
6
|
+
*
|
|
7
|
+
* Replaces the removed `GET /api/conversations/search` backend endpoint.
|
|
8
|
+
* `GET /api/messages/search` (global, non-conversation-scoped) is also removed.
|
|
9
|
+
* Per-conversation message search (`GET /api/conversations/{id}/messages/search`)
|
|
10
|
+
* is still available via MessageApi.search().
|
|
11
|
+
*/
|
|
12
|
+
export class SearchApi {
|
|
13
|
+
constructor(http) {
|
|
14
|
+
this.http = http;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* GET /api/search?q={q}&type={type}&limit={limit}&cursor={cursor}
|
|
18
|
+
*
|
|
19
|
+
* Unified search for conversations and/or messages in a single request.
|
|
20
|
+
*
|
|
21
|
+
* - `q` is required; omitting or sending an empty string returns 400.
|
|
22
|
+
* - `type` defaults to `BOTH` server-side.
|
|
23
|
+
* - `cursor` is opaque and applies **only to messages** — pass `nextCursor`
|
|
24
|
+
* from a prior `messages` result to paginate through more message hits.
|
|
25
|
+
* - Conversations are not paginated; `limit` caps how many are returned.
|
|
26
|
+
*
|
|
27
|
+
* Response always contains both `conversations` and `messages` keys;
|
|
28
|
+
* the key for the unused scope is `null` (e.g. `type=MESSAGE` → `conversations: null`).
|
|
29
|
+
*
|
|
30
|
+
* NOTE: `lastMessage.isDeleted` may be `true` — always check before displaying
|
|
31
|
+
* (backend does not filter deleted messages for the aggregated lastMessage, spec §6.3).
|
|
32
|
+
*/
|
|
33
|
+
search(params) {
|
|
34
|
+
const qs = new URLSearchParams({ q: params.q });
|
|
35
|
+
if (params.type !== undefined)
|
|
36
|
+
qs.set('type', params.type);
|
|
37
|
+
if (params.limit !== undefined)
|
|
38
|
+
qs.set('limit', String(params.limit));
|
|
39
|
+
if (params.cursor !== undefined)
|
|
40
|
+
qs.set('cursor', params.cursor);
|
|
41
|
+
return this.http.get(`/api/search?${qs.toString()}`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=SearchApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchApi.js","sourceRoot":"","sources":["../../src/http/SearchApi.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C;;;;;;;;GAQG;AACH,MAAM,OAAO,SAAS;IAGpB,YAAY,IAAgB;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,MAKN;QACC,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;YAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAe,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export type { CursorPaginatedResult, PagedResult, MediaReference, ProblemDetails
|
|
|
2
2
|
export type { GoogleLoginRequest, DsAccountLoginRequest, DevLoginRequest, LoginRequest, AuthResponse, AuthUserInfo } from './types/auth.js';
|
|
3
3
|
export type { ParticipantDto, CreateOrUpdateParticipantRequest } from './types/participant.js';
|
|
4
4
|
export type { ConversationParticipantDto, ConversationDto, ConversationListItemDto, ConversationMediaKindFilter, ConversationMediaKind, ConversationMediaBlockType, ConversationMediaItemDto, CreateConversationRequest, UpdateConversationRequest, AddParticipantRequest, } from './types/conversation.js';
|
|
5
|
+
export type { SearchType, SearchMessageGroup, SearchMessagesResult, SearchResult, } from './types/search.js';
|
|
5
6
|
export type { SenderType, SystemEventType, SystemEventInfo, ReactionGroup, ReactionSummary, MessageDto, SendMessageRequest, EditMessageRequest, } from './types/message.js';
|
|
6
7
|
export type { TextFormat, ButtonAction, ButtonStyle, ChoiceMode, QuickReplyAction, MentionType, TextBlock, ImageBlock, VideoBlock, AudioBlock, FileBlock, LinkPreviewBlock, EmbedBlock, LocationBlock, ContactBlock, ChoiceOption, ChoiceBlock, CardField, ActionButton, CardBlock, CarouselBlock, DividerBlock, CustomBlock, Block, QuickReply, Mention, } from './types/block.js';
|
|
7
8
|
export { isTextBlock, isImageBlock, isVideoBlock, isAudioBlock, isFileBlock, isLinkPreviewBlock, isEmbedBlock, isLocationBlock, isContactBlock, isChoiceBlock, isCardBlock, isCarouselBlock, isDividerBlock, isCustomBlock, withTypeFirst, normalizeBlocksForSend, } from './types/block.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oDAAoD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAkFpD,4CAA4C;AAC5C,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,aAAa,EACb,WAAW,EACX,eAAe,EACf,cAAc,EACd,aAAa,EACb,aAAa,EACb,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAuD1B,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,4BAA4B;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGjE,4BAA4B;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,oCAAoC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAM5E,kCAAkC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAGxE,yCAAyC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { ConversationListItemDto } from './conversation.js';
|
|
2
|
+
import type { ConversationDto } from './conversation.js';
|
|
3
|
+
import type { MessageDto } from './message.js';
|
|
4
|
+
/** Search scope for GET /api/search. */
|
|
5
|
+
export type SearchType = 'MESSAGE' | 'CONVERSATION' | 'BOTH';
|
|
6
|
+
/** A group of messages that matched the search query, associated with their conversation. */
|
|
7
|
+
export interface SearchMessageGroup {
|
|
8
|
+
/**
|
|
9
|
+
* The conversation these messages belong to.
|
|
10
|
+
* `null` if the batch fetch for conversation info failed (graceful degrade).
|
|
11
|
+
* `participants` is always `[]` (fetched with `includeParticipants=false`).
|
|
12
|
+
*/
|
|
13
|
+
conversation: ConversationDto | null;
|
|
14
|
+
messages: MessageDto[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Paginated message search results, grouped by conversation.
|
|
18
|
+
* Cursor pagination applies only to messages; conversation ordering follows
|
|
19
|
+
* the first appearance of each conversation in the result set.
|
|
20
|
+
*/
|
|
21
|
+
export interface SearchMessagesResult {
|
|
22
|
+
groups: SearchMessageGroup[];
|
|
23
|
+
nextCursor: string | null;
|
|
24
|
+
hasMore: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Unified search response from GET /api/search.
|
|
28
|
+
*
|
|
29
|
+
* Both keys are always present; the key for the unselected `type` is `null`:
|
|
30
|
+
* - `type=CONVERSATION` → `messages` is `null`
|
|
31
|
+
* - `type=MESSAGE` → `conversations` is `null`
|
|
32
|
+
* - `type=BOTH` → both populated
|
|
33
|
+
*/
|
|
34
|
+
export interface SearchResult {
|
|
35
|
+
/**
|
|
36
|
+
* Matching conversations with `lastMessage` hydrated (same as conversation
|
|
37
|
+
* list items from GET /api/conversations). `null` when `type=MESSAGE`.
|
|
38
|
+
* Client MUST check `lastMessage.isDeleted` before displaying (spec §6.3).
|
|
39
|
+
*/
|
|
40
|
+
conversations: ConversationListItemDto[] | null;
|
|
41
|
+
/**
|
|
42
|
+
* Matching messages grouped by conversation. `null` when `type=CONVERSATION`.
|
|
43
|
+
* Supports cursor pagination for messages.
|
|
44
|
+
*/
|
|
45
|
+
messages: SearchMessagesResult | null;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/types/search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,wCAAwC;AACxC,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,cAAc,GAAG,MAAM,CAAC;AAE7D,6FAA6F;AAC7F,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,YAAY,EAAE,eAAe,GAAG,IAAI,CAAC;IACrC,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,aAAa,EAAE,uBAAuB,EAAE,GAAG,IAAI,CAAC;IAChD;;;OAGG;IACH,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/types/search.ts"],"names":[],"mappings":"AAAA,gFAAgF"}
|