@juzi/wechaty-puppet-service 1.0.43 → 1.0.45

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 (141) hide show
  1. package/dist/cjs/src/client/puppet-service.d.ts +3 -4
  2. package/dist/cjs/src/client/puppet-service.d.ts.map +1 -1
  3. package/dist/cjs/src/client/puppet-service.js +80 -198
  4. package/dist/cjs/src/client/puppet-service.js.map +1 -1
  5. package/dist/cjs/src/package-json.d.ts.map +1 -1
  6. package/dist/cjs/src/package-json.js +4 -3
  7. package/dist/cjs/src/package-json.js.map +1 -1
  8. package/dist/cjs/src/server/puppet-implementation.d.ts.map +1 -1
  9. package/dist/cjs/src/server/puppet-implementation.js +41 -127
  10. package/dist/cjs/src/server/puppet-implementation.js.map +1 -1
  11. package/dist/cjs/src/utils/pb-payload-helper.d.ts +5 -2
  12. package/dist/cjs/src/utils/pb-payload-helper.d.ts.map +1 -1
  13. package/dist/cjs/src/utils/pb-payload-helper.js +146 -1
  14. package/dist/cjs/src/utils/pb-payload-helper.js.map +1 -1
  15. package/dist/esm/src/client/puppet-service.d.ts +3 -4
  16. package/dist/esm/src/client/puppet-service.d.ts.map +1 -1
  17. package/dist/esm/src/client/puppet-service.js +78 -196
  18. package/dist/esm/src/client/puppet-service.js.map +1 -1
  19. package/dist/esm/src/package-json.d.ts.map +1 -1
  20. package/dist/esm/src/package-json.js +4 -3
  21. package/dist/esm/src/package-json.js.map +1 -1
  22. package/dist/esm/src/server/puppet-implementation.d.ts.map +1 -1
  23. package/dist/esm/src/server/puppet-implementation.js +40 -126
  24. package/dist/esm/src/server/puppet-implementation.js.map +1 -1
  25. package/dist/esm/src/utils/pb-payload-helper.d.ts +5 -2
  26. package/dist/esm/src/utils/pb-payload-helper.d.ts.map +1 -1
  27. package/dist/esm/src/utils/pb-payload-helper.js +120 -0
  28. package/dist/esm/src/utils/pb-payload-helper.js.map +1 -1
  29. package/package.json +4 -3
  30. package/src/client/puppet-service.ts +97 -214
  31. package/src/package-json.ts +4 -3
  32. package/src/server/puppet-implementation.ts +50 -144
  33. package/src/utils/pb-payload-helper.ts +119 -2
  34. package/dist/cjs/src/deprecated/chunk-pb.d.ts +0 -15
  35. package/dist/cjs/src/deprecated/chunk-pb.d.ts.map +0 -1
  36. package/dist/cjs/src/deprecated/chunk-pb.js +0 -60
  37. package/dist/cjs/src/deprecated/chunk-pb.js.map +0 -1
  38. package/dist/cjs/src/deprecated/chunk-pb.spec.d.ts +0 -3
  39. package/dist/cjs/src/deprecated/chunk-pb.spec.d.ts.map +0 -1
  40. package/dist/cjs/src/deprecated/chunk-pb.spec.js +0 -144
  41. package/dist/cjs/src/deprecated/chunk-pb.spec.js.map +0 -1
  42. package/dist/cjs/src/deprecated/conversation-id-file-box.d.ts +0 -21
  43. package/dist/cjs/src/deprecated/conversation-id-file-box.d.ts.map +0 -1
  44. package/dist/cjs/src/deprecated/conversation-id-file-box.js +0 -43
  45. package/dist/cjs/src/deprecated/conversation-id-file-box.js.map +0 -1
  46. package/dist/cjs/src/deprecated/conversation-id-file-box.spec.d.ts +0 -3
  47. package/dist/cjs/src/deprecated/conversation-id-file-box.spec.d.ts.map +0 -1
  48. package/dist/cjs/src/deprecated/conversation-id-file-box.spec.js +0 -94
  49. package/dist/cjs/src/deprecated/conversation-id-file-box.spec.js.map +0 -1
  50. package/dist/cjs/src/deprecated/file-box-chunk.d.ts +0 -14
  51. package/dist/cjs/src/deprecated/file-box-chunk.d.ts.map +0 -1
  52. package/dist/cjs/src/deprecated/file-box-chunk.js +0 -67
  53. package/dist/cjs/src/deprecated/file-box-chunk.js.map +0 -1
  54. package/dist/cjs/src/deprecated/file-box-chunk.spec.d.ts +0 -3
  55. package/dist/cjs/src/deprecated/file-box-chunk.spec.d.ts.map +0 -1
  56. package/dist/cjs/src/deprecated/file-box-chunk.spec.js +0 -134
  57. package/dist/cjs/src/deprecated/file-box-chunk.spec.js.map +0 -1
  58. package/dist/cjs/src/deprecated/file-box-pb.d.ts +0 -15
  59. package/dist/cjs/src/deprecated/file-box-pb.d.ts.map +0 -1
  60. package/dist/cjs/src/deprecated/file-box-pb.js +0 -26
  61. package/dist/cjs/src/deprecated/file-box-pb.js.map +0 -1
  62. package/dist/cjs/src/deprecated/file-box-pb.spec.d.ts +0 -3
  63. package/dist/cjs/src/deprecated/file-box-pb.spec.d.ts.map +0 -1
  64. package/dist/cjs/src/deprecated/file-box-pb.spec.js +0 -18
  65. package/dist/cjs/src/deprecated/file-box-pb.spec.js.map +0 -1
  66. package/dist/cjs/src/deprecated/file-box-pb.type.d.ts +0 -15
  67. package/dist/cjs/src/deprecated/file-box-pb.type.d.ts.map +0 -1
  68. package/dist/cjs/src/deprecated/file-box-pb.type.js +0 -3
  69. package/dist/cjs/src/deprecated/file-box-pb.type.js.map +0 -1
  70. package/dist/cjs/src/deprecated/mod.d.ts +0 -3
  71. package/dist/cjs/src/deprecated/mod.d.ts.map +0 -1
  72. package/dist/cjs/src/deprecated/mod.js +0 -10
  73. package/dist/cjs/src/deprecated/mod.js.map +0 -1
  74. package/dist/cjs/src/deprecated/next-data.d.ts +0 -7
  75. package/dist/cjs/src/deprecated/next-data.d.ts.map +0 -1
  76. package/dist/cjs/src/deprecated/next-data.js +0 -26
  77. package/dist/cjs/src/deprecated/next-data.js.map +0 -1
  78. package/dist/cjs/src/deprecated/serialize-file-box.d.ts +0 -6
  79. package/dist/cjs/src/deprecated/serialize-file-box.d.ts.map +0 -1
  80. package/dist/cjs/src/deprecated/serialize-file-box.js +0 -22
  81. package/dist/cjs/src/deprecated/serialize-file-box.js.map +0 -1
  82. package/dist/esm/src/deprecated/chunk-pb.d.ts +0 -15
  83. package/dist/esm/src/deprecated/chunk-pb.d.ts.map +0 -1
  84. package/dist/esm/src/deprecated/chunk-pb.js +0 -56
  85. package/dist/esm/src/deprecated/chunk-pb.js.map +0 -1
  86. package/dist/esm/src/deprecated/chunk-pb.spec.d.ts +0 -3
  87. package/dist/esm/src/deprecated/chunk-pb.spec.d.ts.map +0 -1
  88. package/dist/esm/src/deprecated/chunk-pb.spec.js +0 -142
  89. package/dist/esm/src/deprecated/chunk-pb.spec.js.map +0 -1
  90. package/dist/esm/src/deprecated/conversation-id-file-box.d.ts +0 -21
  91. package/dist/esm/src/deprecated/conversation-id-file-box.d.ts.map +0 -1
  92. package/dist/esm/src/deprecated/conversation-id-file-box.js +0 -39
  93. package/dist/esm/src/deprecated/conversation-id-file-box.js.map +0 -1
  94. package/dist/esm/src/deprecated/conversation-id-file-box.spec.d.ts +0 -3
  95. package/dist/esm/src/deprecated/conversation-id-file-box.spec.d.ts.map +0 -1
  96. package/dist/esm/src/deprecated/conversation-id-file-box.spec.js +0 -92
  97. package/dist/esm/src/deprecated/conversation-id-file-box.spec.js.map +0 -1
  98. package/dist/esm/src/deprecated/file-box-chunk.d.ts +0 -14
  99. package/dist/esm/src/deprecated/file-box-chunk.d.ts.map +0 -1
  100. package/dist/esm/src/deprecated/file-box-chunk.js +0 -63
  101. package/dist/esm/src/deprecated/file-box-chunk.js.map +0 -1
  102. package/dist/esm/src/deprecated/file-box-chunk.spec.d.ts +0 -3
  103. package/dist/esm/src/deprecated/file-box-chunk.spec.d.ts.map +0 -1
  104. package/dist/esm/src/deprecated/file-box-chunk.spec.js +0 -132
  105. package/dist/esm/src/deprecated/file-box-chunk.spec.js.map +0 -1
  106. package/dist/esm/src/deprecated/file-box-pb.d.ts +0 -15
  107. package/dist/esm/src/deprecated/file-box-pb.d.ts.map +0 -1
  108. package/dist/esm/src/deprecated/file-box-pb.js +0 -22
  109. package/dist/esm/src/deprecated/file-box-pb.js.map +0 -1
  110. package/dist/esm/src/deprecated/file-box-pb.spec.d.ts +0 -3
  111. package/dist/esm/src/deprecated/file-box-pb.spec.d.ts.map +0 -1
  112. package/dist/esm/src/deprecated/file-box-pb.spec.js +0 -16
  113. package/dist/esm/src/deprecated/file-box-pb.spec.js.map +0 -1
  114. package/dist/esm/src/deprecated/file-box-pb.type.d.ts +0 -15
  115. package/dist/esm/src/deprecated/file-box-pb.type.d.ts.map +0 -1
  116. package/dist/esm/src/deprecated/file-box-pb.type.js +0 -2
  117. package/dist/esm/src/deprecated/file-box-pb.type.js.map +0 -1
  118. package/dist/esm/src/deprecated/mod.d.ts +0 -3
  119. package/dist/esm/src/deprecated/mod.d.ts.map +0 -1
  120. package/dist/esm/src/deprecated/mod.js +0 -3
  121. package/dist/esm/src/deprecated/mod.js.map +0 -1
  122. package/dist/esm/src/deprecated/next-data.d.ts +0 -7
  123. package/dist/esm/src/deprecated/next-data.d.ts.map +0 -1
  124. package/dist/esm/src/deprecated/next-data.js +0 -23
  125. package/dist/esm/src/deprecated/next-data.js.map +0 -1
  126. package/dist/esm/src/deprecated/serialize-file-box.d.ts +0 -6
  127. package/dist/esm/src/deprecated/serialize-file-box.d.ts.map +0 -1
  128. package/dist/esm/src/deprecated/serialize-file-box.js +0 -18
  129. package/dist/esm/src/deprecated/serialize-file-box.js.map +0 -1
  130. package/src/deprecated/chunk-pb.spec.ts +0 -210
  131. package/src/deprecated/chunk-pb.ts +0 -75
  132. package/src/deprecated/conversation-id-file-box.spec.ts +0 -131
  133. package/src/deprecated/conversation-id-file-box.ts +0 -72
  134. package/src/deprecated/file-box-chunk.spec.ts +0 -184
  135. package/src/deprecated/file-box-chunk.ts +0 -87
  136. package/src/deprecated/file-box-pb.spec.ts +0 -31
  137. package/src/deprecated/file-box-pb.ts +0 -41
  138. package/src/deprecated/file-box-pb.type.ts +0 -16
  139. package/src/deprecated/mod.ts +0 -8
  140. package/src/deprecated/next-data.ts +0 -35
  141. package/src/deprecated/serialize-file-box.ts +0 -24
@@ -25,11 +25,6 @@ import { Ducks,
25
25
  // Bundle,
26
26
  } from 'ducks';
27
27
  // import type { Subscription } from 'rxjs'
28
- /**
29
- * Deprecated. Will be removed after Dec 31, 2022
30
- */
31
- import { packConversationIdFileBoxToPb, unpackFileBoxFromPb, } from '../deprecated/mod.js';
32
- import { serializeFileBox } from '../deprecated/serialize-file-box.js';
33
28
  import { millisecondsFromTimestamp } from '../pure-functions/timestamp.js';
34
29
  import { uuidifyFileBoxGrpc, normalizeFileBoxUuid, } from '../file-box-helper/mod.js';
35
30
  import { envVars, log, NO_LOG_EVENTS, VERSION, } from '../config.js';
@@ -37,7 +32,7 @@ import { EventTypeRev, } from '../event-type-rev.js';
37
32
  import { packageJson } from '../package-json.js';
38
33
  import { GrpcManager } from './grpc-manager.js';
39
34
  import { PayloadStore } from './payload-store.js';
40
- import { channelPayloadToPb, channelPbToPayload, urlLinkPayloadToPb, urlLinkPbToPayload } from '../utils/pb-payload-helper.js';
35
+ import { channelPayloadToPb, channelPbToPayload, postPayloadToPb, urlLinkPbToPayload } from '../utils/pb-payload-helper.js';
41
36
  class PuppetService extends PUPPET.Puppet {
42
37
  options;
43
38
  static VERSION = VERSION;
@@ -441,12 +436,6 @@ class PuppetService extends PUPPET.Puppet {
441
436
  request.setId(contactId);
442
437
  const serializedFileBox = await this.serializeFileBox(fileBox);
443
438
  request.setFileBox(serializedFileBox);
444
- {
445
- // DEPRECATED, will be removed after Dec 31, 2022
446
- const fileboxWrapper = new StringValue();
447
- fileboxWrapper.setValue(await serializeFileBox(fileBox));
448
- request.setFileboxStringValueDeprecated(fileboxWrapper);
449
- }
450
439
  await util.promisify(this.grpcManager.client.contactAvatar
451
440
  .bind(this.grpcManager.client))(request);
452
441
  return;
@@ -532,58 +521,58 @@ class PuppetService extends PUPPET.Puppet {
532
521
  if (payload.id) {
533
522
  throw new Error('cannot modify contactId');
534
523
  }
535
- if (payload.gender) {
524
+ if (typeof payload.gender !== 'undefined') {
536
525
  request.setGender(payload.gender);
537
526
  }
538
- if (payload.type) {
527
+ if (typeof payload.type !== 'undefined') {
539
528
  request.setType(payload.type);
540
529
  }
541
- if (payload.name) {
530
+ if (typeof payload.name !== 'undefined') {
542
531
  request.setName(payload.name);
543
532
  }
544
- if (payload.avatar) {
533
+ if (typeof payload.avatar !== 'undefined') {
545
534
  request.setAvatar(payload.avatar);
546
535
  }
547
- if (payload.address) {
536
+ if (typeof payload.address !== 'undefined') {
548
537
  request.setAddress(payload.address);
549
538
  }
550
- if (payload.alias) {
539
+ if (typeof payload.alias !== 'undefined') {
551
540
  request.setAlias(payload.alias);
552
541
  }
553
- if (payload.city) {
542
+ if (typeof payload.city !== 'undefined') {
554
543
  request.setCity(payload.city);
555
544
  }
556
- if (payload.friend) {
545
+ if (typeof payload.friend !== 'undefined') {
557
546
  request.setFriend(payload.friend);
558
547
  }
559
- if (payload.province) {
548
+ if (typeof payload.province !== 'undefined') {
560
549
  request.setProvince(payload.province);
561
550
  }
562
- if (payload.star) {
551
+ if (typeof payload.star !== 'undefined') {
563
552
  request.setStar(payload.star);
564
553
  }
565
- if (payload.weixin) {
554
+ if (typeof payload.weixin !== 'undefined') {
566
555
  request.setWeixin(payload.weixin);
567
556
  }
568
- if (payload.corporation) {
557
+ if (typeof payload.corporation !== 'undefined') {
569
558
  request.setCorporation(payload.corporation);
570
559
  }
571
- if (payload.title) {
560
+ if (typeof payload.title !== 'undefined') {
572
561
  request.setTitle(payload.title);
573
562
  }
574
- if (payload.description) {
563
+ if (typeof payload.description !== 'undefined') {
575
564
  request.setDescription(payload.description);
576
565
  }
577
- if (payload.coworker) {
566
+ if (typeof payload.coworker !== 'undefined') {
578
567
  request.setCoworker(payload.coworker);
579
568
  }
580
- if (payload.phone) {
569
+ if (typeof payload.phone !== 'undefined') {
581
570
  request.setPhonesList(payload.phone);
582
571
  }
583
- if (payload.additionalInfo) {
572
+ if (typeof payload.additionalInfo !== 'undefined') {
584
573
  request.setAdditionalInfo(payload.additionalInfo);
585
574
  }
586
- if (payload.tags) {
575
+ if (typeof payload.tags !== 'undefined') {
587
576
  request.setTagIdsList(payload.tags);
588
577
  }
589
578
  await util.promisify(this.grpcManager.client.contactPayloadModify
@@ -671,31 +660,16 @@ class PuppetService extends PUPPET.Puppet {
671
660
  }
672
661
  async messageImage(messageId, imageType) {
673
662
  log.verbose('PuppetService', 'messageImage(%s, %s[%s])', messageId, imageType, PUPPET.types.Image[imageType]);
674
- try {
675
- const request = new grpcPuppet.MessageImageRequest();
676
- request.setId(messageId);
677
- request.setType(imageType);
678
- const response = await util.promisify(this.grpcManager.client.messageImage
679
- .bind(this.grpcManager.client))(request);
680
- const jsonText = response.getFileBox();
681
- if (jsonText) {
682
- return this.FileBoxUuid.fromJSON(jsonText);
683
- }
684
- }
685
- catch (e) {
686
- log.verbose('PuppetService', 'messageImage() rejection %s', e.message);
687
- }
688
- {
689
- // Deprecated. Will be removed after Dec 31, 2022
690
- const request = new grpcPuppet.MessageImageStreamRequest();
691
- request.setId(messageId);
692
- request.setType(imageType);
693
- const pbStream = this.grpcManager.client.messageImageStream(request);
694
- const fileBox = await unpackFileBoxFromPb(pbStream);
695
- // const fileBoxChunkStream = unpackFileBoxChunk(stream)
696
- // return unpackFileBox(fileBoxChunkStream)
697
- return fileBox;
663
+ const request = new grpcPuppet.MessageImageRequest();
664
+ request.setId(messageId);
665
+ request.setType(imageType);
666
+ const response = await util.promisify(this.grpcManager.client.messageImage
667
+ .bind(this.grpcManager.client))(request);
668
+ const jsonText = response.getFileBox();
669
+ if (jsonText) {
670
+ return this.FileBoxUuid.fromJSON(jsonText);
698
671
  }
672
+ throw new Error(`failed to get image filebox for message ${messageId}`);
699
673
  }
700
674
  async messageContact(messageId) {
701
675
  log.verbose('PuppetService', 'messageContact(%s)', messageId);
@@ -815,36 +789,15 @@ class PuppetService extends PUPPET.Puppet {
815
789
  }
816
790
  async messageFile(id) {
817
791
  log.verbose('PuppetService', 'messageFile(%s)', id);
818
- try {
819
- const request = new grpcPuppet.MessageFileRequest();
820
- request.setId(id);
821
- const response = await util.promisify(this.grpcManager.client.messageFile
822
- .bind(this.grpcManager.client))(request);
823
- const jsonText = response.getFileBox();
824
- if (jsonText) {
825
- return this.FileBoxUuid.fromJSON(jsonText);
826
- }
827
- }
828
- catch (e) {
829
- log.warn('PuppetService', 'messageFile() rejection: %s', e.message);
830
- log.warn('PuppetService', [
831
- 'This might because you are using Wechaty v1.x with a Puppet Service v0.x',
832
- 'Contact your Wechaty Puppet Service provided to report this problem',
833
- 'Related issues:',
834
- ' - https://github.com/wechaty/puppet-service/issues/179',
835
- ' - https://github.com/wechaty/puppet-service/pull/170',
836
- ].join('\n'));
837
- }
838
- {
839
- // Deprecated. `MessageFileStream` Will be removed after Dec 31, 2022
840
- const request = new grpcPuppet.MessageFileStreamRequest();
841
- request.setId(id);
842
- const pbStream = this.grpcManager.client.messageFileStream(request);
843
- // const fileBoxChunkStream = unpackFileBoxChunk(pbStream)
844
- // return unpackFileBox(fileBoxChunkStream)
845
- const fileBox = await unpackFileBoxFromPb(pbStream);
846
- return fileBox;
792
+ const request = new grpcPuppet.MessageFileRequest();
793
+ request.setId(id);
794
+ const response = await util.promisify(this.grpcManager.client.messageFile
795
+ .bind(this.grpcManager.client))(request);
796
+ const jsonText = response.getFileBox();
797
+ if (jsonText) {
798
+ return this.FileBoxUuid.fromJSON(jsonText);
847
799
  }
800
+ throw new Error(`failed to get filebox for message ${id}`);
848
801
  }
849
802
  async messagePreview(id) {
850
803
  log.verbose('PuppetService', 'messagePreview(%s)', id);
@@ -963,40 +916,27 @@ class PuppetService extends PUPPET.Puppet {
963
916
  }
964
917
  async messageSendFile(conversationId, fileBox) {
965
918
  log.verbose('PuppetService', 'messageSendFile(%s, %s)', conversationId, fileBox);
966
- try {
967
- const request = new grpcPuppet.MessageSendFileRequest();
968
- request.setConversationId(conversationId);
969
- const serializedFileBox = await this.serializeFileBox(fileBox);
970
- request.setFileBox(serializedFileBox);
971
- log.info('PuppetService', `messageSendFile(${conversationId}, ${fileBox}) about to call grpc`);
972
- const response = await util.promisify(this.grpcManager.client.messageSendFile
973
- .bind(this.grpcManager.client))(request);
974
- const messageId = response.getId();
975
- log.info('PuppetService', `messageSendFile(${conversationId}, ${fileBox}) grpc called, messageId: ${messageId}`);
976
- if (messageId) {
977
- return messageId;
978
- }
979
- else {
980
- /**
981
- * Huan(202110): Deprecated: will be removed after Dec 31, 2022
982
- */
983
- const messageIdWrapper = response.getIdStringValueDeprecated();
984
- if (messageIdWrapper) {
985
- return messageIdWrapper.getValue();
986
- }
987
- }
988
- return; // void
919
+ const request = new grpcPuppet.MessageSendFileRequest();
920
+ request.setConversationId(conversationId);
921
+ const serializedFileBox = await this.serializeFileBox(fileBox);
922
+ request.setFileBox(serializedFileBox);
923
+ log.info('PuppetService', `messageSendFile(${conversationId}, ${fileBox}) about to call grpc`);
924
+ const response = await util.promisify(this.grpcManager.client.messageSendFile
925
+ .bind(this.grpcManager.client))(request);
926
+ const messageId = response.getId();
927
+ log.info('PuppetService', `messageSendFile(${conversationId}, ${fileBox}) grpc called, messageId: ${messageId}`);
928
+ if (messageId) {
929
+ return messageId;
989
930
  }
990
- catch (e) {
991
- log.verbose('PuppetService', 'messageSendFile() rejection: %s', e.message);
931
+ else {
932
+ /**
933
+ * Huan(202110): Deprecated: will be removed after Dec 31, 2022
934
+ */
935
+ const messageIdWrapper = response.getIdStringValueDeprecated();
936
+ if (messageIdWrapper) {
937
+ return messageIdWrapper.getValue();
938
+ }
992
939
  }
993
- /**
994
- * Huan(202110): Deprecated: will be removed after Dec 31, 2022
995
- * The old server will not support `Upload` gRPC method,
996
- * which I'm expecting the above code will throw a exception,
997
- * then the below code will be executed.
998
- */
999
- return this.messageSendFileStream(conversationId, fileBox);
1000
940
  }
1001
941
  async messageSendContact(conversationId, contactId) {
1002
942
  log.verbose('PuppetService', 'messageSend("%s", %s)', conversationId, contactId);
@@ -1074,6 +1014,28 @@ class PuppetService extends PUPPET.Puppet {
1074
1014
  };
1075
1015
  return payload;
1076
1016
  }
1017
+ async getMessageBroadcastTarget() {
1018
+ log.verbose('PuppetService', 'getMessageBroadcastTarget()');
1019
+ const request = new grpcPuppet.GetMessageBroadcastTargetRequest();
1020
+ const response = await util.promisify(this.grpcManager.client.getMessageBroadcastTarget.bind(this.grpcManager.client))(request);
1021
+ return {
1022
+ contactIds: response.getContactIdsList(),
1023
+ roomIds: response.getRoomIdsList(),
1024
+ };
1025
+ }
1026
+ async createMessageBroadcast(targets, type, content) {
1027
+ log.verbose('PuppetService', 'createMessageBroadcast()');
1028
+ if (!PUPPET.payloads.isPostClient(content)) {
1029
+ throw new Error('can only create broadcast with client post');
1030
+ }
1031
+ const request = new grpcPuppet.CreateMessageBroadcastRequest();
1032
+ const post = await postPayloadToPb(grpcPuppet, content, this.serializeFileBox.bind(this));
1033
+ request.setContent(post);
1034
+ request.setTargetIdsList(targets);
1035
+ request.setType(type);
1036
+ const response = await util.promisify(this.grpcManager.client.createMessageBroadcast.bind(this.grpcManager.client))(request);
1037
+ return response.getId();
1038
+ }
1077
1039
  /**
1078
1040
  *
1079
1041
  * Room
@@ -1617,57 +1579,7 @@ class PuppetService extends PUPPET.Puppet {
1617
1579
  throw new Error('can only publish client post now');
1618
1580
  }
1619
1581
  const request = new grpcPuppet.MomentPublishRequest();
1620
- const post = new grpcPuppet.PostPayloadClient();
1621
- post.setType(grpcPuppet.PostType.POST_TYPE_MOMENT);
1622
- for (const item of payload.sayableList) {
1623
- const sayable = new grpcPuppet.PostSayable();
1624
- switch (item.type) {
1625
- case PUPPET.types.Sayable.Text:
1626
- sayable.setType(grpcPuppet.SayableType.SAYABLE_TYPE_TEXT);
1627
- sayable.setText(item.payload.text);
1628
- sayable.setMentionIdListList(item.payload.mentions);
1629
- break;
1630
- case PUPPET.types.Sayable.Attachment: {
1631
- sayable.setType(grpcPuppet.SayableType.SAYABLE_TYPE_FILE);
1632
- const serializedFileBox = typeof item.payload.filebox === 'string' ? item.payload.filebox : await this.serializeFileBox(item.payload.filebox);
1633
- sayable.setFileBox(serializedFileBox);
1634
- break;
1635
- }
1636
- case PUPPET.types.Sayable.Url: {
1637
- sayable.setType(grpcPuppet.SayableType.SAYABLE_TYPE_URL);
1638
- const urlLinkPayload = item.payload;
1639
- const pbUrlLinkPayload = urlLinkPayloadToPb(grpcPuppet, urlLinkPayload);
1640
- sayable.setUrlLink(pbUrlLinkPayload);
1641
- break;
1642
- }
1643
- case PUPPET.types.Sayable.Channel: {
1644
- sayable.setType(grpcPuppet.SayableType.SAYABLE_TYPE_CHANNEL);
1645
- const channelPayload = item.payload;
1646
- const pbChannelPayload = channelPayloadToPb(grpcPuppet, channelPayload);
1647
- sayable.setChannel(pbChannelPayload);
1648
- break;
1649
- }
1650
- default:
1651
- throw new Error(`postPublish unsupported type ${item.type}`);
1652
- }
1653
- post.addSayableList(sayable);
1654
- }
1655
- if (payload.rootId) {
1656
- post.setRootId(payload.rootId);
1657
- }
1658
- if (payload.parentId) {
1659
- post.setParentId(payload.parentId);
1660
- }
1661
- if (payload.location) {
1662
- const location = new grpcPuppet.LocationPayload();
1663
- location.setAccuracy(payload.location.accuracy);
1664
- location.setAddress(payload.location.address);
1665
- location.setName(payload.location.name);
1666
- location.setLatitude(payload.location.latitude);
1667
- location.setLongitude(payload.location.longitude);
1668
- post.setLocation(location);
1669
- }
1670
- post.setVisibleListList(payload.visibleList || []);
1582
+ const post = await postPayloadToPb(grpcPuppet, payload, this.serializeFileBox.bind(this));
1671
1583
  request.setPost(post);
1672
1584
  const result = await util.promisify(this.grpcManager.client.momentPublish
1673
1585
  .bind(this.grpcManager.client))(request);
@@ -1820,36 +1732,6 @@ class PuppetService extends PUPPET.Puppet {
1820
1732
  const contactIdsList = response.getContactIdsList();
1821
1733
  return contactIdsList;
1822
1734
  }
1823
- /**
1824
- * @deprecated Will be removed in v2.0
1825
- */
1826
- async messageSendFileStream(conversationId, file) {
1827
- const request = await packConversationIdFileBoxToPb(grpcPuppet.MessageSendFileStreamRequest)(conversationId, file);
1828
- const response = await new Promise((resolve, reject) => {
1829
- const stream = this.grpcManager.client.messageSendFileStream((err, response) => {
1830
- if (err) {
1831
- reject(err);
1832
- }
1833
- else {
1834
- resolve(response);
1835
- }
1836
- });
1837
- request.pipe(stream); // Huan(202203): FIXME: as unknown as
1838
- });
1839
- const messageId = response.getId();
1840
- if (messageId) {
1841
- return messageId;
1842
- }
1843
- {
1844
- /**
1845
- * Huan(202110): Deprecated: will be removed after Dec 31, 2022
1846
- */
1847
- const messageIdWrapper = response.getIdStringValueDeprecated();
1848
- if (messageIdWrapper) {
1849
- return messageIdWrapper.getValue();
1850
- }
1851
- }
1852
- }
1853
1735
  healthCheckInterval;
1854
1736
  startHealthCheck() {
1855
1737
  this.healthCheckInterval = setInterval(() => {