@juzi/wechaty-puppet-service 1.0.107 → 1.0.109

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.
Files changed (32) hide show
  1. package/dist/cjs/src/client/puppet-service.d.ts +2 -0
  2. package/dist/cjs/src/client/puppet-service.d.ts.map +1 -1
  3. package/dist/cjs/src/client/puppet-service.js +24 -0
  4. package/dist/cjs/src/client/puppet-service.js.map +1 -1
  5. package/dist/cjs/src/config.js +2 -2
  6. package/dist/cjs/src/package-json.js +3 -3
  7. package/dist/cjs/src/server/puppet-implementation.d.ts.map +1 -1
  8. package/dist/cjs/src/server/puppet-implementation.js +36 -0
  9. package/dist/cjs/src/server/puppet-implementation.js.map +1 -1
  10. package/dist/cjs/src/utils/pb-payload-helper.d.ts +2 -0
  11. package/dist/cjs/src/utils/pb-payload-helper.d.ts.map +1 -1
  12. package/dist/cjs/src/utils/pb-payload-helper.js +40 -1
  13. package/dist/cjs/src/utils/pb-payload-helper.js.map +1 -1
  14. package/dist/esm/src/client/puppet-service.d.ts +2 -0
  15. package/dist/esm/src/client/puppet-service.d.ts.map +1 -1
  16. package/dist/esm/src/client/puppet-service.js +25 -1
  17. package/dist/esm/src/client/puppet-service.js.map +1 -1
  18. package/dist/esm/src/config.js +2 -2
  19. package/dist/esm/src/package-json.js +3 -3
  20. package/dist/esm/src/server/puppet-implementation.d.ts.map +1 -1
  21. package/dist/esm/src/server/puppet-implementation.js +37 -1
  22. package/dist/esm/src/server/puppet-implementation.js.map +1 -1
  23. package/dist/esm/src/utils/pb-payload-helper.d.ts +2 -0
  24. package/dist/esm/src/utils/pb-payload-helper.d.ts.map +1 -1
  25. package/dist/esm/src/utils/pb-payload-helper.js +37 -0
  26. package/dist/esm/src/utils/pb-payload-helper.js.map +1 -1
  27. package/package.json +3 -3
  28. package/src/client/puppet-service.ts +46 -1
  29. package/src/config.ts +2 -2
  30. package/src/package-json.ts +3 -3
  31. package/src/server/puppet-implementation.ts +51 -1
  32. package/src/utils/pb-payload-helper.ts +27 -0
@@ -50,7 +50,7 @@ import { packageJson } from '../package-json.js'
50
50
 
51
51
  import { GrpcManager } from './grpc-manager.js'
52
52
  import { PayloadStore } from './payload-store.js'
53
- import { OptionalBooleanUnwrapper, OptionalBooleanWrapper, callRecordPbToPayload, channelPayloadToPb, channelPbToPayload, chatHistoryPbToPayload, contactPbToPayload, postPayloadToPb, roomMemberPbToPayload, urlLinkPbToPayload } from '../utils/pb-payload-helper.js'
53
+ import { OptionalBooleanUnwrapper, OptionalBooleanWrapper, callRecordPbToPayload, channelPayloadToPb, channelPbToPayload, chatHistoryPbToPayload, contactPbToPayload, postPayloadToPb, roomMemberPbToPayload, urlLinkPbToPayload, channelCardPayloadToPb, channelCardPbToPayload } from '../utils/pb-payload-helper.js'
54
54
  import type { MessageBroadcastTargets } from '@juzi/wechaty-puppet/dist/esm/src/schemas/message.js'
55
55
  import { timeoutPromise } from 'gerror'
56
56
  import { BooleanIndicator } from 'state-switch'
@@ -1075,6 +1075,24 @@ class PuppetService extends PUPPET.Puppet {
1075
1075
  return payload
1076
1076
  }
1077
1077
 
1078
+ override async messageChannelCard (
1079
+ messageId: string,
1080
+ ): Promise<PUPPET.payloads.ChannelCard> {
1081
+ log.verbose('PuppetService', 'messageChannelCard(%s)', messageId)
1082
+
1083
+ const request = new grpcPuppet.MessageChannelCardRequest()
1084
+ request.setId(messageId)
1085
+
1086
+ const response = await util.promisify(
1087
+ this.grpcManager.client.messageChannelCard
1088
+ .bind(this.grpcManager.client),
1089
+ )(request)
1090
+
1091
+ const payload = channelCardPbToPayload(response.getChannelCard()!)
1092
+
1093
+ return payload
1094
+ }
1095
+
1078
1096
  override async messageCallRecord (
1079
1097
  messageId: string,
1080
1098
  ): Promise<PUPPET.payloads.CallRecord> {
@@ -1220,6 +1238,33 @@ class PuppetService extends PUPPET.Puppet {
1220
1238
  }
1221
1239
  }
1222
1240
 
1241
+ override async messageSendChannelCard (
1242
+ conversationId: string,
1243
+ channelCardPayload: PUPPET.payloads.ChannelCard,
1244
+ ): Promise<void | string> {
1245
+ log.verbose('PuppetService', 'messageSendChannelCard(%s, "%s")', conversationId, JSON.stringify(channelCardPayload))
1246
+
1247
+ const request = new grpcPuppet.MessageSendChannelCardRequest()
1248
+ request.setConversationId(conversationId)
1249
+
1250
+ const pbChannelCardPayload = channelCardPayloadToPb(grpcPuppet, channelCardPayload)
1251
+
1252
+ request.setChannelCard(pbChannelCardPayload)
1253
+
1254
+ log.info('PuppetService', `messageSendChannelCard(${conversationId}, ${channelCardPayload.nickname}) about to call grpc`)
1255
+ const response = await util.promisify(
1256
+ this.grpcManager.client.messageSendChannelCard
1257
+ .bind(this.grpcManager.client),
1258
+ )(request)
1259
+
1260
+ const messageId = response.getId()
1261
+ log.info('PuppetService', `messageSendChannelCard(${conversationId}, ${channelCardPayload.nickname}) grpc called, messageId: ${messageId}`)
1262
+
1263
+ if (messageId) {
1264
+ return messageId
1265
+ }
1266
+ }
1267
+
1223
1268
  override async messageRecall (
1224
1269
  messageId: string,
1225
1270
  ): Promise<boolean> {
package/src/config.ts CHANGED
@@ -24,8 +24,8 @@ const envVars = {
24
24
  */
25
25
  const GRPC_OPTIONS = {
26
26
  // https://github.com/wechaty/wechaty-puppet-service/issues/86
27
- 'grpc.max_receive_message_length': 1024 * 1024 * 20,
28
- 'grpc.max_send_message_length': 1024 * 1024 * 20,
27
+ 'grpc.max_receive_message_length': 1024 * 1024 * 80,
28
+ 'grpc.max_send_message_length': 1024 * 1024 * 80,
29
29
  }
30
30
 
31
31
  export const NO_LOG_EVENTS: grpcPuppet.EventTypeMap[keyof grpcPuppet.EventTypeMap][] = [
@@ -4,7 +4,7 @@
4
4
  import type { PackageJson } from 'type-fest'
5
5
  export const packageJson: PackageJson = {
6
6
  "name": "@juzi/wechaty-puppet-service",
7
- "version": "1.0.107",
7
+ "version": "1.0.109",
8
8
  "description": "Puppet Service for Wechaty",
9
9
  "type": "module",
10
10
  "exports": {
@@ -55,7 +55,7 @@ export const packageJson: PackageJson = {
55
55
  "@chatie/eslint-config": "^1.0.4",
56
56
  "@chatie/semver": "^0.4.7",
57
57
  "@chatie/tsconfig": "^4.6.3",
58
- "@juzi/wechaty-puppet": "^1.0.105",
58
+ "@juzi/wechaty-puppet": "^1.0.107",
59
59
  "@juzi/wechaty-puppet-mock": "^1.0.1",
60
60
  "@swc/core": "1.3.39",
61
61
  "@types/google-protobuf": "^3.15.5",
@@ -77,7 +77,7 @@ export const packageJson: PackageJson = {
77
77
  "@juzi/wechaty-puppet": "^1.0.84"
78
78
  },
79
79
  "dependencies": {
80
- "@juzi/wechaty-grpc": "^1.0.93",
80
+ "@juzi/wechaty-grpc": "^1.0.96",
81
81
  "clone-class": "^1.1.1",
82
82
  "ducks": "^1.0.2",
83
83
  "file-box": "^1.5.5",
@@ -43,7 +43,7 @@ import {
43
43
  import { log } from '../config.js'
44
44
  import { grpcError } from './grpc-error.js'
45
45
  import { EventStreamManager } from './event-stream-manager.js'
46
- import { OptionalBooleanUnwrapper, OptionalBooleanWrapper, callRecordPayloadToPb, channelPayloadToPb, chatHistoryPayloadToPb, postPbToPayload, urlLinkPayloadToPb } from '../utils/pb-payload-helper.js'
46
+ import { OptionalBooleanUnwrapper, OptionalBooleanWrapper, callRecordPayloadToPb, channelPayloadToPb, chatHistoryPayloadToPb, postPbToPayload, urlLinkPayloadToPb, channelCardPayloadToPb } from '../utils/pb-payload-helper.js'
47
47
  import { TextContentType } from '@juzi/wechaty-puppet/types'
48
48
 
49
49
  function puppetImplementation (
@@ -913,6 +913,27 @@ function puppetImplementation (
913
913
  }
914
914
  },
915
915
 
916
+ messageChannelCard: async (call, callback) => {
917
+ log.verbose('PuppetServiceImpl', 'messageChannelCard()')
918
+
919
+ try {
920
+ const id = call.request.getId()
921
+
922
+ const payload = await puppet.messageChannelCard(id)
923
+
924
+ const response = new grpcPuppet.MessageChannelCardResponse()
925
+
926
+ const pbChannelCardPayload = channelCardPayloadToPb(grpcPuppet, payload)
927
+
928
+ response.setChannelCard(pbChannelCardPayload)
929
+
930
+ return callback(null, response)
931
+
932
+ } catch (e) {
933
+ return grpcError('messageChannelCard', e, callback)
934
+ }
935
+ },
936
+
916
937
  messageCallRecord: async (call, callback) => {
917
938
  log.verbose('PuppetServiceImpl', 'messageCallRecord()')
918
939
 
@@ -1301,6 +1322,35 @@ function puppetImplementation (
1301
1322
  }
1302
1323
  },
1303
1324
 
1325
+ messageSendChannelCard: async (call, callback) => {
1326
+ log.verbose('PuppetServiceImpl', 'messageSendChannelCard()')
1327
+
1328
+ try {
1329
+ const conversationId = call.request.getConversationId()
1330
+ const pbChannelCardPayload = call.request.getChannelCard()?.toObject()
1331
+
1332
+ if (!pbChannelCardPayload) {
1333
+ return grpcError('messageSendChannelCard', new Error().stack, callback)
1334
+ }
1335
+ const payload: PUPPET.payloads.ChannelCard = {
1336
+ ...pbChannelCardPayload,
1337
+ }
1338
+
1339
+ const messageId = await puppet.messageSendChannelCard(conversationId, payload)
1340
+
1341
+ const response = new grpcPuppet.MessageSendChannelCardResponse()
1342
+
1343
+ if (messageId) {
1344
+ response.setId(messageId)
1345
+ }
1346
+
1347
+ return callback(null, response)
1348
+
1349
+ } catch (e) {
1350
+ return grpcError('messageSendChannelCard', e, callback)
1351
+ }
1352
+ },
1353
+
1304
1354
  messageSendPost: async (call, callback) => {
1305
1355
  log.verbose('PuppetServiceImpl', 'messageSendPost()')
1306
1356
 
@@ -90,6 +90,25 @@ export const channelPbToPayload = (channelPayloadPb: puppet.ChannelPayload) => {
90
90
  return channelPayload
91
91
  }
92
92
 
93
+ export const channelCardPayloadToPb = (grpcPuppet: grpcPuppet, channelCardPayload: PUPPET.payloads.ChannelCard) => {
94
+ const pbChannelCardPayload = new grpcPuppet.ChannelCardPayload()
95
+ if (channelCardPayload.avatar) { pbChannelCardPayload.setAvatar(channelCardPayload.avatar) }
96
+ if (channelCardPayload.extras) { pbChannelCardPayload.setExtras(channelCardPayload.extras) }
97
+ if (channelCardPayload.nickname) { pbChannelCardPayload.setNickname(channelCardPayload.nickname) }
98
+ if (channelCardPayload.url) { pbChannelCardPayload.setUrl(channelCardPayload.url) }
99
+ if (channelCardPayload.authIconUrl) { pbChannelCardPayload.setAuthIconUrl(channelCardPayload.authIconUrl) }
100
+ if (channelCardPayload.authJob) { pbChannelCardPayload.setAuthJob(channelCardPayload.authJob) }
101
+ return pbChannelCardPayload
102
+ }
103
+
104
+ export const channelCardPbToPayload = (channelCardPayloadPb: puppet.ChannelCardPayload) => {
105
+ const _channelCardPayloadPb = channelCardPayloadPb.toObject()
106
+ const channelCardPayload: PUPPET.payloads.ChannelCard = {
107
+ ..._channelCardPayloadPb,
108
+ }
109
+ return channelCardPayload
110
+ }
111
+
93
112
  export const postPayloadToPb = async (grpcPuppet: grpcPuppet, payload: PUPPET.payloads.PostClient, serializeFileBox: (filebox: FileBoxInterface) => Promise<string>) => {
94
113
  const pb = new grpcPuppet.PostPayloadClient()
95
114
  pb.setType(payload.type || 0)
@@ -293,6 +312,9 @@ export const chatHistoryPbToPayload = (FileBoxUuid: typeof FileBox, chatHistoryP
293
312
  case puppet.ChatHistoryContentType.CHAT_HISTORY:
294
313
  message = chatHistoryPbToPayload(FileBoxUuid, chatHistoryContent.getChatHistoryList()!)
295
314
  break
315
+ case puppet.ChatHistoryContentType.CHANNEL_CARD:
316
+ message = channelCardPbToPayload(chatHistoryContent.getChannelCard()!)
317
+ break
296
318
  default:
297
319
  throw new Error(`Invalid chat history content type: ${chatHistoryContent.getType()}`)
298
320
  }
@@ -364,6 +386,11 @@ export const chatHistoryPayloadToPb = async (grpcPuppet: grpcPuppet, chatHistory
364
386
  const pbChatHistoryPayload = await chatHistoryPayloadToPb(grpcPuppet, chatHistoryPayload.message, serializeFileBox)
365
387
  pbChatHistoryContent.setChatHistoryList(pbChatHistoryPayload)
366
388
  break
389
+ case PUPPET.types.Message.ChannelCard:
390
+ pbChatHistoryContent.setType(grpcPuppet.ChatHistoryContentType.CHANNEL_CARD)
391
+ const pbChannelCardPayload = channelCardPayloadToPb(grpcPuppet, chatHistoryPayload.message)
392
+ pbChatHistoryContent.setChannelCard(pbChannelCardPayload)
393
+ break
367
394
  default:
368
395
  throw new Error(`ChatHistoryContent unsupported type ${chatHistoryPayload.type}`)
369
396
  }