@rongcloud/engine 5.5.7-beem → 5.5.8-beem-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -251,110 +251,218 @@ declare class RongStreamWriter {
251
251
  }
252
252
 
253
253
  /**
254
- * @description
255
- * 读数据处理基类
256
- */
257
- declare class BaseReader {
258
- readonly header: Header;
259
- messageId: number;
260
- timestamp: number;
261
- syncMsg: boolean;
262
- protected identifier: string;
263
- constructor(header: Header);
264
- getIdentifier(): string | number;
265
- read(stream: RongStreamReader, length: number, protocolVer: ConnAckProtocolVer): void;
266
- readMessage(stream: RongStreamReader, length?: number, protocolVer?: ConnAckProtocolVer): {
267
- stream: RongStreamReader;
268
- length: number | undefined;
269
- };
254
+ * LogLevel 等级定义,与大数据服务器日志等级保持一致
255
+ */
256
+ declare enum LogL {
257
+ /**
258
+ * IM 质量数据日志,控制台不打印
259
+ */
260
+ STATISTICS = -2,
261
+ /**
262
+ * 未明确使用场景,暂未使用,控制台不打印
263
+ * TODO:
264
+ * 暂未明确使用场景,实时日志系统上报?
265
+ * 需要明确下为什么会有 -1,以及与 -2 的区别,并在注释中补充
266
+ */
267
+ RECORD = -1,
268
+ /**
269
+ * 未明确使用场景,暂未使用,控制台不打印
270
+ */
271
+ FATAL = 0,
272
+ /**
273
+ * ERROR 级
274
+ */
275
+ ERROR = 1,
276
+ /**
277
+ * WARN 级
278
+ */
279
+ WARN = 2,
280
+ /**
281
+ * INFO 级
282
+ */
283
+ INFO = 3,
284
+ /**
285
+ * DEBUG 级
286
+ */
287
+ DEBUG = 4
270
288
  }
289
+
290
+ declare type LogContent = string | number | boolean | null;
291
+ declare type LogType = 'IM' | 'RTC';
271
292
  /**
272
- * @description
273
- * 写数据处理基类
293
+ * 对外暴露的 Logger 工具接口定义,以隐藏 BasicLogger 其他实现
274
294
  */
275
- declare abstract class BaseWriter {
276
- private _header;
277
- lengthSize: number;
278
- data: any;
279
- messageId: number;
280
- topic: string;
281
- targetId: string;
282
- identifier: string;
283
- constructor(headerType: OperationType);
284
- getIdentifier(): string | number;
285
- write(stream: RongStreamWriter): void;
286
- abstract writeMessage(stream: RongStreamWriter): void;
287
- setHeaderQos(qos: number): void;
288
- getHeaderFlag(): number;
289
- getLengthSize(): number;
290
- getBufferData(): Int8Array;
295
+ interface ILogger {
296
+ debug(tag: string, content?: LogContent, traceId?: string): void;
297
+ info(tag: string, content?: LogContent, traceId?: string): void;
298
+ warn(tag: string, content?: LogContent, traceId?: string): void;
299
+ error(tag: string, content?: LogContent, traceId?: string): void;
300
+ /**
301
+ * 设置日志打印等级,默认为 `LogL.WARN`
302
+ * @param level
303
+ */
304
+ setOutputLevel(level: LogL): void;
305
+ /**
306
+ * 创建事务追踪 ID,全局唯一,便于跨进程、异步事务追踪,需要考虑多进程
307
+ */
308
+ createTraceId(): string;
291
309
  }
292
- declare class RetryableReader extends BaseReader {
293
- messageId: number;
294
- readMessage(stream: RongStreamReader, length: number): {
295
- stream: RongStreamReader;
296
- length: number;
297
- };
310
+
311
+ interface ILogData {
312
+ /**
313
+ * 日志原始内容
314
+ */
315
+ content?: LogContent;
316
+ /**
317
+ * 日志标签,如 `L-INIT-O`
318
+ */
319
+ tag: string;
320
+ /**
321
+ * logger 实例 Id,用于确定日志由谁埋点,如 `RCEngien` 为 engine 包埋点日志
322
+ */
323
+ loggerId: string;
324
+ /**
325
+ * 日志生成时间
326
+ */
327
+ time: number;
328
+ /**
329
+ * 应用的声明周期 sessionId
330
+ * @description
331
+ * Electron 环境下,以主进程 sessionId 入库,渲染进程 sessionId 存储于 content 内。
332
+ * 日志上报时,通过 `${mainSessionId}:${renderSessionId}` 形式作为 sessionId 上报
333
+ * @TODO 需确认服务是否允许 `${mainSessionId}:${renderSessionId}` 的方式,以及 sessionId 是否超出长度。
334
+ */
335
+ sessionId: string;
336
+ /**
337
+ * 日志类型,仅用于大数据后台查阅统计
338
+ */
339
+ type: 'IM' | 'RTC';
340
+ /**
341
+ * 日志等级,该等级与服务器统计等级保持一致,为入库等级
342
+ */
343
+ level: LogL;
344
+ /**
345
+ * 事务跟踪 ID
346
+ */
347
+ traceId?: string;
298
348
  }
299
- declare class RetryableWriter extends BaseWriter {
300
- writeMessage(stream: RongStreamWriter): void;
349
+ /**
350
+ * 日志数据库接口
351
+ */
352
+ interface ILogDB {
353
+ /**
354
+ * 获取实时日志上报的时间戳记录
355
+ */
356
+ getTimestamp4RealtimeLog(userId: string): Promise<number>;
357
+ /**
358
+ * 设置实时日志上报的时间戳记录
359
+ * @param userId 当前用户 ID
360
+ * @param timestamp
361
+ */
362
+ setTimestamp4RealtimeLog(userId: string, timestamp: number): Promise<void>;
363
+ /**
364
+ * 根据时间戳和日志等级获取全量日志
365
+ * @param startTime
366
+ * @param endTime
367
+ * @param level
368
+ * @param includeStatistics 是否包含质量统计日志
369
+ */
370
+ getLogs(startTime: number, endTime: number, level: LogL, includeStatistics: boolean): Promise<{
371
+ logs: ILogData[];
372
+ dbReady: boolean;
373
+ }>;
301
374
  }
302
- declare class PublishReader extends RetryableReader {
303
- topic: string;
304
- data: any;
305
- targetId: string;
306
- date: any;
307
- syncMsg: boolean;
308
- identifier: string;
309
- readMessage(stream: RongStreamReader, length: number): {
310
- stream: RongStreamReader;
311
- length: number;
312
- };
375
+
376
+ /**
377
+ * Logger 抽象基类,定义日志采集接口与进程内打印,
378
+ * 由子类继承实现入库逻辑
379
+ */
380
+ declare abstract class BasicLogger implements ILogger {
381
+ protected readonly _appkey: string;
382
+ protected readonly _id: string;
383
+ protected readonly _type: LogType;
384
+ constructor(_appkey: string, _id: string, _type: LogType);
385
+ private _stdout;
386
+ /**
387
+ * 用户的打印日志等级配置
388
+ */
389
+ private outputLevel;
390
+ setOutputLevel(level: LogL): void;
391
+ /**
392
+ * 由子类继承实现日志入库
393
+ * @override
394
+ */
395
+ protected abstract flush(data: ILogData): void;
396
+ private _log;
397
+ debug: (tag: string, content?: LogContent | undefined, traceId?: string | undefined) => void;
398
+ info: (tag: string, content?: LogContent | undefined, traceId?: string | undefined) => void;
399
+ warn: (tag: string, content?: LogContent | undefined, traceId?: string | undefined) => void;
400
+ error: (tag: string, content?: LogContent | undefined, traceId?: string | undefined) => void;
401
+ /**
402
+ * 内部质量数据统计接口,仅限 IMLib 与 RTCLib 内部使用
403
+ */
404
+ __statistics: (tag: string, content?: LogContent | undefined, traceId?: string | undefined) => void;
405
+ /**
406
+ * 创建事务追踪 ID,全局唯一,便于跨进程、异步事务追踪,需要考虑多进程
407
+ */
408
+ createTraceId(): string;
409
+ /**
410
+ * 获取当前进程的 sessionId,全局唯一
411
+ * @returns
412
+ */
413
+ getSessionId(): string;
313
414
  }
415
+
314
416
  /**
315
- * @description
316
- * 发消息使用
417
+ * 实现基于 IndexDB 存储的日志类
317
418
  */
318
- declare class PublishWriter extends RetryableWriter {
319
- topic: string;
320
- data: any;
321
- targetId: string;
322
- date: any;
323
- syncMsg: boolean;
324
- identifier: string;
325
- constructor(topic: string, data: any, targetId: string);
326
- writeMessage(stream: RongStreamWriter): void;
419
+ declare class IndexDBLogger extends BasicLogger {
420
+ protected flush(data: ILogData): void;
327
421
  }
422
+
328
423
  /**
329
- * @description
330
- * 发消息, Server 给的 Ack 回执
424
+ * 消息被拦截类型
425
+ * @category Enum
331
426
  */
332
- declare class PubAckReader extends RetryableReader {
333
- status: number;
334
- date: number;
335
- data: any;
336
- millisecond: number;
337
- messageUId: string;
338
- timestamp: number;
339
- identifier: string;
340
- topic: string;
341
- targetId: string;
342
- readMessage(stream: RongStreamReader, length: number): {
343
- stream: RongStreamReader;
344
- length: number;
345
- };
427
+ declare enum MessageBlockType {
428
+ /**
429
+ 全局敏感词:命中了融云内置的全局敏感词
430
+ */
431
+ GLOBAL = 1,
432
+ /**
433
+ 自定义敏感词拦截:命中了客户在融云自定义的敏感词
434
+ */
435
+ CUSTOM = 2,
436
+ /**
437
+ 第三方审核拦截:命中了第三方(数美)或模板路由决定不下发的状态
438
+ */
439
+ THIRD_PARTY = 3
346
440
  }
347
441
  /**
348
- * @description
349
- * Web 主动查询
442
+ * 消息被拦截源触发类型
350
443
  */
351
- declare class QueryWriter extends RetryableWriter {
352
- topic: string;
353
- data: any;
354
- targetId: string;
355
- identifier: string;
356
- constructor(topic: string, data: any, targetId: string);
357
- writeMessage(stream: RongStreamWriter): void;
444
+ declare enum MessageBlockSourceType {
445
+ /** 原始消息 */
446
+ MSG_ORIGINAL = 0,
447
+ /** 消息扩展 */
448
+ MSG_EXPANSION = 1,
449
+ /** 消息修改 */
450
+ MSG_MODIFY = 2
451
+ }
452
+
453
+ /**
454
+ * 消息方向
455
+ * @category Enum
456
+ */
457
+ declare enum MessageDirection {
458
+ /**
459
+ * 己方发送消息
460
+ */
461
+ SEND = 1,
462
+ /**
463
+ * 己方接收消息
464
+ */
465
+ RECEIVE = 2
358
466
  }
359
467
 
360
468
  /**
@@ -395,21 +503,6 @@ declare enum FileType {
395
503
  COMBINE_HTML = 6
396
504
  }
397
505
 
398
- /**
399
- * 消息方向
400
- * @category Enum
401
- */
402
- declare enum MessageDirection {
403
- /**
404
- * 己方发送消息
405
- */
406
- SEND = 1,
407
- /**
408
- * 己方接收消息
409
- */
410
- RECEIVE = 2
411
- }
412
-
413
506
  /**
414
507
  * IM 错误码范围段
415
508
  * 2 开头为 IM Server 返回错误码
@@ -1384,6 +1477,7 @@ declare enum ChatroomEntryType {
1384
1477
  }
1385
1478
 
1386
1479
  /**
1480
+ * @deprecated
1387
1481
  * 日志级别
1388
1482
  * @category Enum
1389
1483
  */
@@ -1397,13 +1491,15 @@ declare enum LogLevel {
1397
1491
  STATISTICS = 6,
1398
1492
  NONE = 1000
1399
1493
  }
1494
+ /**
1495
+ * @deprecated
1496
+ */
1400
1497
  declare enum LogSource {
1401
1498
  IM = "IM",
1402
1499
  RTC = "RTC"
1403
1500
  }
1404
1501
  /**
1405
1502
  * IMLib 埋点日志 Id 枚举
1406
- * @desc 参考文档-https://rongcloud.yuque.com/tbvylv/znhprz/dpt9wf#fE9u
1407
1503
  */
1408
1504
  declare enum LogTagId {
1409
1505
  L_IMSDK_VER_O = "L-imsdk_ver-O",
@@ -1412,7 +1508,6 @@ declare enum LogTagId {
1412
1508
  L_INIT_O = "L-init-O",
1413
1509
  A_DESTROY_O = "A_DESTROY_O",
1414
1510
  L_DESTROY_O = "L_DESTROY_O",
1415
- P_INIT_O = "P-init-O",
1416
1511
  A_CONNECT_T = "A-connect-T",
1417
1512
  A_CONNECT_R = "A-connect-R",
1418
1513
  A_CONNECT_S = "A-connect-S",
@@ -1422,14 +1517,24 @@ declare enum LogTagId {
1422
1517
  L_CONNECT_T = "L-connect-T",
1423
1518
  L_CONNECT_R = "L-connect-R",
1424
1519
  L_CONNECT_S = "L-connect-S",
1425
- P_CONNECT_O = "P-connect-O",
1426
- P_CONNECT_S = "P-connect-S",
1427
1520
  L_NOTIFY_ULTRA_ONLINE_S = "L-notify-ultra-online-S",
1428
1521
  L_ULTRA_SYNC_DONE_S = "L-ultra-sync-done-S",
1522
+ L_BATCH_MESSAGE_O = "L-BATCH_MESSAGE-O",
1523
+ /** 业务层 APIContext onmessage 回调报错 */
1524
+ A_MSG_LISTENER_E = "A-MSG_LISTENER-E",
1525
+ /**
1526
+ * @deprecated
1527
+ * 用于保留迁移前的日志,后续删除
1528
+ */
1529
+ O = "L-original-O",
1530
+ /** 插件安装 */
1531
+ L_INSTALL_PLUGIN_T = "L-INSTALL_PLUGIN-T",
1532
+ /** 插件安装结果 */
1533
+ L_INSTALL_PLUGIN_R = "L-INSTALL_PLUGIN-R",
1534
+ /** navi 配置错误 */
1535
+ L_NAVI_CONF_E = "L-NAVI_CONF_ERROR-E",
1429
1536
  A_SEND_MSG_T = "A-send_msg-T",
1430
1537
  A_SEND_MSG_R = "A-send_msg-R",
1431
- P_SEND_MSG_T = "P-send_msg-T",
1432
- P_SEND_MSG_R = "P-send_msg-R",
1433
1538
  L_SEND_MSG_T = "L-send_msg-T",
1434
1539
  L_SEND_MSG_R = "L-send_msg-R",
1435
1540
  L_PULL_MSG_T = "L-pull_msg-T",
@@ -1449,7 +1554,6 @@ declare enum LogTagId {
1449
1554
  L_PULL_CONVERSATION_S = "L-pull_conversation-S",
1450
1555
  L_RECALL_ULTRA_MSG_S = "L-recall_ultra_msg-S",
1451
1556
  A_REGTYP_O = "A-regtyp-O",
1452
- P_REGTYP_O = "P-regtype-O",
1453
1557
  P_REGTYP_E = "P-regtype-E",
1454
1558
  L_GET_NAVI_T = "L-get_navi-T",
1455
1559
  L_GET_NAVI_R = "L-get_navi-R",
@@ -1487,7 +1591,26 @@ declare enum LogTagId {
1487
1591
  L_NOTIFY_NAVI_CHANGE_E = "L-notify_navi_change-E",
1488
1592
  L_REPORT_FULL_LOG_O = "L-report_full_log-O",
1489
1593
  L_REPORT_FULL_LOG_T = "L-report_full_log-T",
1490
- L_REPORT_FULL_LOG_R = "L-report_full_log-R"
1594
+ L_REPORT_FULL_LOG_R = "L-report_full_log-R",
1595
+ /** 解析 navi logPolicy 报错 */
1596
+ L_REPORT_LOG_POLICY_E = "L-parse_navi_logpolicy-E",
1597
+ /** 运行时环境不支持 IndexDB */
1598
+ L_UNSUPPORT_INDEXDB_O = "L-unsupport_IndexDB-O",
1599
+ L_LOGDB_OPEN_FAILED_E = "L-logDB_open_failed-E",
1600
+ L_LOGDB_CLOSED_S = "L-logDB_closed-S",
1601
+ L_LOGDB_ERROR_E = "L-logDB_error-S",
1602
+ L_LOGDB_ABORT_S = "L-logDB_abort-S",
1603
+ /** 实时日志上报 */
1604
+ L_REALTIME_LOG_R = "L_REALTIME_LOG_R",
1605
+ /** 实时日志上报结果 */
1606
+ L_REALTIME_LOG_T = "L_REALTIME_LOG_T",
1607
+ L_UNKNOWN_TOPIC_E = "L_UNKNOWN_TOPIC_E",
1608
+ L_RECV_RMTP_O = "L_RECV_RMTP_O",
1609
+ L_RECV_RMTP_E = "L_RECV_RMTP_E",
1610
+ /** 版本号上报 */
1611
+ L_VER_REPORT_T = "L-VER_REPORT-T",
1612
+ /** 版本号上报结果 */
1613
+ L_VER_REPORT_R = "L-VER_REPORT-R"
1491
1614
  }
1492
1615
 
1493
1616
  /**
@@ -1499,34 +1622,15 @@ declare enum ChatroomUserChangeType {
1499
1622
  JOIN = 1
1500
1623
  }
1501
1624
 
1502
- /**
1503
- * 消息被拦截类型
1504
- * @category Enum
1505
- */
1506
- declare enum MessageBlockType {
1507
- /**
1508
- 全局敏感词:命中了融云内置的全局敏感词
1509
- */
1510
- GLOBAL = 1,
1625
+ declare enum StoreKeys {
1511
1626
  /**
1512
- 自定义敏感词拦截:命中了客户在融云自定义的敏感词
1513
- */
1514
- CUSTOM = 2,
1627
+ * Navi 数据缓存,暂未使用
1628
+ */
1629
+ NAVI = "rc-navi",
1515
1630
  /**
1516
- 第三方审核拦截:命中了第三方(数美)或模板路由决定不下发的状态
1517
- */
1518
- THIRD_PARTY = 3
1519
- }
1520
- /**
1521
- * 消息被拦截源触发类型
1522
- */
1523
- declare enum MessageBlockSourceType {
1524
- /** 原始消息 */
1525
- MSG_ORIGINAL = 0,
1526
- /** 消息扩展 */
1527
- MSG_EXPANSION = 1,
1528
- /** 消息修改 */
1529
- MSG_MODIFY = 2
1631
+ * 实时日志已上报的时间戳
1632
+ */
1633
+ REALTIME_LOG_TIMESTAMP = "rc-realtime-log-timestamp"
1530
1634
  }
1531
1635
 
1532
1636
  declare enum UltraGroupChannelType {
@@ -1649,102 +1753,6 @@ declare enum RTCJoinType {
1649
1753
  COEXIST = 2
1650
1754
  }
1651
1755
 
1652
- /**
1653
- * 会话属性
1654
- * @category Interface
1655
- */
1656
- interface IConversationOption {
1657
- conversationType: ConversationType;
1658
- targetId: string;
1659
- channelId?: string;
1660
- }
1661
- interface IServerRTCRoomEntry {
1662
- key: string;
1663
- value: string;
1664
- status: number;
1665
- timestamp: number;
1666
- uid: string;
1667
- }
1668
- interface IChrmKVEntry {
1669
- key: string;
1670
- value?: string;
1671
- isSendNotification?: boolean;
1672
- notificationExtra?: string;
1673
- isOverwrite?: boolean;
1674
- isAutoDelete?: boolean;
1675
- timestamp?: number;
1676
- userId?: string;
1677
- type?: number;
1678
- isDeleted?: boolean;
1679
- version?: number;
1680
- }
1681
- interface IChrmKVEntries {
1682
- entries: {
1683
- key: string;
1684
- value?: string;
1685
- timestamp?: number;
1686
- version?: number;
1687
- }[];
1688
- notificationExtra?: string;
1689
- isOverwrite?: boolean;
1690
- isAutoDelete?: boolean;
1691
- timestamp?: number;
1692
- userId?: string;
1693
- type?: number;
1694
- isDeleted?: boolean;
1695
- }
1696
- interface IChrmKVPullData {
1697
- kvEntries: IChrmKVEntry[];
1698
- isFullUpdate?: boolean;
1699
- syncTime?: number;
1700
- }
1701
- interface IServerConversationStatus {
1702
- conversationType: number;
1703
- targetId: string;
1704
- updatedTime?: number;
1705
- notificationStatus?: number;
1706
- notificationLevel?: number;
1707
- isTop?: boolean;
1708
- type?: number;
1709
- tags?: IConversationTag[];
1710
- channelId?: string;
1711
- }
1712
- interface IUserSettingItem {
1713
- targetId: number;
1714
- type: number;
1715
- key: string;
1716
- value: any;
1717
- version: number;
1718
- status: number;
1719
- tags: IConversationTag[];
1720
- }
1721
- interface IServerUserSetting {
1722
- settings: {
1723
- [key: string]: IUserSettingItem;
1724
- };
1725
- version: number;
1726
- }
1727
- interface ISyncMsgArgs {
1728
- inboxTime: number;
1729
- sendboxTime: number;
1730
- broadcastSyncTime?: number;
1731
- }
1732
- interface IGetMsgOption {
1733
- timestamp?: number;
1734
- count?: number;
1735
- order?: number;
1736
- channelId?: string;
1737
- }
1738
- interface IGetConversationListOption {
1739
- type?: number;
1740
- count?: number;
1741
- startTime?: number;
1742
- order?: 0 | 1;
1743
- }
1744
- interface IClearMsgOption {
1745
- timestamp?: number;
1746
- }
1747
-
1748
1756
  /**
1749
1757
  * @category Interface
1750
1758
  */
@@ -2405,189 +2413,6 @@ interface IUltraUnreadMsg {
2405
2413
  mentionedType?: number;
2406
2414
  }
2407
2415
 
2408
- /**
2409
- * TODO: 确定对外暴露的必要性
2410
- * @deprecated
2411
- */
2412
- declare const DelayTimer: {
2413
- _delayTime: number;
2414
- /**
2415
- * 方法并未引用,getTimer 实际返回值始终为 Date.now()
2416
- * @deprecated
2417
- */
2418
- setTime: (time: number) => void;
2419
- getTime: () => number;
2420
- };
2421
-
2422
- declare enum HttpMethod {
2423
- GET = "GET",
2424
- POST = "POST"
2425
- }
2426
- interface IRequest {
2427
- url: string;
2428
- /**
2429
- * @default `HttpMethod.GET`
2430
- */
2431
- method?: HttpMethod | 'GET' | 'POST';
2432
- /**
2433
- * 查询数据
2434
- */
2435
- query?: {
2436
- [key: string]: string | number | null;
2437
- };
2438
- /**
2439
- * Request Header 信息
2440
- */
2441
- headers?: {
2442
- [key: string]: string;
2443
- };
2444
- /**
2445
- * Request Body 数据
2446
- */
2447
- body?: Object | string;
2448
- /**
2449
- * 超时设置,默认 `60s`
2450
- */
2451
- timeout?: number;
2452
- /**
2453
- * 【Alipay-Only】
2454
- * 期望返回的数据格式,如果为 json 则返回后会对返回的数据进行一次 JSON.parse
2455
- */
2456
- dataType?: 'json' | 'text' | 'base64' | 'arraybuffer';
2457
- }
2458
- interface IStorage {
2459
- setItem(key: string, value: string): void;
2460
- getItem(key: string): string | null;
2461
- removeItem(key: string): void;
2462
- clear(): void;
2463
- }
2464
- interface IResponse {
2465
- status: number;
2466
- data?: string;
2467
- }
2468
- /**
2469
- * 网络状态枚举
2470
- */
2471
- declare enum NetworkType {
2472
- WIFI = "wifi",
2473
- FOUR_G = "4g",
2474
- THREE_G = "3g",
2475
- TWO_G = "2g",
2476
- FIVE_G = "2g",
2477
- THREE_GENT = "3gnet",
2478
- UNKONWN = "unknown"
2479
- }
2480
- interface IWebSocket {
2481
- /**
2482
- * 监听连接建立事件,此时 WebSocket 实例已准备好收发数据
2483
- * @param callback
2484
- */
2485
- onOpen(callback: () => void): void;
2486
- /**
2487
- * 监听连接关闭事件
2488
- * @param callback
2489
- */
2490
- onClose(callback: (code?: number, reason?: string) => void): void;
2491
- /**
2492
- * 监听接收服务器消息事件
2493
- * @param callback
2494
- */
2495
- onMessage(callback: (data: string | ArrayBuffer) => void): void;
2496
- /**
2497
- * 监听链接错误事件
2498
- * @param callback
2499
- */
2500
- onError(callback: (error: unknown) => void): void;
2501
- /**
2502
- * 向服务器发送数据
2503
- * @param data
2504
- */
2505
- send(data: ArrayBuffer | string): void;
2506
- /**
2507
- * 关闭连接
2508
- * @param code
2509
- * @param reason
2510
- */
2511
- close(code?: number, reason?: string): void;
2512
- }
2513
- /**
2514
- * 平台运行时抽象
2515
- */
2516
- interface IRuntime {
2517
- /**
2518
- * 平台标识
2519
- */
2520
- tag: string;
2521
- /**
2522
- * 发送 http 请求
2523
- * @param options
2524
- */
2525
- httpReq(options: IRequest): Promise<IResponse>;
2526
- /**
2527
- * 是否使用导航
2528
- */
2529
- useNavi: boolean;
2530
- /**
2531
- * websocket 地址上附加的平台字段
2532
- */
2533
- connectPlatform: string;
2534
- /**
2535
- * websocket 地址上 apiVer 字段,代表代码是否来源于 uniapp
2536
- */
2537
- isFromUniapp: boolean;
2538
- /**
2539
- * 创建长连接实例
2540
- */
2541
- createWebSocket?(url: string, protocols?: string[]): IWebSocket;
2542
- /**
2543
- * 存储模块
2544
- */
2545
- localStorage: IStorage;
2546
- /**
2547
- * 在某些非浏览器平台,其等同于 localStorage
2548
- */
2549
- sessionStorage: IStorage;
2550
- /**
2551
- * 获取网络状态
2552
- * 2g 3g 4g wifi unkown
2553
- */
2554
- getNetworkType(): Promise<NetworkType>;
2555
- }
2556
-
2557
- /**
2558
- * @category Interface
2559
- */
2560
- interface IAsyncRes<T = void> {
2561
- /**
2562
- * Promise 执行结果
2563
- */
2564
- code: ErrorCode;
2565
- /**
2566
- * 结果数据
2567
- */
2568
- data?: T;
2569
- /**
2570
- * 错误消息
2571
- */
2572
- msg?: string;
2573
- }
2574
- /**
2575
- * 异步任务结果定义
2576
- * @description
2577
- * 通过 `Promise.resolve` 来处理预期内的异常,进而通过 Uncatch Promise Error 暴露预期外的异常
2578
- */
2579
- declare type IPromiseResult<T = void> = Promise<IAsyncRes<T>>;
2580
- interface IConnectResult {
2581
- /**
2582
- * 连接错误码
2583
- */
2584
- code: ErrorCode;
2585
- /**
2586
- * 导航获取成功后即可有相应的值,在导航数据获取完成之前该值为 undefined
2587
- */
2588
- userId?: string;
2589
- }
2590
-
2591
2416
  /**
2592
2417
  * 从服务器拉取到的会话数据结构
2593
2418
  * @category Interface
@@ -2929,8 +2754,13 @@ interface INaviInfo {
2929
2754
  */
2930
2755
  logSwitch: number;
2931
2756
  /**
2932
- * 实时日志上传策略
2933
- * @example `'{ "url": "logcollection.ronghub.com", "level": 1,"itv": 6, "times": 5 }'`
2757
+ * 实时日志上传策略,值为 JSON 字符串
2758
+ * @example `'{
2759
+ * "url": "logcollection.ronghub.com", // 上传地址
2760
+ * "level": 1, // 日志等级
2761
+ * "itv": 6, // 上传频率,即时间间隔,单位 s
2762
+ * "times": 5 // 重试次数?
2763
+ * }'`
2934
2764
  */
2935
2765
  logPolicy: string;
2936
2766
  /**
@@ -3268,74 +3098,243 @@ interface IUploadAuth {
3268
3098
  /**
3269
3099
  * s3 policy,对应 post上传 policy 字段
3270
3100
  */
3271
- s3Policy: string;
3101
+ s3Policy: string;
3102
+ /**
3103
+ * s3 签名信息,对应 post上传 x-amz-signature 字段
3104
+ */
3105
+ s3Signature: string;
3106
+ /**
3107
+ * s3 存储空间名称
3108
+ */
3109
+ s3BucketName: string;
3110
+ /**
3111
+ * stc Authorization 头
3112
+ */
3113
+ stcAuthorization: string;
3114
+ /**
3115
+ * stc xAmzContentSha256
3116
+ */
3117
+ stcContentSha256: string;
3118
+ /**
3119
+ * stc date
3120
+ */
3121
+ stcDate: string;
3122
+ /**
3123
+ * stc 存储空间名称
3124
+ */
3125
+ stcBucketName: string;
3126
+ }
3127
+
3128
+ interface IRTCRoomInfo {
3129
+ roomId: string;
3130
+ roomData: unknown[];
3131
+ userCount: number;
3132
+ list: unknown[];
3133
+ }
3134
+ interface IRtcTokenData {
3135
+ rtcToken: string;
3136
+ }
3137
+ interface IRTCUsers {
3138
+ users: {
3139
+ [userId: string]: {
3140
+ /**
3141
+ * 发布的资源数据,是一个 JSON 字符串,解析后为发布的资源列表
3142
+ */
3143
+ uris?: string;
3144
+ /**
3145
+ * 加房间的身份标识,保存主房间 roomId
3146
+ */
3147
+ extra?: string;
3148
+ };
3149
+ };
3150
+ }
3151
+ interface IJoinRTCRoomData extends IRTCUsers {
3152
+ token: string;
3153
+ sessionId: string;
3154
+ roomInfo: {
3155
+ key: string;
3156
+ value: string;
3157
+ }[];
3158
+ kvEntries: IServerRTCRoomEntry[];
3159
+ offlineKickTime: number;
3160
+ }
3161
+ interface KVString {
3162
+ [key: string]: string;
3163
+ }
3164
+ /**
3165
+ * 设置 RTC 人员 inner、outer 数据
3166
+ */
3167
+ interface IRTCUserData {
3168
+ [key: string]: string;
3169
+ }
3170
+
3171
+ /**
3172
+ * @category Interface
3173
+ */
3174
+ interface IAsyncRes<T = void> {
3175
+ /**
3176
+ * Promise 执行结果
3177
+ */
3178
+ code: ErrorCode;
3179
+ /**
3180
+ * 结果数据
3181
+ */
3182
+ data?: T;
3183
+ /**
3184
+ * 错误消息
3185
+ */
3186
+ msg?: string;
3187
+ }
3188
+ /**
3189
+ * 异步任务结果定义
3190
+ * @description
3191
+ * 通过 `Promise.resolve` 来处理预期内的异常,进而通过 Uncatch Promise Error 暴露预期外的异常
3192
+ */
3193
+ declare type IPromiseResult<T = void> = Promise<IAsyncRes<T>>;
3194
+ interface IConnectResult {
3195
+ /**
3196
+ * 连接错误码
3197
+ */
3198
+ code: ErrorCode;
3199
+ /**
3200
+ * 导航获取成功后即可有相应的值,在导航数据获取完成之前该值为 undefined
3201
+ */
3202
+ userId?: string;
3203
+ }
3204
+
3205
+ declare enum HttpMethod {
3206
+ GET = "GET",
3207
+ POST = "POST"
3208
+ }
3209
+ interface IRequest {
3210
+ url: string;
3211
+ /**
3212
+ * @default `HttpMethod.GET`
3213
+ */
3214
+ method?: HttpMethod | 'GET' | 'POST';
3215
+ /**
3216
+ * 查询数据
3217
+ */
3218
+ query?: {
3219
+ [key: string]: string | number | null;
3220
+ };
3221
+ /**
3222
+ * Request Header 信息
3223
+ */
3224
+ headers?: {
3225
+ [key: string]: string;
3226
+ };
3227
+ /**
3228
+ * Request Body 数据
3229
+ */
3230
+ body?: Object | string;
3231
+ /**
3232
+ * 超时设置,默认 `60s`
3233
+ */
3234
+ timeout?: number;
3235
+ /**
3236
+ * 【Alipay-Only】
3237
+ * 期望返回的数据格式,如果为 json 则返回后会对返回的数据进行一次 JSON.parse
3238
+ */
3239
+ dataType?: 'json' | 'text' | 'base64' | 'arraybuffer';
3240
+ }
3241
+ interface IStorage {
3242
+ setItem(key: string, value: string): void;
3243
+ getItem(key: string): string | null;
3244
+ removeItem(key: string): void;
3245
+ clear(): void;
3246
+ }
3247
+ interface IResponse {
3248
+ status: number;
3249
+ data?: string;
3250
+ }
3251
+ /**
3252
+ * 网络状态枚举
3253
+ */
3254
+ declare enum NetworkType {
3255
+ WIFI = "wifi",
3256
+ FOUR_G = "4g",
3257
+ THREE_G = "3g",
3258
+ TWO_G = "2g",
3259
+ FIVE_G = "2g",
3260
+ THREE_GENT = "3gnet",
3261
+ UNKONWN = "unknown"
3262
+ }
3263
+ interface IWebSocket {
3264
+ /**
3265
+ * 监听连接建立事件,此时 WebSocket 实例已准备好收发数据
3266
+ * @param callback
3267
+ */
3268
+ onOpen(callback: () => void): void;
3269
+ /**
3270
+ * 监听连接关闭事件
3271
+ * @param callback
3272
+ */
3273
+ onClose(callback: (code?: number, reason?: string) => void): void;
3274
+ /**
3275
+ * 监听接收服务器消息事件
3276
+ * @param callback
3277
+ */
3278
+ onMessage(callback: (data: string | ArrayBuffer) => void): void;
3279
+ /**
3280
+ * 监听链接错误事件
3281
+ * @param callback
3282
+ */
3283
+ onError(callback: (error: unknown) => void): void;
3284
+ /**
3285
+ * 向服务器发送数据
3286
+ * @param data
3287
+ */
3288
+ send(data: ArrayBuffer | string): void;
3289
+ /**
3290
+ * 关闭连接
3291
+ * @param code
3292
+ * @param reason
3293
+ */
3294
+ close(code?: number, reason?: string): void;
3295
+ }
3296
+ /**
3297
+ * 平台运行时抽象
3298
+ */
3299
+ interface IRuntime {
3300
+ /**
3301
+ * 平台标识
3302
+ */
3303
+ tag: string;
3304
+ /**
3305
+ * 发送 http 请求
3306
+ * @param options
3307
+ */
3308
+ httpReq(options: IRequest): Promise<IResponse>;
3309
+ /**
3310
+ * 是否使用导航
3311
+ */
3312
+ useNavi: boolean;
3272
3313
  /**
3273
- * s3 签名信息,对应 post上传 x-amz-signature 字段
3314
+ * websocket 地址上附加的平台字段
3274
3315
  */
3275
- s3Signature: string;
3316
+ connectPlatform: string;
3276
3317
  /**
3277
- * s3 存储空间名称
3318
+ * websocket 地址上 apiVer 字段,代表代码是否来源于 uniapp
3278
3319
  */
3279
- s3BucketName: string;
3320
+ isFromUniapp: boolean;
3280
3321
  /**
3281
- * stc Authorization 头
3322
+ * 创建长连接实例
3282
3323
  */
3283
- stcAuthorization: string;
3324
+ createWebSocket?(url: string, protocols?: string[]): IWebSocket;
3284
3325
  /**
3285
- * stc xAmzContentSha256
3326
+ * 存储模块
3286
3327
  */
3287
- stcContentSha256: string;
3328
+ localStorage: IStorage;
3288
3329
  /**
3289
- * stc date
3330
+ * 在某些非浏览器平台,其等同于 localStorage
3290
3331
  */
3291
- stcDate: string;
3332
+ sessionStorage: IStorage;
3292
3333
  /**
3293
- * stc 存储空间名称
3334
+ * 获取网络状态
3335
+ * 2g 3g 4g wifi unkown
3294
3336
  */
3295
- stcBucketName: string;
3296
- }
3297
-
3298
- interface IRTCRoomInfo {
3299
- roomId: string;
3300
- roomData: unknown[];
3301
- userCount: number;
3302
- list: unknown[];
3303
- }
3304
- interface IRtcTokenData {
3305
- rtcToken: string;
3306
- }
3307
- interface IRTCUsers {
3308
- users: {
3309
- [userId: string]: {
3310
- /**
3311
- * 发布的资源数据,是一个 JSON 字符串,解析后为发布的资源列表
3312
- */
3313
- uris?: string;
3314
- /**
3315
- * 加房间的身份标识,保存主房间 roomId
3316
- */
3317
- extra?: string;
3318
- };
3319
- };
3320
- }
3321
- interface IJoinRTCRoomData extends IRTCUsers {
3322
- token: string;
3323
- sessionId: string;
3324
- roomInfo: {
3325
- key: string;
3326
- value: string;
3327
- }[];
3328
- kvEntries: IServerRTCRoomEntry[];
3329
- offlineKickTime: number;
3330
- }
3331
- interface KVString {
3332
- [key: string]: string;
3333
- }
3334
- /**
3335
- * 设置 RTC 人员 inner、outer 数据
3336
- */
3337
- interface IRTCUserData {
3338
- [key: string]: string;
3337
+ getNetworkType(): Promise<NetworkType>;
3339
3338
  }
3340
3339
 
3341
3340
  /**
@@ -4192,83 +4191,411 @@ interface IGroupMessageDeliverInfo {
4192
4191
  totalCount: number;
4193
4192
  list: IDeliveredUser[];
4194
4193
  }
4195
- interface IMessageDeliver {
4196
- deliverTime: number;
4194
+ interface IMessageDeliver {
4195
+ deliverTime: number;
4196
+ messageUId: string;
4197
+ objectName: string;
4198
+ targetId: string;
4199
+ }
4200
+ interface IGroupMessageDeliveredStatusInfo {
4201
+ MessageUId: string;
4202
+ deliveryCount: number;
4203
+ }
4204
+ interface IGroupMessageDeliverStatus {
4205
+ totalCount: number;
4206
+ list: IGroupMessageDeliveredStatusInfo[];
4207
+ }
4208
+
4209
+ /**
4210
+ * IndexDB中存储的log数据
4211
+ */
4212
+ interface ILogInfo {
4213
+ sessionId: string;
4214
+ time: number;
4215
+ level: LogLevel;
4216
+ content: string;
4217
+ userId?: string;
4218
+ logSource?: LogSource;
4219
+ tagId?: LogTagId;
4220
+ }
4221
+ interface IRealTimeLog {
4222
+ level: LogLevel;
4223
+ content: string;
4224
+ }
4225
+ interface ILogExtensions {
4226
+ traceId?: string;
4227
+ logSource?: LogSource;
4228
+ }
4229
+ interface ILogInit {
4230
+ userId?: string;
4231
+ localLogLevel?: LogLevel;
4232
+ customLogPrint?: (logLevel: LogLevel, msg: string) => void;
4233
+ }
4234
+ interface IInitBigDataOption {
4235
+ runtime?: IRuntime;
4236
+ appkey?: string;
4237
+ version?: string;
4238
+ userId?: string;
4239
+ }
4240
+ interface IBigdataLogInit extends IInitBigDataOption {
4241
+ logUrl: string;
4242
+ sessionId: string;
4243
+ }
4244
+
4245
+ /**
4246
+ * 定义已废弃,请使用 `IRemoveChatroomEntries` 替换
4247
+ * @deprecated
4248
+ */
4249
+ declare type IRemoveChatRoomEntries = IRemoveChatroomEntries;
4250
+ /**
4251
+ * 定义已废弃,请使用 `IChatroomEntry` 替换
4252
+ * @deprecated
4253
+ */
4254
+ declare type IChatRoomEntry = IChatroomEntry;
4255
+ /**
4256
+ * 定义已废弃,请使用 `IChatroomEntries` 替换
4257
+ * @deprecated
4258
+ */
4259
+ declare type IChatRoomEntries = IChatroomEntries;
4260
+ /**
4261
+ * 定义已废弃,请使用 `IRemoveChatroomEntry` 替换
4262
+ * @deprecated
4263
+ */
4264
+ declare type IRemoveChatRoomEntry = IRemoveChatroomEntry;
4265
+
4266
+ /**
4267
+ * 日志上报工具,负责处理实时日志上报和下消息拉日志业务。
4268
+ * 通过 DB 和 Logger 两个抽象接口组合使用,
4269
+ * 避免业务与不同平台不同的 DB 数据库耦合,从而最大限度代码复用,
4270
+ * 上报工具仅处理业务,无需关心 DB 和 Logger 的实际类型
4271
+ */
4272
+ declare abstract class BasicReporter {
4273
+ private appkey;
4274
+ private deviceId;
4275
+ /**
4276
+ * 设备描述信息
4277
+ */
4278
+ private deviceInfo;
4279
+ /**
4280
+ * Logger 数据库实例,有日志数据库的读写方法,使上报与数据库解耦
4281
+ */
4282
+ protected readonly logDB: ILogDB;
4283
+ /**
4284
+ * logger 实例
4285
+ */
4286
+ protected readonly logger: BasicLogger;
4287
+ /**
4288
+ * 当前用户 id
4289
+ */
4290
+ protected userId: string;
4291
+ constructor(appkey: string, deviceId: string,
4292
+ /**
4293
+ * 设备描述信息
4294
+ */
4295
+ deviceInfo: string,
4296
+ /**
4297
+ * Logger 数据库实例,有日志数据库的读写方法,使上报与数据库解耦
4298
+ */
4299
+ logDB: ILogDB,
4300
+ /**
4301
+ * logger 实例
4302
+ */
4303
+ logger: BasicLogger);
4304
+ private timer;
4305
+ protected started: boolean;
4306
+ /**
4307
+ * 根据配置启动实时日志上报,在导航获取完成后启动,导航中包含 userId 信息
4308
+ * 实时日志仅获取当前时间 - 10s 以前的日志上报,避免多页面并行写库造成数据遗漏
4309
+ */
4310
+ checkStart(navi: INaviInfo): Promise<void>;
4311
+ /**
4312
+ * 实时日志上报
4313
+ * @override IndexDBReporter 重载此方法,增加同设备多页面多端时进程竞争检测
4314
+ */
4315
+ protected realtimeReport(url: string, level: LogL, itv: number): Promise<void>;
4316
+ private sendLogs;
4317
+ /**
4318
+ * 处理下消息拉日志,以拉取包含 `LogL.DEBUG` 级别的全量日志
4319
+ * @param startTime 拉取起始时间
4320
+ * @param endTime 拉取结束时间
4321
+ * @param platform 平台
4322
+ * @param uri 本次拉取的上传地址,若无值,使用导航配置下发地址
4323
+ * @param logId 拉取事务 Id,用于上传日志时的 Http 请求
4324
+ */
4325
+ report(startTime: number, endTime: number, platform: string, uri: string, logId: string): Promise<void>;
4326
+ private transcsv;
4327
+ /**
4328
+ * 以 `POST` 方法向服务发送日志数据
4329
+ * @param url
4330
+ * @param content
4331
+ */
4332
+ protected abstract send(req: IRequest): Promise<IResponse>;
4333
+ /**
4334
+ * 清理计时器,停止定时任务
4335
+ */
4336
+ stop(): void;
4337
+ }
4338
+
4339
+ declare class IndexDBReporter extends BasicReporter {
4340
+ private runtime;
4341
+ constructor(appkey: string, runtime: IRuntime, logger: BasicLogger);
4342
+ protected send(req: IRequest): Promise<IResponse>;
4343
+ /**
4344
+ * @override 重写实现
4345
+ */
4346
+ checkStart(navi: INaviInfo): Promise<void>;
4347
+ /**
4348
+ * 进程竞争检测,检查是否为执行上报的进程
4349
+ * @param callback
4350
+ * @returns
4351
+ */
4352
+ private isReporter;
4353
+ /**
4354
+ * @param startTime
4355
+ * @param endTime
4356
+ * @param platform
4357
+ * @param uri
4358
+ * @param logId
4359
+ */
4360
+ report(startTime: number, endTime: number, platform: string, uri: string, logId: string): Promise<void>;
4361
+ protected realtimeReport(url: string, level: LogL, itv: number): Promise<void>;
4362
+ }
4363
+
4364
+ /**
4365
+ * 初始化 DB 模块,按 APPKEY 分库,后续需要将日志与业务数据库也分开
4366
+ * @param appkey
4367
+ */
4368
+ declare const initLogDB: (appkey: string, logger: ILogger) => void;
4369
+ /**
4370
+ * IndexDB 日志数据库反初始化,在切换 APPKEY 时调用
4371
+ * @returns
4372
+ */
4373
+ declare const deInitLogDB: () => Promise<void>;
4374
+
4375
+ /**
4376
+ * @description
4377
+ * 读数据处理基类
4378
+ */
4379
+ declare class BaseReader {
4380
+ readonly header: Header;
4381
+ messageId: number;
4382
+ timestamp: number;
4383
+ syncMsg: boolean;
4384
+ protected identifier: string;
4385
+ constructor(header: Header);
4386
+ getIdentifier(): string | number;
4387
+ read(logger: ILogger, stream: RongStreamReader, length: number, protocolVer: ConnAckProtocolVer): void;
4388
+ readMessage(logger: ILogger, stream: RongStreamReader, length?: number, protocolVer?: ConnAckProtocolVer): {
4389
+ stream: RongStreamReader;
4390
+ length: number | undefined;
4391
+ };
4392
+ }
4393
+ /**
4394
+ * @description
4395
+ * 写数据处理基类
4396
+ */
4397
+ declare abstract class BaseWriter {
4398
+ private _header;
4399
+ lengthSize: number;
4400
+ data: any;
4401
+ messageId: number;
4402
+ topic: string;
4403
+ targetId: string;
4404
+ identifier: string;
4405
+ constructor(headerType: OperationType);
4406
+ getIdentifier(): string | number;
4407
+ write(stream: RongStreamWriter): void;
4408
+ abstract writeMessage(stream: RongStreamWriter): void;
4409
+ setHeaderQos(qos: number): void;
4410
+ getHeaderFlag(): number;
4411
+ getLengthSize(): number;
4412
+ getBufferData(): Int8Array;
4413
+ }
4414
+ declare class RetryableReader extends BaseReader {
4415
+ messageId: number;
4416
+ readMessage(logger: ILogger, stream: RongStreamReader, length: number): {
4417
+ stream: RongStreamReader;
4418
+ length: number;
4419
+ };
4420
+ }
4421
+ declare class RetryableWriter extends BaseWriter {
4422
+ writeMessage(stream: RongStreamWriter): void;
4423
+ }
4424
+ declare class PublishReader extends RetryableReader {
4425
+ topic: string;
4426
+ data: any;
4427
+ targetId: string;
4428
+ date: any;
4429
+ syncMsg: boolean;
4430
+ identifier: string;
4431
+ readMessage(logger: ILogger, stream: RongStreamReader, length: number): {
4432
+ stream: RongStreamReader;
4433
+ length: number;
4434
+ };
4435
+ }
4436
+ /**
4437
+ * @description
4438
+ * 发消息使用
4439
+ */
4440
+ declare class PublishWriter extends RetryableWriter {
4441
+ topic: string;
4442
+ data: any;
4443
+ targetId: string;
4444
+ date: any;
4445
+ syncMsg: boolean;
4446
+ identifier: string;
4447
+ constructor(topic: string, data: any, targetId: string);
4448
+ writeMessage(stream: RongStreamWriter): void;
4449
+ }
4450
+ /**
4451
+ * @description
4452
+ * 发消息, Server 给的 Ack 回执
4453
+ */
4454
+ declare class PubAckReader extends RetryableReader {
4455
+ status: number;
4456
+ date: number;
4457
+ data: any;
4458
+ millisecond: number;
4197
4459
  messageUId: string;
4198
- objectName: string;
4460
+ timestamp: number;
4461
+ identifier: string;
4462
+ topic: string;
4199
4463
  targetId: string;
4464
+ readMessage(logger: ILogger, stream: RongStreamReader, length: number): {
4465
+ stream: RongStreamReader;
4466
+ length: number;
4467
+ };
4200
4468
  }
4201
- interface IGroupMessageDeliveredStatusInfo {
4202
- MessageUId: string;
4203
- deliveryCount: number;
4204
- }
4205
- interface IGroupMessageDeliverStatus {
4206
- totalCount: number;
4207
- list: IGroupMessageDeliveredStatusInfo[];
4469
+ /**
4470
+ * @description
4471
+ * Web 主动查询
4472
+ */
4473
+ declare class QueryWriter extends RetryableWriter {
4474
+ topic: string;
4475
+ data: any;
4476
+ targetId: string;
4477
+ identifier: string;
4478
+ constructor(topic: string, data: any, targetId: string);
4479
+ writeMessage(stream: RongStreamWriter): void;
4208
4480
  }
4209
4481
 
4210
4482
  /**
4211
- * IndexDB中存储的log数据
4483
+ * 会话属性
4484
+ * @category Interface
4212
4485
  */
4213
- interface ILogInfo {
4214
- sessionId: string;
4215
- time: number;
4216
- level: LogLevel;
4217
- content: string;
4218
- userId?: string;
4219
- logSource?: LogSource;
4220
- tagId?: LogTagId;
4221
- }
4222
- interface IRealTimeLog {
4223
- level: LogLevel;
4224
- content: string;
4486
+ interface IConversationOption {
4487
+ conversationType: ConversationType;
4488
+ targetId: string;
4489
+ channelId?: string;
4225
4490
  }
4226
- interface ILogExtensions {
4227
- traceId?: string;
4228
- logSource?: LogSource;
4491
+ interface IServerRTCRoomEntry {
4492
+ key: string;
4493
+ value: string;
4494
+ status: number;
4495
+ timestamp: number;
4496
+ uid: string;
4229
4497
  }
4230
- interface ILogInit {
4498
+ interface IChrmKVEntry {
4499
+ key: string;
4500
+ value?: string;
4501
+ isSendNotification?: boolean;
4502
+ notificationExtra?: string;
4503
+ isOverwrite?: boolean;
4504
+ isAutoDelete?: boolean;
4505
+ timestamp?: number;
4231
4506
  userId?: string;
4232
- localLogLevel?: LogLevel;
4233
- customLogPrint?: (logLevel: LogLevel, msg: string) => void;
4507
+ type?: number;
4508
+ isDeleted?: boolean;
4509
+ version?: number;
4234
4510
  }
4235
- interface IInitBigDataOption {
4236
- runtime?: IRuntime;
4237
- appkey?: string;
4238
- version?: string;
4511
+ interface IChrmKVEntries {
4512
+ entries: {
4513
+ key: string;
4514
+ value?: string;
4515
+ timestamp?: number;
4516
+ version?: number;
4517
+ }[];
4518
+ notificationExtra?: string;
4519
+ isOverwrite?: boolean;
4520
+ isAutoDelete?: boolean;
4521
+ timestamp?: number;
4239
4522
  userId?: string;
4523
+ type?: number;
4524
+ isDeleted?: boolean;
4240
4525
  }
4241
- interface IBigdataLogInit extends IInitBigDataOption {
4242
- logUrl: string;
4243
- sessionId: string;
4526
+ interface IChrmKVPullData {
4527
+ kvEntries: IChrmKVEntry[];
4528
+ isFullUpdate?: boolean;
4529
+ syncTime?: number;
4530
+ }
4531
+ interface IServerConversationStatus {
4532
+ conversationType: number;
4533
+ targetId: string;
4534
+ updatedTime?: number;
4535
+ notificationStatus?: number;
4536
+ notificationLevel?: number;
4537
+ isTop?: boolean;
4538
+ type?: number;
4539
+ tags?: IConversationTag[];
4540
+ channelId?: string;
4541
+ }
4542
+ interface IUserSettingItem {
4543
+ targetId: number;
4544
+ type: number;
4545
+ key: string;
4546
+ value: any;
4547
+ version: number;
4548
+ status: number;
4549
+ tags: IConversationTag[];
4550
+ }
4551
+ interface IServerUserSetting {
4552
+ settings: {
4553
+ [key: string]: IUserSettingItem;
4554
+ };
4555
+ version: number;
4556
+ }
4557
+ interface ISyncMsgArgs {
4558
+ inboxTime: number;
4559
+ sendboxTime: number;
4560
+ broadcastSyncTime?: number;
4561
+ }
4562
+ interface IGetMsgOption {
4563
+ timestamp?: number;
4564
+ count?: number;
4565
+ order?: number;
4566
+ channelId?: string;
4567
+ }
4568
+ interface IGetConversationListOption {
4569
+ type?: number;
4570
+ count?: number;
4571
+ startTime?: number;
4572
+ order?: 0 | 1;
4573
+ }
4574
+ interface IClearMsgOption {
4575
+ timestamp?: number;
4244
4576
  }
4245
4577
 
4246
4578
  /**
4247
- * 定义已废弃,请使用 `IRemoveChatroomEntries` 替换
4248
- * @deprecated
4249
- */
4250
- declare type IRemoveChatRoomEntries = IRemoveChatroomEntries;
4251
- /**
4252
- * 定义已废弃,请使用 `IChatroomEntry` 替换
4253
- * @deprecated
4254
- */
4255
- declare type IChatRoomEntry = IChatroomEntry;
4256
- /**
4257
- * 定义已废弃,请使用 `IChatroomEntries` 替换
4258
- * @deprecated
4259
- */
4260
- declare type IChatRoomEntries = IChatroomEntries;
4261
- /**
4262
- * 定义已废弃,请使用 `IRemoveChatroomEntry` 替换
4579
+ * TODO: 确定对外暴露的必要性
4263
4580
  * @deprecated
4264
4581
  */
4265
- declare type IRemoveChatRoomEntry = IRemoveChatroomEntry;
4582
+ declare const DelayTimer: {
4583
+ _delayTime: number;
4584
+ /**
4585
+ * 方法并未引用,getTimer 实际返回值始终为 Date.now()
4586
+ * @deprecated
4587
+ */
4588
+ setTime: (time: number) => void;
4589
+ getTime: () => number;
4590
+ };
4266
4591
 
4267
4592
  /**
4268
4593
  * 序列化、反序列化数据通道
4269
4594
  */
4270
4595
  declare class DataCodec {
4596
+ private logger;
4271
4597
  private _codec;
4598
+ constructor(logger: BasicLogger);
4272
4599
  private static createPBCodec;
4273
4600
  /**
4274
4601
  * PB 数据 转为 rmtp 数据 反序列化 通用数据
@@ -4550,6 +4877,7 @@ interface IDataChannelWatcher {
4550
4877
  declare class WebSocketChannel {
4551
4878
  private _runtime;
4552
4879
  private _watcher;
4880
+ private logger;
4553
4881
  readonly codec: DataCodec;
4554
4882
  connectedTime: number;
4555
4883
  userId: string;
@@ -4564,7 +4892,7 @@ declare class WebSocketChannel {
4564
4892
  * 接收多端同步消息时,等待 PubAck 的 Promise.resolve 函数
4565
4893
  */
4566
4894
  private _syncMessageIds;
4567
- constructor(_runtime: IRuntime, _watcher: IDataChannelWatcher);
4895
+ constructor(_runtime: IRuntime, _watcher: IDataChannelWatcher, logger: BasicLogger);
4568
4896
  /**
4569
4897
  * 建立连接,连接成功则返回 Websocket 实例,否则返回连接错误码
4570
4898
  * @param appkey
@@ -4691,10 +5019,6 @@ interface IAPIContextOption {
4691
5019
  * IMLib 版本号
4692
5020
  */
4693
5021
  apiVersion: string;
4694
- /**
4695
- * IMLib 包名
4696
- */
4697
- apiPKGName?: string;
4698
5022
  /**
4699
5023
  * 自定义导航地址:
4700
5024
  * 1. 私有云环境下该值为必填项
@@ -4732,10 +5056,6 @@ interface IAPIContextOption {
4732
5056
  * typing状态过期时间
4733
5057
  */
4734
5058
  typingExpireTime?: number;
4735
- /**
4736
- * 是否打开 IndexDB 存储,默认为 true
4737
- */
4738
- indexDBSwitch?: boolean;
4739
5059
  /**
4740
5060
  * 是否校验证书,默认为 true
4741
5061
  */
@@ -4806,12 +5126,20 @@ declare class Codec<T> {
4806
5126
  * Key 对应的 Value 结构映射表,用于不同 Key 数据的编解码
4807
5127
  */
4808
5128
  private pbmaps;
5129
+ /**
5130
+ * 允许不传 logger 实例以向前兼容
5131
+ */
5132
+ private logger?;
4809
5133
  private readonly pbModules;
4810
5134
  constructor(
4811
5135
  /**
4812
5136
  * Key 对应的 Value 结构映射表,用于不同 Key 数据的编解码
4813
5137
  */
4814
- pbmaps: T, pbDefined: string);
5138
+ pbmaps: T, pbDefined: string,
5139
+ /**
5140
+ * 允许不传 logger 实例以向前兼容
5141
+ */
5142
+ logger?: ILogger | undefined);
4815
5143
  getModule(pbname: string): any;
4816
5144
  /**
4817
5145
  * 数据序列化
@@ -4856,7 +5184,6 @@ declare class APIContext {
4856
5184
  readonly coreVersion: string;
4857
5185
  readonly appkey: string;
4858
5186
  readonly apiVersion: string;
4859
- readonly apiPKGName: string;
4860
5187
  private readonly _options;
4861
5188
  private _versionInfo;
4862
5189
  private _typingInfo;
@@ -4869,6 +5196,10 @@ declare class APIContext {
4869
5196
  * 包括向 CppEngine 提供 RTC 业务编解码能力
4870
5197
  */
4871
5198
  private readonly _rtcCodec;
5199
+ /**
5200
+ * engine 内部日志工具
5201
+ */
5202
+ readonly logger: BasicLogger;
4872
5203
  constructor(_runtime: IRuntime, options: IAPIContextOption);
4873
5204
  createCodec<T extends CodecPBMaps>(keymaps: T, pbDesc: string): Codec<T>;
4874
5205
  /**
@@ -5570,6 +5901,7 @@ declare class APIContext {
5570
5901
  getConversationListWithAllChannel(): Promise<IAsyncRes<IReceivedConversation[]>>;
5571
5902
  getConversationListWithAllChannelByPage(index: number, limit: number): Promise<IAsyncRes<IReceivedConversation[]>>;
5572
5903
  clearData(): Promise<IAsyncRes<boolean>>;
5904
+ createLogger(id: string, type: LogType): BasicLogger;
5573
5905
  rtcSignaling(roomId: string, method: string, isQuery: boolean, sourceData: any): Promise<{
5574
5906
  code: ErrorCode;
5575
5907
  buffer?: Uint8Array;
@@ -5744,6 +6076,12 @@ declare class PluginContext {
5744
6076
  key: string;
5745
6077
  value: string;
5746
6078
  }>;
6079
+ /**
6080
+ * 创建 logger 实例
6081
+ * @param id 日志工具 ID,用于区分日志实例,以确定日志调用者身份
6082
+ * @param type 目前仅支持 `IM` 与 `RTC` 两个值
6083
+ */
6084
+ createLogger(id: string, type: LogType): BasicLogger;
5747
6085
  }
5748
6086
 
5749
6087
  declare class RTCPluginContext extends PluginContext {
@@ -5934,7 +6272,6 @@ declare class RTCPluginContext extends PluginContext {
5934
6272
  onrtcdatachange?(data: IServerRTCRoomEntry[], roomdId?: string): void;
5935
6273
  /**
5936
6274
  * 获取加入 RTC 房间的用户信息(当前仅能查自己的)
5937
- * @deprecated
5938
6275
  */
5939
6276
  getRTCJoinedUserInfo(userId: string): IPromiseResult<IRTCJoinedInfo[]>;
5940
6277
  }
@@ -5984,6 +6321,7 @@ declare abstract class AEngine implements IEngine {
5984
6321
  readonly rtcCodec: Codec<RTCKeyMaps>;
5985
6322
  protected readonly _watcher: IEngineWatcher;
5986
6323
  protected readonly _options: IAPIContextOption;
6324
+ protected readonly logger: BasicLogger;
5987
6325
  /**
5988
6326
  * 连接时间
5989
6327
  */
@@ -5996,7 +6334,7 @@ declare abstract class AEngine implements IEngine {
5996
6334
  * 引擎初始化
5997
6335
  * @param _appkey
5998
6336
  */
5999
- constructor(runtime: IRuntime, rtcCodec: Codec<RTCKeyMaps>, _watcher: IEngineWatcher, _options: IAPIContextOption);
6337
+ constructor(runtime: IRuntime, rtcCodec: Codec<RTCKeyMaps>, _watcher: IEngineWatcher, _options: IAPIContextOption, logger: BasicLogger);
6000
6338
  protected _rtcSignalingListener?: (buffer: Uint8Array) => void;
6001
6339
  /**
6002
6340
  * 注册 RTC KV 变更监听器
@@ -6005,6 +6343,14 @@ declare abstract class AEngine implements IEngine {
6005
6343
  registerRTCSignalingListener(listener: ((buffer: Uint8Array) => void) | undefined): void;
6006
6344
  abstract requestNaviInfo(uris: string[], appkey: string, token: string, checkCA?: boolean): Promise<INaviInfo | null>;
6007
6345
  abstract updateNaviInfo(naviInfo: INaviInfo): void;
6346
+ /**
6347
+ * 为非 engine 包创建 logger 工具实例
6348
+ */
6349
+ abstract createLogger(id: string, type: LogType): BasicLogger;
6350
+ /**
6351
+ * 获取 engine 包内部 logger 工具
6352
+ */
6353
+ getInnerLogger(): BasicLogger;
6008
6354
  /**
6009
6355
  * 获取导航数据
6010
6356
  * @param token
@@ -6737,6 +7083,10 @@ declare abstract class AEngine implements IEngine {
6737
7083
  * 接收 rtc 资源变更
6738
7084
  */
6739
7085
  protected _receiveRtcKv(buffer: Uint8Array): void;
7086
+ /**
7087
+ * Engine 反初始化
7088
+ */
7089
+ destroy(): void;
6740
7090
  }
6741
7091
 
6742
7092
  declare class AppStorage {
@@ -6894,8 +7244,8 @@ declare const isValidExpansion: (expansion: {
6894
7244
  [key: string]: string;
6895
7245
  } | undefined) => IIsValidExpansion;
6896
7246
 
6897
- declare const sessionId: string;
6898
7247
  /**
7248
+ * @deprecated
6899
7249
  * logLevelTransformer
6900
7250
  * @description 数据中心与前端日志规范LogLevel定义不统一
6901
7251
  * WebLogLevel(前端日志级别) -> ServerLogLevel(服务器日志级别)
@@ -6904,40 +7254,40 @@ declare const sessionId: string;
6904
7254
  */
6905
7255
  declare function logLevelTransformer(level: LogLevel): number;
6906
7256
  /**
6907
- * 序列化引用型数据为字符串
6908
- * @value value
7257
+ * @deprecated
7258
+ * Trace ID 生成器
6909
7259
  */
6910
- declare const formatLogObj: (value: unknown) => unknown;
6911
- /**
6912
- * 缓存日志
6913
- * @param logLevel 打印等级
6914
- * @param logObj 日志内容
6915
- * @param tagId 日志tag
6916
- */
6917
- declare function insertIntoLogCache(logLevel: LogLevel, tagId: string, logObj: any, logSource?: LogSource): ILogInfo;
7260
+ declare function ID(): string;
6918
7261
  /**
6919
- * 本地默认输出函数
6920
- * @param level
6921
- * @param args
7262
+ * @deprecated
6922
7263
  */
6923
- declare function _defaultStdout(level: LogLevel, msgTag: string, ...logContents: any[]): void;
7264
+ declare function init(userLogInfo: ILogInit): void;
6924
7265
  /**
6925
- * Trace ID 生成器
7266
+ * @deprecated
6926
7267
  */
6927
- declare function ID(): string;
6928
- declare function init(userLogInfo: ILogInit): void;
6929
7268
  declare function log(logLevel: LogLevel, tagId: LogTagId | string, logObj?: Object, logExtens?: ILogExtensions): void;
7269
+ /**
7270
+ * @deprecated
7271
+ */
6930
7272
  declare const debug: (tagId: string, logObj?: Object | undefined, logExtens?: ILogExtensions | undefined) => void;
7273
+ /**
7274
+ * @deprecated
7275
+ */
6931
7276
  declare const info: (tagId: string, logObj?: Object | undefined, logExtens?: ILogExtensions | undefined) => void;
7277
+ /**
7278
+ * @deprecated
7279
+ */
6932
7280
  declare const warn: (tagId: string, logObj?: Object | undefined, logExtens?: ILogExtensions | undefined) => void;
7281
+ /**
7282
+ * @deprecated
7283
+ */
6933
7284
  declare const error: (tagId: string, logObj?: Object | undefined, logExtens?: ILogExtensions | undefined) => void;
7285
+ /**
7286
+ * @deprecated
7287
+ */
6934
7288
  declare const fatal: (tagId: string, logObj?: Object | undefined, logExtens?: ILogExtensions | undefined) => void;
6935
7289
 
6936
- declare const base_sessionId: typeof sessionId;
6937
7290
  declare const base_logLevelTransformer: typeof logLevelTransformer;
6938
- declare const base_formatLogObj: typeof formatLogObj;
6939
- declare const base_insertIntoLogCache: typeof insertIntoLogCache;
6940
- declare const base__defaultStdout: typeof _defaultStdout;
6941
7291
  declare const base_ID: typeof ID;
6942
7292
  declare const base_init: typeof init;
6943
7293
  declare const base_log: typeof log;
@@ -6948,11 +7298,7 @@ declare const base_error: typeof error;
6948
7298
  declare const base_fatal: typeof fatal;
6949
7299
  declare namespace base {
6950
7300
  export {
6951
- base_sessionId as sessionId,
6952
7301
  base_logLevelTransformer as logLevelTransformer,
6953
- base_formatLogObj as formatLogObj,
6954
- base_insertIntoLogCache as insertIntoLogCache,
6955
- base__defaultStdout as _defaultStdout,
6956
7302
  base_ID as ID,
6957
7303
  base_init as init,
6958
7304
  base_log as log,
@@ -6964,18 +7310,8 @@ declare namespace base {
6964
7310
  };
6965
7311
  }
6966
7312
 
6967
- /** *********************实时日志上报***************** */
6968
-
6969
7313
  /**
6970
7314
  * @deprecated
6971
- * 缓存日志实时
6972
- * @param {LogLevel} logLevel 日志等级
6973
- * @param tagId 日志标签
6974
- * @param content 日志内容
6975
- */
6976
- declare function reportLog(logLevel: LogLevel, tagId: string, content: string, logSource?: LogSource): void;
6977
-
6978
- /**
6979
7315
  * @description 兼容旧版用法,建议用Logger静态方法
6980
7316
  * 1、不符合新版Web日志规范
6981
7317
  * 2、不支持自定义TagId
@@ -6993,31 +7329,39 @@ declare class Logger {
6993
7329
  */
6994
7330
  constructor(tagId: string, logSource?: LogSource | undefined, initiator?: string | undefined);
6995
7331
  /**
6996
- * 本地控制台日志输出级别
6997
- */
6998
- private _localLogLevel;
6999
- /**
7000
- * 自定义本地日志输出函数
7001
- */
7002
- private _customLogPrint?;
7003
- /**
7004
- * 为向前兼容,暂不删除
7005
- */
7006
- private _stdout?;
7007
- /**
7332
+ * @deprecated
7008
7333
  * 自定义本地打印日志级别
7009
7334
  * @param logLevel
7010
7335
  */
7011
7336
  setLogLevel(logLevel?: LogLevel): void;
7012
7337
  /**
7338
+ * @deprecated
7013
7339
  * 自定义本地打印函数
7014
7340
  */
7015
7341
  setLogStdout(stdout?: (level: LogLevel, content: string) => void): void;
7016
- log(logLevel: LogLevel, ...args: any[]): void;
7342
+ /**
7343
+ * @deprecated
7344
+ */
7345
+ private log;
7346
+ /**
7347
+ * @deprecated
7348
+ */
7017
7349
  debug: (...args: any[]) => void;
7350
+ /**
7351
+ * @deprecated
7352
+ */
7018
7353
  info: (...args: any[]) => void;
7354
+ /**
7355
+ * @deprecated
7356
+ */
7019
7357
  warn: (...args: any[]) => void;
7358
+ /**
7359
+ * @deprecated
7360
+ */
7020
7361
  error: (...args: any[]) => void;
7362
+ /**
7363
+ * @deprecated
7364
+ */
7021
7365
  fatal: (...args: any[]) => void;
7022
7366
  /**
7023
7367
  * @deprecated
@@ -7030,9 +7374,11 @@ declare class Logger {
7030
7374
  * @deprecated
7031
7375
  */
7032
7376
  setStdout(stdout?: (level: LogLevel, msgTag: string, ...args: any[]) => void): void;
7033
- reportLog: typeof reportLog;
7034
7377
  }
7035
- declare const _default: Logger;
7378
+ /**
7379
+ * @deprecated
7380
+ */
7381
+ declare const logger: Logger;
7036
7382
 
7037
7383
  declare const getUUID: () => string;
7038
7384
  declare const getUUID22: () => string;
@@ -7106,10 +7452,6 @@ declare const assert: (key: string, value: any, validator: AssertRules | ((value
7106
7452
  */
7107
7453
  declare const validate: (key: string, value: any, validator: AssertRules | ((value?: any) => boolean), required?: boolean) => boolean;
7108
7454
 
7109
- /**
7110
- * engine 层业务相关工具方法
7111
- */
7112
-
7113
7455
  /**
7114
7456
  * 通过文件类型生成上传唯一文件名
7115
7457
  */
@@ -7128,7 +7470,7 @@ declare const pushConfigsToJSON: (iOSConfig?: IiOSPushConfig, androidConfig?: IA
7128
7470
  * 将服务端返回的 push 信息格式化
7129
7471
  * @param pushStr
7130
7472
  */
7131
- declare const pushJSONToConfigs: (pushStr: string, pushId: string) => {
7473
+ declare const pushJSONToConfigs: (logger: BasicLogger, pushStr: string, pushId: string) => {
7132
7474
  iOSConfig: IiOSPushConfig;
7133
7475
  androidConfig: IAndroidPushConfig;
7134
7476
  };
@@ -7285,4 +7627,4 @@ declare type AbsCodec<T> = Codec<T>;
7285
7627
  */
7286
7628
  declare const version: string;
7287
7629
 
7288
- export { AEngine, APIContext, AbsCodec, AppStorage, AssertRules, CPP_PROTOCAL_MSGTYPE_OPTION, CallLibMsgType, ChatroomEntryType, ChatroomUserChangeType, Codec, CodecPBMaps, ConnectResultCode, ConnectionStatus, ConversationType, DB_LOG_FLUSH_FREQUENCY, DB_LOG_MAX_SIZE, DelayTimer, ErrorCode, EventEmitter, FileType, HTTP_TIMEOUT, HttpMethod, IAPIContextOption, IAndroidPushConfig, IAsyncRes, IBaseConversationInfo, IBigdataLogInit, IBlockedMessageInfo, ICancelRoomPKOptions, IChatRoomEntries, IChatRoomEntry, IChatroomEntries, IChatroomEntry, IChatroomEntryListenerData, IChatroomInfo, IChatroomListener, IChatroomListenerData, IChatroomRejoinedFailed, IChatroomRejoinedInfo, IChatroomRejoinedSuccessed, IChatroomUser, IChatroomUserChangeInfo, IChrmKVEntries, IChrmKVEntry, IConnectResult, IConnectionStatusListener, IConversationOption, IConversationState, IConversationStateListener, IConversationTag, IConversationTagListener, IDeletedExpansion, IDeliveredUser, IEndRoomPKOptions, IEngine, IEngineWatcher, IEventListener, IExpansionListener, IExpansionListenerData, IExpansionMsgContent, IExtraMethod, IGetMsgOption, IGetUltraGroupListOption, IGooglePushConfig, IGroupMessageDeliverInfo, IGroupMessageDeliverStatus, IInitBigDataOption, IInsertMsgOptions, IIsValidExpansion, IJoinRTCRoomData, ILocalReadReceiptInfo, ILocalTagStatus, ILogExtensions, ILogInfo, ILogInit, IM_CHATROOM_PULL_INTERVAL_TIME, IM_PING_INTERVAL_TIME, IM_PING_MIN_TIMEOUT, IM_PING_TIMEOUT, IM_SIGNAL_TIMEOUT, IMessageDeliver, IMessageDeliveredListener, IMessageListnenr, IMessageReader, IMessageReaderResponse, IMetionedData, INaviInfo, IOSInfo, IOperateStatusNotify, IPluginGenerator, IProcessInfo, IPromiseResult, IPushConfig, IRTCInnerListener, IRTCJoinedInfo, IRTCRoomBindOption, IRTCRoomInfo, IRTCUserData, IRTCUsers, IReadReceiptInfo, IRealTimeLog, IRecallMsgContent, IRecallMsgOptions, IReceivedConversation, IReceivedConversationByTag, IReceivedMessage, IRemoveChatRoomEntries, IRemoveChatRoomEntry, IRemoveChatroomEntries, IRemoveChatroomEntry, IReqRoomPKOptions, IRequest, IResRoomPKOptions, IResponse, IRtcTokenData, IRuntime, ISendExMsgOptions, ISendMsgOptions, IServerConversationStatus, IServerRTCRoomEntry, IServerUserSetting, ISetConversationStatusOptions, IStorage, ITagInfo, ITagListener, ITagParam, ITagStatus, ITypingInfo, ITypingMessage, ITypingUser, IUltraChannelChangeInfo, IUltraChannelDeleteInfo, IUltraChannelUserKickedInfo, IUltraExMsgOptions, IUltraGroupConversation, IUltraGroupOption, IUltraGroupUnreadMentionedOption, IUltraModifyMsgOptions, IUltraMsgQueryOptions, IUltraUnreadConversation, IUltraUnreadMsg, IUpdatedConversation, IUpdatedExpansion, IUploadAuth, IUserProfile, IWatcher, IWebSocket, IiOSPushConfig, RTCKeyMaps as InnerRTCKeyMaps, ItypingStateListener, KVString, LOG_REPORT_URI, LiveRole, LiveType, LogLevel, LogSource, LogTagId, Logger, MAX_MESSAGE_CONTENT_BYTES, MAX_MESSAGE_EXPANSION_KEY_LENGTH, MAX_MESSAGE_EXPANSION_VAL_LENGTH, MINI_SOCKET_CONNECT_URIS, MentionedType, MessageBlockSourceType, MessageBlockType, MessageDirection, MessageType, NAVI_CACHE_DURATION, NAVI_REQ_TIMEOUT, NetworkType, NotificationLevel, NotificationStatus, ONE_LOG_SIZE_MAX, OperateStatus, PUBLIC_CLOUD_NAVI_URIS, PluginContext, RCAssertError, REAT_TIME_LOG_SIZE, RTCApiType, RTCIdentityChangeType, RTCJoinType, RTCMode, RTCPluginContext, ReceivedStatus, SEND_MESSAGE_TYPE_OPTION, STATUS_MESSAGE, STORAGE_ROOT_KEY, TagChangeType, UltraGroupChannelChangeType, UltraGroupChannelType, UltraMsgChangeType, UltraMsgSubChangeType, UploadMethod, VersionManage, WEB_SOCKET_TIMEOUT, WebSocketChannel, appendUrl, assert, clone, cloneByJSON, _default as engineLogger, forEach, formatConnectResponseCode, getBrowser, getClientMessageId, getMimeKey, getUUID, getUUID22, getUploadFileName, indexOf, isArray, isArrayBuffer, isBoolean, isFunction, isHttpUrl, isInObject, isInclude, isNull, isNumber, isObject, isString, isUndefined, isValidChannelId, isValidChrmEntryKey, isValidChrmEntryValue, isValidConversationType, isValidExpansion, isValidFileType, isValidNotificationLevel, base as logger, map, notEmptyArray, notEmptyObject, notEmptyString, pushConfigsToJSON, pushJSONToConfigs, reportLog, todo, usingCppEngine, validate, version };
7630
+ export { AEngine, APIContext, AbsCodec, AppStorage, AssertRules, BasicLogger, BasicReporter, CPP_PROTOCAL_MSGTYPE_OPTION, CallLibMsgType, ChatroomEntryType, ChatroomUserChangeType, Codec, CodecPBMaps, ConnectResultCode, ConnectionStatus, ConversationType, DB_LOG_FLUSH_FREQUENCY, DB_LOG_MAX_SIZE, DelayTimer, ErrorCode, EventEmitter, FileType, HTTP_TIMEOUT, HttpMethod, IAPIContextOption, IAndroidPushConfig, IAsyncRes, IBaseConversationInfo, IBigdataLogInit, IBlockedMessageInfo, ICancelRoomPKOptions, IChatRoomEntries, IChatRoomEntry, IChatroomEntries, IChatroomEntry, IChatroomEntryListenerData, IChatroomInfo, IChatroomListener, IChatroomListenerData, IChatroomRejoinedFailed, IChatroomRejoinedInfo, IChatroomRejoinedSuccessed, IChatroomUser, IChatroomUserChangeInfo, IChrmKVEntries, IChrmKVEntry, IConnectResult, IConnectionStatusListener, IConversationOption, IConversationState, IConversationStateListener, IConversationTag, IConversationTagListener, IDeletedExpansion, IDeliveredUser, IEndRoomPKOptions, IEngine, IEngineWatcher, IEventListener, IExpansionListener, IExpansionListenerData, IExpansionMsgContent, IExtraMethod, IGetMsgOption, IGetUltraGroupListOption, IGooglePushConfig, IGroupMessageDeliverInfo, IGroupMessageDeliverStatus, IInitBigDataOption, IInsertMsgOptions, IIsValidExpansion, IJoinRTCRoomData, ILocalReadReceiptInfo, ILocalTagStatus, ILogDB, ILogData, ILogExtensions, ILogInfo, ILogInit, ILogger, IM_CHATROOM_PULL_INTERVAL_TIME, IM_PING_INTERVAL_TIME, IM_PING_MIN_TIMEOUT, IM_PING_TIMEOUT, IM_SIGNAL_TIMEOUT, IMessageDeliver, IMessageDeliveredListener, IMessageListnenr, IMessageReader, IMessageReaderResponse, IMetionedData, INaviInfo, IOSInfo, IOperateStatusNotify, IPluginGenerator, IProcessInfo, IPromiseResult, IPushConfig, IRTCInnerListener, IRTCJoinedInfo, IRTCRoomBindOption, IRTCRoomInfo, IRTCUserData, IRTCUsers, IReadReceiptInfo, IRealTimeLog, IRecallMsgContent, IRecallMsgOptions, IReceivedConversation, IReceivedConversationByTag, IReceivedMessage, IRemoveChatRoomEntries, IRemoveChatRoomEntry, IRemoveChatroomEntries, IRemoveChatroomEntry, IReqRoomPKOptions, IRequest, IResRoomPKOptions, IResponse, IRtcTokenData, IRuntime, ISendExMsgOptions, ISendMsgOptions, IServerConversationStatus, IServerRTCRoomEntry, IServerUserSetting, ISetConversationStatusOptions, IStorage, ITagInfo, ITagListener, ITagParam, ITagStatus, ITypingInfo, ITypingMessage, ITypingUser, IUltraChannelChangeInfo, IUltraChannelDeleteInfo, IUltraChannelUserKickedInfo, IUltraExMsgOptions, IUltraGroupConversation, IUltraGroupOption, IUltraGroupUnreadMentionedOption, IUltraModifyMsgOptions, IUltraMsgQueryOptions, IUltraUnreadConversation, IUltraUnreadMsg, IUpdatedConversation, IUpdatedExpansion, IUploadAuth, IUserProfile, IWatcher, IWebSocket, IiOSPushConfig, IndexDBLogger, IndexDBReporter, RTCKeyMaps as InnerRTCKeyMaps, ItypingStateListener, KVString, LOG_REPORT_URI, LiveRole, LiveType, LogContent, LogL, LogLevel, LogSource, LogTagId, LogType, Logger, MAX_MESSAGE_CONTENT_BYTES, MAX_MESSAGE_EXPANSION_KEY_LENGTH, MAX_MESSAGE_EXPANSION_VAL_LENGTH, MINI_SOCKET_CONNECT_URIS, MentionedType, MessageBlockSourceType, MessageBlockType, MessageDirection, MessageType, NAVI_CACHE_DURATION, NAVI_REQ_TIMEOUT, NetworkType, NotificationLevel, NotificationStatus, ONE_LOG_SIZE_MAX, OperateStatus, PUBLIC_CLOUD_NAVI_URIS, PluginContext, RCAssertError, REAT_TIME_LOG_SIZE, RTCApiType, RTCIdentityChangeType, RTCJoinType, RTCMode, RTCPluginContext, ReceivedStatus, SEND_MESSAGE_TYPE_OPTION, STATUS_MESSAGE, STORAGE_ROOT_KEY, StoreKeys, TagChangeType, UltraGroupChannelChangeType, UltraGroupChannelType, UltraMsgChangeType, UltraMsgSubChangeType, UploadMethod, VersionManage, WEB_SOCKET_TIMEOUT, WebSocketChannel, appendUrl, assert, clone, cloneByJSON, deInitLogDB, logger as engineLogger, forEach, formatConnectResponseCode, getBrowser, getClientMessageId, getMimeKey, getUUID, getUUID22, getUploadFileName, indexOf, initLogDB, isArray, isArrayBuffer, isBoolean, isFunction, isHttpUrl, isInObject, isInclude, isNull, isNumber, isObject, isString, isUndefined, isValidChannelId, isValidChrmEntryKey, isValidChrmEntryValue, isValidConversationType, isValidExpansion, isValidFileType, isValidNotificationLevel, base as logger, map, notEmptyArray, notEmptyObject, notEmptyString, pushConfigsToJSON, pushJSONToConfigs, todo, usingCppEngine, validate, version };