@vibexnpm/talkx 8.10.0 → 8.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +65 -0
- package/dist/talkflow-sdk.esm.js +1 -1
- package/dist/talkflow-sdk.esm.js.map +1 -1
- package/dist/talkflow-sdk.standalone.js +1 -1
- package/dist/talkflow-sdk.standalone.js.map +1 -1
- package/dist/talkflow-sdk.umd.js +1 -1
- package/dist/talkflow-sdk.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/chat/ChatClient.js +22 -0
- package/src/talkflow/delegates.js +2 -0
- package/types/__typetests__/files.types.ts +54 -0
- package/types/index.d.ts +65 -0
package/dist/index.d.ts
CHANGED
|
@@ -631,6 +631,8 @@ export interface FileMetaData {
|
|
|
631
631
|
*/
|
|
632
632
|
fileId?: string;
|
|
633
633
|
fileUrl: string;
|
|
634
|
+
/** MIME 타입(예: {@code 'image/png'}) — 서버가 업로드·메시지·파일함 응답에 싣는 값. */
|
|
635
|
+
fileType?: string;
|
|
634
636
|
fileName?: string;
|
|
635
637
|
fileSize?: number;
|
|
636
638
|
contentType?: string;
|
|
@@ -1288,6 +1290,55 @@ export interface ApiEnvelope<T> {
|
|
|
1288
1290
|
message?: string;
|
|
1289
1291
|
}
|
|
1290
1292
|
|
|
1293
|
+
/**
|
|
1294
|
+
* 파일 종류 — {@link ChatFile.category} 와 {@link ChatFileListParams.type} 이 같은 값을 쓴다.
|
|
1295
|
+
* {@code FILE} 은 «기타» — 이미지·동영상·음성·문서가 아닌 파일(zip 등).
|
|
1296
|
+
*/
|
|
1297
|
+
export type ChatFileCategory = 'IMAGE' | 'VIDEO' | 'AUDIO' | 'DOCUMENT' | 'FILE';
|
|
1298
|
+
|
|
1299
|
+
/** {@link ChatClient.getFiles} 파라미터 — 파일함 한 페이지. */
|
|
1300
|
+
export interface ChatFileListParams {
|
|
1301
|
+
/** 방 하나로 거르기. 생략하면 내가 지금 참여 중인 방 전부. 참여하지 않은 방이면 403. */
|
|
1302
|
+
roomId?: string;
|
|
1303
|
+
/** 종류로 거르기 — 생략하면 전부. 방·종류를 바꾸면 커서({@code lastId}·{@code lastSortValue}) 없이 처음부터 부른다. */
|
|
1304
|
+
type?: ChatFileCategory;
|
|
1305
|
+
/** 페이지 크기(파일 수). 기본 50, max 100. */
|
|
1306
|
+
size?: number;
|
|
1307
|
+
/** 직전 응답의 {@code lastId} 그대로 — 불투명 값이라 만들어 쓰지 않는다. */
|
|
1308
|
+
lastId?: string;
|
|
1309
|
+
/** 직전 응답의 {@code lastSortValue} 그대로(epoch millis) — {@link CursorPageParams} 와 같은 형. */
|
|
1310
|
+
lastSortValue?: number | string;
|
|
1311
|
+
}
|
|
1312
|
+
|
|
1313
|
+
/**
|
|
1314
|
+
* 파일함 한 줄 — 파일 하나(메시지 하나에 파일이 여러 개면 여러 줄).
|
|
1315
|
+
*
|
|
1316
|
+
* <p>보이는 범위는 채팅 화면과 같다 — 참여 중인 방만, 재입장 이전·보관 기간 밖·삭제된 메시지의 파일은 오지 않는다.</p>
|
|
1317
|
+
*/
|
|
1318
|
+
export interface ChatFile {
|
|
1319
|
+
/** 이 줄의 id — 목록 key 로 쓴다. 페이지 커서 {@code lastId} 와 같은 모양. */
|
|
1320
|
+
id: string;
|
|
1321
|
+
roomId: string;
|
|
1322
|
+
/** 방 이름 — 1:1 은 상대 이름. 상대를 찾지 못하면 null. */
|
|
1323
|
+
roomName: string | null;
|
|
1324
|
+
roomType: ChatRoomTypeValue | null;
|
|
1325
|
+
/** 이 파일이 실린 메시지 — {@link ChatMessage.messageId} 와 같은 값. */
|
|
1326
|
+
messageId: string;
|
|
1327
|
+
/** 올린 쪽 id — 사람은 사용자 id, PM 이 만든 파일은 페르소나 id. */
|
|
1328
|
+
uploaderId: string;
|
|
1329
|
+
uploaderType: SenderTypeValue;
|
|
1330
|
+
/** 사람은 닉네임, PM 은 페르소나 이름. 찾지 못하면(탈퇴·삭제) null. */
|
|
1331
|
+
uploaderName: string | null;
|
|
1332
|
+
/** 사람만. PM 은 null. */
|
|
1333
|
+
uploaderProfileUrl: string | null;
|
|
1334
|
+
/** 올린 시각(epoch millis). */
|
|
1335
|
+
uploadedAt: number;
|
|
1336
|
+
/** 종류 — 파일 MIME 기준, 채팅 첨부 분류와 같다. */
|
|
1337
|
+
category: ChatFileCategory;
|
|
1338
|
+
/** 파일명({@code fileName})·다운로드 링크({@code fileUrl})·MIME({@code fileType})·크기·썸네일 — 채팅 메시지 첨부와 같은 모양. */
|
|
1339
|
+
file: FileMetaData;
|
|
1340
|
+
}
|
|
1341
|
+
|
|
1291
1342
|
// ============================================================================
|
|
1292
1343
|
// Event payloads
|
|
1293
1344
|
// ============================================================================
|
|
@@ -2397,6 +2448,13 @@ export class ChatClient implements SdkEventEmitter<ChatClientEvents> {
|
|
|
2397
2448
|
* WebSocket 이벤트와 동일 형 (REST 원시 응답은 ISO 문자열).</p>
|
|
2398
2449
|
*/
|
|
2399
2450
|
getMessages(roomId: string, params?: CursorPageParams): Promise<ApiEnvelope<CursorPageResponse<ChatMessage>>>;
|
|
2451
|
+
|
|
2452
|
+
/**
|
|
2453
|
+
* 파일함 — 내가 지금 참여 중인 방들에 올라온 파일(미디어 포함), 최신순 커서 페이징. 반환은 envelope 째
|
|
2454
|
+
* ({@code result.data.content}). 한 줄이 파일 하나다. {@code roomId} 를 주면 그 방만(참여하지 않은 방이면 403).
|
|
2455
|
+
* 다음 페이지는 응답의 {@code lastId}·{@code lastSortValue} 를 그대로 넘긴다.
|
|
2456
|
+
*/
|
|
2457
|
+
getFiles(params?: ChatFileListParams): Promise<ApiEnvelope<CursorPageResponse<ChatFile>>>;
|
|
2400
2458
|
fetchLinkPreview(url: string): Promise<FetchLinkPreviewResponse | null>;
|
|
2401
2459
|
sendMessage(roomId: string, data: SendMessageData): Promise<SendMessageResult>;
|
|
2402
2460
|
/** Optimistic UI 버전 — 응답 전 base/예측 messageIds 동기 반환. */
|
|
@@ -2883,6 +2941,13 @@ export default class TalkFlowClient implements SdkEventEmitter<TalkFlowClientEve
|
|
|
2883
2941
|
* WebSocket 이벤트와 동일 형 (REST 원시 응답은 ISO 문자열).</p>
|
|
2884
2942
|
*/
|
|
2885
2943
|
getMessages(roomId: string, params?: CursorPageParams): Promise<ApiEnvelope<CursorPageResponse<ChatMessage>>>;
|
|
2944
|
+
|
|
2945
|
+
/**
|
|
2946
|
+
* 파일함 — 내가 지금 참여 중인 방들에 올라온 파일(미디어 포함), 최신순 커서 페이징. 반환은 envelope 째
|
|
2947
|
+
* ({@code result.data.content}). 한 줄이 파일 하나다. {@code roomId} 를 주면 그 방만(참여하지 않은 방이면 403).
|
|
2948
|
+
* 다음 페이지는 응답의 {@code lastId}·{@code lastSortValue} 를 그대로 넘긴다.
|
|
2949
|
+
*/
|
|
2950
|
+
getFiles(params?: ChatFileListParams): Promise<ApiEnvelope<CursorPageResponse<ChatFile>>>;
|
|
2886
2951
|
fetchLinkPreview(url: string): Promise<FetchLinkPreviewResponse | null>;
|
|
2887
2952
|
sendMessage(roomId: string, data: SendMessageData): Promise<SendMessageResult>;
|
|
2888
2953
|
/** Optimistic UI 버전 — 응답 전 base/예측 messageIds 동기 반환. */
|