@manonero/chat-client-sdk 0.0.1-beta.5 → 0.0.1-beta.7
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 +196 -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 +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/realtime/ChatHubClient.d.ts +2 -0
- package/dist/realtime/ChatHubClient.d.ts.map +1 -1
- package/dist/realtime/ChatHubClient.js +3 -0
- package/dist/realtime/ChatHubClient.js.map +1 -1
- package/dist/realtime/NotificationHubClient.d.ts +2 -0
- package/dist/realtime/NotificationHubClient.d.ts.map +1 -1
- package/dist/realtime/NotificationHubClient.js +3 -0
- package/dist/realtime/NotificationHubClient.js.map +1 -1
- package/dist/types/broadcast.d.ts +50 -0
- package/dist/types/broadcast.d.ts.map +1 -0
- package/dist/types/broadcast.js +3 -0
- package/dist/types/broadcast.js.map +1 -0
- 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)
|
|
@@ -92,6 +94,9 @@ import type { HttpClientOptions } from '@manonero/chat-client-sdk';
|
|
|
92
94
|
// Event map types — dùng khi cần typed wrapper
|
|
93
95
|
import type { ChatHubEventMap, NotificationHubEventMap } from '@manonero/chat-client-sdk';
|
|
94
96
|
|
|
97
|
+
// Ephemeral broadcast (dùng chung cho cả hai hub) — generic theo kiểu của `data`
|
|
98
|
+
import type { EphemeralBroadcastDto, BroadcastSenderType } from '@manonero/chat-client-sdk';
|
|
99
|
+
|
|
95
100
|
// Hub options (khi dùng hub client độc lập, không qua ChatClient)
|
|
96
101
|
import type { ChatHubClientOptions, NotificationHubClientOptions } from '@manonero/chat-client-sdk';
|
|
97
102
|
|
|
@@ -217,6 +222,7 @@ new ChatClient(options: ChatClientOptions)
|
|
|
217
222
|
| `participants` | `ParticipantApi` | Quản lý participant |
|
|
218
223
|
| `conversations` | `ConversationApi` | Quản lý cuộc hội thoại |
|
|
219
224
|
| `messages` | `MessageApi` | Thao tác với tin nhắn |
|
|
225
|
+
| `search` | `SearchApi` | Tìm kiếm tổng hợp conversations + messages |
|
|
220
226
|
| `files` | `FileApi` | Upload/download file |
|
|
221
227
|
| `bots` | `BotApi` | Quản lý bot |
|
|
222
228
|
| `proxy` | `ProxyApi` | Proxy đến backend khác |
|
|
@@ -435,20 +441,24 @@ const conv = await client.conversations.create({
|
|
|
435
441
|
});
|
|
436
442
|
```
|
|
437
443
|
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
Tìm kiếm theo tên cuộc hội thoại hoặc tên participant.
|
|
441
|
-
|
|
442
|
-
```ts
|
|
443
|
-
const results = await client.conversations.search('team', 10);
|
|
444
|
-
```
|
|
444
|
+
> ⚠️ **Đã 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).
|
|
445
445
|
|
|
446
|
-
### `getById(id
|
|
446
|
+
### `getById(id, options?): Promise<ConversationDto>`
|
|
447
447
|
|
|
448
448
|
```ts
|
|
449
|
+
// Mặc định: bao gồm danh sách thành viên
|
|
449
450
|
const conv = await client.conversations.getById('conv-id-here');
|
|
451
|
+
|
|
452
|
+
// Bỏ danh sách thành viên để giảm payload — khi đó `participants` trả về []
|
|
453
|
+
const light = await client.conversations.getById('conv-id-here', {
|
|
454
|
+
includeParticipants: false,
|
|
455
|
+
});
|
|
450
456
|
```
|
|
451
457
|
|
|
458
|
+
| Param | Kiểu | Mặc định | Mô tả |
|
|
459
|
+
|-------|------|----------|-------|
|
|
460
|
+
| `options.includeParticipants` | `boolean` | `true` | Đặt `false` để bỏ mảng `participants` khỏi response (spec §6.4). Khi `false`, `participants` là `[]`. |
|
|
461
|
+
|
|
452
462
|
### `update(id, request): Promise<ConversationDto>`
|
|
453
463
|
|
|
454
464
|
```ts
|
|
@@ -661,12 +671,14 @@ const newer = await client.messages.getHistory('conv-id', {
|
|
|
661
671
|
|
|
662
672
|
### `search(conversationId, query, limit?): Promise<MessageDto[]>`
|
|
663
673
|
|
|
664
|
-
Full-text search trong cuộc hội thoại.
|
|
674
|
+
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
675
|
|
|
666
676
|
```ts
|
|
667
677
|
const results = await client.messages.search('conv-id', 'từ khóa tìm kiếm', 20);
|
|
668
678
|
```
|
|
669
679
|
|
|
680
|
+
> ℹ️ Để 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).
|
|
681
|
+
|
|
670
682
|
### `getById(messageId): Promise<MessageDto>`
|
|
671
683
|
|
|
672
684
|
```ts
|
|
@@ -773,7 +785,67 @@ interface EditMessageRequest {
|
|
|
773
785
|
|
|
774
786
|
---
|
|
775
787
|
|
|
776
|
-
## 8.
|
|
788
|
+
## 8. Tìm kiếm — SearchApi
|
|
789
|
+
|
|
790
|
+
**Truy cập:** `client.search`
|
|
791
|
+
|
|
792
|
+
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.
|
|
793
|
+
|
|
794
|
+
> 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).
|
|
795
|
+
|
|
796
|
+
### `search(params): Promise<SearchResult>`
|
|
797
|
+
|
|
798
|
+
| Param | Kiểu | Mặc định | Mô tả |
|
|
799
|
+
|-------|------|----------|-------|
|
|
800
|
+
| `q` | `string` | — (**bắt buộc**) | Từ khóa tìm kiếm. Thiếu/rỗng → `400 Bad Request`. |
|
|
801
|
+
| `type` | `'MESSAGE' \| 'CONVERSATION' \| 'BOTH'` | `'BOTH'` | Phạm vi tìm kiếm. Giá trị khác → `400 Bad Request`. |
|
|
802
|
+
| `limit` | `number` | `20` | Số kết quả mỗi loại. |
|
|
803
|
+
| `cursor` | `string` | — | Phân trang — **chỉ áp dụng cho messages** (opaque `nextCursor` từ response trước). |
|
|
804
|
+
|
|
805
|
+
**Hành vi theo `type`:**
|
|
806
|
+
|
|
807
|
+
- `CONVERSATION` — tìm conversations; mỗi item kèm `lastMessage` (full `MessageDto`). `messages` trả về `null`.
|
|
808
|
+
- `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`.
|
|
809
|
+
- `BOTH` — thực hiện cả hai (mặc định).
|
|
810
|
+
|
|
811
|
+
> 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`.
|
|
812
|
+
|
|
813
|
+
```ts
|
|
814
|
+
// Tìm cả hai loại (mặc định)
|
|
815
|
+
const result = await client.search.search({ q: 'hello' });
|
|
816
|
+
|
|
817
|
+
// Conversations: kiểm tra lastMessage.isDeleted trước khi hiển thị
|
|
818
|
+
for (const conv of result.conversations ?? []) {
|
|
819
|
+
const preview = conv.lastMessage?.isDeleted
|
|
820
|
+
? 'Tin nhắn đã xóa'
|
|
821
|
+
: conv.lastMessage?.plainTextIndex ?? '';
|
|
822
|
+
console.log(conv.name, preview);
|
|
823
|
+
}
|
|
824
|
+
|
|
825
|
+
// Messages: gom nhóm theo conversation
|
|
826
|
+
for (const group of result.messages?.groups ?? []) {
|
|
827
|
+
console.log('Trong:', group.conversation?.name ?? '(không rõ)');
|
|
828
|
+
for (const msg of group.messages) console.log(' -', msg.plainTextIndex);
|
|
829
|
+
}
|
|
830
|
+
```
|
|
831
|
+
|
|
832
|
+
```ts
|
|
833
|
+
// Chỉ tìm messages + phân trang
|
|
834
|
+
let page = await client.search.search({ q: 'hello', type: 'MESSAGE', limit: 20 });
|
|
835
|
+
while (page.messages?.hasMore) {
|
|
836
|
+
page = await client.search.search({
|
|
837
|
+
q: 'hello',
|
|
838
|
+
type: 'MESSAGE',
|
|
839
|
+
cursor: page.messages.nextCursor!, // opaque string — KHÔNG cast sang number
|
|
840
|
+
});
|
|
841
|
+
}
|
|
842
|
+
```
|
|
843
|
+
|
|
844
|
+
> ⚠️ 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).
|
|
845
|
+
|
|
846
|
+
---
|
|
847
|
+
|
|
848
|
+
## 9. File — FileApi
|
|
777
849
|
|
|
778
850
|
**Truy cập:** `client.files`
|
|
779
851
|
|
|
@@ -873,7 +945,7 @@ interface UploadResponse {
|
|
|
873
945
|
|
|
874
946
|
---
|
|
875
947
|
|
|
876
|
-
##
|
|
948
|
+
## 10. Bot — BotApi
|
|
877
949
|
|
|
878
950
|
**Truy cập:** `client.bots`
|
|
879
951
|
|
|
@@ -1005,7 +1077,7 @@ interface UpdateBotRequest {
|
|
|
1005
1077
|
|
|
1006
1078
|
---
|
|
1007
1079
|
|
|
1008
|
-
##
|
|
1080
|
+
## 11. Proxy — ProxyApi
|
|
1009
1081
|
|
|
1010
1082
|
**Truy cập:** `client.proxy`
|
|
1011
1083
|
|
|
@@ -1062,7 +1134,7 @@ const result = await client.proxy.request<unknown>('myservice', 'api/resource/12
|
|
|
1062
1134
|
|
|
1063
1135
|
---
|
|
1064
1136
|
|
|
1065
|
-
##
|
|
1137
|
+
## 12. Health — HealthApi
|
|
1066
1138
|
|
|
1067
1139
|
**Truy cập:** `client.health`
|
|
1068
1140
|
|
|
@@ -1082,7 +1154,7 @@ const ready = await client.health.ready(); // "Healthy"
|
|
|
1082
1154
|
|
|
1083
1155
|
---
|
|
1084
1156
|
|
|
1085
|
-
##
|
|
1157
|
+
## 13. Real-time: ChatHubClient
|
|
1086
1158
|
|
|
1087
1159
|
**Truy cập:** `client.realtime.chat`
|
|
1088
1160
|
|
|
@@ -1222,6 +1294,7 @@ client.realtime.chat.off('messageReceived', handler);
|
|
|
1222
1294
|
| `streamChunkReceived` | `StreamChunkReceivedDto` | Nhận thêm chunk text từ bot |
|
|
1223
1295
|
| `streamCompleted` | `StreamCompletedDto` | Bot stream hoàn thành (kèm message đầy đủ) |
|
|
1224
1296
|
| `streamAborted` | `StreamAbortedDto` | Bot stream bị hủy |
|
|
1297
|
+
| `ephemeralBroadcast` | `EphemeralBroadcastDto` | Broadcast tạm thời (không lưu) nhắm `audience="viewers"` của conversation đang mở — `conversationId` luôn có giá trị |
|
|
1225
1298
|
| `error` | `HubErrorDto` | Lỗi từ server |
|
|
1226
1299
|
| `reconnecting` | `Error \| undefined` | Đang reconnect |
|
|
1227
1300
|
| `reconnected` | `string \| undefined` | Đã reconnect (connectionId mới) |
|
|
@@ -1338,9 +1411,31 @@ client.realtime.chat.on('streamAborted', (dto) => {
|
|
|
1338
1411
|
});
|
|
1339
1412
|
```
|
|
1340
1413
|
|
|
1414
|
+
### Ephemeral Broadcast (tin real-time không lưu trữ)
|
|
1415
|
+
|
|
1416
|
+
Bot hoặc SYSTEM user có thể phát **broadcast tạm thời** (không lưu vào lịch sử, không có ack, không edit/delete) qua `POST /api/broadcasts`. Trên ChatHub, client nhận event `ephemeralBroadcast` khi broadcast nhắm `audience="viewers"` của conversation đang mở — khi đó `conversationId` luôn có giá trị.
|
|
1417
|
+
|
|
1418
|
+
`data` là một envelope JSON tự do; client diễn giải dựa trên `type`. Dùng generic `EphemeralBroadcastDto<TData>` để narrow kiểu của `data` khi cần (mặc định `unknown` để vẫn an toàn khi chưa khai báo).
|
|
1419
|
+
|
|
1420
|
+
```ts
|
|
1421
|
+
import type { EphemeralBroadcastDto } from '@manonero/chat-client-sdk';
|
|
1422
|
+
|
|
1423
|
+
interface PromoBanner { title: string; startsAt: string }
|
|
1424
|
+
|
|
1425
|
+
client.realtime.chat.on('ephemeralBroadcast', (b) => {
|
|
1426
|
+
// b.senderType: 'Bot' | 'System' ; b.conversationId luôn có giá trị trên ChatHub
|
|
1427
|
+
if (b.type === 'promo_banner') {
|
|
1428
|
+
const promo = b.data as PromoBanner; // narrow theo `type`
|
|
1429
|
+
showBanner(promo.title, promo.startsAt);
|
|
1430
|
+
}
|
|
1431
|
+
});
|
|
1432
|
+
```
|
|
1433
|
+
|
|
1434
|
+
> Cùng event `ephemeralBroadcast` (và cùng kiểu `EphemeralBroadcastDto`) cũng có trên NotificationHub cho các audience cấp user — xem [mục 14](#14-real-time-notificationhubclient). Định nghĩa kiểu đầy đủ ở [mục 17](#17-toàn-bộ-kiểu-dữ-liệu-types).
|
|
1435
|
+
|
|
1341
1436
|
---
|
|
1342
1437
|
|
|
1343
|
-
##
|
|
1438
|
+
## 14. Real-time: NotificationHubClient
|
|
1344
1439
|
|
|
1345
1440
|
**Truy cập:** `client.realtime.notifications`
|
|
1346
1441
|
|
|
@@ -1384,6 +1479,7 @@ await client.realtime.notifications.disconnect();
|
|
|
1384
1479
|
| `participantLeft` | `ParticipantLeftDto` | Thành viên rời/bị xóa — gửi cho tất cả participant còn lại **và** chính người vừa rời (để sync xóa khỏi các tab khác) |
|
|
1385
1480
|
| `conversationPinned` | `ConversationPinnedDto` | Conversation được pin |
|
|
1386
1481
|
| `conversationUnpinned` | `ConversationUnpinnedDto` | Conversation được unpin |
|
|
1482
|
+
| `ephemeralBroadcast` | `EphemeralBroadcastDto` | Broadcast tạm thời (không lưu) — audience `members`/`all`/`users`; broadcast toàn cục có `conversationId: null` |
|
|
1387
1483
|
| `reconnecting` | `Error \| undefined` | Đang reconnect |
|
|
1388
1484
|
| `reconnected` | `string \| undefined` | Đã reconnect |
|
|
1389
1485
|
| `disconnected` | `Error \| undefined` | Mất kết nối |
|
|
@@ -1454,9 +1550,24 @@ interface ConversationUnpinnedDto {
|
|
|
1454
1550
|
}
|
|
1455
1551
|
```
|
|
1456
1552
|
|
|
1553
|
+
### Ephemeral Broadcast trên NotificationHub
|
|
1554
|
+
|
|
1555
|
+
Giống ChatHub, NotificationHub cũng phát event `ephemeralBroadcast` (cùng kiểu `EphemeralBroadcastDto`) — nhưng cho các audience **cấp user**: `audience="members"` (mọi thành viên conversation), `audience="all"` (mọi user online), hoặc `audience="users"` (danh sách userId chỉ định). Với broadcast toàn cục, `conversationId` là `null`.
|
|
1556
|
+
|
|
1557
|
+
```ts
|
|
1558
|
+
client.realtime.notifications.on('ephemeralBroadcast', (b) => {
|
|
1559
|
+
if (b.conversationId === null && b.type === 'system_alert') {
|
|
1560
|
+
// Broadcast toàn cục — vd. cảnh báo bảo trì hệ thống
|
|
1561
|
+
showGlobalAlert(b.data);
|
|
1562
|
+
}
|
|
1563
|
+
});
|
|
1564
|
+
```
|
|
1565
|
+
|
|
1566
|
+
> Định nghĩa đầy đủ `EphemeralBroadcastDto` ở [mục 17](#17-toàn-bộ-kiểu-dữ-liệu-types).
|
|
1567
|
+
|
|
1457
1568
|
---
|
|
1458
1569
|
|
|
1459
|
-
##
|
|
1570
|
+
## 15. ReconnectionManager
|
|
1460
1571
|
|
|
1461
1572
|
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
1573
|
|
|
@@ -1490,7 +1601,7 @@ manager.stop();
|
|
|
1490
1601
|
|
|
1491
1602
|
---
|
|
1492
1603
|
|
|
1493
|
-
##
|
|
1604
|
+
## 16. Hệ thống Block (nội dung tin nhắn)
|
|
1494
1605
|
|
|
1495
1606
|
`Block` là **discriminated union** — mỗi block phân biệt bằng field `$type`.
|
|
1496
1607
|
|
|
@@ -1779,7 +1890,7 @@ interface Mention {
|
|
|
1779
1890
|
|
|
1780
1891
|
---
|
|
1781
1892
|
|
|
1782
|
-
##
|
|
1893
|
+
## 17. Toàn bộ kiểu dữ liệu (Types)
|
|
1783
1894
|
|
|
1784
1895
|
### CursorPaginatedResult (cursor-based)
|
|
1785
1896
|
|
|
@@ -1802,6 +1913,33 @@ interface PagedResult<T> {
|
|
|
1802
1913
|
}
|
|
1803
1914
|
```
|
|
1804
1915
|
|
|
1916
|
+
### SearchResult (GET /api/search — §8)
|
|
1917
|
+
|
|
1918
|
+
```ts
|
|
1919
|
+
type SearchType = 'MESSAGE' | 'CONVERSATION' | 'BOTH';
|
|
1920
|
+
|
|
1921
|
+
interface SearchResult {
|
|
1922
|
+
// null khi type=MESSAGE. Mỗi item có `lastMessage` đã hydrate —
|
|
1923
|
+
// kiểm tra lastMessage.isDeleted trước khi hiển thị.
|
|
1924
|
+
conversations: ConversationListItemDto[] | null;
|
|
1925
|
+
// null khi type=CONVERSATION.
|
|
1926
|
+
messages: SearchMessagesResult | null;
|
|
1927
|
+
}
|
|
1928
|
+
|
|
1929
|
+
interface SearchMessagesResult {
|
|
1930
|
+
groups: SearchMessageGroup[];
|
|
1931
|
+
nextCursor: string | null; // opaque — chỉ phân trang cho messages
|
|
1932
|
+
hasMore: boolean;
|
|
1933
|
+
}
|
|
1934
|
+
|
|
1935
|
+
interface SearchMessageGroup {
|
|
1936
|
+
// null nếu batch fetch conversation lỗi (degrade graceful).
|
|
1937
|
+
// `participants` luôn là [] (fetch với includeParticipants=false).
|
|
1938
|
+
conversation: ConversationDto | null;
|
|
1939
|
+
messages: MessageDto[];
|
|
1940
|
+
}
|
|
1941
|
+
```
|
|
1942
|
+
|
|
1805
1943
|
### MediaReference
|
|
1806
1944
|
|
|
1807
1945
|
```ts
|
|
@@ -1957,6 +2095,29 @@ interface StreamAbortedDto {
|
|
|
1957
2095
|
}
|
|
1958
2096
|
```
|
|
1959
2097
|
|
|
2098
|
+
### EphemeralBroadcastDto (dùng chung — ChatHub & NotificationHub)
|
|
2099
|
+
|
|
2100
|
+
Broadcast tạm thời (**KHÔNG lưu trữ**) do bot hoặc SYSTEM user phát qua `POST /api/broadcasts`. Cùng một payload xuất hiện trên **cả hai hub** với event `ephemeralBroadcast`:
|
|
2101
|
+
|
|
2102
|
+
- **ChatHub** — `audience="viewers"` của conversation đang mở (`conversationId` có giá trị).
|
|
2103
|
+
- **NotificationHub** — `audience="members" | "all" | "users"` (broadcast toàn cục → `conversationId: null`).
|
|
2104
|
+
|
|
2105
|
+
```ts
|
|
2106
|
+
// Sender của broadcast — luôn là bot hoặc SYSTEM user (không bao giờ là User thường)
|
|
2107
|
+
type BroadcastSenderType = 'Bot' | 'System';
|
|
2108
|
+
|
|
2109
|
+
interface EphemeralBroadcastDto<TData = unknown> {
|
|
2110
|
+
type: string; // Khóa do người gửi đặt — client tự diễn giải `data` theo giá trị này
|
|
2111
|
+
senderId: string; // participantId của bot, hoặc literal "SYSTEM"
|
|
2112
|
+
senderType: BroadcastSenderType; // 'Bot' | 'System'
|
|
2113
|
+
conversationId: string | null; // null khi broadcast toàn cục
|
|
2114
|
+
data: TData | null; // Envelope JSON tự do; null khi người gửi bỏ trống
|
|
2115
|
+
sentAt: string; // UTC ISO 8601
|
|
2116
|
+
}
|
|
2117
|
+
```
|
|
2118
|
+
|
|
2119
|
+
> `TData` cho phép narrow kiểu của `data` theo `type` (mặc định `unknown` để dùng an toàn khi chưa khai báo). Xem ví dụ ở [mục 13](#13-real-time-chathubclient) (ChatHub) và [mục 14](#14-real-time-notificationhubclient) (NotificationHub).
|
|
2120
|
+
|
|
1960
2121
|
### Ack types (return value của Hub methods)
|
|
1961
2122
|
|
|
1962
2123
|
Mỗi Hub method client→server trả về một ack object với `success: boolean` và optional error fields:
|
|
@@ -2005,7 +2166,7 @@ interface ReactionAck {
|
|
|
2005
2166
|
|
|
2006
2167
|
---
|
|
2007
2168
|
|
|
2008
|
-
##
|
|
2169
|
+
## 18. Xử lý lỗi — ChatApiError
|
|
2009
2170
|
|
|
2010
2171
|
Tất cả lỗi HTTP đều throw `ChatApiError` (kế thừa `Error`).
|
|
2011
2172
|
|
|
@@ -2157,7 +2318,7 @@ manager.start();
|
|
|
2157
2318
|
|
|
2158
2319
|
---
|
|
2159
2320
|
|
|
2160
|
-
##
|
|
2321
|
+
## 19. TypedEventEmitter
|
|
2161
2322
|
|
|
2162
2323
|
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
2324
|
|
|
@@ -2187,7 +2348,7 @@ unsubs.forEach(fn => fn());
|
|
|
2187
2348
|
|
|
2188
2349
|
---
|
|
2189
2350
|
|
|
2190
|
-
##
|
|
2351
|
+
## 20. Lưu ý quan trọng
|
|
2191
2352
|
|
|
2192
2353
|
### Cursor pagination — KHÔNG cast sang number
|
|
2193
2354
|
|
|
@@ -2264,7 +2425,7 @@ console.log(participant.fullName); // Tên hiển thị của bot
|
|
|
2264
2425
|
|
|
2265
2426
|
---
|
|
2266
2427
|
|
|
2267
|
-
##
|
|
2428
|
+
## 21. Ví dụ đầy đủ
|
|
2268
2429
|
|
|
2269
2430
|
### Ví dụ 1: Chat app cơ bản
|
|
2270
2431
|
|
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,11 +2,13 @@ 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';
|
|
8
9
|
export type { CreateUploadUrlRequest, CreateUploadUrlResponse, UploadResponse } from './types/file.js';
|
|
9
10
|
export type { BotDto, CreateBotRequest, UpdateBotRequest, BotDeliveryPreference } from './types/bot.js';
|
|
11
|
+
export type { EphemeralBroadcastDto, BroadcastSenderType } from './types/broadcast.js';
|
|
10
12
|
export type { SystemEventDto, ReactionGroupDto, ChatMessageDto, MessageUpdatedDto, MessageDeletedDto, ReactionAddedDto, ReactionRemovedDto, TypingDto, MessageThumbnailDto, MessageThumbnailsReadyDto, StreamStartedDto, StreamStatusUpdatedDto, StreamChunkReceivedDto, StreamCompletedDto, StreamAbortedDto, } from './types/chat-events.js';
|
|
11
13
|
export type { NewMessageNotificationDto, MentionedNotificationDto, ConversationCreatedDto, ConversationUpdatedDto, ParticipantJoinedDto, ParticipantLeftDto, ConversationPinnedDto, ConversationUnpinnedDto, } from './types/notification-events.js';
|
|
12
14
|
export type { ChatSendMessageRequest, ChatEditMessageRequest, ChatDeleteMessageRequest, ChatRecoverMessageRequest, ChatAddReactionRequest, ChatRemoveReactionRequest, SendMessageAck, EditMessageAck, DeleteMessageAck, RecoverMessageAck, ReactionAck, HubErrorDto, } from './types/signalr.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;AA0D1B,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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { HubConnectionState, LogLevel } from '@microsoft/signalr';
|
|
2
2
|
import type { Unsubscribe } from '../utils/TypedEventEmitter.js';
|
|
3
3
|
import type { ChatMessageDto, MessageUpdatedDto, MessageDeletedDto, MessageThumbnailsReadyDto, ReactionAddedDto, ReactionRemovedDto, TypingDto, StreamStartedDto, StreamStatusUpdatedDto, StreamChunkReceivedDto, StreamCompletedDto, StreamAbortedDto } from '../types/chat-events.js';
|
|
4
|
+
import type { EphemeralBroadcastDto } from '../types/broadcast.js';
|
|
4
5
|
import type { ChatSendMessageRequest, ChatEditMessageRequest, ChatDeleteMessageRequest, ChatRecoverMessageRequest, ChatAddReactionRequest, ChatRemoveReactionRequest, SendMessageAck, EditMessageAck, DeleteMessageAck, RecoverMessageAck, ReactionAck, HubErrorDto } from '../types/signalr.js';
|
|
5
6
|
export interface ChatHubEventMap {
|
|
6
7
|
messageReceived: ChatMessageDto;
|
|
@@ -19,6 +20,7 @@ export interface ChatHubEventMap {
|
|
|
19
20
|
streamChunkReceived: StreamChunkReceivedDto;
|
|
20
21
|
streamCompleted: StreamCompletedDto;
|
|
21
22
|
streamAborted: StreamAbortedDto;
|
|
23
|
+
ephemeralBroadcast: EphemeralBroadcastDto;
|
|
22
24
|
error: HubErrorDto;
|
|
23
25
|
reconnecting: Error | undefined;
|
|
24
26
|
reconnected: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatHubClient.d.ts","sourceRoot":"","sources":["../../src/realtime/ChatHubClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,kBAAkB,EAClB,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAqB,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEpF,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,yBAAyB,EACzB,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAO7B,MAAM,WAAW,eAAe;IAE9B,eAAe,EAAE,cAAc,CAAC;IAChC,cAAc,EAAE,iBAAiB,CAAC;IAClC,cAAc,EAAE,iBAAiB,CAAC;IAClC,qEAAqE;IACrE,gBAAgB,EAAE,cAAc,CAAC;IACjC,uFAAuF;IACvF,sBAAsB,EAAE,yBAAyB,CAAC;IAGlD,aAAa,EAAE,gBAAgB,CAAC;IAChC,eAAe,EAAE,kBAAkB,CAAC;IAGpC,aAAa,EAAE,SAAS,CAAC;IACzB,aAAa,EAAE,SAAS,CAAC;IAGzB,aAAa,EAAE,gBAAgB,CAAC;IAChC,mBAAmB,EAAE,sBAAsB,CAAC;IAC5C,mBAAmB,EAAE,sBAAsB,CAAC;IAC5C,eAAe,EAAE,kBAAkB,CAAC;IACpC,aAAa,EAAE,gBAAgB,CAAC;IAGhC,KAAK,EAAE,WAAW,CAAC;IAGnB,YAAY,EAAE,KAAK,GAAG,SAAS,CAAC;IAChC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,YAAY,EAAE,KAAK,GAAG,SAAS,CAAC;CACjC;AAMD,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,aAAa,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACnC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAMD;;;;;;;;GAQG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAE7D,4EAA4E;IAC5E,OAAO,CAAC,iBAAiB,CAA8B;IAEvD;;;;OAIG;IACH,OAAO,CAAC,oBAAoB,CAAS;IAErC,0EAA0E;IAC1E,QAAQ,CAAC,mBAAmB,cAAqB;IAEjD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAoD;IACxF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAQ;IAEnD,8EAA8E;IAC9E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"ChatHubClient.d.ts","sourceRoot":"","sources":["../../src/realtime/ChatHubClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,6 +91,8 @@ export class ChatHubClient {
|
|
|
91
91
|
conn.on('StreamChunkReceived', (dto) => this.emitter.emit('streamChunkReceived', dto));
|
|
92
92
|
conn.on('StreamCompleted', (dto) => this.emitter.emit('streamCompleted', dto));
|
|
93
93
|
conn.on('StreamAborted', (dto) => this.emitter.emit('streamAborted', dto));
|
|
94
|
+
// Ephemeral broadcast (server→client) — non-persisted, free-form envelope
|
|
95
|
+
conn.on('EphemeralBroadcast', (dto) => this.emitter.emit('ephemeralBroadcast', dto));
|
|
94
96
|
// Hub errors (server→client) — also revert pending joins on FORBIDDEN/UNAUTHORIZED
|
|
95
97
|
conn.on('Error', (error) => {
|
|
96
98
|
this.handlePotentialJoinFailure(error);
|
|
@@ -358,6 +360,7 @@ ChatHubClient.HUB_EVENT_NAMES = [
|
|
|
358
360
|
'StreamChunkReceived',
|
|
359
361
|
'StreamCompleted',
|
|
360
362
|
'StreamAborted',
|
|
363
|
+
'EphemeralBroadcast',
|
|
361
364
|
'Error',
|
|
362
365
|
];
|
|
363
366
|
//# sourceMappingURL=ChatHubClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatHubClient.js","sourceRoot":"","sources":["../../src/realtime/ChatHubClient.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,iBAAiB,IAAI,YAAY,EAAE,MAAM,+BAA+B,CAAC;AA6BlF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAqD3D,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,OAAO,aAAa;IA6CxB,YAAY,OAA6B;QA3CjC,eAAU,GAAyB,IAAI,CAAC;QAGhD,4EAA4E;QACpE,sBAAiB,GAAyB,IAAI,CAAC;QAEvD;;;;WAIG;QACK,yBAAoB,GAAG,KAAK,CAAC;QAErC,0EAA0E;QACjE,wBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;QAEjD;;;;WAIG;QACc,wBAAmB,GAAG,IAAI,GAAG,EAAyC,CAAC;QAuBtF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,EAAmB,CAAC;IACrD,CAAC;IAED,8EAA8E;IAC9E,mBAAmB;IACnB,8EAA8E;IAE9E,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,kBAAkB,CAAC,YAAY,CAAC;IACnE,CAAC;IAED;;;OAGG;IACH,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED,8EAA8E;IAC9E,wBAAwB;IACxB,8EAA8E;IAE9E,0EAA0E;IAClE,eAAe;QACrB,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5E,OAAO,IAAI,oBAAoB,EAAE;aAC9B,OAAO,CAAC,MAAM,EAAE;YACf,uEAAuE;YACvE,8EAA8E;YAC9E,kBAAkB,EAAE,GAAG,EAAE;gBACvB,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;gBAC1B,IAAI,CAAC,CAAC,EAAE,CAAC;oBACP,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBAChE,CAAC;gBACD,OAAO,CAAC,CAAC;YACX,CAAC;SACF,CAAC;aACD,sBAAsB,EAAE;aACxB,gBAAgB,CAAC,QAAQ,CAAC;aAC1B,KAAK,EAAE,CAAC;IACb,CAAC;IAED,oEAAoE;IAC5D,cAAc,CAAC,IAAmB;QACxC,iBAAiB;QACjB,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,GAAmB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/F,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,GAAsB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC;QAChG,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,GAAsB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC;QAChG,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,GAAmB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,CAAC;QACjG,IAAI,CAAC,EAAE,CAAC,wBAAwB,EAAE,CAAC,GAA8B,EAAE,EAAE,CACnE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC,CAAC;QAEpD,kBAAkB;QAClB,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,GAAqB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,GAAuB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC;QAEnG,gBAAgB;QAChB,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,GAAc,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,GAAc,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC;QAEtF,mBAAmB;QACnB,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,GAAqB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,GAA2B,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/G,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,GAA2B,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/G,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,GAAuB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC;QACnG,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,GAAqB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC;QAE7F,mFAAmF;QACnF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAkB,EAAE,EAAE;YACtC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,uBAAuB;QACvB,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,aAAa,CAAC,CAAC,YAAY,EAAE,EAAE;YAClC,8DAA8D;YAC9D,IAAI,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;gBACpC,yDAAyD;YAC3D,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,kBAAkB,CAAC,SAAS,EAAE,CAAC;YAC9E,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,8DAA8D;gBAC5D,oEAAoE,CACvE,CAAC;QACJ,CAAC;QAED,gEAAgE;QAChE,0EAA0E;QAC1E,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAElC,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE;YAC1B,IAAI,CAAC;gBACH,+CAA+C;gBAC/C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACxB,CAAC;gBAED,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBACpC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU;QACd,gEAAgE;QAChE,0EAA0E;QAC1E,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAEjC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,iBAAiB,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,iEAAiE;gBACjE,gDAAgD;YAClD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,gFAAgF;IACxE,cAAc,CAAC,IAAmB;QACxC,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,eAAe,EAAE,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAC7B,2EAA2E;QAC3E,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,mBAAmB;QACvB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACjD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACtC,CAAC;gBACD,4DAA4D;YAC9D,CAAC;QACH,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,GAAY;QACtC,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1C,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACtC,OAAO,CACL,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;YACzB,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACjC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC;YAC5B,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAC9B,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,gCAAgC;IAChC,8EAA8E;IAEtE,KAAK,CAAC,SAAS,CAAI,MAAc,EAAE,GAAG,IAAe;QAC3D,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,kBAAkB,CAAC,SAAS,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,MAAM,GAAG,CAAC,CAAC;QAC3F,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAI,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,cAAsB;QAC3C,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;QACzD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC7C,oFAAoF;QACpF,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,cAAsB;QAC5C,MAAM,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;QAC1D,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,cAAsB;QACtC,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,cAAsB;QACrC,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA+B;QAC/C,yEAAyE;QACzE,0EAA0E;QAC1E,MAAM,UAAU,GAA2B;YACzC,GAAG,OAAO;YACV,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC;SAC/C,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAiB,aAAa,EAAE,UAAU,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA+B;QAC/C,MAAM,UAAU,GAA2B;YACzC,GAAG,OAAO;YACV,SAAS,EAAE,sBAAsB,CAAC,OAAO,CAAC,SAAS,CAAC;SACrD,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAiB,aAAa,EAAE,UAAU,CAAC,CAAC;IACnE,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,aAAa,CAAC,OAAiC;QACnD,OAAO,IAAI,CAAC,SAAS,CAAmB,eAAe,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,cAAc,CAAC,OAAkC;QACrD,OAAO,IAAI,CAAC,SAAS,CAAoB,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA+B;QAC/C,OAAO,IAAI,CAAC,SAAS,CAAc,aAAa,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAkC;QACrD,OAAO,IAAI,CAAC,SAAS,CAAc,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED,8EAA8E;IAC9E,uCAAuC;IACvC,8EAA8E;IAE9E,EAAE,CACA,KAAQ,EACR,OAA8C;QAE9C,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,GAAG,CACD,KAAQ,EACR,OAA8C;QAE9C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,8EAA8E;IAC9E,4EAA4E;IAC5E,6EAA6E;IAC7E,+EAA+E;IAC/E,iFAAiF;IACjF,8EAA8E;IAEtE,eAAe,CAAC,cAAsB;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC9D,IAAI,QAAQ;YAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,UAAU,CACtB,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,EACrD,aAAa,CAAC,mBAAmB,CAClC,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IAEO,wBAAwB;QAC9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IAEO,UAAU,CAAC,cAAsB;QACvC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;;;OAUG;IACK,0BAA0B,CAAC,KAAkB;QACnD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;YAAE,OAAO;QAExE,MAAM,aAAa,GACjB,KAAK,CAAC,OAAO,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;YAChD,CAAC,CAAE,KAAK,CAAC,OAAmC,CAAC,cAAc;YAC3D,CAAC,CAAC,SAAS,CAAC;QAEhB,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YACrF,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACpF,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAC5D,IAAI,MAAM;gBAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;;AA1XuB,iCAAmB,GAAG,IAAI,AAAP,CAAQ;AAEnD,8EAA8E;AACtD,6BAAe,GAAG;IACxC,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,kBAAkB;IAClB,wBAAwB;IACxB,eAAe;IACf,iBAAiB;IACjB,eAAe;IACf,eAAe;IACf,eAAe;IACf,qBAAqB;IACrB,qBAAqB;IACrB,iBAAiB;IACjB,eAAe;IACf,OAAO;CACC,AAhB6B,CAgB5B"}
|
|
1
|
+
{"version":3,"file":"ChatHubClient.js","sourceRoot":"","sources":["../../src/realtime/ChatHubClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { HubConnectionState, LogLevel } from '@microsoft/signalr';
|
|
2
2
|
import type { Unsubscribe } from '../utils/TypedEventEmitter.js';
|
|
3
3
|
import type { NewMessageNotificationDto, MentionedNotificationDto, ConversationCreatedDto, ConversationUpdatedDto, ParticipantJoinedDto, ParticipantLeftDto, ConversationPinnedDto, ConversationUnpinnedDto } from '../types/notification-events.js';
|
|
4
|
+
import type { EphemeralBroadcastDto } from '../types/broadcast.js';
|
|
4
5
|
export interface NotificationHubEventMap {
|
|
5
6
|
newMessageNotification: NewMessageNotificationDto;
|
|
6
7
|
mentionedNotification: MentionedNotificationDto;
|
|
@@ -10,6 +11,7 @@ export interface NotificationHubEventMap {
|
|
|
10
11
|
participantLeft: ParticipantLeftDto;
|
|
11
12
|
conversationPinned: ConversationPinnedDto;
|
|
12
13
|
conversationUnpinned: ConversationUnpinnedDto;
|
|
14
|
+
ephemeralBroadcast: EphemeralBroadcastDto;
|
|
13
15
|
reconnecting: Error | undefined;
|
|
14
16
|
reconnected: string | undefined;
|
|
15
17
|
disconnected: Error | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationHubClient.d.ts","sourceRoot":"","sources":["../../src/realtime/NotificationHubClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,kBAAkB,EAClB,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAqB,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEpF,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"NotificationHubClient.d.ts","sourceRoot":"","sources":["../../src/realtime/NotificationHubClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,kBAAkB,EAClB,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAqB,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEpF,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAMnE,MAAM,WAAW,uBAAuB;IAEtC,sBAAsB,EAAE,yBAAyB,CAAC;IAClD,qBAAqB,EAAE,wBAAwB,CAAC;IAGhD,mBAAmB,EAAE,sBAAsB,CAAC;IAC5C,mBAAmB,EAAE,sBAAsB,CAAC;IAC5C,iBAAiB,EAAE,oBAAoB,CAAC;IACxC,eAAe,EAAE,kBAAkB,CAAC;IACpC,kBAAkB,EAAE,qBAAqB,CAAC;IAC1C,oBAAoB,EAAE,uBAAuB,CAAC;IAG9C,kBAAkB,EAAE,qBAAqB,CAAC;IAG1C,YAAY,EAAE,KAAK,GAAG,SAAS,CAAC;IAChC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,YAAY,EAAE,KAAK,GAAG,SAAS,CAAC;CACjC;AAMD,MAAM,WAAW,4BAA4B;IAC3C,kGAAkG;IAClG,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,aAAa,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACnC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAMD;;;;;;;;;;;;;GAaG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IAErE,4EAA4E;IAC5E,OAAO,CAAC,iBAAiB,CAA8B;IAEvD;;;;OAIG;IACH,OAAO,CAAC,oBAAoB,CAAS;IAErC,8EAA8E;IAC9E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAU5B;gBAEC,OAAO,EAAE,4BAA4B;IASjD,IAAI,KAAK,IAAI,kBAAkB,CAE9B;IAED;;;OAGG;IACH,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAMD,0EAA0E;IAC1E,OAAO,CAAC,eAAe;IAmBvB,oEAAoE;IACpE,OAAO,CAAC,cAAc;IA+BtB;;;;;;;;OAQG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAuC9B;;;;;;;OAOG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBjC,gFAAgF;IAChF,OAAO,CAAC,cAAc;YAMR,QAAQ;IAetB,EAAE,CAAC,CAAC,SAAS,MAAM,uBAAuB,EACxC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,IAAI,GACrD,WAAW;IAId,GAAG,CAAC,CAAC,SAAS,MAAM,uBAAuB,EACzC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,IAAI,GACrD,IAAI;CAGR"}
|
|
@@ -79,6 +79,8 @@ export class NotificationHubClient {
|
|
|
79
79
|
conn.on('ParticipantLeft', (dto) => this.emitter.emit('participantLeft', dto));
|
|
80
80
|
conn.on('ConversationPinned', (dto) => this.emitter.emit('conversationPinned', dto));
|
|
81
81
|
conn.on('ConversationUnpinned', (dto) => this.emitter.emit('conversationUnpinned', dto));
|
|
82
|
+
// Ephemeral broadcast (server→client) — non-persisted, free-form envelope
|
|
83
|
+
conn.on('EphemeralBroadcast', (dto) => this.emitter.emit('ephemeralBroadcast', dto));
|
|
82
84
|
// Connection lifecycle
|
|
83
85
|
conn.onreconnecting((err) => this.emitter.emit('reconnecting', err));
|
|
84
86
|
conn.onreconnected((connectionId) => this.emitter.emit('reconnected', connectionId));
|
|
@@ -187,5 +189,6 @@ NotificationHubClient.HUB_EVENT_NAMES = [
|
|
|
187
189
|
'ParticipantLeft',
|
|
188
190
|
'ConversationPinned',
|
|
189
191
|
'ConversationUnpinned',
|
|
192
|
+
'EphemeralBroadcast',
|
|
190
193
|
];
|
|
191
194
|
//# sourceMappingURL=NotificationHubClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationHubClient.js","sourceRoot":"","sources":["../../src/realtime/NotificationHubClient.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,iBAAiB,IAAI,YAAY,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"NotificationHubClient.js","sourceRoot":"","sources":["../../src/realtime/NotificationHubClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { SenderType } from './message.js';
|
|
2
|
+
/**
|
|
3
|
+
* Sender type for an ephemeral broadcast.
|
|
4
|
+
*
|
|
5
|
+
* A broadcast is always issued by a bot or the SYSTEM user — never a regular
|
|
6
|
+
* `User`. Narrowed from {@link SenderType} so it stays in sync if that union
|
|
7
|
+
* ever changes.
|
|
8
|
+
*/
|
|
9
|
+
export type BroadcastSenderType = Extract<SenderType, 'Bot' | 'System'>;
|
|
10
|
+
/**
|
|
11
|
+
* Ephemeral (non-persisted) real-time broadcast — spec §3.4 / §4.
|
|
12
|
+
*
|
|
13
|
+
* Emitted on BOTH hubs with the identical `EphemeralBroadcast` event:
|
|
14
|
+
* - **ChatHub**: delivered when a broadcast targets `audience="viewers"` of
|
|
15
|
+
* the conversation the client currently has open — `conversationId` is set.
|
|
16
|
+
* - **NotificationHub**: delivered for `audience="members" | "all" | "users"`.
|
|
17
|
+
* For a global broadcast, `conversationId` is `null`.
|
|
18
|
+
*
|
|
19
|
+
* Broadcasts are NOT stored: there is no history, no ack, and no edit/delete.
|
|
20
|
+
* They are pushed by a bot or the SYSTEM user via `POST /api/broadcasts`.
|
|
21
|
+
*
|
|
22
|
+
* The `data` field is a free-form envelope — the client interprets it based on
|
|
23
|
+
* `type`. `TData` lets callers narrow that envelope to a concrete shape while
|
|
24
|
+
* defaulting to `unknown` so untyped usage stays safe:
|
|
25
|
+
*
|
|
26
|
+
* ```ts
|
|
27
|
+
* interface PromoBanner { title: string; startsAt: string }
|
|
28
|
+
*
|
|
29
|
+
* chat.on('ephemeralBroadcast', (b) => {
|
|
30
|
+
* if (b.type === 'promo_banner') {
|
|
31
|
+
* const promo = b.data as PromoBanner; // narrow by `type`
|
|
32
|
+
* showBanner(promo.title);
|
|
33
|
+
* }
|
|
34
|
+
* });
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export interface EphemeralBroadcastDto<TData = unknown> {
|
|
38
|
+
/** Sender-defined key; the client interprets `data` based on this. */
|
|
39
|
+
type: string;
|
|
40
|
+
/** `participantId` of the bot, or the literal `"SYSTEM"`. */
|
|
41
|
+
senderId: string;
|
|
42
|
+
senderType: BroadcastSenderType;
|
|
43
|
+
/** Target conversation, or `null` for a global broadcast. */
|
|
44
|
+
conversationId: string | null;
|
|
45
|
+
/** Free-form JSON envelope. `null` when the sender omits it. */
|
|
46
|
+
data: TData | null;
|
|
47
|
+
/** UTC ISO-8601 timestamp of when the broadcast was sent. */
|
|
48
|
+
sentAt: string;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=broadcast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/types/broadcast.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,UAAU,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,qBAAqB,CAAC,KAAK,GAAG,OAAO;IACpD,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,mBAAmB,CAAC;IAChC,6DAA6D;IAC7D,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gEAAgE;IAChE,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IACnB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../src/types/broadcast.ts"],"names":[],"mappings":"AAAA,yFAAyF"}
|
|
@@ -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"}
|