@juzi/wechaty-puppet-service 1.0.130 → 1.0.131
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/auth/call-cred.d.ts +2 -2
- package/dist/cjs/src/auth/call-cred.d.ts.map +1 -1
- package/dist/cjs/src/auth/call-cred.js.map +1 -1
- package/dist/cjs/src/client/puppet-service.d.ts +25 -2
- package/dist/cjs/src/client/puppet-service.d.ts.map +1 -1
- package/dist/cjs/src/client/puppet-service.js +389 -124
- package/dist/cjs/src/client/puppet-service.js.map +1 -1
- package/dist/cjs/src/client/room-cache-coordinator.d.ts +14 -0
- package/dist/cjs/src/client/room-cache-coordinator.d.ts.map +1 -0
- package/dist/cjs/src/client/room-cache-coordinator.js +53 -0
- package/dist/cjs/src/client/room-cache-coordinator.js.map +1 -0
- package/dist/cjs/src/client/room-member-cache.spec.d.ts +2 -0
- package/dist/cjs/src/client/room-member-cache.spec.d.ts.map +1 -0
- package/dist/cjs/src/client/room-member-cache.spec.js +417 -0
- package/dist/cjs/src/client/room-member-cache.spec.js.map +1 -0
- package/dist/cjs/src/client/room-member-load.spec.d.ts +2 -0
- package/dist/cjs/src/client/room-member-load.spec.d.ts.map +1 -0
- package/dist/cjs/src/client/room-member-load.spec.js +324 -0
- package/dist/cjs/src/client/room-member-load.spec.js.map +1 -0
- package/dist/cjs/src/package-json.js +4 -4
- package/dist/cjs/src/server/event-stream-manager.d.ts.map +1 -1
- package/dist/cjs/src/server/event-stream-manager.js +16 -0
- package/dist/cjs/src/server/event-stream-manager.js.map +1 -1
- package/dist/cjs/src/server/puppet-implementation.d.ts.map +1 -1
- package/dist/cjs/src/server/puppet-implementation.js +91 -28
- package/dist/cjs/src/server/puppet-implementation.js.map +1 -1
- package/dist/cjs/src/utils/pb-payload-helper.d.ts +10 -0
- package/dist/cjs/src/utils/pb-payload-helper.d.ts.map +1 -1
- package/dist/cjs/src/utils/pb-payload-helper.js +180 -1
- package/dist/cjs/src/utils/pb-payload-helper.js.map +1 -1
- package/dist/cjs/src/utils/room-member-load.spec.d.ts +2 -0
- package/dist/cjs/src/utils/room-member-load.spec.d.ts.map +1 -0
- package/dist/cjs/src/utils/room-member-load.spec.js +83 -0
- package/dist/cjs/src/utils/room-member-load.spec.js.map +1 -0
- package/dist/esm/src/auth/call-cred.d.ts +2 -2
- package/dist/esm/src/auth/call-cred.d.ts.map +1 -1
- package/dist/esm/src/auth/call-cred.js.map +1 -1
- package/dist/esm/src/client/puppet-service.d.ts +25 -2
- package/dist/esm/src/client/puppet-service.d.ts.map +1 -1
- package/dist/esm/src/client/puppet-service.js +390 -125
- package/dist/esm/src/client/puppet-service.js.map +1 -1
- package/dist/esm/src/client/room-cache-coordinator.d.ts +14 -0
- package/dist/esm/src/client/room-cache-coordinator.d.ts.map +1 -0
- package/dist/esm/src/client/room-cache-coordinator.js +49 -0
- package/dist/esm/src/client/room-cache-coordinator.js.map +1 -0
- package/dist/esm/src/client/room-member-cache.spec.d.ts +2 -0
- package/dist/esm/src/client/room-member-cache.spec.d.ts.map +1 -0
- package/dist/esm/src/client/room-member-cache.spec.js +415 -0
- package/dist/esm/src/client/room-member-cache.spec.js.map +1 -0
- package/dist/esm/src/client/room-member-load.spec.d.ts +2 -0
- package/dist/esm/src/client/room-member-load.spec.d.ts.map +1 -0
- package/dist/esm/src/client/room-member-load.spec.js +296 -0
- package/dist/esm/src/client/room-member-load.spec.js.map +1 -0
- package/dist/esm/src/package-json.js +4 -4
- package/dist/esm/src/server/event-stream-manager.d.ts.map +1 -1
- package/dist/esm/src/server/event-stream-manager.js +16 -0
- package/dist/esm/src/server/event-stream-manager.js.map +1 -1
- package/dist/esm/src/server/puppet-implementation.d.ts.map +1 -1
- package/dist/esm/src/server/puppet-implementation.js +92 -29
- package/dist/esm/src/server/puppet-implementation.js.map +1 -1
- package/dist/esm/src/utils/pb-payload-helper.d.ts +10 -0
- package/dist/esm/src/utils/pb-payload-helper.d.ts.map +1 -1
- package/dist/esm/src/utils/pb-payload-helper.js +169 -0
- package/dist/esm/src/utils/pb-payload-helper.js.map +1 -1
- package/dist/esm/src/utils/room-member-load.spec.d.ts +2 -0
- package/dist/esm/src/utils/room-member-load.spec.d.ts.map +1 -0
- package/dist/esm/src/utils/room-member-load.spec.js +58 -0
- package/dist/esm/src/utils/room-member-load.spec.js.map +1 -0
- package/package.json +4 -4
- package/src/auth/call-cred.ts +1 -1
- package/src/client/puppet-service.ts +324 -138
- package/src/client/room-cache-coordinator.ts +50 -0
- package/src/client/room-member-cache.spec.ts +448 -0
- package/src/client/room-member-load.spec.ts +319 -0
- package/src/package-json.ts +4 -4
- package/src/server/event-stream-manager.ts +15 -0
- package/src/server/puppet-implementation.ts +94 -29
- package/src/utils/pb-payload-helper.ts +150 -0
- package/src/utils/room-member-load.spec.ts +67 -0
|
@@ -24,6 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.puppetImplementation = void 0;
|
|
27
|
+
const util_1 = require("util");
|
|
27
28
|
const wechaty_grpc_1 = require("@juzi/wechaty-grpc");
|
|
28
29
|
const PUPPET = __importStar(require("@juzi/wechaty-puppet"));
|
|
29
30
|
const gerror_1 = require("gerror");
|
|
@@ -35,6 +36,24 @@ const event_stream_manager_js_1 = require("./event-stream-manager.js");
|
|
|
35
36
|
const pb_payload_helper_js_1 = require("../utils/pb-payload-helper.js");
|
|
36
37
|
const call_media_mapping_js_1 = require("../utils/call-media-mapping.js");
|
|
37
38
|
const types_1 = require("@juzi/wechaty-puppet/types");
|
|
39
|
+
function roomMemberRpcError(method, error, callback) {
|
|
40
|
+
config_js_1.log.error('PuppetServiceImpl', 'roomMemberRpcError() %s() rejection: %s', method, (0, util_1.inspect)(error));
|
|
41
|
+
if (typeof error === 'object' && error !== null && 'code' in error) {
|
|
42
|
+
const status = error;
|
|
43
|
+
const code = status['code'];
|
|
44
|
+
if (typeof code === 'number' && Number.isInteger(code) && code > 0 && code <= 16) {
|
|
45
|
+
const details = typeof status['details'] === 'string' ? status['details']
|
|
46
|
+
: error instanceof Error ? error.message : 'Room member RPC failed';
|
|
47
|
+
callback({ code, details }, null);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (error instanceof Error && /unsupported/i.test(error.message)) {
|
|
52
|
+
callback({ code: wechaty_grpc_1.grpc.status.UNIMPLEMENTED, details: error.message }, null);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
(0, grpc_error_js_1.grpcError)(method, error, callback);
|
|
56
|
+
}
|
|
38
57
|
const setGrpcBatchResults = (response, ResultClass, payload) => {
|
|
39
58
|
response.setResultsList(payload.results.map(result => {
|
|
40
59
|
const pbResult = new ResultClass();
|
|
@@ -1598,6 +1617,76 @@ function puppetImplementation(puppet, FileBoxUuid) {
|
|
|
1598
1617
|
return (0, grpc_error_js_1.grpcError)('roomList', e, callback);
|
|
1599
1618
|
}
|
|
1600
1619
|
},
|
|
1620
|
+
roomMemberSync: async (call, callback) => {
|
|
1621
|
+
try {
|
|
1622
|
+
const roomId = call.request.getId();
|
|
1623
|
+
if (!roomId) {
|
|
1624
|
+
return callback({ code: wechaty_grpc_1.grpc.status.INVALID_ARGUMENT, details: 'roomId is required' }, null);
|
|
1625
|
+
}
|
|
1626
|
+
const options = call.request.getForce() ? { force: true } : undefined;
|
|
1627
|
+
if (typeof puppet.roomMemberSync !== 'function') {
|
|
1628
|
+
throw new Error('roomMemberSync unsupported by adapter');
|
|
1629
|
+
}
|
|
1630
|
+
const state = await puppet.roomMemberSync(roomId, options);
|
|
1631
|
+
(0, pb_payload_helper_js_1.validateRoomMemberLoadState)(state, roomId);
|
|
1632
|
+
return callback(null, (0, pb_payload_helper_js_1.roomMemberLoadStateToPb)(state));
|
|
1633
|
+
}
|
|
1634
|
+
catch (error) {
|
|
1635
|
+
return roomMemberRpcError('roomMemberSync', error, callback);
|
|
1636
|
+
}
|
|
1637
|
+
},
|
|
1638
|
+
roomMemberLoadState: async (call, callback) => {
|
|
1639
|
+
try {
|
|
1640
|
+
const roomId = call.request.getId();
|
|
1641
|
+
if (!roomId) {
|
|
1642
|
+
return callback({ code: wechaty_grpc_1.grpc.status.INVALID_ARGUMENT, details: 'roomId is required' }, null);
|
|
1643
|
+
}
|
|
1644
|
+
if (typeof puppet.roomMemberLoadState !== 'function') {
|
|
1645
|
+
throw new Error('roomMemberLoadState unsupported by adapter');
|
|
1646
|
+
}
|
|
1647
|
+
const state = await puppet.roomMemberLoadState(roomId);
|
|
1648
|
+
(0, pb_payload_helper_js_1.validateRoomMemberLoadState)(state, roomId);
|
|
1649
|
+
return callback(null, (0, pb_payload_helper_js_1.roomMemberLoadStateToPb)(state));
|
|
1650
|
+
}
|
|
1651
|
+
catch (error) {
|
|
1652
|
+
return roomMemberRpcError('roomMemberLoadState', error, callback);
|
|
1653
|
+
}
|
|
1654
|
+
},
|
|
1655
|
+
roomMemberSnapshot: async (call, callback) => {
|
|
1656
|
+
try {
|
|
1657
|
+
const roomId = call.request.getId();
|
|
1658
|
+
const revision = call.request.getRevision();
|
|
1659
|
+
const pageSize = call.request.getPageSize();
|
|
1660
|
+
try {
|
|
1661
|
+
if (!roomId) {
|
|
1662
|
+
throw new Error('roomId is required');
|
|
1663
|
+
}
|
|
1664
|
+
(0, pb_payload_helper_js_1.validateRoomMemberRevision)(revision);
|
|
1665
|
+
if (!Number.isInteger(pageSize) || pageSize < 0 || pageSize > 500) {
|
|
1666
|
+
throw new Error('pageSize must be an integer between 0 and 500');
|
|
1667
|
+
}
|
|
1668
|
+
}
|
|
1669
|
+
catch (error) {
|
|
1670
|
+
return callback({ code: wechaty_grpc_1.grpc.status.INVALID_ARGUMENT, details: error.message }, null);
|
|
1671
|
+
}
|
|
1672
|
+
if (typeof puppet.roomMemberSnapshot !== 'function') {
|
|
1673
|
+
throw new Error('roomMemberSnapshot unsupported by adapter');
|
|
1674
|
+
}
|
|
1675
|
+
const snapshot = await puppet.roomMemberSnapshot(roomId, revision, {
|
|
1676
|
+
pageToken: call.request.getPageToken(), pageSize,
|
|
1677
|
+
});
|
|
1678
|
+
try {
|
|
1679
|
+
(0, pb_payload_helper_js_1.validateRoomMemberSnapshot)(snapshot, roomId, revision);
|
|
1680
|
+
}
|
|
1681
|
+
catch (error) {
|
|
1682
|
+
return callback({ code: wechaty_grpc_1.grpc.status.FAILED_PRECONDITION, details: error.message }, null);
|
|
1683
|
+
}
|
|
1684
|
+
return callback(null, (0, pb_payload_helper_js_1.roomMemberSnapshotToPb)(snapshot));
|
|
1685
|
+
}
|
|
1686
|
+
catch (error) {
|
|
1687
|
+
return roomMemberRpcError('roomMemberSnapshot', error, callback);
|
|
1688
|
+
}
|
|
1689
|
+
},
|
|
1601
1690
|
roomMemberList: async (call, callback) => {
|
|
1602
1691
|
config_js_1.log.verbose('PuppetServiceImpl', 'roomMemberList()');
|
|
1603
1692
|
try {
|
|
@@ -1666,20 +1755,7 @@ function puppetImplementation(puppet, FileBoxUuid) {
|
|
|
1666
1755
|
try {
|
|
1667
1756
|
const roomId = call.request.getId();
|
|
1668
1757
|
const payload = await puppet.roomPayload(roomId);
|
|
1669
|
-
const response =
|
|
1670
|
-
response.setAdminIdsList(payload.adminIdList);
|
|
1671
|
-
response.setAvatar(payload.avatar || '');
|
|
1672
|
-
response.setHandle(payload.handle || '');
|
|
1673
|
-
response.setId(payload.id);
|
|
1674
|
-
response.setMemberIdsList(payload.memberIdList);
|
|
1675
|
-
response.setOwnerId(payload.ownerId || '');
|
|
1676
|
-
response.setTopic(payload.topic);
|
|
1677
|
-
response.setAdditionalInfo(payload.additionalInfo || '');
|
|
1678
|
-
response.setRoomRemark(payload.remark || '');
|
|
1679
|
-
response.setExternal(!!payload.external);
|
|
1680
|
-
if (payload.createTime) {
|
|
1681
|
-
response.setCreateTime((0, timestamp_js_1.timestampFromMilliseconds)(payload.createTime));
|
|
1682
|
-
}
|
|
1758
|
+
const response = (0, pb_payload_helper_js_1.roomPayloadToPb)(payload);
|
|
1683
1759
|
return callback(null, response);
|
|
1684
1760
|
}
|
|
1685
1761
|
catch (e) {
|
|
@@ -1694,20 +1770,7 @@ function puppetImplementation(puppet, FileBoxUuid) {
|
|
|
1694
1770
|
const response = new wechaty_grpc_1.puppet.BatchRoomPayloadResponse();
|
|
1695
1771
|
const payloads = [];
|
|
1696
1772
|
for (const [_, payload] of payloadMap.entries()) {
|
|
1697
|
-
const pb =
|
|
1698
|
-
pb.setAdminIdsList(payload.adminIdList);
|
|
1699
|
-
pb.setAvatar(payload.avatar || '');
|
|
1700
|
-
pb.setHandle(payload.handle || '');
|
|
1701
|
-
pb.setId(payload.id);
|
|
1702
|
-
pb.setMemberIdsList(payload.memberIdList);
|
|
1703
|
-
pb.setOwnerId(payload.ownerId || '');
|
|
1704
|
-
pb.setTopic(payload.topic);
|
|
1705
|
-
pb.setAdditionalInfo(payload.additionalInfo || '');
|
|
1706
|
-
pb.setRoomRemark(payload.remark || '');
|
|
1707
|
-
pb.setExternal(!!payload.external);
|
|
1708
|
-
if (payload.createTime) {
|
|
1709
|
-
pb.setCreateTime((0, timestamp_js_1.timestampFromMilliseconds)(payload.createTime));
|
|
1710
|
-
}
|
|
1773
|
+
const pb = (0, pb_payload_helper_js_1.roomPayloadToPb)(payload);
|
|
1711
1774
|
payloads.push(pb);
|
|
1712
1775
|
}
|
|
1713
1776
|
response.setRoomPayloadsList(payloads);
|