UNPKG

459 kBSource Map (JSON)View Raw
1{"version":3,"file":"im-node.js","sources":["../proto/message-compiled.js","../proto/message.js","../src/adapter.js","../src/utils/global.js","../src/utils/expirable.js","../src/utils/cache.js","../src/utils/index.js","../src/websocket-plus.js","../src/error.js","../src/connection.js","../src/utils/request.js","../src/plugin.js","../src/realtime.js","../src/core.js","../src/events/im.js","../src/messages/message.js","../src/messages/helpers.js","../src/messages/typed-message.js","../src/messages/recalled-message.js","../src/conversations/conversation-base.js","../src/signature-factory-runner.js","../src/conversations/persistent-conversation.js","../src/conversation-member-info.js","../src/conversations/conversation.js","../src/conversations/chat-room.js","../src/conversations/service-conversation.js","../src/conversations/temporary-conversation.js","../src/conversation-query.js","../src/session-manager.js","../src/im-client.js","../src/events/core.js","../src/messages/binary-message.js","../src/messages/text-message.js","../src/message-parser.js","../src/plugin-im.js","../src/im.js","../src/im-adapted.js"],"sourcesContent":["module.exports = require('protobufjs/dist/protobuf-light')\n .newBuilder({})\n ['import']({\n package: 'push_server.messages2',\n syntax: 'proto2',\n options: {\n objc_class_prefix: 'AVIM',\n },\n messages: [\n {\n name: 'JsonObjectMessage',\n syntax: 'proto2',\n fields: [\n {\n rule: 'required',\n type: 'string',\n name: 'data',\n id: 1,\n },\n ],\n },\n {\n name: 'UnreadTuple',\n syntax: 'proto2',\n fields: [\n {\n rule: 'required',\n type: 'string',\n name: 'cid',\n id: 1,\n },\n {\n rule: 'required',\n type: 'int32',\n name: 'unread',\n id: 2,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'mid',\n id: 3,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'timestamp',\n id: 4,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'from',\n id: 5,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'data',\n id: 6,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'patchTimestamp',\n id: 7,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'mentioned',\n id: 8,\n },\n {\n rule: 'optional',\n type: 'bytes',\n name: 'binaryMsg',\n id: 9,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'convType',\n id: 10,\n },\n ],\n },\n {\n name: 'LogItem',\n syntax: 'proto2',\n fields: [\n {\n rule: 'optional',\n type: 'string',\n name: 'from',\n id: 1,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'data',\n id: 2,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'timestamp',\n id: 3,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'msgId',\n id: 4,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'ackAt',\n id: 5,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'readAt',\n id: 6,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'patchTimestamp',\n id: 7,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'mentionAll',\n id: 8,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'mentionPids',\n id: 9,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'bin',\n id: 10,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'convType',\n id: 11,\n },\n ],\n },\n {\n name: 'ConvMemberInfo',\n syntax: 'proto2',\n fields: [\n {\n rule: 'optional',\n type: 'string',\n name: 'pid',\n id: 1,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'role',\n id: 2,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'infoId',\n id: 3,\n },\n ],\n },\n {\n name: 'DataCommand',\n syntax: 'proto2',\n fields: [\n {\n rule: 'repeated',\n type: 'string',\n name: 'ids',\n id: 1,\n },\n {\n rule: 'repeated',\n type: 'JsonObjectMessage',\n name: 'msg',\n id: 2,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'offline',\n id: 3,\n },\n ],\n },\n {\n name: 'SessionCommand',\n syntax: 'proto2',\n fields: [\n {\n rule: 'optional',\n type: 'int64',\n name: 't',\n id: 1,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'n',\n id: 2,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 's',\n id: 3,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'ua',\n id: 4,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'r',\n id: 5,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'tag',\n id: 6,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'deviceId',\n id: 7,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'sessionPeerIds',\n id: 8,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'onlineSessionPeerIds',\n id: 9,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'st',\n id: 10,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'stTtl',\n id: 11,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'code',\n id: 12,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'reason',\n id: 13,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'deviceToken',\n id: 14,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'sp',\n id: 15,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'detail',\n id: 16,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'lastUnreadNotifTime',\n id: 17,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'lastPatchTime',\n id: 18,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'configBitmap',\n id: 19,\n },\n ],\n },\n {\n name: 'ErrorCommand',\n syntax: 'proto2',\n fields: [\n {\n rule: 'required',\n type: 'int32',\n name: 'code',\n id: 1,\n },\n {\n rule: 'required',\n type: 'string',\n name: 'reason',\n id: 2,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'appCode',\n id: 3,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'detail',\n id: 4,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'pids',\n id: 5,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'appMsg',\n id: 6,\n },\n ],\n },\n {\n name: 'DirectCommand',\n syntax: 'proto2',\n fields: [\n {\n rule: 'optional',\n type: 'string',\n name: 'msg',\n id: 1,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'uid',\n id: 2,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'fromPeerId',\n id: 3,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'timestamp',\n id: 4,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'offline',\n id: 5,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'hasMore',\n id: 6,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'toPeerIds',\n id: 7,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'r',\n id: 10,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'cid',\n id: 11,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'id',\n id: 12,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'transient',\n id: 13,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'dt',\n id: 14,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'roomId',\n id: 15,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'pushData',\n id: 16,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'will',\n id: 17,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'patchTimestamp',\n id: 18,\n },\n {\n rule: 'optional',\n type: 'bytes',\n name: 'binaryMsg',\n id: 19,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'mentionPids',\n id: 20,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'mentionAll',\n id: 21,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'convType',\n id: 22,\n },\n ],\n },\n {\n name: 'AckCommand',\n syntax: 'proto2',\n fields: [\n {\n rule: 'optional',\n type: 'int32',\n name: 'code',\n id: 1,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'reason',\n id: 2,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'mid',\n id: 3,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'cid',\n id: 4,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 't',\n id: 5,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'uid',\n id: 6,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'fromts',\n id: 7,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'tots',\n id: 8,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'type',\n id: 9,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'ids',\n id: 10,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'appCode',\n id: 11,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'appMsg',\n id: 12,\n },\n ],\n },\n {\n name: 'UnreadCommand',\n syntax: 'proto2',\n fields: [\n {\n rule: 'repeated',\n type: 'UnreadTuple',\n name: 'convs',\n id: 1,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'notifTime',\n id: 2,\n },\n ],\n },\n {\n name: 'ConvCommand',\n syntax: 'proto2',\n fields: [\n {\n rule: 'repeated',\n type: 'string',\n name: 'm',\n id: 1,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'transient',\n id: 2,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'unique',\n id: 3,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'cid',\n id: 4,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'cdate',\n id: 5,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'initBy',\n id: 6,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'sort',\n id: 7,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'limit',\n id: 8,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'skip',\n id: 9,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'flag',\n id: 10,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'count',\n id: 11,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'udate',\n id: 12,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 't',\n id: 13,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'n',\n id: 14,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 's',\n id: 15,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'statusSub',\n id: 16,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'statusPub',\n id: 17,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'statusTTL',\n id: 18,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'uniqueId',\n id: 19,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'targetClientId',\n id: 20,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'maxReadTimestamp',\n id: 21,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'maxAckTimestamp',\n id: 22,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'queryAllMembers',\n id: 23,\n },\n {\n rule: 'repeated',\n type: 'MaxReadTuple',\n name: 'maxReadTuples',\n id: 24,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'cids',\n id: 25,\n },\n {\n rule: 'optional',\n type: 'ConvMemberInfo',\n name: 'info',\n id: 26,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'tempConv',\n id: 27,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'tempConvTTL',\n id: 28,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'tempConvIds',\n id: 29,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'allowedPids',\n id: 30,\n },\n {\n rule: 'repeated',\n type: 'ErrorCommand',\n name: 'failedPids',\n id: 31,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'next',\n id: 40,\n },\n {\n rule: 'optional',\n type: 'JsonObjectMessage',\n name: 'results',\n id: 100,\n },\n {\n rule: 'optional',\n type: 'JsonObjectMessage',\n name: 'where',\n id: 101,\n },\n {\n rule: 'optional',\n type: 'JsonObjectMessage',\n name: 'attr',\n id: 103,\n },\n {\n rule: 'optional',\n type: 'JsonObjectMessage',\n name: 'attrModified',\n id: 104,\n },\n ],\n },\n {\n name: 'RoomCommand',\n syntax: 'proto2',\n fields: [\n {\n rule: 'optional',\n type: 'string',\n name: 'roomId',\n id: 1,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 's',\n id: 2,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 't',\n id: 3,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'n',\n id: 4,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'transient',\n id: 5,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'roomPeerIds',\n id: 6,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'byPeerId',\n id: 7,\n },\n ],\n },\n {\n name: 'LogsCommand',\n syntax: 'proto2',\n fields: [\n {\n rule: 'optional',\n type: 'string',\n name: 'cid',\n id: 1,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'l',\n id: 2,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'limit',\n id: 3,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 't',\n id: 4,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'tt',\n id: 5,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'tmid',\n id: 6,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'mid',\n id: 7,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'checksum',\n id: 8,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'stored',\n id: 9,\n },\n {\n rule: 'optional',\n type: 'QueryDirection',\n name: 'direction',\n id: 10,\n options: {\n default: 'OLD',\n },\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'tIncluded',\n id: 11,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'ttIncluded',\n id: 12,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'lctype',\n id: 13,\n },\n {\n rule: 'repeated',\n type: 'LogItem',\n name: 'logs',\n id: 105,\n },\n ],\n enums: [\n {\n name: 'QueryDirection',\n syntax: 'proto2',\n values: [\n {\n name: 'OLD',\n id: 1,\n },\n {\n name: 'NEW',\n id: 2,\n },\n ],\n },\n ],\n },\n {\n name: 'RcpCommand',\n syntax: 'proto2',\n fields: [\n {\n rule: 'optional',\n type: 'string',\n name: 'id',\n id: 1,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'cid',\n id: 2,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 't',\n id: 3,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'read',\n id: 4,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'from',\n id: 5,\n },\n ],\n },\n {\n name: 'ReadTuple',\n syntax: 'proto2',\n fields: [\n {\n rule: 'required',\n type: 'string',\n name: 'cid',\n id: 1,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'timestamp',\n id: 2,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'mid',\n id: 3,\n },\n ],\n },\n {\n name: 'MaxReadTuple',\n syntax: 'proto2',\n fields: [\n {\n rule: 'optional',\n type: 'string',\n name: 'pid',\n id: 1,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'maxAckTimestamp',\n id: 2,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'maxReadTimestamp',\n id: 3,\n },\n ],\n },\n {\n name: 'ReadCommand',\n syntax: 'proto2',\n fields: [\n {\n rule: 'optional',\n type: 'string',\n name: 'cid',\n id: 1,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'cids',\n id: 2,\n },\n {\n rule: 'repeated',\n type: 'ReadTuple',\n name: 'convs',\n id: 3,\n },\n ],\n },\n {\n name: 'PresenceCommand',\n syntax: 'proto2',\n fields: [\n {\n rule: 'optional',\n type: 'StatusType',\n name: 'status',\n id: 1,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'sessionPeerIds',\n id: 2,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'cid',\n id: 3,\n },\n ],\n },\n {\n name: 'ReportCommand',\n syntax: 'proto2',\n fields: [\n {\n rule: 'optional',\n type: 'bool',\n name: 'initiative',\n id: 1,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'type',\n id: 2,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'data',\n id: 3,\n },\n ],\n },\n {\n name: 'PatchItem',\n syntax: 'proto2',\n fields: [\n {\n rule: 'optional',\n type: 'string',\n name: 'cid',\n id: 1,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'mid',\n id: 2,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'timestamp',\n id: 3,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'recall',\n id: 4,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'data',\n id: 5,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'patchTimestamp',\n id: 6,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'from',\n id: 7,\n },\n {\n rule: 'optional',\n type: 'bytes',\n name: 'binaryMsg',\n id: 8,\n },\n {\n rule: 'optional',\n type: 'bool',\n name: 'mentionAll',\n id: 9,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'mentionPids',\n id: 10,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'patchCode',\n id: 11,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'patchReason',\n id: 12,\n },\n ],\n },\n {\n name: 'PatchCommand',\n syntax: 'proto2',\n fields: [\n {\n rule: 'repeated',\n type: 'PatchItem',\n name: 'patches',\n id: 1,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'lastPatchTime',\n id: 2,\n },\n ],\n },\n {\n name: 'PubsubCommand',\n syntax: 'proto2',\n fields: [\n {\n rule: 'optional',\n type: 'string',\n name: 'cid',\n id: 1,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'cids',\n id: 2,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'topic',\n id: 3,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'subtopic',\n id: 4,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'topics',\n id: 5,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'subtopics',\n id: 6,\n },\n {\n rule: 'optional',\n type: 'JsonObjectMessage',\n name: 'results',\n id: 7,\n },\n ],\n },\n {\n name: 'BlacklistCommand',\n syntax: 'proto2',\n fields: [\n {\n rule: 'optional',\n type: 'string',\n name: 'srcCid',\n id: 1,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'toPids',\n id: 2,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'srcPid',\n id: 3,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'toCids',\n id: 4,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'limit',\n id: 5,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'next',\n id: 6,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'blockedPids',\n id: 8,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'blockedCids',\n id: 9,\n },\n {\n rule: 'repeated',\n type: 'string',\n name: 'allowedPids',\n id: 10,\n },\n {\n rule: 'repeated',\n type: 'ErrorCommand',\n name: 'failedPids',\n id: 11,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 't',\n id: 12,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'n',\n id: 13,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 's',\n id: 14,\n },\n ],\n },\n {\n name: 'GenericCommand',\n syntax: 'proto2',\n fields: [\n {\n rule: 'optional',\n type: 'CommandType',\n name: 'cmd',\n id: 1,\n },\n {\n rule: 'optional',\n type: 'OpType',\n name: 'op',\n id: 2,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'appId',\n id: 3,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'peerId',\n id: 4,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'i',\n id: 5,\n },\n {\n rule: 'optional',\n type: 'string',\n name: 'installationId',\n id: 6,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'priority',\n id: 7,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'service',\n id: 8,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'serverTs',\n id: 9,\n },\n {\n rule: 'optional',\n type: 'int64',\n name: 'clientTs',\n id: 10,\n },\n {\n rule: 'optional',\n type: 'int32',\n name: 'notificationType',\n id: 11,\n },\n {\n rule: 'optional',\n type: 'DataCommand',\n name: 'dataMessage',\n id: 101,\n },\n {\n rule: 'optional',\n type: 'SessionCommand',\n name: 'sessionMessage',\n id: 102,\n },\n {\n rule: 'optional',\n type: 'ErrorCommand',\n name: 'errorMessage',\n id: 103,\n },\n {\n rule: 'optional',\n type: 'DirectCommand',\n name: 'directMessage',\n id: 104,\n },\n {\n rule: 'optional',\n type: 'AckCommand',\n name: 'ackMessage',\n id: 105,\n },\n {\n rule: 'optional',\n type: 'UnreadCommand',\n name: 'unreadMessage',\n id: 106,\n },\n {\n rule: 'optional',\n type: 'ReadCommand',\n name: 'readMessage',\n id: 107,\n },\n {\n rule: 'optional',\n type: 'RcpCommand',\n name: 'rcpMessage',\n id: 108,\n },\n {\n rule: 'optional',\n type: 'LogsCommand',\n name: 'logsMessage',\n id: 109,\n },\n {\n rule: 'optional',\n type: 'ConvCommand',\n name: 'convMessage',\n id: 110,\n },\n {\n rule: 'optional',\n type: 'RoomCommand',\n name: 'roomMessage',\n id: 111,\n },\n {\n rule: 'optional',\n type: 'PresenceCommand',\n name: 'presenceMessage',\n id: 112,\n },\n {\n rule: 'optional',\n type: 'ReportCommand',\n name: 'reportMessage',\n id: 113,\n },\n {\n rule: 'optional',\n type: 'PatchCommand',\n name: 'patchMessage',\n id: 114,\n },\n {\n rule: 'optional',\n type: 'PubsubCommand',\n name: 'pubsubMessage',\n id: 115,\n },\n {\n rule: 'optional',\n type: 'BlacklistCommand',\n name: 'blacklistMessage',\n id: 116,\n },\n ],\n },\n ],\n enums: [\n {\n name: 'CommandType',\n syntax: 'proto2',\n values: [\n {\n name: 'session',\n id: 0,\n },\n {\n name: 'conv',\n id: 1,\n },\n {\n name: 'direct',\n id: 2,\n },\n {\n name: 'ack',\n id: 3,\n },\n {\n name: 'rcp',\n id: 4,\n },\n {\n name: 'unread',\n id: 5,\n },\n {\n name: 'logs',\n id: 6,\n },\n {\n name: 'error',\n id: 7,\n },\n {\n name: 'login',\n id: 8,\n },\n {\n name: 'data',\n id: 9,\n },\n {\n name: 'room',\n id: 10,\n },\n {\n name: 'read',\n id: 11,\n },\n {\n name: 'presence',\n id: 12,\n },\n {\n name: 'report',\n id: 13,\n },\n {\n name: 'echo',\n id: 14,\n },\n {\n name: 'loggedin',\n id: 15,\n },\n {\n name: 'logout',\n id: 16,\n },\n {\n name: 'loggedout',\n id: 17,\n },\n {\n name: 'patch',\n id: 18,\n },\n {\n name: 'pubsub',\n id: 19,\n },\n {\n name: 'blacklist',\n id: 20,\n },\n {\n name: 'goaway',\n id: 21,\n },\n ],\n },\n {\n name: 'OpType',\n syntax: 'proto2',\n values: [\n {\n name: 'open',\n id: 1,\n },\n {\n name: 'add',\n id: 2,\n },\n {\n name: 'remove',\n id: 3,\n },\n {\n name: 'close',\n id: 4,\n },\n {\n name: 'opened',\n id: 5,\n },\n {\n name: 'closed',\n id: 6,\n },\n {\n name: 'query',\n id: 7,\n },\n {\n name: 'query_result',\n id: 8,\n },\n {\n name: 'conflict',\n id: 9,\n },\n {\n name: 'added',\n id: 10,\n },\n {\n name: 'removed',\n id: 11,\n },\n {\n name: 'refresh',\n id: 12,\n },\n {\n name: 'refreshed',\n id: 13,\n },\n {\n name: 'start',\n id: 30,\n },\n {\n name: 'started',\n id: 31,\n },\n {\n name: 'joined',\n id: 32,\n },\n {\n name: 'members_joined',\n id: 33,\n },\n {\n name: 'left',\n id: 39,\n },\n {\n name: 'members_left',\n id: 40,\n },\n {\n name: 'results',\n id: 42,\n },\n {\n name: 'count',\n id: 43,\n },\n {\n name: 'result',\n id: 44,\n },\n {\n name: 'update',\n id: 45,\n },\n {\n name: 'updated',\n id: 46,\n },\n {\n name: 'mute',\n id: 47,\n },\n {\n name: 'unmute',\n id: 48,\n },\n {\n name: 'status',\n id: 49,\n },\n {\n name: 'members',\n id: 50,\n },\n {\n name: 'max_read',\n id: 51,\n },\n {\n name: 'is_member',\n id: 52,\n },\n {\n name: 'member_info_update',\n id: 53,\n },\n {\n name: 'member_info_updated',\n id: 54,\n },\n {\n name: 'member_info_changed',\n id: 55,\n },\n {\n name: 'join',\n id: 80,\n },\n {\n name: 'invite',\n id: 81,\n },\n {\n name: 'leave',\n id: 82,\n },\n {\n name: 'kick',\n id: 83,\n },\n {\n name: 'reject',\n id: 84,\n },\n {\n name: 'invited',\n id: 85,\n },\n {\n name: 'kicked',\n id: 86,\n },\n {\n name: 'upload',\n id: 100,\n },\n {\n name: 'uploaded',\n id: 101,\n },\n {\n name: 'subscribe',\n id: 120,\n },\n {\n name: 'subscribed',\n id: 121,\n },\n {\n name: 'unsubscribe',\n id: 122,\n },\n {\n name: 'unsubscribed',\n id: 123,\n },\n {\n name: 'is_subscribed',\n id: 124,\n },\n {\n name: 'modify',\n id: 150,\n },\n {\n name: 'modified',\n id: 151,\n },\n {\n name: 'block',\n id: 170,\n },\n {\n name: 'unblock',\n id: 171,\n },\n {\n name: 'blocked',\n id: 172,\n },\n {\n name: 'unblocked',\n id: 173,\n },\n {\n name: 'members_blocked',\n id: 174,\n },\n {\n name: 'members_unblocked',\n id: 175,\n },\n {\n name: 'check_block',\n id: 176,\n },\n {\n name: 'check_result',\n id: 177,\n },\n {\n name: 'add_shutup',\n id: 180,\n },\n {\n name: 'remove_shutup',\n id: 181,\n },\n {\n name: 'query_shutup',\n id: 182,\n },\n {\n name: 'shutup_added',\n id: 183,\n },\n {\n name: 'shutup_removed',\n id: 184,\n },\n {\n name: 'shutup_result',\n id: 185,\n },\n {\n name: 'shutuped',\n id: 186,\n },\n {\n name: 'unshutuped',\n id: 187,\n },\n {\n name: 'members_shutuped',\n id: 188,\n },\n {\n name: 'members_unshutuped',\n id: 189,\n },\n {\n name: 'check_shutup',\n id: 190,\n },\n ],\n },\n {\n name: 'StatusType',\n syntax: 'proto2',\n values: [\n {\n name: 'on',\n id: 1,\n },\n {\n name: 'off',\n id: 2,\n },\n ],\n },\n ],\n isNamespace: true,\n })\n .build();\n","import messages from './message-compiled';\n\nconst {\n JsonObjectMessage,\n UnreadTuple,\n LogItem,\n DataCommand,\n SessionCommand,\n ErrorCommand,\n DirectCommand,\n AckCommand,\n UnreadCommand,\n ConvCommand,\n RoomCommand,\n LogsCommand,\n RcpCommand,\n ReadTuple,\n MaxReadTuple,\n ReadCommand,\n PresenceCommand,\n ReportCommand,\n GenericCommand,\n BlacklistCommand,\n PatchCommand,\n PatchItem,\n ConvMemberInfo,\n CommandType,\n OpType,\n StatusType,\n} = messages.push_server.messages2;\n\nexport {\n JsonObjectMessage,\n UnreadTuple,\n LogItem,\n DataCommand,\n SessionCommand,\n ErrorCommand,\n DirectCommand,\n AckCommand,\n UnreadCommand,\n ConvCommand,\n RoomCommand,\n LogsCommand,\n RcpCommand,\n ReadTuple,\n MaxReadTuple,\n ReadCommand,\n PresenceCommand,\n ReportCommand,\n GenericCommand,\n BlacklistCommand,\n PatchCommand,\n PatchItem,\n ConvMemberInfo,\n CommandType,\n OpType,\n StatusType,\n};\n","const adapters = {};\n\nconst getAdapter = name => {\n const adapter = adapters[name];\n if (adapter === undefined) {\n throw new Error(`${name} adapter is not configured`);\n }\n return adapter;\n};\n\n/**\n * 指定 Adapters\n * @function\n * @memberof module:leancloud-realtime\n * @param {Adapters} newAdapters Adapters 的类型请参考 {@link https://url.leanapp.cn/adapter-type-definitions @leancloud/adapter-types} 中的定义\n */\nconst setAdapters = newAdapters => {\n Object.assign(adapters, newAdapters);\n};\n\nexport { getAdapter, setAdapters };\n","/* eslint-disable */\nexport default (typeof global !== 'undefined'\n ? global\n : typeof window !== 'undefined' ? window : {});\n","import d from 'debug';\n\nconst EXPIRED = Symbol('expired');\nconst debug = d('LC:Expirable');\nexport default class Expirable {\n constructor(value, ttl) {\n this.originalValue = value;\n if (typeof ttl === 'number') {\n this.expiredAt = Date.now() + ttl;\n }\n }\n\n get value() {\n const expired = this.expiredAt && this.expiredAt <= Date.now();\n if (expired) debug(`expired: ${this.originalValue}`);\n return expired ? EXPIRED : this.originalValue;\n }\n}\nExpirable.EXPIRED = EXPIRED;\n","import d from 'debug';\nimport Expirable from './expirable';\n\nconst debug = d('LC:Cache');\nexport default class Cache {\n constructor(name = 'anonymous') {\n this.name = name;\n this._map = {};\n }\n\n get(key) {\n const cache = this._map[key];\n if (cache) {\n const { value } = cache;\n if (value !== Expirable.EXPIRED) {\n debug('[%s] hit: %s', this.name, key);\n return value;\n }\n delete this._map[key];\n }\n debug(`[${this.name}] missed: ${key}`);\n return null;\n }\n\n set(key, value, ttl) {\n debug('[%s] set: %s %d', this.name, key, ttl);\n this._map[key] = new Expirable(value, ttl);\n }\n}\n","import isPlainObject from 'lodash/isPlainObject';\nimport d from 'debug';\nimport global from './global';\n\nexport { global };\n\n/**\n * 调试日志控制器\n * @const\n * @memberof module:leancloud-realtime\n * @example\n * debug.enable(); // 启用调试日志\n * debug.disable(); // 关闭调试日志\n */\nconst debug = {\n enable: (namespaces = 'LC*') => d.enable(namespaces),\n disable: d.disable,\n};\nexport { debug };\n\nexport const tryAll = promiseConstructors => {\n const promise = new Promise(promiseConstructors[0]);\n if (promiseConstructors.length === 1) {\n return promise;\n }\n return promise.catch(() => tryAll(promiseConstructors.slice(1)));\n};\n\n// eslint-disable-next-line no-sequences\nexport const tap = interceptor => value => (interceptor(value), value);\n\nexport const finalize = callback => [\n // eslint-disable-next-line no-sequences\n value => (callback(), value),\n error => {\n callback();\n throw error;\n },\n];\n\nexport { default as Expirable } from './expirable';\nexport { default as Cache } from './cache';\n\n/**\n * 将对象转换为 Date,支持 string、number、ProtoBuf Long 以及 LeanCloud 的 Date 类型,\n * 其他情况下(包括对象为 falsy)返回原值。\n * @private\n */\nexport const decodeDate = date => {\n if (!date) return date;\n if (typeof date === 'string' || typeof date === 'number') {\n return new Date(date);\n }\n if (date.__type === 'Date' && date.iso) {\n return new Date(date.iso);\n }\n // Long\n if (typeof date.toNumber === 'function') {\n return new Date(date.toNumber());\n }\n return date;\n};\n/**\n * 获取 Date 的毫秒数,如果不是一个 Date 返回 undefined。\n * @private\n */\nexport const getTime = date =>\n date && date.getTime ? date.getTime() : undefined;\n\n/**\n * 解码对象中的 LeanCloud 数据结构。\n * 目前仅会处理 Date 类型。\n * @private\n */\nexport const decode = value => {\n if (!value) return value;\n if (value.__type === 'Date' && value.iso) {\n return new Date(value.iso);\n }\n if (Array.isArray(value)) {\n return value.map(decode);\n }\n if (isPlainObject(value)) {\n return Object.keys(value).reduce(\n (result, key) => ({\n ...result,\n [key]: decode(value[key]),\n }),\n {}\n );\n }\n return value;\n};\n/**\n * 将对象中的特殊类型编码为 LeanCloud 数据结构。\n * 目前仅会处理 Date 类型。\n * @private\n */\nexport const encode = value => {\n if (value instanceof Date) return { __type: 'Date', iso: value.toJSON() };\n if (Array.isArray(value)) {\n return value.map(encode);\n }\n if (isPlainObject(value)) {\n return Object.keys(value).reduce(\n (result, key) => ({\n ...result,\n [key]: encode(value[key]),\n }),\n {}\n );\n }\n return value;\n};\n\nexport const keyRemap = (keymap, obj) =>\n Object.keys(obj).reduce((newObj, key) => {\n const newKey = keymap[key] || key;\n return Object.assign(newObj, {\n [newKey]: obj[key],\n });\n }, {});\n\nexport const isIE10 =\n global.navigator &&\n global.navigator.userAgent &&\n global.navigator.userAgent.indexOf('MSIE 10.') !== -1;\n\n/* eslint-disable no-proto */\nexport const getStaticProperty = (klass, property) =>\n klass[property] ||\n (klass.__proto__ ? getStaticProperty(klass.__proto__, property) : undefined);\n/* eslint-enable no-proto */\n\nexport const union = (a, b) => Array.from(new Set([...a, ...b]));\nexport const difference = (a, b) =>\n Array.from((bSet => new Set(a.filter(x => !bSet.has(x))))(new Set(b)));\n\nconst map = new WeakMap();\n\n// protected property helper\nexport const internal = object => {\n if (!map.has(object)) {\n map.set(object, {});\n }\n return map.get(object);\n};\n\nexport const compact = (obj, filter) => {\n if (!isPlainObject(obj)) return obj;\n const object = { ...obj };\n Object.keys(object).forEach(prop => {\n const value = object[prop];\n if (value === filter) {\n delete object[prop];\n } else {\n object[prop] = compact(value, filter);\n }\n });\n return object;\n};\n\n// debug utility\nconst removeNull = obj => compact(obj, null);\nexport const trim = message => removeNull(JSON.parse(JSON.stringify(message)));\n\nexport const ensureArray = target => {\n if (Array.isArray(target)) {\n return target;\n }\n if (target === undefined || target === null) {\n return [];\n }\n return [target];\n};\n\nexport const setValue = (target, key, value) => {\n // '.' is not allowed in Class keys, escaping is not in concern now.\n const segs = key.split('.');\n const lastSeg = segs.pop();\n let currentTarget = target;\n segs.forEach(seg => {\n if (currentTarget[seg] === undefined) currentTarget[seg] = {};\n currentTarget = currentTarget[seg];\n });\n currentTarget[lastSeg] = value;\n return target;\n};\n\nexport const isWeapp =\n // eslint-disable-next-line no-undef\n typeof wx === 'object' && typeof wx.connectSocket === 'function';\n\n// throttle decorator\nexport const throttle = wait => (target, property, descriptor) => {\n const callback = descriptor.value;\n // very naive, internal use only\n if (callback.length) {\n throw new Error('throttled function should not accept any arguments');\n }\n return {\n ...descriptor,\n value() {\n let { throttleMeta } = internal(this);\n if (!throttleMeta) {\n throttleMeta = {};\n internal(this).throttleMeta = throttleMeta;\n }\n let { [property]: propertyMeta } = throttleMeta;\n if (!propertyMeta) {\n propertyMeta = {};\n throttleMeta[property] = propertyMeta;\n }\n const { previouseTimestamp = 0, timeout } = propertyMeta;\n const now = Date.now();\n const remainingTime = wait - (now - previouseTimestamp);\n if (remainingTime <= 0) {\n throttleMeta[property].previouseTimestamp = now;\n callback.apply(this);\n } else if (!timeout) {\n propertyMeta.timeout = setTimeout(() => {\n propertyMeta.previouseTimestamp = Date.now();\n delete propertyMeta.timeout;\n callback.apply(this);\n }, remainingTime);\n }\n },\n };\n};\n\nexport const isCNApp = appId => appId.slice(-9) !== '-MdYXbMMI';\n\nexport const equalBuffer = (buffer1, buffer2) => {\n if (!buffer1 || !buffer2) return false;\n if (buffer1.byteLength !== buffer2.byteLength) return false;\n const a = new Uint8Array(buffer1);\n const b = new Uint8Array(buffer2);\n return !a.some((value, index) => value !== b[index]);\n};\n","// WebSocket with auto reconnecting feature, backup endpoint and EventEmitter interface.\n\nimport d from 'debug';\nimport EventEmitter from 'eventemitter3';\nimport StateMachine from 'javascript-state-machine';\nimport { getAdapter } from './adapter';\nimport { ensureArray, tryAll, global } from './utils';\n\nconst debug = d('LC:WebSocketPlus');\n\nexport const OPEN = 'open';\nexport const DISCONNECT = 'disconnect';\nexport const RECONNECT = 'reconnect';\nexport const RETRY = 'retry';\nexport const SCHEDULE = 'schedule';\nexport const OFFLINE = 'offline';\nexport const ONLINE = 'online';\nexport const ERROR = 'error';\nexport const MESSAGE = 'message';\n\nconst HEARTBEAT_TIME = 180000;\nconst TIMEOUT_TIME = 380000;\n\nconst DEFAULT_RETRY_STRATEGY = attempt => Math.min(1000 * 2 ** attempt, 300000);\n\nconst requireConnected = (target, name, descriptor) => ({\n ...descriptor,\n value: function requireConnectedWrapper(...args) {\n this.checkConnectionAvailability(name);\n return descriptor.value.call(this, ...args);\n },\n});\n\nclass WebSocketPlus extends EventEmitter {\n get urls() {\n return this._urls;\n }\n\n set urls(urls) {\n this._urls = ensureArray(urls);\n }\n\n constructor(getUrls, protocol) {\n super();\n this.init();\n this._protocol = protocol;\n Promise.resolve(typeof getUrls === 'function' ? getUrls() : getUrls)\n .then(ensureArray)\n .then(urls => {\n this._urls = urls;\n return this._open();\n })\n .then(() => {\n this.__postponeTimeoutTimer = this._postponeTimeoutTimer.bind(this);\n if (global.addEventListener) {\n this.__pause = () => {\n if (this.can('pause')) this.pause();\n };\n this.__resume = () => {\n if (this.can('resume')) this.resume();\n };\n global.addEventListener('offline', this.__pause);\n global.addEventListener('online', this.__resume);\n }\n this.open();\n })\n .catch(this.throw.bind(this));\n }\n\n _open() {\n return this._createWs(this._urls, this._protocol).then(ws => {\n const [first, ...reset] = this._urls;\n this._urls = [...reset, first];\n return ws;\n });\n }\n\n _createWs(urls, protocol) {\n return tryAll(\n urls.map(url => (resolve, reject) => {\n debug(`connect [${url}] ${protocol}`);\n const WebSocket = getAdapter('WebSocket');\n const ws = protocol ? new WebSocket(url, protocol) : new WebSocket(url);\n ws.binaryType = this.binaryType || 'arraybuffer';\n ws.onopen = () => resolve(ws);\n ws.onclose = error => {\n if (error instanceof Error) {\n return reject(error);\n }\n // in browser, error event is useless\n return reject(new Error(`Failed to connect [${url}]`));\n };\n ws.onerror = ws.onclose;\n })\n ).then(ws => {\n this._ws = ws;\n this._ws.onclose = this._handleClose.bind(this);\n this._ws.onmessage = this._handleMessage.bind(this);\n return ws;\n });\n }\n\n _destroyWs() {\n const ws = this._ws;\n if (!ws) return;\n ws.onopen = null;\n ws.onclose = null;\n ws.onerror = null;\n ws.onmessage = null;\n this._ws = null;\n ws.close();\n }\n\n // eslint-disable-next-line class-methods-use-this\n onbeforeevent(event, from, to, ...payload) {\n debug(`${event}: ${from} -> ${to} %o`, payload);\n }\n\n onopen() {\n this.emit(OPEN);\n }\n\n onconnected() {\n this._startConnectionKeeper();\n }\n\n onleaveconnected(event, from, to) {\n this._stopConnectionKeeper();\n this._destroyWs();\n if (to === 'offline' || to === 'disconnected') {\n this.emit(DISCONNECT);\n }\n }\n\n onpause() {\n this.emit(OFFLINE);\n }\n\n onbeforeresume() {\n this.emit(ONLINE);\n }\n\n onreconnect() {\n this.emit(RECONNECT);\n }\n\n ondisconnected(event, from, to, attempt = 0) {\n const delay =\n from === OFFLINE ? 0 : DEFAULT_RETRY_STRATEGY.call(null, attempt);\n debug(`schedule attempt=${attempt} delay=${delay}`);\n this.emit(SCHEDULE, attempt, delay);\n if (this.__scheduledRetry) {\n clearTimeout(this.__scheduledRetry);\n }\n this.__scheduledRetry = setTimeout(() => {\n if (this.is('disconnected')) {\n this.retry(attempt);\n }\n }, delay);\n }\n\n onretry(event, from, to, attempt = 0) {\n this.emit(RETRY, attempt);\n this._open().then(\n () => this.can('reconnect') && this.reconnect(),\n () => this.can('fail') && this.fail(attempt + 1)\n );\n }\n\n onerror(event, from, to, error) {\n this.emit(ERROR, error);\n }\n\n onclose() {\n if (global.removeEventListener) {\n if (this.__pause) global.removeEventListener('offline', this.__pause);\n if (this.__resume) global.removeEventListener('online', this.__resume);\n }\n }\n\n checkConnectionAvailability(name = 'API') {\n if (!this.is('connected')) {\n const currentState = this.current;\n console.warn(\n `${name} should not be called when the connection is ${currentState}`\n );\n if (this.is('disconnected') || this.is('reconnecting')) {\n console.warn(\n 'disconnect and reconnect event should be handled to avoid such calls.'\n );\n }\n throw new Error('Connection unavailable');\n }\n }\n\n // jsdoc-ignore-start\n @requireConnected\n // jsdoc-ignore-end\n _ping() {\n debug('ping');\n try {\n this.ping();\n } catch (error) {\n console.warn(`websocket ping error: ${error.message}`);\n }\n }\n\n ping() {\n if (this._ws.ping) {\n this._ws.ping();\n } else {\n console.warn(`The WebSocket implement does not support sending ping frame.\n Override ping method to use application defined ping/pong mechanism.`);\n }\n }\n\n _postponeTimeoutTimer() {\n debug('_postponeTimeoutTimer');\n this._clearTimeoutTimers();\n this._timeoutTimer = setTimeout(() => {\n debug('timeout');\n this.disconnect();\n }, TIMEOUT_TIME);\n }\n\n _clearTimeoutTimers() {\n if (this._timeoutTimer) {\n clearTimeout(this._timeoutTimer);\n }\n }\n\n _startConnectionKeeper() {\n debug('start connection keeper');\n this._heartbeatTimer = setInterval(this._ping.bind(this), HEARTBEAT_TIME);\n const addListener = this._ws.addListener || this._ws.addEventListener;\n if (!addListener) {\n debug('connection keeper disabled due to the lack of #addEventListener.');\n return;\n }\n addListener.call(this._ws, 'message', this.__postponeTimeoutTimer);\n addListener.call(this._ws, 'pong', this.__postponeTimeoutTimer);\n this._postponeTimeoutTimer();\n }\n\n _stopConnectionKeeper() {\n debug('stop connection keeper');\n // websockets/ws#489\n const removeListener =\n this._ws.removeListener || this._ws.removeEventListener;\n if (removeListener) {\n removeListener.call(this._ws, 'message', this.__postponeTimeoutTimer);\n removeListener.call(this._ws, 'pong', this.__postponeTimeoutTimer);\n this._clearTimeoutTimers();\n }\n if (this._heartbeatTimer) {\n clearInterval(this._heartbeatTimer);\n }\n }\n\n _handleClose(event) {\n debug(`ws closed [${event.code}] ${event.reason}`);\n // socket closed manually, ignore close event.\n if (this.isFinished()) return;\n this.handleClose(event);\n }\n\n handleClose() {\n // reconnect\n this.disconnect();\n }\n\n // jsdoc-ignore-start\n @requireConnected\n // jsdoc-ignore-end\n send(data) {\n debug('send', data);\n this._ws.send(data);\n }\n\n _handleMessage(event) {\n debug('message', event.data);\n this.handleMessage(event.data);\n }\n\n handleMessage(message) {\n this.emit(MESSAGE, message);\n }\n}\n\nStateMachine.create({\n target: WebSocketPlus.prototype,\n initial: {\n state: 'initialized',\n event: 'init',\n defer: true,\n },\n terminal: 'closed',\n events: [\n {\n name: 'open',\n from: 'initialized',\n to: 'connected',\n },\n {\n name: 'disconnect',\n from: 'connected',\n to: 'disconnected',\n },\n {\n name: 'retry',\n from: 'disconnected',\n to: 'reconnecting',\n },\n {\n name: 'fail',\n from: 'reconnecting',\n to: 'disconnected',\n },\n {\n name: 'reconnect',\n from: 'reconnecting',\n to: 'connected',\n },\n {\n name: 'pause',\n from: ['connected', 'disconnected', 'reconnecting'],\n to: 'offline',\n },\n {},\n {\n name: 'resume',\n from: 'offline',\n to: 'disconnected',\n },\n {\n name: 'close',\n from: ['connected', 'disconnected', 'reconnecting', 'offline'],\n to: 'closed',\n },\n {\n name: 'throw',\n from: '*',\n to: 'error',\n },\n ],\n});\n\nexport default WebSocketPlus;\n","export const error = Object.freeze({\n 1000: {\n name: 'CLOSE_NORMAL',\n },\n 1006: {\n name: 'CLOSE_ABNORMAL',\n },\n 4100: {\n name: 'APP_NOT_AVAILABLE',\n message: 'App not exists or realtime message service is disabled.',\n },\n 4102: {\n name: 'SIGNATURE_FAILED',\n message: 'Login signature mismatch.',\n },\n 4103: {\n name: 'INVALID_LOGIN',\n message: 'Malformed clientId.',\n },\n 4105: {\n name: 'SESSION_REQUIRED',\n message: 'Message sent before session opened.',\n },\n 4107: {\n name: 'READ_TIMEOUT',\n },\n 4108: {\n name: 'LOGIN_TIMEOUT',\n },\n 4109: {\n name: 'FRAME_TOO_LONG',\n },\n 4110: {\n name: 'INVALID_ORIGIN',\n message: 'Access denied by domain whitelist.',\n },\n 4111: {\n name: 'SESSION_CONFLICT',\n },\n 4112: {\n name: 'SESSION_TOKEN_EXPIRED',\n },\n 4113: {\n name: 'APP_QUOTA_EXCEEDED',\n message: 'The daily active users limit exceeded.',\n },\n 4116: {\n name: 'MESSAGE_SENT_QUOTA_EXCEEDED',\n message: 'Command sent too fast.',\n },\n 4200: {\n name: 'INTERNAL_ERROR',\n message: 'Internal error, please contact LeanCloud for support.',\n },\n 4301: {\n name: 'CONVERSATION_API_FAILED',\n message: 'Upstream Conversatoin API failed, see error.detail for details.',\n },\n 4302: {\n name: 'CONVERSATION_SIGNATURE_FAILED',\n message: 'Conversation action signature mismatch.',\n },\n 4303: {\n name: 'CONVERSATION_NOT_FOUND',\n },\n 4304: {\n name: 'CONVERSATION_FULL',\n },\n 4305: {\n name: 'CONVERSATION_REJECTED_BY_APP',\n message: 'Conversation action rejected by hook.',\n },\n 4306: {\n name: 'CONVERSATION_UPDATE_FAILED',\n },\n 4307: {\n name: 'CONVERSATION_READ_ONLY',\n },\n 4308: {\n name: 'CONVERSATION_NOT_ALLOWED',\n },\n 4309: {\n name: 'CONVERSATION_UPDATE_REJECTED',\n message: 'Conversation update rejected because the client is not a member.',\n },\n 4310: {\n name: 'CONVERSATION_QUERY_FAILED',\n message: 'Conversation query failed because it is too expansive.',\n },\n 4311: {\n name: 'CONVERSATION_LOG_FAILED',\n },\n 4312: {\n name: 'CONVERSATION_LOG_REJECTED',\n message:\n 'Message query rejected because the client is not a member of the conversation.',\n },\n 4313: {\n name: 'SYSTEM_CONVERSATION_REQUIRED',\n },\n 4314: {\n name: 'NORMAL_CONVERSATION_REQUIRED',\n },\n 4315: {\n name: 'CONVERSATION_BLACKLISTED',\n message: 'Blacklisted in the conversation.',\n },\n 4316: {\n name: 'TRANSIENT_CONVERSATION_REQUIRED',\n },\n 4317: {\n name: 'CONVERSATION_MEMBERSHIP_REQUIRED',\n },\n 4318: {\n name: 'CONVERSATION_API_QUOTA_EXCEEDED',\n message: 'LeanCloud API quota exceeded. You may upgrade your plan.',\n },\n 4323: {\n name: 'TEMPORARY_CONVERSATION_EXPIRED',\n message: 'Temporary conversation expired or does not exist.',\n },\n 4401: {\n name: 'INVALID_MESSAGING_TARGET',\n message: 'Conversation does not exist or client is not a member.',\n },\n 4402: {\n name: 'MESSAGE_REJECTED_BY_APP',\n message: 'Message rejected by hook.',\n },\n 4403: {\n name: 'MESSAGE_OWNERSHIP_REQUIRED',\n },\n 4404: {\n name: 'MESSAGE_NOT_FOUND',\n },\n 4405: {\n name: 'MESSAGE_UPDATE_REJECTED_BY_APP',\n message: 'Message update rejected by hook.',\n },\n 4406: {\n name: 'MESSAGE_EDIT_DISABLED',\n },\n 4407: {\n name: 'MESSAGE_RECALL_DISABLED',\n },\n 5130: {\n name: 'OWNER_PROMOTION_NOT_ALLOWED',\n message: \"Updating a member's role to owner is not allowed.\",\n },\n});\n\nexport const ErrorCode = Object.freeze(\n Object.keys(error).reduce(\n (result, code) =>\n Object.assign(result, {\n [error[code].name]: Number(code),\n }),\n {}\n )\n);\n\nexport const createError = ({\n code,\n reason,\n appCode,\n detail,\n error: errorMessage,\n}) => {\n let message = reason || detail || errorMessage;\n let name = reason;\n if (!message && error[code]) {\n ({ name } = error[code]);\n message = error[code].message || name;\n }\n if (!message) {\n message = `Unknow Error: ${code}`;\n }\n const err = new Error(message);\n return Object.assign(err, {\n code,\n appCode,\n detail,\n name,\n });\n};\n","import d from 'debug';\nimport values from 'lodash/values';\nimport WebSocketPlus, {\n OPEN,\n DISCONNECT,\n RECONNECT,\n RETRY,\n SCHEDULE,\n OFFLINE,\n ONLINE,\n ERROR,\n MESSAGE,\n} from './websocket-plus';\nimport { createError } from './error';\nimport { GenericCommand, CommandType, OpType } from '../proto/message';\nimport { trim, equalBuffer } from './utils';\n\nconst debug = d('LC:Connection');\n\nconst COMMAND_TIMEOUT = 20000;\n\nconst EXPIRE = Symbol('expire');\n\nconst isIdempotentCommand = command =>\n !(\n command.cmd === CommandType.direct ||\n (command.cmd === CommandType.session && command.op === OpType.open) ||\n (command.cmd === CommandType.conv &&\n (command.op === OpType.start ||\n command.op === OpType.update ||\n command.op === OpType.members))\n );\n\nexport {\n OPEN,\n DISCONNECT,\n RECONNECT,\n RETRY,\n SCHEDULE,\n OFFLINE,\n ONLINE,\n ERROR,\n MESSAGE,\n EXPIRE,\n};\n\nexport default class Connection extends WebSocketPlus {\n constructor(getUrl, { format, version }) {\n debug('initializing Connection');\n const protocolString = `lc.${format}.${version}`;\n super(getUrl, protocolString);\n this._protocolFormat = format;\n this._commands = {};\n this._serialId = 0;\n }\n\n async send(command, waitingForRespond = true) {\n let buffer;\n let serialId;\n if (waitingForRespond) {\n if (isIdempotentCommand(command)) {\n buffer = command.toArrayBuffer();\n const duplicatedCommand = values(this._commands).find(\n ({ buffer: targetBuffer, command: targetCommand }) =>\n targetCommand.cmd === command.cmd &&\n targetCommand.op === command.op &&\n equalBuffer(targetBuffer, buffer)\n );\n if (duplicatedCommand) {\n console.warn(\n `Duplicated command [cmd:${command.cmd} op:${command.op}] is throttled.`\n );\n return duplicatedCommand.promise;\n }\n }\n\n this._serialId += 1;\n serialId = this._serialId;\n command.i = serialId; // eslint-disable-line no-param-reassign\n }\n if (debug.enabled) debug('↑ %O sent', trim(command));\n\n let message;\n if (this._protocolFormat === 'proto2base64') {\n message = command.toBase64();\n } else if (command.toArrayBuffer) {\n message = command.toArrayBuffer();\n }\n if (!message) {\n throw new TypeError(`${command} is not a GenericCommand`);\n }\n\n super.send(message);\n\n if (!waitingForRespond) return undefined;\n const promise = new Promise((resolve, reject) => {\n this._commands[serialId] = {\n command,\n buffer,\n resolve,\n reject,\n timeout: setTimeout(() => {\n if (this._commands[serialId]) {\n if (debug.enabled) debug('✗ %O timeout', trim(command));\n reject(\n createError({\n error: `Command Timeout [cmd:${command.cmd} op:${command.op}]`,\n name: 'COMMAND_TIMEOUT',\n })\n );\n delete this._commands[serialId];\n }\n }, COMMAND_TIMEOUT),\n };\n });\n this._commands[serialId].promise = promise;\n return promise;\n }\n\n handleMessage(msg) {\n let message;\n try {\n message = GenericCommand.decode(msg);\n if (debug.enabled) debug('↓ %O received', trim(message));\n } catch (e) {\n console.warn('Decode message failed:', e.message, msg);\n return;\n }\n const serialId = message.i;\n if (serialId) {\n if (this._commands[serialId]) {\n clearTimeout(this._commands[serialId].timeout);\n if (message.cmd === CommandType.error) {\n this._commands[serialId].reject(createError(message.errorMessage));\n } else {\n this._commands[serialId].resolve(message);\n }\n delete this._commands[serialId];\n } else {\n console.warn(`Unexpected command received with serialId [${serialId}],\n which have timed out or never been requested.`);\n }\n } else {\n switch (message.cmd) {\n case CommandType.error: {\n this.emit(ERROR, createError(message.errorMessage));\n return;\n }\n case CommandType.goaway: {\n this.emit(EXPIRE);\n return;\n }\n default: {\n this.emit(MESSAGE, message);\n }\n }\n }\n }\n\n ping() {\n return this.send(\n new GenericCommand({\n cmd: CommandType.echo,\n })\n ).catch(error => debug('ping failed:', error));\n }\n}\n","import d from 'debug';\nimport isPlainObject from 'lodash/isPlainObject';\nimport { timeout } from 'promise-timeout';\nimport { getAdapter } from '../adapter';\nimport { createError } from '../error';\n\nconst debug = d('LC:request');\n\nexport default ({\n method = 'GET',\n url: _url,\n query,\n headers,\n data,\n timeout: time,\n}) => {\n let url = _url;\n if (query) {\n const queryString = Object.keys(query)\n .map(key => {\n const value = query[key];\n if (value === undefined) return undefined;\n const v = isPlainObject(value) ? JSON.stringify(value) : value;\n return `${encodeURIComponent(key)}=${encodeURIComponent(v)}`;\n })\n .filter(qs => qs)\n .join('&');\n url = `${url}?${queryString}`;\n }\n debug('Req: %O %O %O', method, url, { headers, data });\n const request = getAdapter('request');\n const promise = request(url, { method, headers, data })\n .then(response => {\n if (response.ok === false) {\n const error = createError(response.data);\n error.response = response;\n throw error;\n }\n debug('Res: %O %O %O', url, response.status, response.data);\n return response.data;\n })\n .catch(error => {\n if (error.response) {\n debug(\n 'Error: %O %O %O',\n url,\n error.response.status,\n error.response.data\n );\n }\n throw error;\n });\n return time ? timeout(promise, time) : promise;\n};\n","/* eslint-disable max-len */\n\n/**\n * 插件接口\n *\n * <p>\n * 插件是由一个或多个扩展点组成的字典。SDK 的扩展点可以分为两类:\n * <p>\n * 第一类扩展点是类实例化之后的回调,包括 <code>Realtime</code>、<code>IMClient</code> 与 <code>Conversation</code>。这些扩展点可以通过一个同步的 Decorator 进行扩展。Decorator 接受一个对应的实例并对其进行一些操作。\n * 特别的,由于注册自定义消息类这个需求特别的常用,额外定义一个 messageClasses 扩展点来做这件事情。\n * <p>\n * 第二类扩展点是在某些事件处理前、后可以注入逻辑的点。\n * 其中 <code>beforeMessageParse</code>,<code>afterMessageParse</code> 可以通过一个异步的 Middleware 进行扩展。Middleware 接受一个对象,返回一个同类型对象或同类型对象的 Promise。\n * <code>beforeMessageDispatch</code> 可以通过返回一个 boolean 类型的 shouldDispatch 值来控制是否要继续派发收到的消息。\n * <p>\n * 如果使用了多个插件,这些 hook 会按照插件数组的顺序依次执行。前一个 Middleware 的返回值会作为参数传给后一个 Middleware。\n *\n * @interface Plugin\n * @since 3.1.0\n */\n\n/* eslint-enable max-len */\n\n/**\n * 插件名称,用于在日志中显示异常的插件\n *\n * @name Plugin.name\n * @type string\n */\n\n/**\n * 插件注册的消息类型\n *\n * @name Plugin.messageClasses\n * @type AVMessage[]\n */\n\n/**\n * 在 Realtime 实例化后对其进行修饰。\n * <p>\n * 接受一个参数为 Realtime 实例。\n *\n * @name Plugin.onRealtimeCreate\n * @type Function\n */\n\n/**\n * 在 IMClient 实例化后对其进行修饰。\n * <p>\n * 接受一个参数为 IMClient 实例。\n *\n * @name Plugin.onIMClientCreate\n * @type Function\n */\n\n/**\n * 在 Conversation 实例化后对其进行修饰。\n * <p>\n * 接受一个参数为 Conversation 实例。\n * 需要注意的是,该扩展点并不是在 <code>{@link IMClient#createConversation}</code> 方法创建成功后调用的 hook,\n * 而是所有的 Conversation 实例化的时候(包括但不限于 query 时)调用的 hook。\n *\n * @name Plugin.onConversationCreate\n * @type Function\n */\n\n/**\n * 在对消息进行 parse 之前,对原始消息进行修改。\n * <p>\n * 接受一个参数为原始消息,是某个消息的内容,一般是一个 JSON 对象。\n * 该方法需要返回一个 JSON 对象。如果这个结果是异步得到的,也可以返回一个 Promise(fulfilled with a JSON)。\n *\n * @name Plugin.beforeMessageParse\n * @type Function\n */\n\n/**\n * 在对消息进行 parse 之后,对消息实例进行修改。\n * <p>\n * 接受一个参数为消息实例,一般是一个已注册的 Message 类或其子类的实例。\n * 该方法需要返回一个同类型的消息实例。如果这个结果是异步得到的,也可以返回一个 Promise。\n *\n * @name Plugin.afterMessageParse\n * @type Function\n */\n\n/**\n * 在收到消息之后,派发消息之前,控制是否派发这条消息。\n * <p>\n * 接受参数为 message 与 conversation。\n * 该方法需要返回 boolean 类型的值,如果返回 false 则 SDK 不再派发这条消息,后续的 beforeMessageDispatch 也不会执行。\n * 如果这个结果是异步得到的,也可以返回一个 Promise。\n *\n * @name Plugin.beforeMessageDispatch\n * @type Function\n * @since 3.4.0\n */\n\nimport { ensureArray, tap } from './utils';\n\nconst checkType = middleware => param => {\n const { constructor } = param;\n return Promise.resolve(param)\n .then(middleware)\n .then(\n tap(result => {\n if (result === undefined || result === null) {\n // eslint-disable-next-line max-len\n return console.warn(\n `Middleware[${middleware._pluginName ||\n 'anonymous plugin'}:${middleware.name ||\n 'anonymous middleware'}] param/return types not match. It returns ${result} while a ${\n param.constructor.name\n } expected.`\n );\n }\n if (!(result instanceof constructor)) {\n // eslint-disable-next-line max-len\n return console.warn(\n `Middleware[${middleware._pluginName ||\n 'anonymous plugin'}:${middleware.name ||\n 'anonymous middleware'}] param/return types not match. It returns a ${\n result.constructor.name\n } while a ${param.constructor.name} expected.`\n );\n }\n return 0;\n })\n );\n};\n\nexport const applyDecorators = (decorators, target) => {\n if (decorators) {\n decorators.forEach(decorator => {\n try {\n decorator(target);\n } catch (error) {\n if (decorator._pluginName) {\n error.message += `[${decorator._pluginName}]`;\n }\n throw error;\n }\n });\n }\n};\n\nexport const applyMiddlewares = middlewares => target =>\n ensureArray(middlewares).reduce(\n (previousPromise, middleware) =>\n previousPromise.then(checkType(middleware)).catch(error => {\n if (middleware._pluginName) {\n // eslint-disable-next-line no-param-reassign\n error.message += `[${middleware._pluginName}]`;\n }\n throw error;\n }),\n Promise.resolve(target)\n );\n\nexport const applyDispatcher = (dispatchers, payload) =>\n ensureArray(dispatchers).reduce(\n (resultPromise, dispatcher) =>\n resultPromise\n .then(\n shouldDispatch =>\n shouldDispatch === false ? false : dispatcher(...payload)\n )\n .catch(error => {\n if (dispatcher._pluginName) {\n // eslint-disable-next-line no-param-reassign\n error.message += `[${dispatcher._pluginName}]`;\n }\n throw error;\n }),\n Promise.resolve(true)\n );\n","// eslint-disable-next-line max-classes-per-file\nimport d from 'debug';\nimport EventEmitter from 'eventemitter3';\nimport shuffle from 'lodash/shuffle';\nimport Connection, {\n OPEN,\n DISCONNECT,\n RECONNECT,\n RETRY,\n SCHEDULE,\n OFFLINE,\n ONLINE,\n ERROR,\n MESSAGE,\n EXPIRE,\n} from './connection';\nimport { ErrorCode, createError } from './error';\nimport {\n tap,\n Cache,\n trim,\n internal,\n ensureArray,\n isWeapp,\n isCNApp,\n} from './utils';\nimport request from './utils/request';\nimport { applyDecorators, applyDispatcher } from './plugin';\nimport { version as VERSION } from '../package.json';\n\nconst debug = d('LC:Realtime');\nconst routerCache = new Cache('push-router');\n\nconst initializedApp = {};\n\nexport default class Realtime extends EventEmitter {\n /**\n * @extends EventEmitter\n * @param {Object} options\n * @param {String} options.appId\n * @param {String} options.appKey (since 4.0.0)\n * @param {String|Object} [options.server] 指定服务器域名,中国节点应用此参数必填(since 4.0.0)\n * @param {Boolean} [options.noBinary=false] 设置 WebSocket 使用字符串格式收发消息(默认为二进制格式)。\n * 适用于 WebSocket 实现不支持二进制数据格式的情况\n * @param {Boolean} [options.ssl=true] 使用 wss 进行连接\n * @param {String|String[]} [options.RTMServers] 指定私有部署的 RTM 服务器地址(since 4.0.0)\n * @param {Plugin[]} [options.plugins] 加载插件(since 3.1.0)\n */\n constructor({ plugins, ...options }) {\n debug('initializing Realtime %s %O', VERSION, options);\n super();\n const { appId } = options;\n if (typeof appId !== 'string') {\n throw new TypeError(`appId [${appId}] is not a string`);\n }\n if (initializedApp[appId]) {\n throw new Error(`App [${appId}] is already initialized.`);\n }\n initializedApp[appId] = true;\n if (typeof options.appKey !== 'string') {\n throw new TypeError(`appKey [${options.appKey}] is not a string`);\n }\n if (isCNApp(appId)) {\n if (!options.server) {\n throw new TypeError(\n `server option is required for apps from CN region`\n );\n }\n }\n this._options = {\n appId: undefined,\n appKey: undefined,\n noBinary: false,\n ssl: true,\n RTMServerName:\n typeof process !== 'undefined'\n ? process.env.RTM_SERVER_NAME\n : undefined, // undocumented on purpose, internal use only\n ...options,\n };\n this._cache = new Cache('endpoints');\n const _this = internal(this);\n _this.clients = new Set();\n _this.pendingClients = new Set();\n const mergedPlugins = [\n ...ensureArray(Realtime.__preRegisteredPlugins),\n ...ensureArray(plugins),\n ];\n debug(\n 'Using plugins %o',\n mergedPlugins.map(plugin => plugin.name)\n );\n this._plugins = mergedPlugins.reduce((result, plugin) => {\n Object.keys(plugin).forEach(hook => {\n if ({}.hasOwnProperty.call(plugin, hook) && hook !== 'name') {\n if (plugin.name) {\n ensureArray(plugin[hook]).forEach(value => {\n // eslint-disable-next-line no-param-reassign\n value._pluginName = plugin.name;\n });\n }\n // eslint-disable-next-line no-param-reassign\n result[hook] = ensureArray(result[hook]).concat(plugin[hook]);\n }\n });\n return result;\n }, {});\n // onRealtimeCreate hook\n applyDecorators(this._plugins.onRealtimeCreate, this);\n }\n\n async _request({\n method,\n url: _url,\n version = '1.1',\n path,\n query,\n headers,\n data,\n }) {\n let url = _url;\n if (!url) {\n const { appId, server } = this._options;\n const { api } = await this.constructor._getServerUrls({\n appId,\n server,\n });\n url = `${api}/${version}${path}`;\n }\n return request({\n url,\n method,\n query,\n headers: {\n 'X-LC-Id': this._options.appId,\n 'X-LC-Key': this._options.appKey,\n ...headers,\n },\n data,\n });\n }\n\n _open() {\n if (this._openPromise) return this._openPromise;\n\n let format = 'protobuf2';\n if (this._options.noBinary) {\n // 不发送 binary data,fallback to base64 string\n format = 'proto2base64';\n }\n const version = 3;\n const protocol = {\n format,\n version,\n };\n this._openPromise = new Promise((resolve, reject) => {\n debug('No connection established, create a new one.');\n const connection = new Connection(\n () => this._getRTMServers(this._options),\n protocol\n );\n connection\n .on(OPEN, () => resolve(connection))\n .on(ERROR, error => {\n delete this._openPromise;\n reject(error);\n })\n .on(EXPIRE, async () => {\n debug('Connection expired. Refresh endpoints.');\n this._cache.set('endpoints', null, 0);\n connection.urls = await this._getRTMServers(this._options);\n connection.disconnect();\n })\n .on(MESSAGE, this._dispatchCommand.bind(this));\n /**\n * 连接断开。\n * 连接断开可能是因为 SDK 进入了离线状态(see {@link Realtime#event:OFFLINE}),或长时间没有收到服务器心跳。\n * 连接断开后所有的网络操作都会失败,请在连接断开后禁用相关的 UI 元素。\n * @event Realtime#DISCONNECT\n */\n /**\n * 计划在一段时间后尝试重新连接\n * @event Realtime#SCHEDULE\n * @param {Number} attempt 尝试重连的次数\n * @param {Number} delay 延迟的毫秒数\n */\n /**\n * 正在尝试重新连接\n * @event Realtime#RETRY\n * @param {Number} attempt 尝试重连的次数\n */\n /**\n * 连接恢复正常。\n * 请重新启用在 {@link Realtime#event:DISCONNECT} 事件中禁用的相关 UI 元素\n * @event Realtime#RECONNECT\n */\n\n /**\n * 客户端连接断开\n * @event IMClient#DISCONNECT\n * @see Realtime#event:DISCONNECT\n * @since 3.2.0\n */\n /**\n * 计划在一段时间后尝试重新连接\n * @event IMClient#SCHEDULE\n * @param {Number} attempt 尝试重连的次数\n * @param {Number} delay 延迟的毫秒数\n * @since 3.2.0\n */\n /**\n * 正在尝试重新连接\n * @event IMClient#RETRY\n * @param {Number} attempt 尝试重连的次数\n * @since 3.2.0\n */\n\n /**\n * 客户端进入离线状态。\n * 这通常意味着网络已断开,或者 {@link Realtime#pause} 被调用\n * @event Realtime#OFFLINE\n * @since 3.4.0\n */\n /**\n * 客户端恢复在线状态\n * 这通常意味着网络已恢复,或者 {@link Realtime#resume} 被调用\n * @event Realtime#ONLINE\n * @since 3.4.0\n */\n /**\n * 进入离线状态。\n * 这通常意味着网络已断开,或者 {@link Realtime#pause} 被调用\n * @event IMClient#OFFLINE\n * @since 3.4.0\n */\n /**\n * 恢复在线状态\n * 这通常意味着网络已恢复,或者 {@link Realtime#resume} 被调用\n * @event IMClient#ONLINE\n * @since 3.4.0\n */\n\n // event proxy\n [DISCONNECT, RECONNECT, RETRY, SCHEDULE, OFFLINE, ONLINE].forEach(event =>\n connection.on(event, (...payload) => {\n debug(`${event} event emitted. %o`, payload);\n this.emit(event, ...payload);\n if (event !== RECONNECT) {\n internal(this).clients.forEach(client => {\n client.emit(event, ...payload);\n });\n }\n })\n );\n // override handleClose\n connection.handleClose = function handleClose(event) {\n const isFatal = [\n ErrorCode.APP_NOT_AVAILABLE,\n ErrorCode.INVALID_LOGIN,\n ErrorCode.INVALID_ORIGIN,\n ].some(errorCode => errorCode === event.code);\n if (isFatal) {\n // in these cases, SDK should throw.\n this.throw(createError(event));\n } else {\n // reconnect\n this.disconnect();\n }\n };\n internal(this).connection = connection;\n });\n\n return this._openPromise;\n }\n\n async _getRTMServers(options) {\n if (options.RTMServers) return shuffle(ensureArray(options.RTMServers));\n let info;\n const cachedEndPoints = this._cache.get('endpoints');\n if (cachedEndPoints) {\n info = cachedEndPoints;\n } else {\n info = await this.constructor._fetchRTMServers(options);\n const { server, secondary, ttl } = info;\n if (\n typeof server !== 'string' &&\n typeof secondary !== 'string' &&\n typeof ttl !== 'number'\n ) {\n throw new Error(\n `malformed RTM route response: ${JSON.stringify(info)}`\n );\n }\n this._cache.set('endpoints', info, info.ttl * 1000);\n }\n debug('endpoint info: %O', info);\n return [info.server, info.secondary];\n }\n\n static async _getServerUrls({ appId, server }) {\n debug('fetch server urls');\n if (server) {\n if (typeof server !== 'string') return server;\n return {\n RTMRouter: server,\n api: server,\n };\n }\n const cachedRouter = routerCache.get(appId);\n if (cachedRouter) return cachedRouter;\n const defaultProtocol = 'https://';\n return request({\n url: 'https://app-router.com/2/route',\n query: {\n appId,\n },\n timeout: 20000,\n })\n .then(tap(debug))\n .then(\n ({\n rtm_router_server: RTMRouterServer,\n api_server: APIServer,\n ttl = 3600,\n }) => {\n if (!RTMRouterServer) {\n throw new Error('rtm router not exists');\n }\n const serverUrls = {\n RTMRouter: `${defaultProtocol}${RTMRouterServer}`,\n api: `${defaultProtocol}${APIServer}`,\n };\n routerCache.set(appId, serverUrls, ttl * 1000);\n return serverUrls;\n }\n )\n .catch(() => {\n const id = appId.slice(0, 8).toLowerCase();\n const domain = 'lncldglobal.com';\n return {\n RTMRouter: `${defaultProtocol}${id}.rtm.${domain}`,\n api: `${defaultProtocol}${id}.api.${domain}`,\n };\n });\n }\n\n static _fetchRTMServers({ appId, ssl, server, RTMServerName }) {\n debug('fetch endpoint info');\n return this._getServerUrls({ appId, server })\n .then(tap(debug))\n .then(({ RTMRouter }) =>\n request({\n url: `${RTMRouter}/v1/route`,\n query: {\n appId,\n secure: ssl,\n features: isWeapp ? 'wechat' : undefined,\n server: RTMServerName,\n _t: Date.now(),\n },\n timeout: 20000,\n }).then(tap(debug))\n );\n }\n\n _close() {\n if (this._openPromise) {\n this._openPromise.then(connection => connection.close());\n }\n delete this._openPromise;\n }\n\n /**\n * 手动进行重连。\n * SDK 在网络出现异常时会自动按照一定的时间间隔尝试重连,调用该方法会立即尝试重连并重置重连尝试计数器。\n * 只能在 `SCHEDULE` 事件之后,`RETRY` 事件之前调用,如果当前网络正常或者正在进行重连,调用该方法会抛异常。\n */\n retry() {\n const { connection } = internal(this);\n if (!connection) {\n throw new Error('no connection established');\n }\n if (connection.cannot('retry')) {\n throw new Error(\n `retrying not allowed when not disconnected. the connection is now ${connection.current}`\n );\n }\n return connection.retry();\n }\n\n /**\n * 暂停,使 SDK 进入离线状态。\n * 你可以在网络断开、应用进入后台等时刻调用该方法让 SDK 进入离线状态,离线状态下不会尝试重连。\n * 在浏览器中 SDK 会自动监听网络变化,因此无需手动调用该方法。\n *\n * @since 3.4.0\n * @see Realtime#event:OFFLINE\n */\n pause() {\n // 这个方法常常在网络断开、进入后台时被调用,此时 connection 可能没有建立或者已经 close。\n // 因此不像 retry,这个方法应该尽可能 loose\n const { connection } = internal(this);\n if (!connection) return;\n if (connection.can('pause')) connection.pause();\n }\n\n /**\n * 恢复在线状态。\n * 你可以在网络恢复、应用回到前台等时刻调用该方法让 SDK 恢复在线状态,恢复在线状态后 SDK 会开始尝试重连。\n *\n * @since 3.4.0\n * @see Realtime#event:ONLINE\n */\n resume() {\n // 与 pause 一样,这个方法应该尽可能 loose\n const { connection } = internal(this);\n if (!connection) return;\n if (connection.can('resume')) connection.resume();\n }\n\n _registerPending(value) {\n internal(this).pendingClients.add(value);\n }\n\n _deregisterPending(client) {\n internal(this).pendingClients.delete(client);\n }\n\n _register(client) {\n internal(this).clients.add(client);\n }\n\n _deregister(client) {\n const _this = internal(this);\n _this.clients.delete(client);\n if (_this.clients.size + _this.pendingClients.size === 0) {\n this._close();\n }\n }\n\n _dispatchCommand(command) {\n return applyDispatcher(this._plugins.beforeCommandDispatch, [\n command,\n this,\n ]).then(shouldDispatch => {\n // no plugin handled this command\n if (shouldDispatch)\n return debug('[WARN] Unexpected message received: %O', trim(command));\n return false;\n });\n }\n}\n\n// For test purpose only\n// SHOULD NOT be public\nexport class MultitonRealtime extends Realtime {\n constructor({ appId, ...rest }) {\n delete initializedApp[appId];\n super({\n appId,\n ...rest,\n });\n }\n}\n","import * as Protocols from '../proto/message';\n\nexport {\n Protocols,\n // misspelling\n Protocols as Protocals,\n};\n\nexport { default as EventEmitter } from 'eventemitter3';\n\nconst polyfilledPromise = Promise;\nexport { polyfilledPromise as Promise };\n\nexport {\n /**\n * @name Realtime\n * @memberof module:leancloud-realtime\n * @see Realtime\n */\n default as Realtime,\n} from './realtime';\n\nexport * from './adapter';\n\nexport { debug } from './utils';\n","// IMClient\nexport const UNREAD_MESSAGES_COUNT_UPDATE = 'unreadmessagescountupdate';\nexport const CLOSE = 'close';\nexport const CONFLICT = 'conflict';\nexport const CONVERSATION_INFO_UPDATED = 'conversationinfoupdated';\nexport const UNHANDLED_MESSAGE = 'unhandledmessage';\n\n// shared\nexport const INVITED = 'invited';\nexport const KICKED = 'kicked';\nexport const MEMBERS_JOINED = 'membersjoined';\nexport const MEMBERS_LEFT = 'membersleft';\nexport const MEMBER_INFO_UPDATED = 'memberinfoupdated';\nexport const BLOCKED = 'blocked';\nexport const UNBLOCKED = 'unblocked';\nexport const MEMBERS_BLOCKED = 'membersblocked';\nexport const MEMBERS_UNBLOCKED = 'membersunblocked';\nexport const MUTED = 'muted';\nexport const UNMUTED = 'unmuted';\nexport const MEMBERS_MUTED = 'membersmuted';\nexport const MEMBERS_UNMUTED = 'membersunmuted';\nexport const MESSAGE = 'message';\nexport const MESSAGE_RECALL = 'messagerecall';\nexport const MESSAGE_UPDATE = 'messageupdate';\n\n// Conversation\nexport const LAST_DELIVERED_AT_UPDATE = 'lastdeliveredatupdate';\nexport const LAST_READ_AT_UPDATE = 'lastreadatupdate';\nexport const INFO_UPDATED = 'infoupdated';\n","import uuid from 'uuid/v4';\nimport { ensureArray, decodeDate, getTime } from '../utils';\n\n/**\n * 消息状态枚举\n * @enum {Symbol}\n * @since 3.2.0\n * @memberof module:leancloud-realtime\n */\nconst MessageStatus = {\n /** 初始状态、未知状态 */\n NONE: Symbol('none'),\n /** 正在发送 */\n SENDING: Symbol('sending'),\n /** 已发送 */\n SENT: Symbol('sent'),\n /** 已送达 */\n DELIVERED: Symbol('delivered'),\n /** 发送失败 */\n FAILED: Symbol('failed'),\n};\nObject.freeze(MessageStatus);\n\nconst rMessageStatus = {\n [MessageStatus.NONE]: true,\n [MessageStatus.SENDING]: true,\n [MessageStatus.SENT]: true,\n [MessageStatus.DELIVERED]: true,\n [MessageStatus.READ]: true,\n [MessageStatus.FAILED]: true,\n};\n\nexport { MessageStatus };\nexport default class Message {\n /**\n * @implements AVMessage\n * @param {Object|String|ArrayBuffer} content 消息内容\n */\n constructor(content) {\n Object.assign(\n this,\n { content },\n {\n /**\n * @type {String}\n * @memberof Message#\n */\n id: uuid(),\n /**\n * 消息所在的 conversation id\n * @memberof Message#\n * @type {String?}\n */\n cid: null,\n /**\n * 消息发送时间\n * @memberof Message#\n * @type {Date}\n */\n timestamp: new Date(),\n /**\n * 消息发送者\n * @memberof Message#\n * @type {String}\n */\n from: undefined,\n /**\n * 消息提及的用户\n * @since 4.0.0\n * @memberof Message#\n * @type {String[]}\n */\n mentionList: [],\n /**\n * 消息是否提及了所有人\n * @since 4.0.0\n * @memberof Message#\n * @type {Boolean}\n */\n mentionedAll: false,\n _mentioned: false,\n }\n );\n this._setStatus(MessageStatus.NONE);\n }\n\n /**\n * 将当前消息的内容序列化为 JSON 对象\n * @private\n * @return {Object}\n */\n getPayload() {\n return this.content;\n }\n\n _toJSON() {\n const {\n id,\n cid,\n from,\n timestamp,\n deliveredAt,\n updatedAt,\n mentionList,\n mentionedAll,\n mentioned,\n } = this;\n return {\n id,\n cid,\n from,\n timestamp,\n deliveredAt,\n updatedAt,\n mentionList,\n mentionedAll,\n mentioned,\n };\n }\n\n /**\n * 返回 JSON 格式的消息\n * @return {Object} 返回值是一个 plain Object\n */\n toJSON() {\n return {\n ...this._toJSON(),\n data: this.content,\n };\n }\n\n /**\n * 返回 JSON 格式的消息,与 toJSON 不同的是,该对象包含了完整的信息,可以通过 {@link IMClient#parseMessage} 反序列化。\n * @return {Object} 返回值是一个 plain Object\n * @since 4.0.0\n */\n toFullJSON() {\n const {\n content,\n id,\n cid,\n from,\n timestamp,\n deliveredAt,\n _updatedAt,\n mentionList,\n mentionedAll,\n } = this;\n return {\n data: content,\n id,\n cid,\n from,\n timestamp: getTime(timestamp),\n deliveredAt: getTime(deliveredAt),\n updatedAt: getTime(_updatedAt),\n mentionList,\n mentionedAll,\n };\n }\n\n /**\n * 消息状态,值为 {@link module:leancloud-realtime.MessageStatus} 之一\n * @type {Symbol}\n * @readonly\n * @since 3.2.0\n */\n get status() {\n return this._status;\n }\n\n _setStatus(status) {\n if (!rMessageStatus[status]) {\n throw new Error('Invalid message status');\n }\n this._status = status;\n }\n\n get timestamp() {\n return this._timestamp;\n }\n\n set timestamp(value) {\n this._timestamp = decodeDate(value);\n }\n\n /**\n * 消息送达时间\n * @type {?Date}\n */\n get deliveredAt() {\n return this._deliveredAt;\n }\n\n set deliveredAt(value) {\n this._deliveredAt = decodeDate(value);\n }\n\n /**\n * 消息修改或撤回时间,可以通过比较其与消息的 timestamp 是否相等判断消息是否被修改过或撤回过。\n * @type {Date}\n * @since 3.5.0\n */\n get updatedAt() {\n return this._updatedAt || this.timestamp;\n }\n\n set updatedAt(value) {\n this._updatedAt = decodeDate(value);\n }\n\n /**\n * 当前用户是否在该消息中被提及\n * @type {Boolean}\n * @readonly\n * @since 4.0.0\n */\n get mentioned() {\n return this._mentioned;\n }\n\n _updateMentioned(client) {\n this._mentioned =\n this.from !== client &&\n (this.mentionedAll || this.mentionList.indexOf(client) > -1);\n }\n\n /**\n * 获取提及用户列表\n * @since 4.0.0\n * @return {String[]} 提及用户的 id 列表\n */\n getMentionList() {\n return this.mentionList;\n }\n\n /**\n * 设置提及用户列表\n * @since 4.0.0\n * @param {String[]} clients 提及用户的 id 列表\n * @return {this} self\n */\n setMentionList(clients) {\n this.mentionList = ensureArray(clients);\n return this;\n }\n\n /**\n * 设置是否提及所有人\n * @since 4.0.0\n * @param {Boolean} [value=true]\n * @return {this} self\n */\n mentionAll(value = true) {\n this.mentionedAll = Boolean(value);\n return this;\n }\n\n /**\n * 判断给定的内容是否是有效的 Message,\n * 该方法始终返回 true\n * @private\n * @returns {Boolean}\n * @implements AVMessage.validate\n */\n static validate() {\n return true;\n }\n\n /**\n * 解析处理消息内容\n * <pre>\n * 如果子类提供了 message,返回该 message\n * 如果没有提供,将 json 作为 content 实例化一个 Message\n * @private\n * @param {Object} json json 格式的消息内容\n * @param {Message} message 子类提供的 message\n * @return {Message}\n * @implements AVMessage.parse\n */\n static parse(json, message) {\n return message || new this(json);\n }\n}\n","/* eslint-disable no-param-reassign */\nimport { getStaticProperty, isIE10 } from '../utils';\n\n// documented in ../index.js\nexport const messageType = type => {\n if (typeof type !== 'number') {\n throw new TypeError(`${type} is not a Number`);\n }\n return target => {\n target.TYPE = type;\n target.validate = json => json._lctype === type;\n target.prototype._getType = () => ({ _lctype: type });\n };\n};\n\n// documented in ../plugin-im.js\nexport const messageField = fields => {\n if (typeof fields !== 'string') {\n if (!Array.isArray(fields)) {\n throw new TypeError(`${fields} is not an Array`);\n } else if (fields.some(value => typeof value !== 'string')) {\n throw new TypeError('fields contains non-string typed member');\n }\n }\n return target => {\n // IE10 Hack:\n // static properties in IE10 will not be inherited from super\n // search for parse method and assign it manually\n let originalCustomFields = isIE10\n ? getStaticProperty(target, '_customFields')\n : target._customFields;\n originalCustomFields = Array.isArray(originalCustomFields)\n ? originalCustomFields\n : [];\n target._customFields = originalCustomFields.concat(fields);\n };\n};\n\n// IE10 Hack:\n// static properties in IE10 will not be inherited from super\n// search for parse method and assign it manually\n\nexport const IE10Compatible = target => {\n if (isIE10) {\n target.parse = getStaticProperty(target, 'parse');\n }\n};\n","import Message from './message';\nimport { messageField } from './helpers';\nimport { getStaticProperty, isIE10, compact } from '../utils';\n\n// jsdoc-ignore-start\n@messageField(['_lctext', '_lcattrs'])\n// jsdoc-ignore-end\n/**\n * 所有内置的富媒体消息均继承自本类\n * @extends Message\n */\nclass TypedMessage extends Message {\n /**\n * @type {Number}\n * @readonly\n */\n get type() {\n return this.constructor.TYPE;\n }\n\n /** @type {String} */\n set text(text) {\n return this.setText(text);\n }\n\n get text() {\n return this.getText();\n }\n\n /** @type {Object} */\n set attributes(attributes) {\n return this.setAttributes(attributes);\n }\n\n get attributes() {\n return this.getAttributes();\n }\n\n /**\n * 在客户端需要以文本形式展示该消息时显示的文案,\n * 如 <code>[红包] 新春快乐</code>。\n * 默认值为消息的 text。\n * @type {String}\n * @readonly\n */\n get summary() {\n return this.text;\n }\n\n /**\n * @param {String} text\n * @return {this} self\n */\n setText(text) {\n this._lctext = text;\n return this;\n }\n\n /**\n * @return {String}\n */\n getText() {\n return this._lctext;\n }\n\n /**\n * @param {Object} attributes\n * @return {this} self\n */\n setAttributes(attributes) {\n this._lcattrs = attributes;\n return this;\n }\n\n /**\n * @return {Object}\n */\n getAttributes() {\n return this._lcattrs;\n }\n\n _getCustomFields() {\n const fields = Array.isArray(this.constructor._customFields)\n ? this.constructor._customFields\n : [];\n return fields.reduce((result, field) => {\n if (typeof field !== 'string') return result;\n result[field] = this[field]; // eslint-disable-line no-param-reassign\n return result;\n }, {});\n }\n\n /* eslint-disable class-methods-use-this */\n _getType() {\n throw new Error('not implemented');\n }\n /* eslint-enable class-methods-use-this */\n\n getPayload() {\n return compact({\n _lctext: this.getText(),\n _lcattrs: this.getAttributes(),\n ...this._getCustomFields(),\n ...this._getType(),\n });\n }\n\n toJSON() {\n const { type, text, attributes, summary } = this;\n return {\n ...super._toJSON(),\n type,\n text,\n attributes,\n summary,\n };\n }\n\n toFullJSON() {\n return {\n ...super.toFullJSON(),\n data: this.getPayload(),\n };\n }\n\n /**\n * 解析处理消息内容\n * <pre>\n * 为给定的 message 设置 text 与 attributes 属性,返回该 message\n * 如果子类没有提供 message,new this()\n * @protected\n * @param {Object} json json 格式的消息内容\n * @param {TypedMessage} message 子类提供的 message\n * @return {TypedMessage}\n * @implements AVMessage.parse\n */\n static parse(json, message = new this()) {\n message.content = json; // eslint-disable-line no-param-reassign\n const customFields = isIE10\n ? getStaticProperty(message.constructor, '_customFields')\n : message.constructor._customFields;\n let fields = Array.isArray(customFields) ? customFields : [];\n fields = fields.reduce((result, field) => {\n if (typeof field !== 'string') return result;\n result[field] = json[field]; // eslint-disable-line no-param-reassign\n return result;\n }, {});\n Object.assign(message, fields);\n return super.parse(json, message);\n }\n}\n\nexport default TypedMessage;\n","import TypedMessage from './typed-message';\nimport { messageType, IE10Compatible } from './helpers';\n\n// jsdoc-ignore-start\n@messageType(-127)\n@IE10Compatible\n// jsdoc-ignore-end\n/**\n * 已撤回类型消息,当消息被撤回时,SDK 会使用该类型的消息替代原始消息\n * @extends TypedMessage\n */\nclass RecalledMessage extends TypedMessage {\n /**\n * 在客户端需要以文本形式展示该消息时显示的文案,值为 <code>[该消息已撤回]</code>\n * @type {String}\n * @readonly\n */\n // eslint-disable-next-line class-methods-use-this\n get summary() {\n return '[该消息已撤回]';\n }\n}\nexport default RecalledMessage;\n","/* eslint class-methods-use-this: [\"error\", { \"exceptMethods\": [\"_addMembers\", \"_removeMembers\"] }] */\nimport EventEmitter from 'eventemitter3';\nimport values from 'lodash/values';\nimport d from 'debug';\nimport { decodeDate, getTime, internal } from '../utils';\nimport { applyDecorators } from '../plugin';\nimport {\n GenericCommand,\n ConvCommand,\n DirectCommand,\n LogsCommand,\n PatchCommand,\n PatchItem,\n CommandType,\n OpType,\n} from '../../proto/message';\nimport * as Event from '../events/im';\nimport { createError } from '../error';\nimport Message, { MessageStatus } from '../messages/message';\nimport RecalledMessage from '../messages/recalled-message';\n\nconst debug = d('LC:Conversation');\n\nconst serializeMessage = message => {\n const content = message.getPayload();\n let msg;\n let binaryMsg;\n if (content instanceof ArrayBuffer) {\n binaryMsg = content;\n } else if (typeof content !== 'string') {\n msg = JSON.stringify(content);\n } else {\n msg = content;\n }\n return { msg, binaryMsg };\n};\n\nconst { NEW, OLD } = LogsCommand.QueryDirection;\n\n/**\n * 历史消息查询方向枚举\n * @enum {Number}\n * @since 4.0.0\n * @memberof module:leancloud-realtime\n */\nconst MessageQueryDirection = {\n /** 从后向前 */\n NEW_TO_OLD: OLD,\n /** 从前向后 */\n OLD_TO_NEW: NEW,\n};\nObject.freeze(MessageQueryDirection);\n\nexport { MessageQueryDirection };\n\nexport default class ConversationBase extends EventEmitter {\n /**\n * @extends EventEmitter\n * @private\n * @abstract\n */\n constructor(\n {\n id,\n lastMessageAt,\n lastMessage,\n lastDeliveredAt,\n lastReadAt,\n unreadMessagesCount = 0,\n members = [],\n mentioned = false,\n ...properties\n },\n client\n ) {\n super();\n Object.assign(this, {\n /**\n * 对话 id,对应 _Conversation 表中的 objectId\n * @memberof ConversationBase#\n * @type {String}\n */\n id,\n /**\n * 最后一条消息时间\n * @memberof ConversationBase#\n * @type {?Date}\n */\n lastMessageAt,\n /**\n * 最后一条消息\n * @memberof ConversationBase#\n * @type {?Message}\n */\n lastMessage,\n /**\n * 参与该对话的用户列表\n * @memberof ConversationBase#\n * @type {String[]}\n */\n members,\n // other properties provided by subclasses\n ...properties,\n });\n this.members = Array.from(new Set(this.members));\n Object.assign(internal(this), {\n messagesWaitingForReceipt: {},\n lastDeliveredAt,\n lastReadAt,\n unreadMessagesCount,\n mentioned,\n });\n this._client = client;\n if (debug.enabled) {\n values(Event).forEach(event =>\n this.on(event, (...payload) =>\n this._debug(`${event} event emitted. %o`, payload)\n )\n );\n }\n // onConversationCreate hook\n applyDecorators(this._client._plugins.onConversationCreate, this);\n }\n\n /**\n * 当前用户是否在该对话的未读消息中被提及\n * @type {Boolean}\n * @since 4.0.0\n */\n get unreadMessagesMentioned() {\n return internal(this).unreadMessagesMentioned;\n }\n\n _setUnreadMessagesMentioned(value) {\n internal(this).unreadMessagesMentioned = Boolean(value);\n }\n\n set unreadMessagesCount(value) {\n if (value !== this.unreadMessagesCount) {\n internal(this).unreadMessagesCount = value;\n this._client.emit(Event.UNREAD_MESSAGES_COUNT_UPDATE, [this]);\n }\n }\n\n /**\n * 当前用户在该对话的未读消息数\n * @type {Number}\n */\n get unreadMessagesCount() {\n return internal(this).unreadMessagesCount;\n }\n\n set lastMessageAt(value) {\n const time = decodeDate(value);\n if (time <= this._lastMessageAt) return;\n this._lastMessageAt = time;\n }\n\n get lastMessageAt() {\n return this._lastMessageAt;\n }\n\n /**\n * 最后消息送达时间,常用来实现消息的「已送达」标记,可通过 {@link Conversation#fetchReceiptTimestamps} 获取或更新该属性\n * @type {?Date}\n * @since 3.4.0\n */\n get lastDeliveredAt() {\n if (this.members.length !== 2) return null;\n return internal(this).lastDeliveredAt;\n }\n\n _setLastDeliveredAt(value) {\n const date = decodeDate(value);\n if (!(date < internal(this).lastDeliveredAt)) {\n internal(this).lastDeliveredAt = date;\n /**\n * 最后消息送达时间更新\n * @event ConversationBase#LAST_DELIVERED_AT_UPDATE\n * @since 3.4.0\n */\n this.emit(Event.LAST_DELIVERED_AT_UPDATE);\n }\n }\n\n /**\n * 最后消息被阅读时间,常用来实现发送消息的「已读」标记,可通过 {@link Conversation#fetchReceiptTimestamps} 获取或更新该属性\n * @type {?Date}\n * @since 3.4.0\n */\n get lastReadAt() {\n if (this.members.length !== 2) return null;\n return internal(this).lastReadAt;\n }\n\n _setLastReadAt(value) {\n const date = decodeDate(value);\n if (!(date < internal(this).lastReadAt)) {\n internal(this).lastReadAt = date;\n /**\n * 最后消息被阅读时间更新\n * @event ConversationBase#LAST_READ_AT_UPDATE\n * @since 3.4.0\n */\n this.emit(Event.LAST_READ_AT_UPDATE);\n }\n }\n\n /**\n * 返回 JSON 格式的对话,与 toJSON 不同的是,该对象包含了完整的信息,可以通过 {@link IMClient#parseConversation} 反序列化。\n * @return {Object} 返回值是一个 plain Object\n * @since 4.0.0\n */\n toFullJSON() {\n const {\n id,\n members,\n lastMessageAt,\n lastDeliveredAt,\n lastReadAt,\n lastMessage,\n unreadMessagesCount,\n } = this;\n return {\n id,\n members,\n lastMessageAt: getTime(lastMessageAt),\n lastDeliveredAt: getTime(lastDeliveredAt),\n lastReadAt: getTime(lastReadAt),\n lastMessage: lastMessage ? lastMessage.toFullJSON() : undefined,\n unreadMessagesCount,\n };\n }\n\n /**\n * 返回 JSON 格式的对话\n * @return {Object} 返回值是一个 plain Object\n * @since 4.0.0\n */\n toJSON() {\n const {\n id,\n members,\n lastMessageAt,\n lastDeliveredAt,\n lastReadAt,\n lastMessage,\n unreadMessagesCount,\n unreadMessagesMentioned,\n } = this;\n return {\n id,\n members,\n lastMessageAt,\n lastDeliveredAt,\n lastReadAt,\n lastMessage: lastMessage ? lastMessage.toJSON() : undefined,\n unreadMessagesCount,\n unreadMessagesMentioned,\n };\n }\n\n _debug(...params) {\n debug(...params, `[${this.id}]`);\n }\n\n _send(command, ...args) {\n /* eslint-disable no-param-reassign */\n if (command.cmd === null) {\n command.cmd = 'conv';\n }\n if (command.cmd === 'conv' && command.convMessage === null) {\n command.convMessage = new ConvCommand();\n }\n if (command.convMessage && command.convMessage.cid === null) {\n command.convMessage.cid = this.id;\n }\n /* eslint-enable no-param-reassign */\n return this._client._send(command, ...args);\n }\n\n /**\n * 发送消息\n * @param {Message} message 消息,Message 及其子类的实例\n * @param {Object} [options] since v3.3.0,发送选项\n * @param {Boolean} [options.transient] since v3.3.1,是否作为暂态消息发送\n * @param {Boolean} [options.receipt] 是否需要回执,仅在普通对话中有效\n * @param {Boolean} [options.will] since v3.4.0,是否指定该消息作为「掉线消息」发送,\n * 「掉线消息」会延迟到当前用户掉线后发送,常用来实现「下线通知」功能\n * @param {MessagePriority} [options.priority] 消息优先级,仅在暂态对话中有效,\n * see: {@link module:leancloud-realtime.MessagePriority MessagePriority}\n * @param {Object} [options.pushData] 消息对应的离线推送内容,如果消息接收方不在线,会推送指定的内容。其结构说明参见: {@link https://url.leanapp.cn/pushData 推送消息内容}\n * @return {Promise.<Message>} 发送的消息\n */\n async send(message, options) {\n this._debug(message, 'send');\n if (!(message instanceof Message)) {\n throw new TypeError(`${message} is not a Message`);\n }\n const { transient, receipt, priority, pushData, will } = {\n // support Message static property: sendOptions\n ...message.constructor.sendOptions,\n // support Message static property: getSendOptions\n ...(typeof message.constructor.getSendOptions === 'function'\n ? message.constructor.getSendOptions(message)\n : {}),\n ...options,\n };\n if (receipt) {\n if (this.transient) {\n console.warn(\n 'receipt option is ignored as the conversation is transient.'\n );\n } else if (transient) {\n console.warn(\n 'receipt option is ignored as the message is sent transiently.'\n );\n } else if (this.members.length > 2) {\n console.warn(\n 'receipt option is recommended to be used in one-on-one conversation.'\n ); // eslint-disable-line max-len\n }\n }\n if (priority && !this.transient) {\n console.warn(\n 'priority option is ignored as the conversation is not transient.'\n );\n }\n Object.assign(message, {\n cid: this.id,\n from: this._client.id,\n });\n message._setStatus(MessageStatus.SENDING);\n const { msg, binaryMsg } = serializeMessage(message);\n const command = new GenericCommand({\n cmd: 'direct',\n directMessage: new DirectCommand({\n msg,\n binaryMsg,\n cid: this.id,\n r: receipt,\n transient,\n dt: message.id,\n pushData: JSON.stringify(pushData),\n will,\n mentionPids: message.mentionList,\n mentionAll: message.mentionedAll,\n }),\n priority,\n });\n try {\n const resCommand = await this._send(command);\n const {\n ackMessage: { uid, t, code, reason, appCode },\n } = resCommand;\n if (code !== null) {\n throw createError({\n code,\n reason,\n appCode,\n });\n }\n Object.assign(message, {\n id: uid,\n timestamp: t,\n });\n if (!transient) {\n this.lastMessage = message;\n this.lastMessageAt = message.timestamp;\n }\n message._setStatus(MessageStatus.SENT);\n if (receipt) {\n internal(this).messagesWaitingForReceipt[message.id] = message;\n }\n return message;\n } catch (error) {\n message._setStatus(MessageStatus.FAILED);\n throw error;\n }\n }\n\n async _update(message, newMessage, recall) {\n this._debug('patch %O %O %O', message, newMessage, recall);\n if (message instanceof Message) {\n if (message.from !== this._client.id) {\n throw new Error('Updating message from others is not allowed');\n }\n if (\n message.status !== MessageStatus.SENT &&\n message.status !== MessageStatus.DELIVERED\n ) {\n throw new Error('Message is not sent');\n }\n } else if (!(message.id && message.timestamp)) {\n throw new TypeError(`${message} is not a Message`);\n }\n let msg;\n let binaryMsg;\n if (!recall) {\n const content = serializeMessage(newMessage);\n ({ msg, binaryMsg } = content);\n }\n await this._send(\n new GenericCommand({\n cmd: CommandType.patch,\n op: OpType.modify,\n patchMessage: new PatchCommand({\n patches: [\n new PatchItem({\n cid: this.id,\n mid: message.id,\n timestamp: Number(message.timestamp),\n recall,\n data: msg,\n binaryMsg,\n mentionPids: newMessage.mentionList,\n mentionAll: newMessage.mentionedAll,\n }),\n ],\n lastPatchTime: this._client._lastPatchTime,\n }),\n })\n );\n const { id, cid, timestamp, from, _status } = message;\n Object.assign(newMessage, {\n id,\n cid,\n timestamp,\n from,\n _status,\n });\n if (this.lastMessage && this.lastMessage.id === newMessage.id) {\n this.lastMessage = newMessage;\n }\n return newMessage;\n }\n\n /**\n * 获取对话人数,或暂态对话的在线人数\n * @return {Promise.<Number>}\n */\n async count() {\n this._debug('count');\n const resCommand = await this._send(\n new GenericCommand({\n op: 'count',\n })\n );\n return resCommand.convMessage.count;\n }\n\n /**\n * 应用增加成员的操作,产生副作用\n * @param {string[]} members\n * @abstract\n * @private\n */\n _addMembers() {}\n\n /**\n * 应用减少成员的操作,产生副作用\n * @param {string[]} members\n * @abstract\n * @private\n */\n _removeMembers() {}\n\n /**\n * 修改已发送的消息\n * @param {AVMessage} message 要修改的消息,该消息必须是由当前用户发送的。也可以提供一个包含消息 {id, timestamp} 的对象\n * @param {AVMessage} newMessage 新的消息\n * @return {Promise.<AVMessage>} 更新后的消息\n */\n async update(message, newMessage) {\n if (!(newMessage instanceof Message)) {\n throw new TypeError(`${newMessage} is not a Message`);\n }\n return this._update(message, newMessage, false);\n }\n\n /**\n * 撤回已发送的消息\n * @param {AVMessage} message 要撤回的消息,该消息必须是由当前用户发送的。也可以提供一个包含消息 {id, timestamp} 的对象\n * @return {Promise.<RecalledMessage>} 一条已撤回的消息\n */\n async recall(message) {\n return this._update(message, new RecalledMessage(), true);\n }\n\n /**\n * 查询消息记录\n * 如果仅需实现消息向前记录翻页查询需求,建议使用 {@link Conversation#createMessagesIterator}。\n * 不论何种方向,获得的消息都是按照时间升序排列的。\n * startClosed 与 endClosed 用于指定查询区间的开闭。\n *\n * @param {Object} [options]\n * @param {Number} [options.limit] 限制查询结果的数量,目前服务端默认为 20\n * @param {Number} [options.type] 指定查询的富媒体消息类型,不指定则查询所有消息。\n * @param {MessageQueryDirection} [options.direction] 查询的方向。\n * 在不指定的情况下如果 startTime 大于 endTime,则为从新到旧查询,可以实现加载聊天记录等场景。\n * 如果 startTime 小于 endTime,则为从旧到新查询,可以实现弹幕等场景。\n * @param {Date} [options.startTime] 从该时间开始查询,不传则从当前时间开始查询\n * @param {String} [options.startMessageId] 从该消息之前开始查询,需要与 startTime 同时使用,为防止某时刻有重复消息\n * @param {Boolean}[options.startClosed] 指定查询范围是否包括开始的时间点,默认不包括\n * @param {Date} [options.endTime] 查询到该时间为止,不传则查询最早消息为止\n * @param {String} [options.endMessageId] 查询到该消息为止,需要与 endTime 同时使用,为防止某时刻有重复消息\n * @param {Boolean}[options.endClosed] 指定查询范围是否包括结束的时间点,默认不包括\n *\n * @param {Date} [options.beforeTime] DEPRECATED: 使用 startTime 代替。限制查询结果为小于该时间之前的消息,不传则为当前时间\n * @param {String} [options.beforeMessageId] DEPRECATED: 使用 startMessageId 代替。\n * 限制查询结果为该消息之前的消息,需要与 beforeTime 同时使用,为防止某时刻有重复消息\n * @param {Date} [options.afterTime] DEPRECATED: 使用 endTime 代替。限制查询结果为大于该时间之前的消息\n * @param {String} [options.afterMessageId] DEPRECATED: 使用 endMessageId 代替。\n * 限制查询结果为该消息之后的消息,需要与 afterTime 同时使用,为防止某时刻有重复消息\n * @return {Promise.<Message[]>} 消息列表\n */\n async queryMessages(options = {}) {\n this._debug('query messages %O', options);\n const {\n beforeTime,\n beforeMessageId,\n afterTime,\n afterMessageId,\n limit,\n direction,\n type,\n startTime,\n startMessageId,\n startClosed,\n endTime,\n endMessageId,\n endClosed,\n } = options;\n if (beforeMessageId || beforeTime || afterMessageId || afterTime) {\n console.warn(\n 'DEPRECATION: queryMessages options beforeTime, beforeMessageId, afterTime and afterMessageId are deprecated in favor of startTime, startMessageId, endTime and endMessageId.'\n );\n return this.queryMessages({\n startTime: beforeTime,\n startMessageId: beforeMessageId,\n endTime: afterTime,\n endMessageId: afterMessageId,\n limit,\n });\n }\n if (startMessageId && !startTime) {\n throw new Error(\n 'query option startMessageId must be used with option startTime'\n );\n }\n if (endMessageId && !endTime) {\n throw new Error(\n 'query option endMessageId must be used with option endTime'\n );\n }\n const conditions = {\n t: startTime,\n mid: startMessageId,\n tIncluded: startClosed,\n tt: endTime,\n tmid: endMessageId,\n ttIncluded: endClosed,\n l: limit,\n lctype: type,\n };\n if (conditions.t instanceof Date) {\n conditions.t = conditions.t.getTime();\n }\n if (conditions.tt instanceof Date) {\n conditions.tt = conditions.tt.getTime();\n }\n if (direction !== undefined) {\n conditions.direction = direction;\n } else if (conditions.tt > conditions.t) {\n conditions.direction = MessageQueryDirection.OLD_TO_NEW;\n }\n const resCommand = await this._send(\n new GenericCommand({\n cmd: 'logs',\n logsMessage: new LogsCommand(\n Object.assign(conditions, {\n cid: this.id,\n })\n ),\n })\n );\n return Promise.all(\n resCommand.logsMessage.logs.map(\n async ({\n msgId,\n timestamp,\n patchTimestamp,\n from,\n ackAt,\n readAt,\n data,\n mentionAll,\n mentionPids,\n bin,\n }) => {\n const messageData = {\n data,\n bin,\n id: msgId,\n cid: this.id,\n timestamp,\n from,\n deliveredAt: ackAt,\n updatedAt: patchTimestamp,\n mentionList: mentionPids,\n mentionedAll: mentionAll,\n };\n const message = await this._client.parseMessage(messageData);\n let status = MessageStatus.SENT;\n if (this.members.length === 2) {\n if (ackAt) status = MessageStatus.DELIVERED;\n if (ackAt) this._setLastDeliveredAt(ackAt);\n if (readAt) this._setLastReadAt(readAt);\n }\n message._setStatus(status);\n return message;\n }\n )\n );\n }\n\n /**\n * 获取消息翻页迭代器\n * @param {Object} [options]\n * @param {Date} [options.beforeTime] 限制起始查询结果为小于该时间之前的消息,不传则为当前时间\n * @param {String} [options.beforeMessageId] 限制起始查询结果为该消息之前的消息,需要与 beforeTime 同时使用,为防止某时刻有重复消息\n * @param {Number} [options.limit] 限制每页查询结果的数量,目前服务端默认为 20\n * @return {AsyncIterater.<Promise.<IteratorResult<Message[]>>>} [AsyncIterator]{@link https://github.com/tc39/proposal-async-iteration},调用其 next 方法返回获取下一页消息的 Promise\n * @example\n * var messageIterator = conversation.createMessagesIterator({ limit: 10 });\n * messageIterator.next().then(function(result) {\n * // result: {\n * // value: [message1, ..., message10],\n * // done: false,\n * // }\n * });\n * messageIterator.next().then(function(result) {\n * // result: {\n * // value: [message11, ..., message20],\n * // done: false,\n * // }\n * });\n * messageIterator.next().then(function(result) {\n * // No more messages\n * // result: { value: [], done: true }\n * });\n */\n createMessagesIterator({ beforeTime, beforeMessageId, limit } = {}) {\n let promise;\n return {\n next: () => {\n if (promise === undefined) {\n // first call\n promise = this.queryMessages({\n limit,\n startTime: beforeTime,\n startMessageId: beforeMessageId,\n });\n } else {\n promise = promise.then(prevMessages => {\n if (prevMessages.length === 0 || prevMessages.length < limit) {\n // no more messages\n return [];\n }\n return this.queryMessages({\n startTime: prevMessages[0].timestamp,\n startMessageId: prevMessages[0].id,\n limit,\n });\n });\n }\n return promise.then(value => ({\n value: Array.from(value),\n done: value.length === 0 || value.length < limit,\n }));\n },\n };\n }\n\n /**\n * 将该会话标记为已读\n * @return {Promise.<this>} self\n */\n async read() {\n this.unreadMessagesCount = 0;\n this._setUnreadMessagesMentioned(false);\n // 跳过暂态会话\n if (this.transient) return this;\n const client = this._client;\n if (!internal(client).readConversationsBuffer) {\n internal(client).readConversationsBuffer = new Set();\n }\n internal(client).readConversationsBuffer.add(this);\n client._doSendRead();\n return this;\n }\n\n _handleReceipt({ messageId, timestamp, read }) {\n if (read) {\n this._setLastReadAt(timestamp);\n } else {\n this._setLastDeliveredAt(timestamp);\n }\n const { messagesWaitingForReceipt } = internal(this);\n const message = messagesWaitingForReceipt[messageId];\n if (!message) return;\n message._setStatus(MessageStatus.DELIVERED);\n message.deliveredAt = timestamp;\n delete messagesWaitingForReceipt[messageId];\n }\n\n /**\n * 更新对话的最新回执时间戳(lastDeliveredAt、lastReadAt)\n * @since 3.4.0\n * @return {Promise.<this>} this\n */\n async fetchReceiptTimestamps() {\n // 暂态/系统会话不支持回执\n if (this.transient || this.system) return this;\n const {\n convMessage: { maxReadTimestamp, maxAckTimestamp },\n } = await this._send(\n new GenericCommand({\n op: 'max_read',\n })\n );\n this._setLastDeliveredAt(maxAckTimestamp);\n this._setLastReadAt(maxReadTimestamp);\n return this;\n }\n\n _fetchAllReceiptTimestamps() {\n // 暂态/系统会话不支持回执\n if (this.transient || this.system) return this;\n const convMessage = new ConvCommand({\n queryAllMembers: true,\n });\n return this._send(\n new GenericCommand({\n op: 'max_read',\n convMessage,\n })\n ).then(({ convMessage: { maxReadTuples } }) =>\n maxReadTuples\n .filter(\n maxReadTuple =>\n maxReadTuple.maxAckTimestamp || maxReadTuple.maxReadTimestamp\n )\n .map(({ pid, maxAckTimestamp, maxReadTimestamp }) => ({\n pid,\n lastDeliveredAt: decodeDate(maxAckTimestamp),\n lastReadAt: decodeDate(maxReadTimestamp),\n }))\n );\n }\n}\n","import d from 'debug';\nimport { tap } from './utils';\n\nconst debug = d('LC:SignatureFactoryRunner');\n\nfunction _validateSignature(signatureResult = {}) {\n const { signature, timestamp, nonce } = signatureResult;\n if (\n typeof signature !== 'string' ||\n typeof timestamp !== 'number' ||\n typeof nonce !== 'string'\n ) {\n throw new Error('malformed signature');\n }\n return {\n signature,\n timestamp,\n nonce,\n };\n}\n\nexport default (signatureFactory, params) =>\n Promise.resolve()\n .then(() => {\n debug('call signatureFactory with %O', params);\n return signatureFactory(...params);\n })\n .then(\n tap(signatureResult => debug('sign result %O', signatureResult)),\n error => {\n // eslint-disable-next-line no-param-reassign\n error.message = `sign error: ${error.message}`;\n debug(error);\n throw error;\n }\n )\n .then(_validateSignature);\n","import isEmpty from 'lodash/isEmpty';\nimport cloneDeep from 'lodash/cloneDeep';\nimport find from 'lodash/find';\nimport get from 'lodash/get';\nimport ConversationBase from './conversation-base';\nimport {\n decodeDate,\n getTime,\n encode,\n keyRemap,\n union,\n difference,\n internal,\n setValue,\n ensureArray,\n} from '../utils';\nimport {\n GenericCommand,\n ConvCommand,\n JsonObjectMessage,\n BlacklistCommand,\n OpType,\n} from '../../proto/message';\nimport runSignatureFactory from '../signature-factory-runner';\nimport { createError } from '../error';\n\n/**\n * 部分失败异常\n * @typedef OperationFailureError\n * @type {Error}\n * @property {string} message 异常信息\n * @property {string[]} clientIds 因为该原因失败的 client id 列表\n * @property {number} [code] 错误码\n * @property {string} [detail] 详细信息\n */\n\n/**\n * 部分成功的结果\n * @typedef PartiallySuccess\n * @type {Object}\n * @property {string[]} successfulClientIds 成功的 client id 列表\n * @property {OperationFailureError[]} failures 失败的异常列表\n */\n\n/**\n * 分页查询结果\n * @typedef PagedResults\n * @type {Object}\n * @property {T[]} results 查询结果\n * @property {string} [next] 存在表示还有更多结果,在下次查询中带上可实现翻页。\n */\n\nconst createPartiallySuccess = ({ allowedPids, failedPids }) => ({\n successfulClientIds: allowedPids,\n failures: failedPids.map(({ pids, ...error }) =>\n Object.assign(createError(error), { clientIds: pids })\n ),\n});\n\n/**\n * @extends ConversationBase\n * @private\n * @abstract\n */\nclass PersistentConversation extends ConversationBase {\n constructor(\n data,\n {\n creator,\n createdAt,\n updatedAt,\n transient = false,\n system = false,\n muted = false,\n mutedMembers = [],\n ...attributes\n },\n client\n ) {\n super(\n {\n ...data,\n /**\n * 对话创建者\n * @memberof PersistentConversation#\n * @type {String}\n */\n creator,\n /**\n * 对话创建时间\n * @memberof PersistentConversation#\n * @type {Date}\n */\n createdAt,\n /**\n * 对话更新时间\n * @memberof PersistentConversation#\n * @type {Date}\n */\n updatedAt,\n /**\n * 对该对话设置了静音的用户列表\n * @memberof PersistentConversation#\n * @type {?String[]}\n */\n mutedMembers,\n /**\n * 暂态对话标记\n * @memberof PersistentConversation#\n * @type {Boolean}\n */\n transient,\n /**\n * 系统对话标记\n * @memberof PersistentConversation#\n * @type {Boolean}\n * @since 3.3.0\n */\n system,\n /**\n * 当前用户静音该对话标记\n * @memberof PersistentConversation#\n * @type {Boolean}\n */\n muted,\n _attributes: attributes,\n },\n client\n );\n this._reset();\n }\n\n set createdAt(value) {\n this._createdAt = decodeDate(value);\n }\n\n get createdAt() {\n return this._createdAt;\n }\n\n set updatedAt(value) {\n this._updatedAt = decodeDate(value);\n }\n\n get updatedAt() {\n return this._updatedAt;\n }\n\n /**\n * 对话名字,对应 _Conversation 表中的 name\n * @type {String}\n */\n get name() {\n return this.get('name');\n }\n\n set name(value) {\n this.set('name', value);\n }\n\n /**\n * 获取对话的自定义属性\n * @since 3.2.0\n * @param {String} key key 属性的键名,'x' 对应 Conversation 表中的 x 列\n * @return {Any} 属性的值\n */\n get(key) {\n return get(internal(this).currentAttributes, key);\n }\n\n /**\n * 设置对话的自定义属性\n * @since 3.2.0\n * @param {String} key 属性的键名,'x' 对应 Conversation 表中的 x 列,支持使用 'x.y.z' 来修改对象的部分字段。\n * @param {Any} value 属性的值\n * @return {this} self\n * @example\n *\n * // 设置对话的 color 属性\n * conversation.set('color', {\n * text: '#000',\n * background: '#DDD',\n * });\n * // 设置对话的 color.text 属性\n * conversation.set('color.text', '#333');\n */\n set(key, value) {\n this._debug(`set [${key}]: ${value}`);\n const { pendingAttributes } = internal(this);\n const pendingKeys = Object.keys(pendingAttributes);\n // suppose pendingAttributes = { 'a.b': {} }\n // set 'a' or 'a.b': delete 'a.b'\n const re = new RegExp(`^${key}`);\n const childKeys = pendingKeys.filter(re.test.bind(re));\n childKeys.forEach(k => {\n delete pendingAttributes[k];\n });\n if (childKeys.length) {\n pendingAttributes[key] = value;\n } else {\n // set 'a.c': nothing to do\n // set 'a.b.c.d': assign c: { d: {} } to 'a.b'\n const parentKey = find(pendingKeys, k => key.indexOf(k) === 0); // 'a.b'\n if (parentKey) {\n setValue(\n pendingAttributes[parentKey],\n key.slice(parentKey.length + 1),\n value\n );\n } else {\n pendingAttributes[key] = value;\n }\n }\n this._buildCurrentAttributes();\n return this;\n }\n\n _buildCurrentAttributes() {\n const { pendingAttributes } = internal(this);\n internal(this).currentAttributes = Object.keys(pendingAttributes).reduce(\n (target, k) => setValue(target, k, pendingAttributes[k]),\n cloneDeep(this._attributes)\n );\n }\n\n _updateServerAttributes(attributes) {\n Object.keys(attributes).forEach(key =>\n setValue(this._attributes, key, attributes[key])\n );\n this._buildCurrentAttributes();\n }\n\n _reset() {\n Object.assign(internal(this), {\n pendingAttributes: {},\n currentAttributes: this._attributes,\n });\n }\n\n /**\n * 保存当前对话的属性至服务器\n * @return {Promise.<this>} self\n */\n async save() {\n this._debug('save');\n const attr = internal(this).pendingAttributes;\n if (isEmpty(attr)) {\n this._debug('nothing touched, resolve with self');\n return this;\n }\n this._debug('attr: %O', attr);\n const convMessage = new ConvCommand({\n attr: new JsonObjectMessage({\n data: JSON.stringify(encode(attr)),\n }),\n });\n const resCommand = await this._send(\n new GenericCommand({\n op: 'update',\n convMessage,\n })\n );\n this.updatedAt = resCommand.convMessage.udate;\n this._attributes = internal(this).currentAttributes;\n internal(this).pendingAttributes = {};\n return this;\n }\n\n /**\n * 从服务器更新对话的属性\n * @return {Promise.<this>} self\n */\n async fetch() {\n const query = this._client.getQuery().equalTo('objectId', this.id);\n await query.find();\n return this;\n }\n\n /**\n * 静音,客户端拒绝收到服务器端的离线推送通知\n * @return {Promise.<this>} self\n */\n async mute() {\n this._debug('mute');\n await this._send(\n new GenericCommand({\n op: 'mute',\n })\n );\n if (!this.transient) {\n this.muted = true;\n this.mutedMembers = union(this.mutedMembers, [this._client.id]);\n }\n return this;\n }\n\n /**\n * 取消静音\n * @return {Promise.<this>} self\n */\n async unmute() {\n this._debug('unmute');\n await this._send(\n new GenericCommand({\n op: 'unmute',\n })\n );\n if (!this.transient) {\n this.muted = false;\n this.mutedMembers = difference(this.mutedMembers, [this._client.id]);\n }\n return this;\n }\n\n async _appendConversationSignature(command, action, clientIds) {\n if (this._client.options.conversationSignatureFactory) {\n const params = [this.id, this._client.id, clientIds.sort(), action];\n const signatureResult = await runSignatureFactory(\n this._client.options.conversationSignatureFactory,\n params\n );\n Object.assign(\n command.convMessage,\n keyRemap(\n {\n signature: 's',\n timestamp: 't',\n nonce: 'n',\n },\n signatureResult\n )\n );\n }\n }\n\n async _appendBlacklistSignature(command, action, clientIds) {\n if (this._client.options.blacklistSignatureFactory) {\n const params = [this.id, this._client.id, clientIds.sort(), action];\n const signatureResult = await runSignatureFactory(\n this._client.options.blacklistSignatureFactory,\n params\n );\n Object.assign(\n command.blacklistMessage,\n keyRemap(\n {\n signature: 's',\n timestamp: 't',\n nonce: 'n',\n },\n signatureResult\n )\n );\n }\n }\n\n /**\n * 增加成员\n * @param {String|String[]} clientIds 新增成员 client id\n * @return {Promise.<PartiallySuccess>} 部分成功结果,包含了成功的 id 列表、失败原因与对应的 id 列表\n */\n async add(clientIds) {\n this._debug('add', clientIds);\n if (typeof clientIds === 'string') {\n clientIds = [clientIds]; // eslint-disable-line no-param-reassign\n }\n const command = new GenericCommand({\n op: 'add',\n convMessage: new ConvCommand({\n m: clientIds,\n }),\n });\n await this._appendConversationSignature(command, 'invite', clientIds);\n const {\n convMessage,\n convMessage: { allowedPids },\n } = await this._send(command);\n this._addMembers(allowedPids);\n return createPartiallySuccess(convMessage);\n }\n\n /**\n * 剔除成员\n * @param {String|String[]} clientIds 成员 client id\n * @return {Promise.<PartiallySuccess>} 部分成功结果,包含了成功的 id 列表、失败原因与对应的 id 列表\n */\n async remove(clientIds) {\n this._debug('remove', clientIds);\n if (typeof clientIds === 'string') {\n clientIds = [clientIds]; // eslint-disable-line no-param-reassign\n }\n const command = new GenericCommand({\n op: 'remove',\n convMessage: new ConvCommand({\n m: clientIds,\n }),\n });\n await this._appendConversationSignature(command, 'kick', clientIds);\n const {\n convMessage,\n convMessage: { allowedPids },\n } = await this._send(command);\n this._removeMembers(allowedPids);\n return createPartiallySuccess(convMessage);\n }\n\n /**\n * (当前用户)加入该对话\n * @return {Promise.<this>} self\n */\n async join() {\n this._debug('join');\n return this.add(this._client.id).then(({ failures }) => {\n if (failures[0]) throw failures[0];\n return this;\n });\n }\n\n /**\n * (当前用户)退出该对话\n * @return {Promise.<this>} self\n */\n async quit() {\n this._debug('quit');\n return this.remove(this._client.id).then(({ failures }) => {\n if (failures[0]) throw failures[0];\n return this;\n });\n }\n\n /**\n * 在该对话中禁言成员\n * @param {String|String[]} clientIds 成员 client id\n * @return {Promise.<PartiallySuccess>} 部分成功结果,包含了成功的 id 列表、失败原因与对应的 id 列表\n */\n async muteMembers(clientIds) {\n this._debug('mute', clientIds);\n clientIds = ensureArray(clientIds); // eslint-disable-line no-param-reassign\n const command = new GenericCommand({\n op: OpType.add_shutup,\n convMessage: new ConvCommand({\n m: clientIds,\n }),\n });\n const { convMessage } = await this._send(command);\n return createPartiallySuccess(convMessage);\n }\n\n /**\n * 在该对话中解除成员禁言\n * @param {String|String[]} clientIds 成员 client id\n * @return {Promise.<PartiallySuccess>} 部分成功结果,包含了成功的 id 列表、失败原因与对应的 id 列表\n */\n async unmuteMembers(clientIds) {\n this._debug('unmute', clientIds);\n clientIds = ensureArray(clientIds); // eslint-disable-line no-param-reassign\n const command = new GenericCommand({\n op: OpType.remove_shutup,\n convMessage: new ConvCommand({\n m: clientIds,\n }),\n });\n const { convMessage } = await this._send(command);\n return createPartiallySuccess(convMessage);\n }\n\n /**\n * 查询该对话禁言成员列表\n * @param {Object} [options]\n * @param {Number} [options.limit] 返回的成员数量,服务器默认值 10\n * @param {String} [options.next] 从指定 next 开始查询,与 limit 一起使用可以完成翻页。\n * @return {PagedResults.<string>} 查询结果。其中的 cureser 存在表示还有更多结果。\n */\n async queryMutedMembers({ limit, next } = {}) {\n this._debug('query muted: limit %O, next: %O', limit, next);\n const command = new GenericCommand({\n op: OpType.query_shutup,\n convMessage: new ConvCommand({\n limit,\n next,\n }),\n });\n const {\n convMessage: { m, next: newNext },\n } = await this._send(command);\n return {\n results: m,\n next: newNext,\n };\n }\n\n /**\n * 将用户加入该对话黑名单\n * @param {String|String[]} clientIds 成员 client id\n * @return {Promise.<PartiallySuccess>} 部分成功结果,包含了成功的 id 列表、失败原因与对应的 id 列表\n */\n async blockMembers(clientIds) {\n this._debug('block', clientIds);\n clientIds = ensureArray(clientIds); // eslint-disable-line no-param-reassign\n const command = new GenericCommand({\n cmd: 'blacklist',\n op: OpType.block,\n blacklistMessage: new BlacklistCommand({\n srcCid: this.id,\n toPids: clientIds,\n }),\n });\n await this._appendBlacklistSignature(\n command,\n 'conversation-block-clients',\n clientIds\n );\n const { blacklistMessage } = await this._send(command);\n return createPartiallySuccess(blacklistMessage);\n }\n\n /**\n * 将用户移出该对话黑名单\n * @param {String|String[]} clientIds 成员 client id\n * @return {Promise.<PartiallySuccess>} 部分成功结果,包含了成功的 id 列表、失败原因与对应的 id 列表\n */\n async unblockMembers(clientIds) {\n this._debug('unblock', clientIds);\n clientIds = ensureArray(clientIds); // eslint-disable-line no-param-reassign\n const command = new GenericCommand({\n cmd: 'blacklist',\n op: OpType.unblock,\n blacklistMessage: new BlacklistCommand({\n srcCid: this.id,\n toPids: clientIds,\n }),\n });\n await this._appendBlacklistSignature(\n command,\n 'conversation-unblock-clients',\n clientIds\n );\n const { blacklistMessage } = await this._send(command);\n return createPartiallySuccess(blacklistMessage);\n }\n\n /**\n * 查询该对话黑名单\n * @param {Object} [options]\n * @param {Number} [options.limit] 返回的成员数量,服务器默认值 10\n * @param {String} [options.next] 从指定 next 开始查询,与 limit 一起使用可以完成翻页\n * @return {PagedResults.<string>} 查询结果。其中的 cureser 存在表示还有更多结果。\n */\n async queryBlockedMembers({ limit, next } = {}) {\n this._debug('query blocked: limit %O, next: %O', limit, next);\n const command = new GenericCommand({\n cmd: 'blacklist',\n op: OpType.query,\n blacklistMessage: new BlacklistCommand({\n srcCid: this.id,\n limit,\n next,\n }),\n });\n const {\n blacklistMessage: { blockedPids, next: newNext },\n } = await this._send(command);\n return {\n results: blockedPids,\n next: newNext,\n };\n }\n\n toFullJSON() {\n const {\n creator,\n system,\n transient,\n createdAt,\n updatedAt,\n _attributes,\n } = this;\n return {\n ...super.toFullJSON(),\n creator,\n system,\n transient,\n createdAt: getTime(createdAt),\n updatedAt: getTime(updatedAt),\n ..._attributes,\n };\n }\n\n toJSON() {\n const {\n creator,\n system,\n transient,\n muted,\n mutedMembers,\n createdAt,\n updatedAt,\n _attributes,\n } = this;\n return {\n ...super.toJSON(),\n creator,\n system,\n transient,\n muted,\n mutedMembers,\n createdAt,\n updatedAt,\n ..._attributes,\n };\n }\n}\n\nexport default PersistentConversation;\n","import { internal } from './utils';\n\n/**\n * 对话成员角色枚举\n * @enum {String}\n * @since 4.0.0\n * @memberof module:leancloud-realtime\n */\nconst ConversationMemberRole = {\n /** 所有者 */\n OWNER: 'Owner',\n /** 管理员 */\n MANAGER: 'Manager',\n /** 成员 */\n MEMBER: 'Member',\n};\nObject.freeze(ConversationMemberRole);\nexport { ConversationMemberRole };\n\nexport default class ConversationMemberInfo {\n /**\n * 对话成员属性,保存了成员与某个对话相关的属性,对应 _ConversationMemberInfo 表\n * @since 4.0.0\n */\n constructor({ conversation, memberId, role }) {\n if (!conversation) throw new Error('conversation requried');\n if (!memberId) throw new Error('memberId requried');\n Object.assign(internal(this), {\n conversation,\n memberId,\n role,\n });\n }\n\n /**\n * 对话 Id\n * @type {String}\n * @readonly\n */\n get conversationId() {\n return internal(this).conversation.id;\n }\n\n /**\n * 成员 Id\n * @type {String}\n * @readonly\n */\n get memberId() {\n return internal(this).memberId;\n }\n\n /**\n * 角色\n * @type {module:leancloud-realtime.ConversationMemberRole | String}\n * @readonly\n */\n get role() {\n if (this.isOwner) return ConversationMemberRole.OWNER;\n return internal(this).role;\n }\n\n /**\n * 是否是管理员\n * @type {Boolean}\n * @readonly\n */\n get isOwner() {\n return this.memberId === internal(this).conversation.creator;\n }\n\n toJSON() {\n const { conversationId, memberId, role, isOwner } = this;\n return {\n conversationId,\n memberId,\n role,\n isOwner,\n };\n }\n}\n","import PersistentConversation from './persistent-conversation';\nimport ConversationMemberInfo, {\n ConversationMemberRole,\n} from '../conversation-member-info';\nimport { internal, union, difference } from '../utils';\nimport {\n GenericCommand,\n ConvCommand,\n ConvMemberInfo,\n OpType,\n} from '../../proto/message';\nimport { createError, ErrorCode } from '../error';\n\n/**\n * 普通对话\n *\n * 无法直接实例化,请使用 {@link IMClient#createConversation} 创建新的普通对话。\n * @extends PersistentConversation\n * @public\n */\nclass Conversation extends PersistentConversation {\n _addMembers(members) {\n super._addMembers(members);\n this.members = union(this.members, members);\n const { memberInfoMap } = internal(this);\n if (!memberInfoMap) return;\n members.forEach(memberId => {\n memberInfoMap[memberId] =\n memberInfoMap[memberId] ||\n new ConversationMemberInfo({\n conversation: this,\n memberId,\n role: ConversationMemberRole.MEMBER,\n });\n });\n }\n\n _removeMembers(members) {\n super._removeMembers(members);\n this.members = difference(this.members, members);\n const { memberInfoMap } = internal(this);\n if (!memberInfoMap) return;\n members.forEach(memberId => {\n delete memberInfoMap[memberId];\n });\n }\n\n async _fetchAllMemberInfo() {\n const response = await this._client._requestWithSessionToken({\n method: 'GET',\n path: '/classes/_ConversationMemberInfo',\n query: {\n where: { cid: this.id },\n },\n });\n const memberInfos = response.results.map(\n info =>\n new ConversationMemberInfo({\n conversation: this,\n memberId: info.clientId,\n role: info.role,\n })\n );\n const memberInfoMap = {};\n memberInfos.forEach(memberInfo => {\n memberInfoMap[memberInfo.memberId] = memberInfo;\n });\n this.members.forEach(memberId => {\n memberInfoMap[memberId] =\n memberInfoMap[memberId] ||\n new ConversationMemberInfo({\n conversation: this,\n memberId,\n role: ConversationMemberRole.MEMBER,\n });\n });\n internal(this).memberInfoMap = memberInfoMap;\n return memberInfoMap;\n }\n\n /**\n * 获取所有成员的对话属性\n * @since 4.0.0\n * @return {Promise.<ConversationMemberInfo[]>} 所有成员的对话属性列表\n */\n async getAllMemberInfo({ noCache = false } = {}) {\n let { memberInfoMap } = internal(this);\n if (!memberInfoMap || noCache) {\n memberInfoMap = await this._fetchAllMemberInfo();\n }\n return this.members.map(memberId => memberInfoMap[memberId]);\n }\n\n /**\n * 获取指定成员的对话属性\n * @since 4.0.0\n * @param {String} memberId 成员 Id\n * @return {Promise.<ConversationMemberInfo>} 指定成员的对话属性\n */\n async getMemberInfo(memberId) {\n if (this.members.indexOf(memberId) === -1)\n throw new Error(\n `${memberId} is not the mumber of conversation[${this.id}]`\n );\n const { memberInfoMap } = internal(this);\n if (!(memberInfoMap && memberInfoMap[memberId]))\n await this.getAllMemberInfo();\n return internal(this).memberInfoMap[memberId];\n }\n\n /**\n * 更新指定用户的角色\n * @since 4.0.0\n * @param {String} memberId 成员 Id\n * @param {module:leancloud-realtime.ConversationMemberRole | String} role 角色\n * @return {Promise.<this>} self\n */\n async updateMemberRole(memberId, role) {\n this._debug('update member role');\n if (role === ConversationMemberRole.OWNER)\n throw createError({\n code: ErrorCode.OWNER_PROMOTION_NOT_ALLOWED,\n });\n await this._send(\n new GenericCommand({\n op: OpType.member_info_update,\n convMessage: new ConvCommand({\n targetClientId: memberId,\n info: new ConvMemberInfo({\n pid: memberId,\n role,\n }),\n }),\n })\n );\n const { memberInfos } = internal(this);\n if (memberInfos && memberInfos[memberId]) {\n internal(memberInfos[memberId]).role = role;\n }\n return this;\n }\n}\n\nexport default Conversation;\n","import PersistentConversation from './persistent-conversation';\n\n/**\n * 聊天室。\n *\n * 无法直接实例化,请使用 {@link IMClient#createChatRoom} 创建新的聊天室。\n * @since 4.0.0\n * @extends PersistentConversation\n * @public\n */\nclass ChatRoom extends PersistentConversation {}\n\nexport default ChatRoom;\n","import PersistentConversation from './persistent-conversation';\n\n/**\n * 服务号。\n *\n * 服务号不支持在客户端创建。\n * @since 4.0.0\n * @extends PersistentConversation\n * @public\n */\nclass ServiceConversation extends PersistentConversation {\n /**\n * 订阅该服务号\n * @return {Promise.<this>} self\n */\n async subscribe() {\n return this.join();\n }\n\n /**\n * 退订该服务号\n * @return {Promise.<this>} self\n */\n async unsubscribe() {\n return this.quit();\n }\n}\n\nexport default ServiceConversation;\n","import ConversationBase from './conversation-base';\nimport { createError, ErrorCode } from '../error';\nimport { decodeDate, getTime } from '../utils';\n\nconst transformNotFoundError = error =>\n error.code === ErrorCode.CONVERSATION_NOT_FOUND\n ? createError({ code: ErrorCode.TEMPORARY_CONVERSATION_EXPIRED })\n : error;\n\n/**\n * 临时对话\n * @since 4.0.0\n * @extends ConversationBase\n * @public\n */\nclass TemporaryConversation extends ConversationBase {\n /**\n * 无法直接实例化,请使用 {@link IMClient#createTemporaryConversation} 创建新的临时对话。\n */\n constructor(data, { expiredAt }, client) {\n super(\n {\n ...data,\n expiredAt,\n },\n client\n );\n }\n\n /**\n * 对话失效时间\n * @type {Date}\n */\n set expiredAt(value) {\n this._expiredAt = decodeDate(value);\n }\n\n get expiredAt() {\n return this._expiredAt;\n }\n\n /**\n * 对话是否已失效\n * @type {Boolean}\n */\n get expired() {\n return this.expiredAt < new Date();\n }\n\n async _send(...args) {\n if (this.expired)\n throw createError({ code: ErrorCode.TEMPORARY_CONVERSATION_EXPIRED });\n try {\n return await super._send(...args);\n } catch (error) {\n throw transformNotFoundError(error);\n }\n }\n\n async send(...args) {\n try {\n return await super.send(...args);\n } catch (error) {\n throw transformNotFoundError(error);\n }\n }\n\n toFullJSON() {\n const { expiredAt } = this;\n return {\n ...super.toFullJSON(),\n expiredAt: getTime(expiredAt),\n };\n }\n\n toJSON() {\n const { expiredAt, expired } = this;\n return {\n ...super.toJSON(),\n expiredAt,\n expired,\n };\n }\n}\n\nexport default TemporaryConversation;\n","import d from 'debug';\n\nconst debug = d('LC:ConversationQuery');\n\nexport default class ConversationQuery {\n static _encode(value) {\n if (value instanceof Date) {\n return { __type: 'Date', iso: value.toJSON() };\n }\n if (value instanceof RegExp) {\n return value.source;\n }\n return value;\n }\n\n static _quote(s) {\n return `\\\\Q${s.replace('\\\\E', '\\\\E\\\\\\\\E\\\\Q')}\\\\E`;\n }\n\n static _calculateFlag(options) {\n return ['withLastMessagesRefreshed', 'compact'].reduce(\n // eslint-disable-next-line no-bitwise\n (prev, key) => (prev << 1) + Boolean(options[key]),\n 0\n );\n }\n\n /**\n * 构造一个用 AND 连接所有查询的 ConversationQuery\n * @param {...ConversationQuery} queries\n * @return {ConversationQuery}\n */\n static and(...queries) {\n if (queries.length < 2) {\n throw new Error('The queries must contain at least two elements');\n }\n if (!queries.every(q => q instanceof ConversationQuery)) {\n throw new Error(\n 'The element of queries must be an instance of ConversationQuery'\n );\n }\n const combined = new ConversationQuery(queries[0]._client);\n combined._where.$and = queries.map(q => q._where);\n return combined;\n }\n\n /**\n * 构造一个用 OR 连接所有查询的 ConversationQuery\n * @param {...ConversationQuery} queries\n * @return {ConversationQuery}\n */\n static or(...queries) {\n const combined = ConversationQuery.and(...queries);\n combined._where.$or = combined._where.$and;\n delete combined._where.$and;\n return combined;\n }\n\n /**\n * Create a ConversationQuery\n * @param {IMClient} client\n */\n constructor(client) {\n this._client = client;\n this._where = {};\n this._extraOptions = {};\n }\n\n _addCondition(key, condition, value) {\n // Check if we already have a condition\n if (!this._where[key]) {\n this._where[key] = {};\n }\n this._where[key][condition] = this.constructor._encode(value);\n return this;\n }\n\n toJSON() {\n const json = {\n where: this._where,\n flag: this.constructor._calculateFlag(this._extraOptions),\n };\n if (typeof this._skip !== 'undefined') json.skip = this._skip;\n if (typeof this._limit !== 'undefined') json.limit = this._limit;\n if (typeof this._order !== 'undefined') json.sort = this._order;\n debug(json);\n return json;\n }\n\n /**\n * 增加查询条件,指定聊天室的组员包含某些成员即可返回\n * @param {string[]} peerIds - 成员 ID 列表\n * @return {ConversationQuery} self\n */\n containsMembers(peerIds) {\n return this.containsAll('m', peerIds);\n }\n\n /**\n * 增加查询条件,指定聊天室的组员条件满足条件的才返回\n *\n * @param {string[]} - 成员 ID 列表\n * @param {Boolean} includeSelf - 是否包含自己\n * @return {ConversationQuery} self\n */\n withMembers(peerIds, includeSelf) {\n const peerIdsSet = new Set(peerIds);\n if (includeSelf) {\n peerIdsSet.add(this._client.id);\n }\n this.sizeEqualTo('m', peerIdsSet.size);\n return this.containsMembers(Array.from(peerIdsSet));\n }\n\n /**\n * 增加查询条件,当 conversation 的属性中对应的字段满足等于条件时即可返回\n *\n * @param {string} key\n * @param value\n * @return {ConversationQuery} self\n */\n equalTo(key, value) {\n this._where[key] = this.constructor._encode(value);\n return this;\n }\n\n /**\n * 增加查询条件,当 conversation 的属性中对应的字段满足小于条件时即可返回\n * @param {string} key\n * @param value\n * @return {ConversationQuery} self\n */\n lessThan(key, value) {\n return this._addCondition(key, '$lt', value);\n }\n\n /**\n * 增加查询条件,当 conversation 的属性中对应的字段满足小于等于条件时即可返回\n\n * @param {string} key\n * @param value\n * @return {ConversationQuery} self\n */\n lessThanOrEqualTo(key, value) {\n return this._addCondition(key, '$lte', value);\n }\n\n /**\n * 增加查询条件,当 conversation 的属性中对应的字段满足大于条件时即可返回\n *\n * @param {string} key\n * @param value\n * @return {ConversationQuery} self\n */\n\n greaterThan(key, value) {\n return this._addCondition(key, '$gt', value);\n }\n\n /**\n * 增加查询条件,当 conversation 的属性中对应的字段满足大于等于条件时即可返回\n *\n * @param {string} key\n * @param value\n * @return {ConversationQuery} self\n */\n\n greaterThanOrEqualTo(key, value) {\n return this._addCondition(key, '$gte', value);\n }\n\n /**\n * 增加查询条件,当 conversation 的属性中对应的字段满足不等于条件时即可返回\n *\n * @param {string} key\n * @param value\n * @return {ConversationQuery} self\n */\n notEqualTo(key, value) {\n return this._addCondition(key, '$ne', value);\n }\n\n /**\n * 增加查询条件,当 conversation 存在指定的字段时即可返回\n *\n * @since 3.5.0\n * @param {string} key\n * @return {ConversationQuery} self\n */\n exists(key) {\n return this._addCondition(key, '$exists', true);\n }\n\n /**\n * 增加查询条件,当 conversation 不存在指定的字段时即可返回\n *\n * @since 3.5.0\n * @param {string} key\n * @return {ConversationQuery} self\n */\n doesNotExist(key) {\n return this._addCondition(key, '$exists', false);\n }\n\n /**\n * 增加查询条件,当 conversation 的属性中对应的字段对应的值包含在指定值中时即可返回\n *\n * @param {string} key\n * @param values\n * @return {ConversationQuery} self\n */\n containedIn(key, values) {\n return this._addCondition(key, '$in', values);\n }\n\n /**\n * 增加查询条件,当 conversation 的属性中对应的字段对应的值不包含在指定值中时即可返回\n *\n * @param {string} key\n * @param values\n * @return {ConversationQuery} self\n */\n notContainsIn(key, values) {\n return this._addCondition(key, '$nin', values);\n }\n\n /**\n * 增加查询条件,当conversation的属性中对应的字段中的元素包含所有的值才可返回\n *\n * @param {string} key\n * @param values\n * @return {ConversationQuery} self\n */\n containsAll(key, values) {\n return this._addCondition(key, '$all', values);\n }\n\n /**\n * 增加查询条件,当 conversation 的属性中对应的字段对应的值包含此字符串即可返回\n *\n * @param {string} key\n * @param {string} subString\n * @return {ConversationQuery} self\n */\n contains(key, subString) {\n return this._addCondition(\n key,\n '$regex',\n ConversationQuery._quote(subString)\n );\n }\n\n /**\n * 增加查询条件,当 conversation 的属性中对应的字段对应的值以此字符串起始即可返回\n *\n * @param {string} key\n * @param {string} prefix\n * @return {ConversationQuery} self\n */\n startsWith(key, prefix) {\n return this._addCondition(\n key,\n '$regex',\n `^${ConversationQuery._quote(prefix)}`\n );\n }\n\n /**\n * 增加查询条件,当 conversation 的属性中对应的字段对应的值以此字符串结束即可返回\n *\n * @param {string} key\n * @param {string} suffix\n * @return {ConversationQuery} self\n */\n endsWith(key, suffix) {\n return this._addCondition(\n key,\n '$regex',\n `${ConversationQuery._quote(suffix)}$`\n );\n }\n\n /**\n * 增加查询条件,当 conversation 的属性中对应的字段对应的值满足提供的正则表达式即可返回\n *\n * @param {string} key\n * @param {RegExp} regex\n * @return {ConversationQuery} self\n */\n matches(key, regex) {\n this._addCondition(key, '$regex', regex);\n // Javascript regex options support mig as inline options but store them\n // as properties of the object. We support mi & should migrate them to\n // modifiers\n let _modifiers = '';\n if (regex.ignoreCase) {\n _modifiers += 'i';\n }\n if (regex.multiline) {\n _modifiers += 'm';\n }\n\n if (_modifiers && _modifiers.length) {\n this._addCondition(key, '$options', _modifiers);\n }\n return this;\n }\n\n /**\n * 添加查询约束条件,查找 key 类型是数组,该数组的长度匹配提供的数值\n *\n * @param {string} key\n * @param {Number} length\n * @return {ConversationQuery} self\n */\n sizeEqualTo(key, length) {\n return this._addCondition(key, '$size', length);\n }\n\n /**\n * 设置返回集合的大小上限\n *\n * @param {Number} limit - 上限\n * @return {ConversationQuery} self\n */\n limit(limit) {\n this._limit = limit;\n return this;\n }\n\n /**\n * 设置返回集合的起始位置,一般用于分页\n *\n * @param {Number} skip - 起始位置跳过几个对象\n * @return {ConversationQuery} self\n */\n skip(skip) {\n this._skip = skip;\n return this;\n }\n\n /**\n * 设置返回集合按照指定key进行增序排列\n *\n * @param {string} key\n * @return {ConversationQuery} self\n */\n ascending(key) {\n this._order = key;\n return this;\n }\n\n /**\n * 设置返回集合按照指定key进行增序排列,如果已设置其他排序,原排序的优先级较高\n *\n * @param {string} key\n * @return {ConversationQuery} self\n */\n addAscending(key) {\n if (this._order) {\n this._order += `,${key}`;\n } else {\n this._order = key;\n }\n return this;\n }\n\n /**\n * 设置返回集合按照指定 key 进行降序排列\n *\n * @param {string} key\n * @return {ConversationQuery} self\n */\n descending(key) {\n this._order = `-${key}`;\n return this;\n }\n\n /**\n * 设置返回集合按照指定 key 进行降序排列,如果已设置其他排序,原排序的优先级较高\n *\n * @param {string} key\n * @return {ConversationQuery} self\n */\n addDescending(key) {\n if (this._order) {\n this._order += `,-${key}`;\n } else {\n this._order = `-${key}`;\n }\n return this;\n }\n\n /**\n * 设置返回的 conversations 刷新最后一条消息\n * @param {Boolean} [enabled=true]\n * @return {ConversationQuery} self\n */\n withLastMessagesRefreshed(enabled = true) {\n this._extraOptions.withLastMessagesRefreshed = enabled;\n return this;\n }\n\n /**\n * 设置返回的 conversations 为精简模式,即不含成员列表\n * @param {Boolean} [enabled=true]\n * @return {ConversationQuery} self\n */\n compact(enabled = true) {\n this._extraOptions.compact = enabled;\n return this;\n }\n\n /**\n * 执行查询\n * @return {Promise.<ConversationBase[]>}\n */\n async find() {\n return this._client._executeQuery(this);\n }\n\n /**\n * 返回符合条件的第一个结果\n * @return {Promise.<ConversationBase>}\n */\n async first() {\n return (await this.limit(1).find())[0];\n }\n}\n","import d from 'debug';\nimport { Expirable } from './utils';\n\nconst debug = d('LC:SessionManager');\n\nexport default class SessionManager {\n constructor({ refresh, onBeforeGetSessionToken } = {}) {\n this.refresh = refresh;\n this._onBeforeGetSessionToken = onBeforeGetSessionToken;\n this.setSessionToken(null, 0);\n }\n\n setSessionToken(token, ttl) {\n debug('set session token', token, ttl);\n const sessionToken = new Expirable(token, ttl * 1000);\n this._sessionToken = sessionToken;\n delete this._pendingSessionTokenPromise;\n return sessionToken;\n }\n\n async setSessionTokenAsync(promise) {\n const currentSessionToken = this._sessionToken;\n this._pendingSessionTokenPromise = promise.catch(error => {\n // revert, otherwise the following getSessionToken calls\n // will all be rejected\n this._sessionToken = currentSessionToken;\n throw error;\n });\n return this.setSessionToken(...(await this._pendingSessionTokenPromise));\n }\n\n async getSessionToken({ autoRefresh = true } = {}) {\n debug('get session token');\n if (this._onBeforeGetSessionToken) {\n this._onBeforeGetSessionToken(this);\n }\n const { value, originalValue } =\n this._sessionToken || (await this._pendingSessionTokenPromise);\n if (value === Expirable.EXPIRED && autoRefresh && this.refresh) {\n debug('refresh expired session token');\n const { value: newValue } = await this.setSessionTokenAsync(\n this.refresh(this, originalValue)\n );\n debug('session token', newValue);\n return newValue;\n }\n debug('session token', value);\n return value;\n }\n\n revoke() {\n if (this._sessionToken) this._sessionToken.expiredAt = -1;\n }\n}\n","import EventEmitter from 'eventemitter3';\nimport { decode as decodeBase64 } from 'base64-arraybuffer';\nimport remove from 'lodash/remove';\nimport values from 'lodash/values';\nimport d from 'debug';\nimport {\n Conversation,\n ChatRoom,\n ServiceConversation,\n TemporaryConversation,\n} from './conversations';\nimport ConversationBase from './conversations/conversation-base';\nimport ConversationQuery from './conversation-query';\nimport {\n GenericCommand,\n SessionCommand,\n ConvCommand,\n AckCommand,\n JsonObjectMessage,\n ReadCommand,\n ReadTuple,\n CommandType,\n OpType,\n} from '../proto/message';\nimport * as Event from './events/im';\nimport { ErrorCode, createError } from './error';\nimport {\n Expirable,\n Cache,\n keyRemap,\n trim,\n internal,\n throttle,\n encode,\n decode,\n decodeDate,\n getTime,\n} from './utils';\nimport { applyDecorators, applyDispatcher } from './plugin';\nimport SessionManager from './session-manager';\nimport runSignatureFactory from './signature-factory-runner';\nimport { MessageStatus } from './messages/message';\nimport { version as VERSION } from '../package.json';\n\nconst debug = d('LC:IMClient');\n\nconst {\n INVITED,\n KICKED,\n MEMBERS_JOINED,\n MEMBERS_LEFT,\n MEMBER_INFO_UPDATED,\n BLOCKED,\n UNBLOCKED,\n MEMBERS_BLOCKED,\n MEMBERS_UNBLOCKED,\n MUTED,\n UNMUTED,\n MEMBERS_MUTED,\n MEMBERS_UNMUTED,\n MESSAGE,\n UNREAD_MESSAGES_COUNT_UPDATE,\n CLOSE,\n CONFLICT,\n UNHANDLED_MESSAGE,\n CONVERSATION_INFO_UPDATED,\n MESSAGE_RECALL,\n MESSAGE_UPDATE,\n INFO_UPDATED,\n} = Event;\n\nconst isTemporaryConversatrionId = id => /^_tmp:/.test(id);\n\n/**\n * 1 patch-msg\n * 1 temp-conv-msg\n * 0 auto-bind-deviceid-and-installation\n * 1 transient-msg-ack\n * 1 keep-notification\n * 1 partial-failed-msg\n * 0 group-chat-rcp\n * 1 omit-peer-id\n * @ignore\n */\nconst configBitmap = 0b10111011;\n\nexport default class IMClient extends EventEmitter {\n /**\n * 无法直接实例化,请使用 {@link Realtime#createIMClient} 创建新的 IMClient。\n *\n * @extends EventEmitter\n */\n constructor(id, options = {}, props) {\n if (!(id === undefined || typeof id === 'string')) {\n throw new TypeError(`Client id [${id}] is not a String`);\n }\n super();\n Object.assign(\n this,\n {\n /**\n * @var id {String} 客户端 id\n * @memberof IMClient#\n */\n id,\n options,\n },\n props\n );\n\n if (!this._messageParser) {\n throw new Error('IMClient must be initialized with a MessageParser');\n }\n this._conversationCache = new Cache(`client:${this.id}`);\n this._ackMessageBuffer = {};\n internal(this).lastPatchTime = Date.now();\n internal(this).lastNotificationTime = undefined;\n internal(this)._eventemitter = new EventEmitter();\n if (debug.enabled) {\n values(Event).forEach(event =>\n this.on(event, (...payload) =>\n this._debug(`${event} event emitted. %o`, payload)\n )\n );\n }\n // onIMClientCreate hook\n applyDecorators(this._plugins.onIMClientCreate, this);\n }\n\n _debug(...params) {\n debug(...params, `[${this.id}]`);\n }\n\n /**\n * @override\n * @private\n */\n async _dispatchCommand(command) {\n this._debug(trim(command), 'received');\n if (command.serverTs && command.notificationType === 1) {\n internal(this).lastNotificationTime = getTime(\n decodeDate(command.serverTs)\n );\n }\n switch (command.cmd) {\n case CommandType.conv:\n return this._dispatchConvMessage(command);\n case CommandType.direct:\n return this._dispatchDirectMessage(command);\n case CommandType.session:\n return this._dispatchSessionMessage(command);\n case CommandType.unread:\n return this._dispatchUnreadMessage(command);\n case CommandType.rcp:\n return this._dispatchRcpMessage(command);\n case CommandType.patch:\n return this._dispatchPatchMessage(command);\n default:\n return this.emit(UNHANDLED_MESSAGE, command);\n }\n }\n\n async _dispatchSessionMessage(message) {\n const {\n sessionMessage: { code, reason },\n } = message;\n switch (message.op) {\n case OpType.closed: {\n internal(this)._eventemitter.emit('close');\n if (code === ErrorCode.SESSION_CONFLICT) {\n /**\n * 用户在其他客户端登录,当前客户端被服务端强行下线。详见文档「单点登录」章节。\n * @event IMClient#CONFLICT\n * @param {Object} payload\n * @param {string} payload.reason 原因\n */\n return this.emit(CONFLICT, {\n reason,\n });\n }\n /**\n * 当前客户端被服务端强行下线\n * @event IMClient#CLOSE\n * @param {Object} payload\n * @param {Number} payload.code 错误码\n * @param {String} payload.reason 原因\n */\n return this.emit(CLOSE, {\n code,\n reason,\n });\n }\n default:\n this.emit(UNHANDLED_MESSAGE, message);\n throw new Error('Unrecognized session command');\n }\n }\n\n _dispatchUnreadMessage({ unreadMessage: { convs, notifTime } }) {\n internal(this).lastUnreadNotifTime = notifTime;\n // ensure all converstions are cached\n return this.getConversations(convs.map(conv => conv.cid))\n .then(() =>\n // update conversations data\n Promise.all(\n convs.map(\n ({\n cid,\n unread,\n mid,\n timestamp: ts,\n from,\n data,\n binaryMsg,\n patchTimestamp,\n mentioned,\n }) => {\n const conversation = this._conversationCache.get(cid);\n // deleted conversation\n if (!conversation) return null;\n let timestamp;\n if (ts) {\n timestamp = decodeDate(ts);\n conversation.lastMessageAt = timestamp; // eslint-disable-line no-param-reassign\n }\n return (mid\n ? this._messageParser.parse(binaryMsg || data).then(message => {\n const messageProps = {\n id: mid,\n cid,\n timestamp,\n updatedAt: patchTimestamp,\n from,\n };\n Object.assign(message, messageProps);\n conversation.lastMessage = message; // eslint-disable-line no-param-reassign\n })\n : Promise.resolve()\n ).then(() => {\n conversation._setUnreadMessagesMentioned(mentioned);\n const countNotUpdated =\n unread === internal(conversation).unreadMessagesCount;\n if (countNotUpdated) return null; // to be filtered\n // manipulate internal property directly to skip unreadmessagescountupdate event\n internal(conversation).unreadMessagesCount = unread;\n return conversation;\n });\n // filter conversations without unread count update\n }\n )\n ).then(conversations =>\n conversations.filter(conversation => conversation)\n )\n )\n .then(conversations => {\n if (conversations.length) {\n /**\n * 未读消息数目更新\n * @event IMClient#UNREAD_MESSAGES_COUNT_UPDATE\n * @since 3.4.0\n * @param {Conversation[]} conversations 未读消息数目有更新的对话列表\n */\n this.emit(UNREAD_MESSAGES_COUNT_UPDATE, conversations);\n }\n });\n }\n\n async _dispatchRcpMessage(message) {\n const {\n rcpMessage,\n rcpMessage: { read },\n } = message;\n const conversationId = rcpMessage.cid;\n const messageId = rcpMessage.id;\n const timestamp = decodeDate(rcpMessage.t);\n const conversation = this._conversationCache.get(conversationId);\n // conversation not cached means the client does not send the message\n // during this session\n if (!conversation) return;\n conversation._handleReceipt({ messageId, timestamp, read });\n }\n\n _dispatchPatchMessage({ patchMessage: { patches } }) {\n // ensure all converstions are cached\n return this.getConversations(patches.map(patch => patch.cid)).then(() =>\n Promise.all(\n patches.map(\n ({\n cid,\n mid,\n timestamp,\n recall,\n data,\n patchTimestamp,\n from,\n binaryMsg,\n mentionAll,\n mentionPids,\n patchCode,\n patchReason,\n }) => {\n const conversation = this._conversationCache.get(cid);\n // deleted conversation\n if (!conversation) return null;\n return this._messageParser\n .parse(binaryMsg || data)\n .then(message => {\n const patchTime = getTime(decodeDate(patchTimestamp));\n const messageProps = {\n id: mid,\n cid,\n timestamp,\n updatedAt: patchTime,\n from,\n mentionList: mentionPids,\n mentionedAll: mentionAll,\n };\n Object.assign(message, messageProps);\n message._setStatus(MessageStatus.SENT);\n message._updateMentioned(this.id);\n if (internal(this).lastPatchTime < patchTime) {\n internal(this).lastPatchTime = patchTime;\n }\n // update conversation lastMessage\n if (\n conversation.lastMessage &&\n conversation.lastMessage.id === mid\n ) {\n conversation.lastMessage = message; // eslint-disable-line no-param-reassign\n }\n let reason;\n if (patchCode) {\n reason = {\n code: patchCode.toNumber(),\n detail: patchReason,\n };\n }\n if (recall) {\n /**\n * 消息被撤回\n * @event IMClient#MESSAGE_RECALL\n * @param {AVMessage} message 被撤回的消息\n * @param {ConversationBase} conversation 消息所在的会话\n * @param {PatchReason} [reason] 撤回的原因,不存在代表是发送者主动撤回\n */\n this.emit(MESSAGE_RECALL, message, conversation, reason);\n /**\n * 消息被撤回\n * @event ConversationBase#MESSAGE_RECALL\n * @param {AVMessage} message 被撤回的消息\n * @param {PatchReason} [reason] 撤回的原因,不存在代表是发送者主动撤回\n */\n conversation.emit(MESSAGE_RECALL, message, reason);\n } else {\n /**\n * 消息被修改\n * @event IMClient#MESSAGE_UPDATE\n * @param {AVMessage} message 被修改的消息\n * @param {ConversationBase} conversation 消息所在的会话\n * @param {PatchReason} [reason] 修改的原因,不存在代表是发送者主动修改\n */\n this.emit(MESSAGE_UPDATE, message, conversation, reason);\n /**\n * 消息被修改\n * @event ConversationBase#MESSAGE_UPDATE\n * @param {AVMessage} message 被修改的消息\n * @param {PatchReason} [reason] 修改的原因,不存在代表是发送者主动修改\n */\n conversation.emit(MESSAGE_UPDATE, message, reason);\n }\n });\n }\n )\n )\n );\n }\n\n async _dispatchConvMessage(message) {\n const {\n convMessage,\n convMessage: { initBy, m, info, attr },\n } = message;\n const conversation = await this.getConversation(convMessage.cid);\n switch (message.op) {\n case OpType.joined: {\n conversation._addMembers([this.id]);\n const payload = {\n invitedBy: initBy,\n };\n /**\n * 当前用户被添加至某个对话\n * @event IMClient#INVITED\n * @param {Object} payload\n * @param {String} payload.invitedBy 邀请者 id\n * @param {ConversationBase} conversation\n */\n this.emit(INVITED, payload, conversation);\n /**\n * 当前用户被添加至当前对话\n * @event ConversationBase#INVITED\n * @param {Object} payload\n * @param {String} payload.invitedBy 该移除操作的发起者 id\n */\n conversation.emit(INVITED, payload);\n return;\n }\n case OpType.left: {\n conversation._removeMembers([this.id]);\n const payload = {\n kickedBy: initBy,\n };\n /**\n * 当前用户被从某个对话中移除\n * @event IMClient#KICKED\n * @param {Object} payload\n * @param {String} payload.kickedBy 该移除操作的发起者 id\n * @param {ConversationBase} conversation\n */\n this.emit(KICKED, payload, conversation);\n /**\n * 当前用户被从当前对话中移除\n * @event ConversationBase#KICKED\n * @param {Object} payload\n * @param {String} payload.kickedBy 该移除操作的发起者 id\n */\n conversation.emit(KICKED, payload);\n return;\n }\n case OpType.members_joined: {\n conversation._addMembers(m);\n const payload = {\n invitedBy: initBy,\n members: m,\n };\n /**\n * 有用户被添加至某个对话\n * @event IMClient#MEMBERS_JOINED\n * @param {Object} payload\n * @param {String[]} payload.members 被添加的用户 id 列表\n * @param {String} payload.invitedBy 邀请者 id\n * @param {ConversationBase} conversation\n */\n this.emit(MEMBERS_JOINED, payload, conversation);\n /**\n * 有成员被添加至当前对话\n * @event ConversationBase#MEMBERS_JOINED\n * @param {Object} payload\n * @param {String[]} payload.members 被添加的成员 id 列表\n * @param {String} payload.invitedBy 邀请者 id\n */\n conversation.emit(MEMBERS_JOINED, payload);\n return;\n }\n case OpType.members_left: {\n conversation._removeMembers(m);\n const payload = {\n kickedBy: initBy,\n members: m,\n };\n /**\n * 有成员被从某个对话中移除\n * @event IMClient#MEMBERS_LEFT\n * @param {Object} payload\n * @param {String[]} payload.members 被移除的成员 id 列表\n * @param {String} payload.kickedBy 该移除操作的发起者 id\n * @param {ConversationBase} conversation\n */\n this.emit(MEMBERS_LEFT, payload, conversation);\n /**\n * 有成员被从当前对话中移除\n * @event ConversationBase#MEMBERS_LEFT\n * @param {Object} payload\n * @param {String[]} payload.members 被移除的成员 id 列表\n * @param {String} payload.kickedBy 该移除操作的发起者 id\n */\n conversation.emit(MEMBERS_LEFT, payload);\n return;\n }\n case OpType.members_blocked: {\n const payload = {\n blockedBy: initBy,\n members: m,\n };\n /**\n * 有成员被加入某个对话的黑名单\n * @event IMClient#MEMBERS_BLOCKED\n * @param {Object} payload\n * @param {String[]} payload.members 成员 id 列表\n * @param {String} payload.blockedBy 该操作的发起者 id\n * @param {ConversationBase} conversation\n */\n this.emit(MEMBERS_BLOCKED, payload, conversation);\n /**\n * 有成员被加入当前对话的黑名单\n * @event ConversationBase#MEMBERS_BLOCKED\n * @param {Object} payload\n * @param {String[]} payload.members 成员 id 列表\n * @param {String} payload.blockedBy 该操作的发起者 id\n */\n conversation.emit(MEMBERS_BLOCKED, payload);\n return;\n }\n case OpType.members_unblocked: {\n const payload = {\n unblockedBy: initBy,\n members: m,\n };\n /**\n * 有成员被移出某个对话的黑名单\n * @event IMClient#MEMBERS_UNBLOCKED\n * @param {Object} payload\n * @param {String[]} payload.members 成员 id 列表\n * @param {String} payload.unblockedBy 该操作的发起者 id\n * @param {ConversationBase} conversation\n */\n this.emit(MEMBERS_UNBLOCKED, payload, conversation);\n /**\n * 有成员被移出当前对话的黑名单\n * @event ConversationBase#MEMBERS_UNBLOCKED\n * @param {Object} payload\n * @param {String[]} payload.members 成员 id 列表\n * @param {String} payload.unblockedBy 该操作的发起者 id\n */\n conversation.emit(MEMBERS_UNBLOCKED, payload);\n return;\n }\n case OpType.blocked: {\n const payload = {\n blockedBy: initBy,\n };\n /**\n * 当前用户被加入某个对话的黑名单\n * @event IMClient#BLOCKED\n * @param {Object} payload\n * @param {String} payload.blockedBy 该操作的发起者 id\n * @param {ConversationBase} conversation\n */\n this.emit(BLOCKED, payload, conversation);\n /**\n * 当前用户被加入当前对话的黑名单\n * @event ConversationBase#BLOCKED\n * @param {Object} payload\n * @param {String} payload.blockedBy 该操作的发起者 id\n */\n conversation.emit(BLOCKED, payload);\n return;\n }\n case OpType.unblocked: {\n const payload = {\n unblockedBy: initBy,\n };\n /**\n * 当前用户被移出某个对话的黑名单\n * @event IMClient#UNBLOCKED\n * @param {Object} payload\n * @param {String} payload.unblockedBy 该操作的发起者 id\n * @param {ConversationBase} conversation\n */\n this.emit(UNBLOCKED, payload, conversation);\n /**\n * 当前用户被移出当前对话的黑名单\n * @event ConversationBase#UNBLOCKED\n * @param {Object} payload\n * @param {String} payload.unblockedBy 该操作的发起者 id\n */\n conversation.emit(UNBLOCKED, payload);\n return;\n }\n case OpType.members_shutuped: {\n const payload = {\n mutedBy: initBy,\n members: m,\n };\n /**\n * 有成员在某个对话中被禁言\n * @event IMClient#MEMBERS_MUTED\n * @param {Object} payload\n * @param {String[]} payload.members 成员 id 列表\n * @param {String} payload.mutedBy 该操作的发起者 id\n * @param {ConversationBase} conversation\n */\n this.emit(MEMBERS_MUTED, payload, conversation);\n /**\n * 有成员在当前对话中被禁言\n * @event ConversationBase#MEMBERS_MUTED\n * @param {Object} payload\n * @param {String[]} payload.members 成员 id 列表\n * @param {String} payload.mutedBy 该操作的发起者 id\n */\n conversation.emit(MEMBERS_MUTED, payload);\n return;\n }\n case OpType.members_unshutuped: {\n const payload = {\n unmutedBy: initBy,\n members: m,\n };\n /**\n * 有成员在某个对话中被解除禁言\n * @event IMClient#MEMBERS_UNMUTED\n * @param {Object} payload\n * @param {String[]} payload.members 成员 id 列表\n * @param {String} payload.unmutedBy 该操作的发起者 id\n * @param {ConversationBase} conversation\n */\n this.emit(MEMBERS_UNMUTED, payload, conversation);\n /**\n * 有成员在当前对话中被解除禁言\n * @event ConversationBase#MEMBERS_UNMUTED\n * @param {Object} payload\n * @param {String[]} payload.members 成员 id 列表\n * @param {String} payload.unmutedBy 该操作的发起者 id\n */\n conversation.emit(MEMBERS_UNMUTED, payload);\n return;\n }\n case OpType.shutuped: {\n const payload = {\n mutedBy: initBy,\n };\n /**\n * 有成员在某个对话中被禁言\n * @event IMClient#MUTED\n * @param {Object} payload\n * @param {String} payload.mutedBy 该操作的发起者 id\n * @param {ConversationBase} conversation\n */\n this.emit(MUTED, payload, conversation);\n /**\n * 有成员在当前对话中被禁言\n * @event ConversationBase#MUTED\n * @param {Object} payload\n * @param {String} payload.mutedBy 该操作的发起者 id\n */\n conversation.emit(MUTED, payload);\n return;\n }\n case OpType.unshutuped: {\n const payload = {\n unmutedBy: initBy,\n };\n /**\n * 有成员在某个对话中被解除禁言\n * @event IMClient#UNMUTED\n * @param {Object} payload\n * @param {String} payload.unmutedBy 该操作的发起者 id\n * @param {ConversationBase} conversation\n */\n this.emit(UNMUTED, payload, conversation);\n /**\n * 有成员在当前对话中被解除禁言\n * @event ConversationBase#UNMUTED\n * @param {Object} payload\n * @param {String} payload.unmutedBy 该操作的发起者 id\n */\n conversation.emit(UNMUTED, payload);\n return;\n }\n case OpType.member_info_changed: {\n const { pid, role } = info;\n const { memberInfoMap } = internal(conversation);\n // 如果不存在缓存,且不是 role 的更新,则不通知\n if (!memberInfoMap && !role) return;\n const memberInfo = await conversation.getMemberInfo(pid);\n internal(memberInfo).role = role;\n const payload = {\n member: pid,\n memberInfo,\n updatedBy: initBy,\n };\n /**\n * 有成员的对话信息被更新\n * @event IMClient#MEMBER_INFO_UPDATED\n * @param {Object} payload\n * @param {String} payload.member 被更新对话信息的成员 id\n * @param {ConversationMumberInfo} payload.memberInfo 被更新的成员对话信息\n * @param {String} payload.updatedBy 该操作的发起者 id\n * @param {ConversationBase} conversation\n */\n this.emit(MEMBER_INFO_UPDATED, payload, conversation);\n /**\n * 有成员的对话信息被更新\n * @event ConversationBase#MEMBER_INFO_UPDATED\n * @param {Object} payload\n * @param {String} payload.member 被更新对话信息的成员 id\n * @param {ConversationMumberInfo} payload.memberInfo 被更新的成员对话信息\n * @param {String} payload.updatedBy 该操作的发起者 id\n */\n conversation.emit(MEMBER_INFO_UPDATED, payload);\n return;\n }\n case OpType.updated: {\n const attributes = decode(JSON.parse(attr.data));\n conversation._updateServerAttributes(attributes);\n const payload = {\n attributes,\n updatedBy: initBy,\n };\n /**\n * 该对话信息被更新\n * @event IMClient#CONVERSATION_INFO_UPDATED\n * @param {Object} payload\n * @param {Object} payload.attributes 被更新的属性\n * @param {String} payload.updatedBy 该操作的发起者 id\n * @param {ConversationBase} conversation\n */\n this.emit(CONVERSATION_INFO_UPDATED, payload, conversation);\n /**\n * 有对话信息被更新\n * @event ConversationBase#INFO_UPDATED\n * @param {Object} payload\n * @param {Object} payload.attributes 被更新的属性\n * @param {String} payload.updatedBy 该操作的发起者 id\n */\n conversation.emit(INFO_UPDATED, payload);\n return;\n }\n default:\n this.emit(UNHANDLED_MESSAGE, message);\n throw new Error('Unrecognized conversation command');\n }\n }\n\n _dispatchDirectMessage(originalMessage) {\n const {\n directMessage,\n directMessage: {\n id,\n cid,\n fromPeerId,\n timestamp,\n transient,\n patchTimestamp,\n mentionPids,\n mentionAll,\n binaryMsg,\n msg,\n },\n } = originalMessage;\n const content = binaryMsg ? binaryMsg.toArrayBuffer() : msg;\n return Promise.all([\n this.getConversation(directMessage.cid),\n this._messageParser.parse(content),\n ]).then(([conversation, message]) => {\n // deleted conversation\n if (!conversation) return undefined;\n const messageProps = {\n id,\n cid,\n timestamp,\n updatedAt: patchTimestamp,\n from: fromPeerId,\n mentionList: mentionPids,\n mentionedAll: mentionAll,\n };\n Object.assign(message, messageProps);\n message._updateMentioned(this.id);\n message._setStatus(MessageStatus.SENT);\n // filter outgoing message sent from another device\n if (message.from !== this.id) {\n if (!(transient || conversation.transient)) {\n this._sendAck(message);\n }\n }\n return this._dispatchParsedMessage(message, conversation);\n });\n }\n\n _dispatchParsedMessage(message, conversation) {\n // beforeMessageDispatch hook\n return applyDispatcher(this._plugins.beforeMessageDispatch, [\n message,\n conversation,\n ]).then(shouldDispatch => {\n if (shouldDispatch === false) return;\n conversation.lastMessage = message; // eslint-disable-line no-param-reassign\n conversation.lastMessageAt = message.timestamp; // eslint-disable-line no-param-reassign\n // filter outgoing message sent from another device\n if (message.from !== this.id) {\n conversation.unreadMessagesCount += 1; // eslint-disable-line no-param-reassign\n if (message.mentioned) conversation._setUnreadMessagesMentioned(true);\n }\n /**\n * 当前用户收到消息\n * @event IMClient#MESSAGE\n * @param {Message} message\n * @param {ConversationBase} conversation 收到消息的对话\n */\n this.emit(MESSAGE, message, conversation);\n /**\n * 当前对话收到消息\n * @event ConversationBase#MESSAGE\n * @param {Message} message\n */\n conversation.emit(MESSAGE, message);\n });\n }\n\n _sendAck(message) {\n this._debug('send ack for %O', message);\n const { cid } = message;\n if (!cid) {\n throw new Error('missing cid');\n }\n if (!this._ackMessageBuffer[cid]) {\n this._ackMessageBuffer[cid] = [];\n }\n this._ackMessageBuffer[cid].push(message);\n return this._doSendAck();\n }\n\n // jsdoc-ignore-start\n @throttle(1000)\n // jsdoc-ignore-end\n _doSendAck() {\n // if not connected, just skip everything\n if (!this._connection.is('connected')) return;\n this._debug('do send ack %O', this._ackMessageBuffer);\n Promise.all(\n Object.keys(this._ackMessageBuffer).map(cid => {\n const convAckMessages = this._ackMessageBuffer[cid];\n const timestamps = convAckMessages.map(message => message.timestamp);\n const command = new GenericCommand({\n cmd: 'ack',\n ackMessage: new AckCommand({\n cid,\n fromts: Math.min.apply(null, timestamps),\n tots: Math.max.apply(null, timestamps),\n }),\n });\n delete this._ackMessageBuffer[cid];\n return this._send(command, false).catch(error => {\n this._debug('send ack failed: %O', error);\n this._ackMessageBuffer[cid] = convAckMessages;\n });\n })\n );\n }\n\n _omitPeerId(value) {\n internal(this).peerIdOmittable = value;\n }\n\n _send(cmd, ...args) {\n const command = cmd;\n if (!internal(this).peerIdOmittable && this.id) {\n command.peerId = this.id;\n }\n return this._connection.send(command, ...args);\n }\n\n async _open(appId, tag, deviceId, isReconnect = false) {\n this._debug('open session');\n const {\n lastUnreadNotifTime,\n lastPatchTime,\n lastNotificationTime,\n } = internal(this);\n const command = new GenericCommand({\n cmd: 'session',\n op: 'open',\n appId,\n peerId: this.id,\n sessionMessage: new SessionCommand({\n ua: `js/${VERSION}`,\n r: isReconnect,\n lastUnreadNotifTime,\n lastPatchTime,\n configBitmap,\n }),\n });\n if (!isReconnect) {\n Object.assign(\n command.sessionMessage,\n trim({\n tag,\n deviceId,\n })\n );\n if (this.options.signatureFactory) {\n const signatureResult = await runSignatureFactory(\n this.options.signatureFactory,\n [this._identity]\n );\n Object.assign(\n command.sessionMessage,\n keyRemap(\n {\n signature: 's',\n timestamp: 't',\n nonce: 'n',\n },\n signatureResult\n )\n );\n }\n } else {\n const sessionToken = await this._sessionManager.getSessionToken({\n autoRefresh: false,\n });\n if (sessionToken && sessionToken !== Expirable.EXPIRED) {\n Object.assign(command.sessionMessage, {\n st: sessionToken,\n });\n }\n }\n let resCommand;\n try {\n resCommand = await this._send(command);\n } catch (error) {\n if (error.code === ErrorCode.SESSION_TOKEN_EXPIRED) {\n if (!this._sessionManager) {\n // let it fail if sessoinToken not cached but command rejected as token expired\n // to prevent session openning flood\n throw new Error('Unexpected session expiration');\n }\n debug('Session token expired, reopening');\n this._sessionManager.revoke();\n return this._open(appId, tag, deviceId, isReconnect);\n }\n throw error;\n }\n const {\n peerId,\n sessionMessage,\n sessionMessage: { st: token, stTtl: tokenTTL, code },\n serverTs,\n } = resCommand;\n if (code) {\n throw createError(sessionMessage);\n }\n if (peerId) {\n this.id = peerId;\n if (!this._identity) this._identity = peerId;\n if (token) {\n this._sessionManager =\n this._sessionManager || this._createSessionManager();\n this._sessionManager.setSessionToken(token, tokenTTL);\n }\n const serverTime = getTime(decodeDate(serverTs));\n if (serverTs) {\n internal(this).lastPatchTime = serverTime;\n }\n if (lastNotificationTime) {\n // Do not await for it as this is failable\n this._syncNotifications(lastNotificationTime).catch(error =>\n console.warn('Syncing notifications failed:', error)\n );\n } else {\n // Set timestamp to now for next reconnection\n internal(this).lastNotificationTime = serverTime;\n }\n } else {\n console.warn('Unexpected session opened without peerId.');\n }\n return undefined;\n }\n\n async _syncNotifications(timestamp) {\n const { hasMore, notifications } = await this._fetchNotifications(\n timestamp\n );\n notifications.forEach(notification => {\n const { cmd, op, serverTs, notificationType, ...payload } = notification;\n this._dispatchCommand({\n cmd: CommandType[cmd],\n op: OpType[op],\n serverTs,\n notificationType,\n [`${cmd}Message`]: payload,\n });\n });\n if (hasMore) {\n return this._syncNotifications(internal(this).lastNotificationTime);\n }\n return undefined;\n }\n\n async _fetchNotifications(timestamp) {\n return this._requestWithSessionToken({\n method: 'GET',\n path: '/rtm/notifications',\n query: {\n start_ts: timestamp,\n notification_type: 'permanent',\n },\n });\n }\n\n _createSessionManager() {\n debug('create SessionManager');\n return new SessionManager({\n onBeforeGetSessionToken: this._connection.checkConnectionAvailability.bind(\n this._connection\n ),\n refresh: (manager, expiredSessionToken) =>\n manager.setSessionTokenAsync(\n Promise.resolve(\n new GenericCommand({\n cmd: 'session',\n op: 'refresh',\n sessionMessage: new SessionCommand({\n ua: `js/${VERSION}`,\n st: expiredSessionToken,\n }),\n })\n )\n .then(async command => {\n if (this.options.signatureFactory) {\n const signatureResult = await runSignatureFactory(\n this.options.signatureFactory,\n [this._identity]\n );\n Object.assign(\n command.sessionMessage,\n keyRemap(\n {\n signature: 's',\n timestamp: 't',\n nonce: 'n',\n },\n signatureResult\n )\n );\n }\n return command;\n })\n .then(this._send.bind(this))\n .then(({ sessionMessage: { st: token, stTtl: ttl } }) => [\n token,\n ttl,\n ])\n ),\n });\n }\n\n async _requestWithSessionToken({ headers, query, ...params }) {\n const sessionToken = await this._sessionManager.getSessionToken();\n return this._request({\n headers: {\n 'X-LC-IM-Session-Token': sessionToken,\n ...headers,\n },\n query: {\n client_id: this.id,\n ...query,\n },\n ...params,\n });\n }\n\n /**\n * 关闭客户端\n * @return {Promise}\n */\n async close() {\n this._debug('close session');\n const _ee = internal(this)._eventemitter;\n _ee.emit('beforeclose');\n if (this._connection.is('connected')) {\n const command = new GenericCommand({\n cmd: 'session',\n op: 'close',\n });\n await this._send(command);\n }\n _ee.emit('close');\n this.emit(CLOSE, {\n code: 0,\n });\n }\n\n /**\n * 获取 client 列表中在线的 client,每次查询最多 20 个 clientId,超出部分会被忽略\n * @param {String[]} clientIds 要查询的 client ids\n * @return {Primse.<String[]>} 在线的 client ids\n */\n async ping(clientIds) {\n this._debug('ping');\n if (!(clientIds instanceof Array)) {\n throw new TypeError(`clientIds ${clientIds} is not an Array`);\n }\n if (!clientIds.length) {\n return Promise.resolve([]);\n }\n const command = new GenericCommand({\n cmd: 'session',\n op: 'query',\n sessionMessage: new SessionCommand({\n sessionPeerIds: clientIds,\n }),\n });\n const resCommand = await this._send(command);\n return resCommand.sessionMessage.onlineSessionPeerIds;\n }\n\n /**\n * 获取某个特定的对话\n * @param {String} id 对话 id,对应 _Conversation 表中的 objectId\n * @param {Boolean} [noCache=false] 强制不从缓存中获取\n * @return {Promise.<ConversationBase>} 如果 id 对应的对话不存在则返回 null\n */\n async getConversation(id, noCache = false) {\n if (typeof id !== 'string') {\n throw new TypeError(`${id} is not a String`);\n }\n if (!noCache) {\n const cachedConversation = this._conversationCache.get(id);\n if (cachedConversation) {\n return cachedConversation;\n }\n }\n if (isTemporaryConversatrionId(id)) {\n return (await this._getTemporaryConversations([id]))[0] || null;\n }\n return this.getQuery()\n .equalTo('objectId', id)\n .find()\n .then(conversations => conversations[0] || null);\n }\n\n /**\n * 通过 id 批量获取某个特定的对话\n * @since 3.4.0\n * @param {String[]} ids 对话 id 列表,对应 _Conversation 表中的 objectId\n * @param {Boolean} [noCache=false] 强制不从缓存中获取\n * @return {Promise.<ConversationBase[]>} 如果 id 对应的对话不存在则返回 null\n */\n async getConversations(ids, noCache = false) {\n const remoteConversationIds = noCache\n ? ids\n : ids.filter(id => this._conversationCache.get(id) === null);\n if (remoteConversationIds.length) {\n const remoteTemporaryConversationIds = remove(\n remoteConversationIds,\n isTemporaryConversatrionId\n );\n const query = [];\n if (remoteConversationIds.length) {\n query.push(\n this.getQuery()\n .containedIn('objectId', remoteConversationIds)\n .limit(999)\n .find()\n );\n }\n if (remoteTemporaryConversationIds.length) {\n const remoteTemporaryConversationsPromise = remoteTemporaryConversationIds.map(\n this._getTemporaryConversations.bind(this)\n );\n query.push(...remoteTemporaryConversationsPromise);\n }\n await Promise.all(query);\n }\n return ids.map(id => this._conversationCache.get(id));\n }\n\n async _getTemporaryConversations(ids) {\n const command = new GenericCommand({\n cmd: 'conv',\n op: 'query',\n convMessage: new ConvCommand({\n tempConvIds: ids,\n }),\n });\n const resCommand = await this._send(command);\n return this._handleQueryResults(resCommand);\n }\n\n /**\n * 构造一个 ConversationQuery 来查询对话\n * @return {ConversationQuery.<PersistentConversation>}\n */\n getQuery() {\n return new ConversationQuery(this);\n }\n\n /**\n * 构造一个 ConversationQuery 来查询聊天室\n * @return {ConversationQuery.<ChatRoom>}\n */\n getChatRoomQuery() {\n return this.getQuery().equalTo('tr', true);\n }\n\n /**\n * 构造一个 ConversationQuery 来查询服务号\n * @return {ConversationQuery.<ServiceConversation>}\n */\n getServiceConversationQuery() {\n return this.getQuery().equalTo('sys', true);\n }\n\n async _executeQuery(query) {\n const queryJSON = query.toJSON();\n queryJSON.where = new JsonObjectMessage({\n data: JSON.stringify(encode(queryJSON.where)),\n });\n const command = new GenericCommand({\n cmd: 'conv',\n op: 'query',\n convMessage: new ConvCommand(queryJSON),\n });\n const resCommand = await this._send(command);\n return this._handleQueryResults(resCommand);\n }\n\n async _handleQueryResults(resCommand) {\n let conversations;\n try {\n conversations = decode(JSON.parse(resCommand.convMessage.results.data));\n } catch (error) {\n const commandString = JSON.stringify(trim(resCommand));\n throw new Error(\n `Parse query result failed: ${error.message}. Command: ${commandString}`\n );\n }\n conversations = await Promise.all(\n conversations.map(this._parseConversationFromRawData.bind(this))\n );\n return conversations.map(this._upsertConversationToCache.bind(this));\n }\n\n _upsertConversationToCache(fetchedConversation) {\n let conversation = this._conversationCache.get(fetchedConversation.id);\n if (!conversation) {\n conversation = fetchedConversation;\n this._debug('no match, set cache');\n this._conversationCache.set(fetchedConversation.id, fetchedConversation);\n } else {\n this._debug('update cached conversation');\n [\n 'creator',\n 'createdAt',\n 'updatedAt',\n 'lastMessageAt',\n 'lastMessage',\n 'mutedMembers',\n 'members',\n '_attributes',\n 'transient',\n 'muted',\n ].forEach(key => {\n const value = fetchedConversation[key];\n if (value !== undefined) conversation[key] = value;\n });\n if (conversation._reset) conversation._reset();\n }\n return conversation;\n }\n\n /**\n * 反序列化消息,与 {@link Message#toFullJSON} 相对。\n * @param {Object}\n * @return {AVMessage} 解析后的消息\n * @since 4.0.0\n */\n async parseMessage({ data, bin = false, ...properties }) {\n const content = bin ? decodeBase64(data) : data;\n const message = await this._messageParser.parse(content);\n Object.assign(message, properties);\n message._updateMentioned(this.id);\n return message;\n }\n\n /**\n * 反序列化对话,与 {@link Conversation#toFullJSON} 相对。\n * @param {Object}\n * @return {ConversationBase} 解析后的对话\n * @since 4.0.0\n */\n async parseConversation({\n id,\n lastMessageAt,\n lastMessage,\n lastDeliveredAt,\n lastReadAt,\n unreadMessagesCount,\n members,\n mentioned,\n ...properties\n }) {\n const conversationData = {\n id,\n lastMessageAt,\n lastMessage,\n lastDeliveredAt,\n lastReadAt,\n unreadMessagesCount,\n members,\n mentioned,\n };\n if (lastMessage) {\n conversationData.lastMessage = await this.parseMessage(lastMessage);\n conversationData.lastMessage._setStatus(MessageStatus.SENT);\n }\n const { transient, system, expiredAt } = properties;\n if (transient) return new ChatRoom(conversationData, properties, this);\n if (system)\n return new ServiceConversation(conversationData, properties, this);\n if (expiredAt || isTemporaryConversatrionId(id)) {\n return new TemporaryConversation(conversationData, { expiredAt }, this);\n }\n return new Conversation(conversationData, properties, this);\n }\n\n async _parseConversationFromRawData(rawData) {\n const data = keyRemap(\n {\n objectId: 'id',\n lm: 'lastMessageAt',\n m: 'members',\n tr: 'transient',\n sys: 'system',\n c: 'creator',\n mu: 'mutedMembers',\n },\n rawData\n );\n if (data.msg) {\n data.lastMessage = {\n data: data.msg,\n bin: data.bin,\n from: data.msg_from,\n id: data.msg_mid,\n timestamp: data.msg_timestamp,\n updatedAt: data.patch_timestamp,\n };\n delete data.lastMessageFrom;\n delete data.lastMessageId;\n delete data.lastMessageTimestamp;\n delete data.lastMessagePatchTimestamp;\n }\n const { ttl } = data;\n if (ttl) data.expiredAt = Date.now() + ttl * 1000;\n return this.parseConversation(data);\n }\n\n /**\n * 创建一个对话\n * @param {Object} options 除了下列字段外的其他字段将被视为对话的自定义属性\n * @param {String[]} options.members 对话的初始成员列表,默认包含当前 client\n * @param {String} [options.name] 对话的名字\n * @param {Boolean} [options.unique=true] 唯一对话,当其为 true 时,如果当前已经有相同成员的对话存在则返回该对话,否则会创建新的对话\n * @return {Promise.<Conversation>}\n */\n async createConversation({\n members: m,\n name,\n transient,\n unique = true,\n _tempConv: tempConv,\n _tempConvTTL: tempConvTTL,\n ...properties\n } = {}) {\n if (!(transient || Array.isArray(m))) {\n throw new TypeError(`conversation members ${m} is not an array`);\n }\n let members = new Set(m);\n members.add(this.id);\n members = Array.from(members).sort();\n let attr = properties || {};\n if (name) {\n if (typeof name !== 'string') {\n throw new TypeError(`conversation name ${name} is not a string`);\n }\n attr.name = name;\n }\n attr = new JsonObjectMessage({\n data: JSON.stringify(encode(attr)),\n });\n\n const startCommandJson = {\n m: members,\n attr,\n transient,\n unique,\n tempConv,\n tempConvTTL,\n };\n\n const command = new GenericCommand({\n cmd: 'conv',\n op: 'start',\n convMessage: new ConvCommand(startCommandJson),\n });\n\n if (this.options.conversationSignatureFactory) {\n const params = [null, this._identity, members, 'create'];\n const signatureResult = await runSignatureFactory(\n this.options.conversationSignatureFactory,\n params\n );\n Object.assign(\n command.convMessage,\n keyRemap(\n {\n signature: 's',\n timestamp: 't',\n nonce: 'n',\n },\n signatureResult\n )\n );\n }\n\n const {\n convMessage: { cid, cdate, tempConvTTL: ttl },\n } = await this._send(command);\n const data = {\n name,\n transient,\n unique,\n id: cid,\n createdAt: cdate,\n updatedAt: cdate,\n lastMessageAt: null,\n creator: this.id,\n members: transient ? [] : members,\n ...properties,\n };\n if (ttl) data.expiredAt = Date.now() + ttl * 1000;\n const conversation = await this.parseConversation(data);\n return this._upsertConversationToCache(conversation);\n }\n\n /**\n * 创建一个聊天室\n * @since 4.0.0\n * @param {Object} options 除了下列字段外的其他字段将被视为对话的自定义属性\n * @param {String} [options.name] 对话的名字\n * @return {Promise.<ChatRoom>}\n */\n async createChatRoom(param) {\n return this.createConversation({\n ...param,\n transient: true,\n members: null,\n unique: false,\n _tempConv: false,\n });\n }\n\n /**\n * 创建一个临时对话\n * @since 4.0.0\n * @param {Object} options\n * @param {String[]} options.members 对话的初始成员列表,默认包含当前 client\n * @param {String} [options.ttl] 对话存在时间,单位为秒,最大值与默认值均为 86400(一天),过期后该对话不再可用。\n * @return {Promise.<TemporaryConversation>}\n */\n async createTemporaryConversation({ ttl: _tempConvTTL, ...param }) {\n return this.createConversation({\n ...param,\n _tempConv: true,\n _tempConvTTL,\n });\n }\n\n // jsdoc-ignore-start\n @throttle(1000)\n // jsdoc-ignore-end\n _doSendRead() {\n // if not connected, just skip everything\n if (!this._connection.is('connected')) return;\n const buffer = internal(this).readConversationsBuffer;\n const conversations = Array.from(buffer);\n if (!conversations.length) return;\n const ids = conversations.map(conversation => {\n if (!(conversation instanceof ConversationBase)) {\n throw new TypeError(`${conversation} is not a Conversation`);\n }\n return conversation.id;\n });\n this._debug(`mark [${ids}] as read`);\n buffer.clear();\n this._sendReadCommand(conversations).catch(error => {\n this._debug('send read failed: %O', error);\n conversations.forEach(buffer.add.bind(buffer));\n });\n }\n\n _sendReadCommand(conversations) {\n return this._send(\n new GenericCommand({\n cmd: 'read',\n readMessage: new ReadCommand({\n convs: conversations.map(\n conversation =>\n new ReadTuple({\n cid: conversation.id,\n mid:\n conversation.lastMessage &&\n conversation.lastMessage.from !== this.id\n ? conversation.lastMessage.id\n : undefined,\n timestamp: (conversation.lastMessageAt || new Date()).getTime(),\n })\n ),\n }),\n }),\n false\n );\n }\n}\n\n/**\n * 修改、撤回消息的原因\n * @typedef PatchReason\n * @type {Object}\n * @property {number} code 负数为内置 code,正数为开发者在 hook 中自定义的 code。比如因为敏感词过滤被修改的 code 为 -4408。\n * @property {string} [detail] 具体的原因说明。\n */\n","export {\n DISCONNECT,\n RECONNECT,\n RETRY,\n SCHEDULE,\n OFFLINE,\n ONLINE,\n} from '../websocket-plus';\n\nexport const RECONNECT_ERROR = 'reconnecterror';\n","import { encode as encodeBase64 } from 'base64-arraybuffer';\nimport Message from './message';\nimport { IE10Compatible } from './helpers';\n// jsdoc-ignore-start\n@IE10Compatible\n// jsdoc-ignore-end\nexport default class BinaryMessage extends Message {\n /**\n * 二进制消息\n * @extends Message\n * @param {ArrayBuffer} buffer\n * @since 4.0.0\n */\n constructor(buffer) {\n if (!(buffer instanceof ArrayBuffer)) {\n throw new TypeError(`${buffer} is not an ArrayBuffer`);\n }\n super(buffer);\n }\n\n /**\n * @type ArrayBuffer\n */\n get buffer() {\n return this.content;\n }\n\n set buffer(buffer) {\n this.content = buffer;\n }\n\n static validate(target) {\n return target instanceof ArrayBuffer;\n }\n\n toJSON() {\n return {\n ...super._toJSON(),\n data: encodeBase64(this.content),\n };\n }\n\n toFullJSON() {\n return {\n ...super.toFullJSON(),\n bin: true,\n data: encodeBase64(this.content),\n };\n }\n}\n","import TypedMessage from './typed-message';\nimport { messageType, IE10Compatible } from './helpers';\n\n// jsdoc-ignore-start\n@messageType(-1)\n@IE10Compatible\n// jsdoc-ignore-end\nexport default class TextMessage extends TypedMessage {\n /**\n * 文类类型消息\n * @extends TypedMessage\n * @param {String} [text='']\n * @throws {TypeError} text 不是 String 类型\n */\n constructor(text = '') {\n if (typeof text !== 'string') {\n throw new TypeError(`${text} is not a string`);\n }\n super();\n this.setText(text);\n }\n}\n\n/**\n * @name TYPE\n * @memberof TextMessage\n * @type Number\n * @static\n * @const\n */\n","import d from 'debug';\nimport isPlainObject from 'lodash/isPlainObject';\nimport { applyMiddlewares } from './plugin';\nimport { ensureArray } from './utils';\n\nconst debug = d('LC:MessageParser');\n\nconst tryParseJson = (target, key, descriptor) => {\n const fn = descriptor.value;\n // eslint-disable-next-line no-param-reassign\n descriptor.value = function wrapper(param) {\n let content;\n if (typeof param !== 'string') {\n content = param;\n } else {\n try {\n content = JSON.parse(param);\n } catch (error) {\n content = param;\n }\n }\n return fn.call(this, content);\n };\n};\n\nconst applyPlugins = (target, key, descriptor) => {\n const fn = descriptor.value;\n // eslint-disable-next-line no-param-reassign\n descriptor.value = function wrapper(json) {\n return Promise.resolve(json)\n .then(applyMiddlewares(this._plugins.beforeMessageParse))\n .then(decoratedJson => fn.call(this, decoratedJson))\n .then(applyMiddlewares(this._plugins.afterMessageParse));\n };\n};\n\nexport default class MessageParser {\n /**\n * 消息解析器\n * @param {Object} plugins 插件,插件的 messageClasses 会自动被注册,在解析时 beforeMessageParse 与 afterMessageParse Middleware 会被应用。\n */\n constructor(plugins = {}) {\n this._plugins = plugins;\n this._messageClasses = [];\n this.register(plugins.messageClasses);\n }\n\n /**\n * 注册消息类\n *\n * @param {Function | Function[]} messageClass 消息类,需要实现 {@link AVMessage} 接口,\n * 建议继承自 {@link TypedMessage},也可以传入一个消息类数组。\n * @throws {TypeError} 如果 messageClass 没有实现 {@link AVMessage} 接口则抛出异常\n */\n register(messageClasses) {\n ensureArray(messageClasses).map(klass => this._register(klass));\n }\n\n _register(messageClass) {\n if (\n messageClass &&\n messageClass.parse &&\n messageClass.prototype &&\n messageClass.prototype.getPayload\n ) {\n this._messageClasses.unshift(messageClass);\n } else {\n throw new TypeError('Invalid messageClass');\n }\n }\n\n // jsdoc-ignore-start\n @tryParseJson\n @applyPlugins\n // jsdoc-ignore-end\n /**\n * 解析消息内容\n * @param {Object | string | any} target 消息内容,如果是字符串会尝试 parse 为 JSON。\n * @return {AVMessage} 解析后的消息\n * @throws {Error} 如果不匹配任何注册的消息则抛出异常\n */\n parse(content) {\n debug('parsing message: %O', content);\n // eslint-disable-next-line\n for (const Klass of this._messageClasses) {\n const contentCopy = isPlainObject(content) ? { ...content } : content;\n let valid;\n let result;\n try {\n valid = Klass.validate(contentCopy);\n } catch (error) {\n // eslint-disable-line no-empty\n }\n if (valid) {\n try {\n result = Klass.parse(contentCopy);\n } catch (error) {\n console.warn('parsing a valid message content error', {\n error,\n Klass,\n content: contentCopy,\n });\n }\n if (result !== undefined) {\n debug('parse result: %O', result);\n return result;\n }\n }\n }\n throw new Error('No Message Class matched');\n }\n}\n","/** @module leancloud-realtime */\nimport d from 'debug';\nimport uuid from 'uuid/v4';\nimport IMClient from './im-client';\nimport { RECONNECT, RECONNECT_ERROR } from './events/core';\nimport { Conversation } from './conversations';\nimport { MessageQueryDirection } from './conversations/conversation-base';\nimport Message, { MessageStatus } from './messages/message';\nimport BinaryMessage from './messages/binary-message';\nimport TextMessage from './messages/text-message';\nimport TypedMessage from './messages/typed-message';\nimport RecalledMessage from './messages/recalled-message';\nimport MessageParser from './message-parser';\nimport { trim, internal, finalize } from './utils';\n\nconst debug = d('LC:IMPlugin');\n\n/**\n * 消息优先级枚举\n * @enum {Number}\n * @since 3.3.0\n */\nconst MessagePriority = {\n /** 高 */\n HIGH: 1,\n /** 普通 */\n NORMAL: 2,\n /** 低 */\n LOW: 3,\n};\nObject.freeze(MessagePriority);\n\n/**\n * 为 Conversation 定义一个新属性\n * @param {String} prop 属性名\n * @param {Object} [descriptor] 属性的描述符,参见 {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor#Description getOwnPropertyDescriptor#Description - MDN},默认为该属性名对应的 Conversation 自定义属性的 getter/setter\n * @returns void\n * @example\n *\n * conversation.get('type');\n * conversation.set('type', 1);\n *\n * // equals to\n * defineConversationProperty('type');\n * conversation.type;\n * conversation.type = 1;\n */\nconst defineConversationProperty = (\n prop,\n descriptor = {\n get() {\n return this.get(prop);\n },\n set(value) {\n this.set(prop, value);\n },\n }\n) => {\n Object.defineProperty(Conversation.prototype, prop, descriptor);\n};\n\nexport {\n /**\n * @see Message\n */\n Message,\n /**\n * @see BinaryMessage\n */\n BinaryMessage,\n /**\n * @see TypedMessage\n */\n TypedMessage,\n /**\n * @see TextMessage\n */\n TextMessage,\n /**\n * @see RecalledMessage\n */\n RecalledMessage,\n MessagePriority,\n MessageStatus,\n MessageQueryDirection,\n defineConversationProperty,\n};\n\nexport {\n /**\n * decorator,定义消息类的类型常量\n * @function\n * @param {Number} type 自定义类型请使用正整数\n * @example @messageType(1)\n * class CustomMessage extends TypedMessage {}\n *\n * // 不支持 decorator 的情况下可以这样使用\n * class CustomMessage extends TypedMessage {\n * //...\n * }\n * messageType(1)(CustomMessage);\n */\n messageType,\n /**\n * decorator,定义消息类的自定义字段\n * @function\n * @param {String[]} fields 自定义字段\n * @example @messageField(['foo'])\n * class CustomMessage extends TypedMessage {\n * constructor(foo) {\n * super();\n * this.foo = foo;\n * }\n * }\n *\n * // 不支持 decorator 的情况下可以这样使用\n * class CustomMessage extends TypedMessage {\n * constructor(foo) {\n * super();\n * this.foo = foo;\n * }\n * //...\n * }\n * messageField(['foo'])(CustomMessage);\n */\n messageField,\n IE10Compatible,\n} from './messages/helpers';\n\nexport { ConversationMemberRole } from './conversation-member-info';\nexport {\n /**\n * @see Conversation\n */\n Conversation,\n /**\n * @see ChatRoom\n */\n ChatRoom,\n /**\n * @see ServiceConversation\n */\n ServiceConversation,\n /**\n * @see TemporaryConversation\n */\n TemporaryConversation,\n} from './conversations';\n\nconst onRealtimeCreate = realtime => {\n /* eslint-disable no-param-reassign */\n const deviceId = uuid();\n realtime._IMClients = {};\n realtime._IMClientsCreationCount = 0;\n const messageParser = new MessageParser(realtime._plugins);\n realtime._messageParser = messageParser;\n\n const signAVUser = async user =>\n realtime._request({\n method: 'POST',\n path: '/rtm/sign',\n data: {\n session_token: user.getSessionToken(),\n },\n });\n\n /**\n * 注册消息类\n *\n * 在接收消息、查询消息时,会按照消息类注册顺序的逆序依次尝试解析消息内容\n *\n * @memberof Realtime\n * @instance\n * @param {Function | Function[]} messageClass 消息类,需要实现 {@link AVMessage} 接口,\n * 建议继承自 {@link TypedMessage}\n * @throws {TypeError} 如果 messageClass 没有实现 {@link AVMessage} 接口则抛出异常\n */\n const register = messageParser.register.bind(messageParser);\n /**\n * 创建一个即时通讯客户端,多次创建相同 id 的客户端会返回同一个实例\n * @memberof Realtime\n * @instance\n * @param {String|AV.User} [identity] 客户端 identity,如果不指定该参数,服务端会随机生成一个字符串作为 identity,\n * 如果传入一个已登录的 AV.User,则会使用该用户的 id 作为客户端 identity 登录。\n * @param {Object} [options]\n * @param {Function} [options.signatureFactory] open session 时的签名方法 // TODO need details\n * @param {Function} [options.conversationSignatureFactory] 对话创建、增减成员操作时的签名方法\n * @param {Function} [options.blacklistSignatureFactory] 黑名单操作时的签名方法\n * @param {String} [options.tag] 客户端类型标记,以支持单点登录功能\n * @param {String} [options.isReconnect=false] 单点登录时标记该次登录是不是应用启动时自动重新登录\n * @return {Promise.<IMClient>}\n */\n const createIMClient = async (\n identity,\n { tag, isReconnect, ...clientOptions } = {},\n lagecyTag\n ) => {\n let id;\n const buildinOptions = {};\n if (identity) {\n if (typeof identity === 'string') {\n id = identity;\n } else if (identity.id && identity.getSessionToken) {\n ({ id } = identity);\n const sessionToken = identity.getSessionToken();\n if (!sessionToken) {\n throw new Error('User must be authenticated');\n }\n buildinOptions.signatureFactory = signAVUser;\n } else {\n throw new TypeError('Identity must be a String or an AV.User');\n }\n if (realtime._IMClients[id] !== undefined) {\n return realtime._IMClients[id];\n }\n }\n if (lagecyTag) {\n console.warn(\n 'DEPRECATION createIMClient tag param: Use options.tag instead.'\n );\n }\n const _tag = tag || lagecyTag;\n const promise = realtime\n ._open()\n .then(connection => {\n const client = new IMClient(\n id,\n { ...buildinOptions, ...clientOptions },\n {\n _connection: connection,\n _request: realtime._request.bind(realtime),\n _messageParser: messageParser,\n _plugins: realtime._plugins,\n _identity: identity,\n }\n );\n connection.on(RECONNECT, () =>\n client\n ._open(realtime._options.appId, _tag, deviceId, true)\n /**\n * 客户端连接恢复正常,该事件通常在 {@link Realtime#event:RECONNECT} 之后发生\n * @event IMClient#RECONNECT\n * @see Realtime#event:RECONNECT\n * @since 3.2.0\n */\n /**\n * 客户端重新登录发生错误(网络连接已恢复,但重新登录错误)\n * @event IMClient#RECONNECT_ERROR\n * @since 3.2.0\n */\n .then(\n () => client.emit(RECONNECT),\n error => client.emit(RECONNECT_ERROR, error)\n )\n );\n internal(client)._eventemitter.on(\n 'beforeclose',\n () => {\n delete realtime._IMClients[client.id];\n if (realtime._firstIMClient === client) {\n delete realtime._firstIMClient;\n }\n },\n realtime\n );\n internal(client)._eventemitter.on(\n 'close',\n () => {\n realtime._deregister(client);\n },\n realtime\n );\n return client\n ._open(realtime._options.appId, _tag, deviceId, isReconnect)\n .then(() => {\n realtime._IMClients[client.id] = client;\n realtime._IMClientsCreationCount += 1;\n if (realtime._IMClientsCreationCount === 1) {\n client._omitPeerId(true);\n realtime._firstIMClient = client;\n } else if (\n realtime._IMClientsCreationCount > 1 &&\n realtime._firstIMClient\n ) {\n realtime._firstIMClient._omitPeerId(false);\n }\n realtime._register(client);\n return client;\n })\n .catch(error => {\n delete realtime._IMClients[client.id];\n throw error;\n });\n })\n .then(\n ...finalize(() => {\n realtime._deregisterPending(promise);\n })\n )\n .catch(error => {\n delete realtime._IMClients[id];\n throw error;\n });\n if (identity) {\n realtime._IMClients[id] = promise;\n }\n realtime._registerPending(promise);\n return promise;\n };\n Object.assign(realtime, {\n register,\n createIMClient,\n });\n /* eslint-enable no-param-reassign */\n};\n\nconst beforeCommandDispatch = (command, realtime) => {\n const isIMCommand = command.service === null || command.service === 2;\n if (!isIMCommand) return true;\n const targetClient = command.peerId\n ? realtime._IMClients[command.peerId]\n : realtime._firstIMClient;\n if (targetClient) {\n Promise.resolve(targetClient)\n .then(client => client._dispatchCommand(command))\n .catch(debug);\n } else {\n debug(\n '[WARN] Unexpected message received without any live client match: %O',\n trim(command)\n );\n }\n return false;\n};\n\nexport const IMPlugin = {\n name: 'leancloud-realtime-plugin-im',\n onRealtimeCreate,\n beforeCommandDispatch,\n messageClasses: [Message, BinaryMessage, RecalledMessage, TextMessage],\n};\n","/** @module leancloud-realtime */\n/** core + plugins */\nimport { Realtime } from './core';\nimport { IMPlugin, defineConversationProperty } from './plugin-im';\nimport MessageParser from './message-parser';\nimport * as CoreEvent from './events/core';\nimport * as IMEvent from './events/im';\n\nRealtime.defineConversationProperty = defineConversationProperty;\nRealtime.__preRegisteredPlugins = [IMPlugin];\n\nconst Event = {\n ...CoreEvent,\n ...IMEvent,\n};\n\nexport {\n /**\n * SDK 可能会派发的事件枚举\n * @name Event\n * @enum {String}\n * @since 4.0.0\n */\n Event,\n};\n\nexport {\n /**\n * 错误码,详见 [即时通讯云端错误码说明]{@link https://leancloud.cn/docs/realtime-faq.html#hash-291949329}\n * @name ErrorCode\n * @enum {Number}\n * @since 3.3.0\n */\n ErrorCode,\n} from './error';\n\nexport * from './core';\n\nexport * from './plugin-im';\n\nexport {\n /**\n * @see MessageParser\n * @since 5.0.0\n */\n MessageParser,\n};\n\nexport {\n /**\n * @see ConversationQuery\n */\n default as ConversationQuery,\n} from './conversation-query';\n","/** core + plugins + platform adapters */\nimport { WebSocket, request } from '@leancloud/platform-adapters-node';\nimport { setAdapters } from './im';\n\nsetAdapters({\n WebSocket,\n request,\n});\n\nexport * from './im';\n"],"names":["module","require","newBuilder","syntax","options","objc_class_prefix","messages","name","fields","rule","type","id","enums","values","isNamespace","build","_messages$push_server","push_server","messages2","JsonObjectMessage","UnreadTuple","LogItem","DataCommand","SessionCommand","ErrorCommand","DirectCommand","AckCommand","UnreadCommand","ConvCommand","RoomCommand","LogsCommand","RcpCommand","ReadTuple","MaxReadTuple","ReadCommand","PresenceCommand","ReportCommand","GenericCommand","BlacklistCommand","PatchCommand","PatchItem","ConvMemberInfo","CommandType","OpType","StatusType","adapters","getAdapter","adapter","undefined","Error","concat","setAdapters","newAdapters","Object","assign","global","window","EXPIRED","Symbol","debug","d","Expirable","value","ttl","originalValue","expiredAt","Date","now","_createClass","key","get","expired","Cache","arguments","length","_map","_proto","prototype","cache","set","enable","namespaces","disable","tryAll","promiseConstructors","promise","Promise","slice","tap","interceptor","finalize","callback","error","decodeDate","date","__type","iso","toNumber","getTime","decode","Array","isArray","map","isPlainObject","keys","reduce","result","_objectSpread","_defineProperty","encode","toJSON","keyRemap","keymap","obj","newObj","newKey","isIE10","navigator","userAgent","indexOf","getStaticProperty","klass","property","__proto__","union","a","b","from","Set","_toConsumableArray","difference","bSet","filter","x","has","WeakMap","internal","object","compact","forEach","prop","removeNull","trim","message","JSON","parse","stringify","ensureArray","target","setValue","segs","split","lastSeg","pop","currentTarget","seg","isWeapp","wx","_typeof","connectSocket","throttle","wait","descriptor","_this","_internal","throttleMeta","_throttleMeta","propertyMeta","_propertyMeta","_propertyMeta$previou","previouseTimestamp","timeout","remainingTime","apply","setTimeout","isCNApp","appId","equalBuffer","buffer1","buffer2","byteLength","Uint8Array","some","index","OPEN","DISCONNECT","RECONNECT","RETRY","SCHEDULE","OFFLINE","ONLINE","ERROR","MESSAGE","HEARTBEAT_TIME","TIMEOUT_TIME","DEFAULT_RETRY_STRATEGY","attempt","Math","min","pow","requireConnected","requireConnectedWrapper","_descriptor$value","checkConnectionAvailability","_len","args","_key","call","WebSocketPlus","_class","_EventEmitter","_inheritsLoose","getUrls","protocol","init","_protocol","resolve","then","urls","_urls","_open","__postponeTimeoutTimer","_postponeTimeoutTimer","bind","_assertThisInitialized","addEventListener","__pause","can","pause","__resume","resume","open","_this2","_createWs","ws","_this2$_urls","_toArray","first","reset","_this3","url","reject","WebSocket","binaryType","onopen","onclose","onerror","_ws","_handleClose","onmessage","_handleMessage","_destroyWs","close","onbeforeevent","event","to","_len2","payload","_key2","emit","onconnected","_startConnectionKeeper","onleaveconnected","_stopConnectionKeeper","onpause","onbeforeresume","onreconnect","ondisconnected","_this4","delay","__scheduledRetry","clearTimeout","is","retry","onretry","_this5","reconnect","fail","removeEventListener","currentState","current","console","warn","_ping","ping","_this6","_clearTimeoutTimers","_timeoutTimer","disconnect","_heartbeatTimer","setInterval","addListener","removeListener","clearInterval","code","reason","isFinished","handleClose","send","data","handleMessage","EventEmitter","_applyDecoratedDescriptor","getOwnPropertyDescriptor","StateMachine","create","initial","state","defer","terminal","events","freeze","ErrorCode","Number","createError","_ref","appCode","detail","errorMessage","err","COMMAND_TIMEOUT","EXPIRE","isIdempotentCommand","command","cmd","direct","session","op","conv","start","update","members","Connection","_WebSocketPlus","getUrl","format","version","protocolString","_protocolFormat","_commands","_serialId","_send","_asyncToGenerator","_regeneratorRuntime","mark","_callee","waitingForRespond","buffer","serialId","duplicatedCommand","_args","wrap","_callee$","_context","prev","next","toArrayBuffer","find","_ref2","targetBuffer","targetCommand","abrupt","i","enabled","toBase64","TypeError","stop","_x","msg","e","goaway","echo","_ref$method","method","_url","query","headers","time","queryString","v","encodeURIComponent","qs","join","request","response","ok","status","checkType","middleware","param","constructor","_pluginName","applyDecorators","decorators","decorator","applyMiddlewares","middlewares","previousPromise","applyDispatcher","dispatchers","resultPromise","dispatcher","shouldDispatch","routerCache","initializedApp","Realtime","plugins","_objectWithoutProperties","_excluded","VERSION","appKey","server","_options","noBinary","ssl","RTMServerName","process","env","RTM_SERVER_NAME","_cache","clients","pendingClients","mergedPlugins","__preRegisteredPlugins","plugin","_plugins","hook","hasOwnProperty","onRealtimeCreate","_request","_request2","_ref2$version","path","_this$_options","_yield$this$construct","api","_getServerUrls","sent","_openPromise","connection","_getRTMServers","on","_callee2","_callee2$","_context2","_dispatchCommand","client","isFatal","APP_NOT_AVAILABLE","INVALID_LOGIN","INVALID_ORIGIN","errorCode","_getRTMServers2","_callee3","info","cachedEndPoints","_info","secondary","_callee3$","_context3","RTMServers","shuffle","_fetchRTMServers","_x2","_getServerUrls2","_callee4","_ref4","cachedRouter","defaultProtocol","_callee4$","_context4","RTMRouter","_ref5","RTMRouterServer","rtm_router_server","APIServer","api_server","_ref5$ttl","serverUrls","toLowerCase","domain","_x3","_ref6","_ref7","secure","features","_t","_close","cannot","_internal2","_internal3","_registerPending","add","_deregisterPending","_register","_deregister","size","beforeCommandDispatch","polyfilledPromise","UNREAD_MESSAGES_COUNT_UPDATE","CLOSE","CONFLICT","CONVERSATION_INFO_UPDATED","UNHANDLED_MESSAGE","INVITED","KICKED","MEMBERS_JOINED","MEMBERS_LEFT","MEMBER_INFO_UPDATED","BLOCKED","UNBLOCKED","MEMBERS_BLOCKED","MEMBERS_UNBLOCKED","MUTED","UNMUTED","MEMBERS_MUTED","MEMBERS_UNMUTED","MESSAGE_RECALL","MESSAGE_UPDATE","LAST_DELIVERED_AT_UPDATE","LAST_READ_AT_UPDATE","INFO_UPDATED","MessageStatus","NONE","SENDING","SENT","DELIVERED","FAILED","rMessageStatus","_rMessageStatus","READ","Message","content","uuid","cid","timestamp","mentionList","mentionedAll","_mentioned","_setStatus","getPayload","_toJSON","deliveredAt","updatedAt","mentioned","toFullJSON","_updatedAt","_status","_updateMentioned","getMentionList","setMentionList","mentionAll","Boolean","validate","json","_timestamp","_deliveredAt","messageType","TYPE","_lctype","_getType","messageField","originalCustomFields","_customFields","IE10Compatible","TypedMessage","_dec","_Message","setText","text","_lctext","getText","setAttributes","attributes","_lcattrs","getAttributes","_getCustomFields","field","summary","customFields","RecalledMessage","_TypedMessage","serializeMessage","binaryMsg","ArrayBuffer","_LogsCommand$QueryDir","QueryDirection","NEW","OLD","MessageQueryDirection","NEW_TO_OLD","OLD_TO_NEW","ConversationBase","lastMessageAt","lastMessage","lastDeliveredAt","lastReadAt","_ref$unreadMessagesCo","unreadMessagesCount","_ref$members","_ref$mentioned","properties","messagesWaitingForReceipt","_client","Event","_debug","onConversationCreate","_setUnreadMessagesMentioned","unreadMessagesMentioned","_setLastDeliveredAt","_setLastReadAt","params","_this$_client","convMessage","_len3","_key3","_send2","_message$constructor$","_transient","receipt","priority","pushData","will","_serializeMessage","resCommand","_resCommand$ackMessag","uid","t","sendOptions","getSendOptions","transient","directMessage","r","dt","mentionPids","ackMessage","t0","_update","_update2","newMessage","recall","patch","modify","patchMessage","patches","mid","lastPatchTime","_lastPatchTime","_x4","_x5","count","_count","_addMembers","_removeMembers","_update3","_x6","_x7","_recall","_callee5","_callee5$","_context5","_x8","queryMessages","_queryMessages","_callee7","beforeTime","beforeMessageId","afterTime","afterMessageId","limit","direction","startTime","startMessageId","startClosed","endTime","endMessageId","endClosed","conditions","_args7","_callee7$","_context7","tIncluded","tt","tmid","ttIncluded","l","lctype","logsMessage","all","logs","_ref3","_callee6","msgId","patchTimestamp","ackAt","readAt","bin","messageData","_callee6$","_context6","parseMessage","_x9","createMessagesIterator","prevMessages","done","read","_read","_callee8","_callee8$","_context8","readConversationsBuffer","_doSendRead","_handleReceipt","messageId","fetchReceiptTimestamps","_fetchReceiptTimestamps","_callee9","_yield$this$_send","_yield$this$_send$con","maxReadTimestamp","maxAckTimestamp","_callee9$","_context9","system","_fetchAllReceiptTimestamps","queryAllMembers","maxReadTuples","maxReadTuple","pid","_lastMessageAt","_validateSignature","signatureResult","signature","nonce","signatureFactory","createPartiallySuccess","allowedPids","failedPids","successfulClientIds","failures","pids","clientIds","PersistentConversation","_ConversationBase","creator","createdAt","_ref3$transient","_ref3$system","_ref3$muted","muted","_ref3$mutedMembers","mutedMembers","_excluded2","_attributes","_reset","currentAttributes","pendingAttributes","pendingKeys","re","RegExp","childKeys","test","k","parentKey","_buildCurrentAttributes","cloneDeep","_updateServerAttributes","save","_save","attr","isEmpty","udate","fetch","_fetch","getQuery","equalTo","mute","_mute","unmute","_unmute","_appendConversationSignature","_appendConversationSignature2","action","conversationSignatureFactory","sort","runSignatureFactory","_appendBlacklistSignature","_appendBlacklistSignature2","blacklistSignatureFactory","blacklistMessage","_add","m","remove","_remove","_yield$this$_send2","_join","quit","_quit","_callee10","_callee10$","_context10","muteMembers","_muteMembers","_callee11","_yield$this$_send3","_callee11$","_context11","add_shutup","unmuteMembers","_unmuteMembers","_callee12","_yield$this$_send4","_callee12$","_context12","remove_shutup","_x10","queryMutedMembers","_queryMutedMembers","_callee13","_yield$this$_send5","_yield$this$_send5$co","newNext","_args13","_callee13$","_context13","query_shutup","results","blockMembers","_blockMembers","_callee14","_yield$this$_send6","_callee14$","_context14","block","srcCid","toPids","_x11","unblockMembers","_unblockMembers","_callee15","_yield$this$_send7","_callee15$","_context15","unblock","_x12","queryBlockedMembers","_queryBlockedMembers","_callee16","_yield$this$_send8","_yield$this$_send8$bl","blockedPids","_args16","_callee16$","_context16","_createdAt","ConversationMemberRole","OWNER","MANAGER","MEMBER","ConversationMemberInfo","conversation","memberId","role","conversationId","isOwner","Conversation","_PersistentConversati","memberInfoMap","_fetchAllMemberInfo","_fetchAllMemberInfo2","memberInfos","_requestWithSessionToken","where","clientId","memberInfo","getAllMemberInfo","_getAllMemberInfo","_ref$noCache","noCache","_args2","getMemberInfo","_getMemberInfo","_internal4","updateMemberRole","_updateMemberRole","_internal5","OWNER_PROMOTION_NOT_ALLOWED","member_info_update","targetClientId","ChatRoom","ServiceConversation","subscribe","_subscribe","unsubscribe","_unsubscribe","transformNotFoundError","CONVERSATION_NOT_FOUND","TEMPORARY_CONVERSATION_EXPIRED","TemporaryConversation","_ConversationBase$pro","_send3","_ConversationBase$pro2","_expiredAt","ConversationQuery","_encode","source","_quote","s","replace","_calculateFlag","and","queries","every","q","combined","_where","$and","or","$or","_extraOptions","_addCondition","condition","flag","_skip","skip","_limit","_order","containsMembers","peerIds","containsAll","withMembers","includeSelf","peerIdsSet","sizeEqualTo","lessThan","lessThanOrEqualTo","greaterThan","greaterThanOrEqualTo","notEqualTo","exists","doesNotExist","containedIn","notContainsIn","contains","subString","startsWith","prefix","endsWith","suffix","matches","regex","_modifiers","ignoreCase","multiline","ascending","addAscending","descending","addDescending","withLastMessagesRefreshed","_find","_executeQuery","_first","SessionManager","refresh","onBeforeGetSessionToken","_onBeforeGetSessionToken","setSessionToken","token","sessionToken","_sessionToken","_pendingSessionTokenPromise","setSessionTokenAsync","_setSessionTokenAsync","currentSessionToken","t1","t2","t3","t4","getSessionToken","_getSessionToken","_ref2$autoRefresh","autoRefresh","_yield$this$setSessio","newValue","revoke","isTemporaryConversatrionId","configBitmap","IMClient","_dec2","props","_messageParser","_conversationCache","_ackMessageBuffer","lastNotificationTime","_eventemitter","onIMClientCreate","_dispatchCommand2","serverTs","notificationType","unread","rcp","_dispatchConvMessage","_dispatchDirectMessage","_dispatchSessionMessage","_dispatchUnreadMessage","_dispatchRcpMessage","_dispatchPatchMessage","_dispatchSessionMessage2","_message$sessionMessa","sessionMessage","closed","SESSION_CONFLICT","_ref$unreadMessage","unreadMessage","convs","notifTime","lastUnreadNotifTime","getConversations","ts","messageProps","countNotUpdated","conversations","_dispatchRcpMessage2","rcpMessage","patchCode","patchReason","patchTime","_dispatchConvMessage2","_message$convMessage","initBy","_payload","_payload2","_payload3","_payload4","_payload5","_payload6","_payload7","_payload8","_payload9","_payload10","_payload11","_payload12","_payload13","getConversation","joined","left","members_joined","members_left","members_blocked","members_unblocked","blocked","unblocked","members_shutuped","members_unshutuped","shutuped","unshutuped","member_info_changed","updated","invitedBy","kickedBy","blockedBy","unblockedBy","mutedBy","unmutedBy","member","updatedBy","originalMessage","_originalMessage$dire","fromPeerId","_slicedToArray","_sendAck","_dispatchParsedMessage","beforeMessageDispatch","push","_doSendAck","_connection","convAckMessages","timestamps","fromts","tots","max","_omitPeerId","peerIdOmittable","_this$_connection","peerId","_open2","tag","deviceId","isReconnect","_resCommand","_resCommand$sessionMe","tokenTTL","serverTime","_args5","ua","_identity","_sessionManager","st","SESSION_TOKEN_EXPIRED","stTtl","_createSessionManager","_syncNotifications","_syncNotifications2","_this7","_yield$this$_fetchNot","hasMore","notifications","_fetchNotifications","notification","_fetchNotifications2","start_ts","notification_type","_this8","manager","expiredSessionToken","_ref8","_ref8$sessionMessage","_requestWithSessionToken2","_ref9","client_id","_ee","sessionPeerIds","onlineSessionPeerIds","_getConversation","cachedConversation","_args12","_getTemporaryConversations","_x13","_getConversations","ids","_this9","remoteConversationIds","remoteTemporaryConversationIds","remoteTemporaryConversationsPromise","_x14","_getTemporaryConversations2","tempConvIds","_handleQueryResults","_x15","getChatRoomQuery","getServiceConversationQuery","_executeQuery2","queryJSON","_x16","_handleQueryResults2","commandString","_parseConversationFromRawData","_upsertConversationToCache","_x17","fetchedConversation","_parseMessage","_callee17","_ref10","_ref10$bin","_callee17$","_context17","_excluded3","decodeBase64","_x18","parseConversation","_parseConversation","_callee18","_ref11","conversationData","_transient2","_callee18$","_context18","_excluded4","_x19","_parseConversationFromRawData2","_callee19","rawData","_callee19$","_context19","objectId","lm","tr","sys","c","mu","msg_from","msg_mid","msg_timestamp","patch_timestamp","lastMessageFrom","lastMessageId","lastMessageTimestamp","lastMessagePatchTimestamp","_x20","createConversation","_createConversation","_callee20","_ref12","_transient3","_ref12$unique","unique","tempConv","tempConvTTL","startCommandJson","cdate","_args20","_callee20$","_context20","_tempConv","_tempConvTTL","_excluded5","createChatRoom","_createChatRoom","_callee21","_callee21$","_context21","_x21","createTemporaryConversation","_createTemporaryConversation","_callee22","_ref13","_callee22$","_context22","_excluded6","_x22","_this10","clear","_sendReadCommand","_this11","readMessage","RECONNECT_ERROR","BinaryMessage","encodeBase64","TextMessage","tryParseJson","fn","wrapper","applyPlugins","beforeMessageParse","decoratedJson","afterMessageParse","MessageParser","_messageClasses","register","messageClasses","messageClass","unshift","_iterator","_createForOfIteratorHelper","_step","n","Klass","contentCopy","valid","f","MessagePriority","HIGH","NORMAL","LOW","defineConversationProperty","defineProperty","realtime","_IMClients","_IMClientsCreationCount","messageParser","signAVUser","user","session_token","createIMClient","identity","_realtime$_open$then","clientOptions","lagecyTag","buildinOptions","_tag","_firstIMClient","isIMCommand","service","targetClient","IMPlugin","CoreEvent","IMEvent"],"mappings":"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"}
\No newline at end of file