@juzi/wechaty 1.0.149 → 1.0.155

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 (88) hide show
  1. package/dist/cjs/src/mods/impls.d.ts +3 -3
  2. package/dist/cjs/src/mods/impls.d.ts.map +1 -1
  3. package/dist/cjs/src/mods/impls.js +2 -1
  4. package/dist/cjs/src/mods/impls.js.map +1 -1
  5. package/dist/cjs/src/mods/users.d.ts +1 -1
  6. package/dist/cjs/src/mods/users.d.ts.map +1 -1
  7. package/dist/cjs/src/package-json.js +4 -4
  8. package/dist/cjs/src/user-modules/message.d.ts +15 -0
  9. package/dist/cjs/src/user-modules/message.d.ts.map +1 -1
  10. package/dist/cjs/src/user-modules/message.js +20 -0
  11. package/dist/cjs/src/user-modules/message.js.map +1 -1
  12. package/dist/cjs/src/user-modules/mod.d.ts +4 -3
  13. package/dist/cjs/src/user-modules/mod.d.ts.map +1 -1
  14. package/dist/cjs/src/user-modules/mod.js +3 -1
  15. package/dist/cjs/src/user-modules/mod.js.map +1 -1
  16. package/dist/cjs/src/user-modules/voice.d.ts +72 -0
  17. package/dist/cjs/src/user-modules/voice.d.ts.map +1 -0
  18. package/dist/cjs/src/user-modules/voice.js +116 -0
  19. package/dist/cjs/src/user-modules/voice.js.map +1 -0
  20. package/dist/cjs/src/user-modules/voice.spec.d.ts +3 -0
  21. package/dist/cjs/src/user-modules/voice.spec.d.ts.map +1 -0
  22. package/dist/cjs/src/user-modules/voice.spec.js +155 -0
  23. package/dist/cjs/src/user-modules/voice.spec.js.map +1 -0
  24. package/dist/cjs/src/wechaty/wechaty-base.d.ts +10 -0
  25. package/dist/cjs/src/wechaty/wechaty-base.d.ts.map +1 -1
  26. package/dist/cjs/src/wechaty/wechaty-impl.spec.js +25 -23
  27. package/dist/cjs/src/wechaty/wechaty-impl.spec.js.map +1 -1
  28. package/dist/cjs/src/wechaty-mixins/login-mixin.d.ts +12 -0
  29. package/dist/cjs/src/wechaty-mixins/login-mixin.d.ts.map +1 -1
  30. package/dist/cjs/src/wechaty-mixins/misc-mixin.d.ts +6 -0
  31. package/dist/cjs/src/wechaty-mixins/misc-mixin.d.ts.map +1 -1
  32. package/dist/cjs/src/wechaty-mixins/plugin-mixin.d.ts +8 -12
  33. package/dist/cjs/src/wechaty-mixins/plugin-mixin.d.ts.map +1 -1
  34. package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts +4 -0
  35. package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -1
  36. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.d.ts +4 -2
  37. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.d.ts.map +1 -1
  38. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.js +3 -0
  39. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.js.map +1 -1
  40. package/dist/esm/src/mods/impls.d.ts +3 -3
  41. package/dist/esm/src/mods/impls.d.ts.map +1 -1
  42. package/dist/esm/src/mods/impls.js +1 -1
  43. package/dist/esm/src/mods/impls.js.map +1 -1
  44. package/dist/esm/src/mods/users.d.ts +1 -1
  45. package/dist/esm/src/mods/users.d.ts.map +1 -1
  46. package/dist/esm/src/package-json.js +4 -4
  47. package/dist/esm/src/user-modules/message.d.ts +15 -0
  48. package/dist/esm/src/user-modules/message.d.ts.map +1 -1
  49. package/dist/esm/src/user-modules/message.js +20 -0
  50. package/dist/esm/src/user-modules/message.js.map +1 -1
  51. package/dist/esm/src/user-modules/mod.d.ts +4 -3
  52. package/dist/esm/src/user-modules/mod.d.ts.map +1 -1
  53. package/dist/esm/src/user-modules/mod.js +2 -1
  54. package/dist/esm/src/user-modules/mod.js.map +1 -1
  55. package/dist/esm/src/user-modules/voice.d.ts +72 -0
  56. package/dist/esm/src/user-modules/voice.d.ts.map +1 -0
  57. package/dist/esm/src/user-modules/voice.js +113 -0
  58. package/dist/esm/src/user-modules/voice.js.map +1 -0
  59. package/dist/esm/src/user-modules/voice.spec.d.ts +3 -0
  60. package/dist/esm/src/user-modules/voice.spec.d.ts.map +1 -0
  61. package/dist/esm/src/user-modules/voice.spec.js +153 -0
  62. package/dist/esm/src/user-modules/voice.spec.js.map +1 -0
  63. package/dist/esm/src/wechaty/wechaty-base.d.ts +10 -0
  64. package/dist/esm/src/wechaty/wechaty-base.d.ts.map +1 -1
  65. package/dist/esm/src/wechaty/wechaty-impl.spec.js +25 -23
  66. package/dist/esm/src/wechaty/wechaty-impl.spec.js.map +1 -1
  67. package/dist/esm/src/wechaty-mixins/login-mixin.d.ts +12 -0
  68. package/dist/esm/src/wechaty-mixins/login-mixin.d.ts.map +1 -1
  69. package/dist/esm/src/wechaty-mixins/misc-mixin.d.ts +6 -0
  70. package/dist/esm/src/wechaty-mixins/misc-mixin.d.ts.map +1 -1
  71. package/dist/esm/src/wechaty-mixins/plugin-mixin.d.ts +8 -12
  72. package/dist/esm/src/wechaty-mixins/plugin-mixin.d.ts.map +1 -1
  73. package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts +4 -0
  74. package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -1
  75. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.d.ts +4 -2
  76. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.d.ts.map +1 -1
  77. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.js +4 -1
  78. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.js.map +1 -1
  79. package/package.json +3 -3
  80. package/src/mods/impls.ts +3 -0
  81. package/src/mods/users.ts +1 -0
  82. package/src/package-json.ts +4 -4
  83. package/src/user-modules/message.ts +24 -0
  84. package/src/user-modules/mod.ts +8 -0
  85. package/src/user-modules/voice.spec.ts +187 -0
  86. package/src/user-modules/voice.ts +159 -0
  87. package/src/wechaty/wechaty-impl.spec.ts +3 -0
  88. package/src/wechaty-mixins/wechatify-user-module-mixin.ts +6 -0
@@ -22,6 +22,7 @@ import { ContactSelfImpl, ContactSelfInterface, ContactSelfConstructor } from '.
22
22
  import { FavoriteImpl, FavoriteInterface, FavoriteConstructor } from './favorite.js';
23
23
  import { FriendshipImpl, FriendshipInterface, FriendshipConstructor } from './friendship.js';
24
24
  import { ImageImpl, ImageInterface, ImageConstructor } from './image.js';
25
+ import { VoiceImpl, VoiceInterface, VoiceConstructor } from './voice.js';
25
26
  import { LocationImpl, LocationInterface, LocationConstructor } from './location.js';
26
27
  import { MessageImpl, MessageInterface, MessageConstructor } from './message.js';
27
28
  import { MiniProgramImpl, MiniProgramInterface, MiniProgramConstructor } from './mini-program.js';
@@ -47,7 +48,7 @@ import { WxxdProductImpl, WxxdProductInterface, WxxdProductConstructor } from '.
47
48
  import { WxxdOrderImpl, WxxdOrderInterface, WxxdOrderConstructor } from './wxxd-order.js';
48
49
  import { wechatifyUserModule } from '../user-mixins/wechatify.js';
49
50
  export type { CallStatus, CallDirection, } from './call.js';
50
- export type { CallInterface, ContactInterface, ContactSelfInterface, FavoriteInterface, FriendshipInterface, ImageInterface, LocationInterface, MessageInterface, MiniProgramInterface, MomentInterface, MoneyInterface, PostInterface, RoomInterface, RoomInvitationInterface, TagInterface, TagGroupInterface, DelayInterface, UrlLinkInterface, ChannelInterface, ChannelCardInterface, ConsultCardInterface, PremiumOnlineAppointmentCardInterface, CallRecordInterface, ChatHistoryInterface, WecomInterface, DouyinOneClickPhoneCollectionInterface, ImSpecificInterface, WxxdProductInterface, WxxdOrderInterface, };
51
- export type { CallConstructor, ContactConstructor, ContactSelfConstructor, FavoriteConstructor, FriendshipConstructor, ImageConstructor, LocationConstructor, MessageConstructor, MiniProgramConstructor, MomentConstructor, MoneyConstructor, PostConstructor, RoomConstructor, RoomInvitationConstructor, DelayConstructor, TagConstructor, TagGroupConstructor, UrlLinkConstructor, ChannelConstructor, ChannelCardConstructor, ConsultCardConstructor, PremiumOnlineAppointmentCardConstructor, CallRecordConstructor, ChatHistoryConstructor, WecomConstructor, DouyinOneClickPhoneCollectionConstructor, ImSpecificConstructor, WxxdProductConstructor, WxxdOrderConstructor, };
52
- export { wechatifyUserModule, CallImpl, ContactImpl, ContactSelfImpl, FavoriteImpl, FriendshipImpl, ImageImpl, LocationImpl, MessageImpl, MiniProgramImpl, MomentImpl, MoneyImpl, PostImpl, RoomImpl, RoomInvitationImpl, DelayImpl, TagImpl, TagGroupImpl, UrlLinkImpl, ChannelImpl, ChannelCardImpl, ConsultCardImpl, PremiumOnlineAppointmentCardImpl, CallRecordImpl, ChatHistoryImpl, WecomImpl, DouyinOneClickPhoneCollectionImpl, ImSpecificImpl, WxxdProductImpl, WxxdOrderImpl, };
51
+ export type { CallInterface, ContactInterface, ContactSelfInterface, FavoriteInterface, FriendshipInterface, ImageInterface, VoiceInterface, LocationInterface, MessageInterface, MiniProgramInterface, MomentInterface, MoneyInterface, PostInterface, RoomInterface, RoomInvitationInterface, TagInterface, TagGroupInterface, DelayInterface, UrlLinkInterface, ChannelInterface, ChannelCardInterface, ConsultCardInterface, PremiumOnlineAppointmentCardInterface, CallRecordInterface, ChatHistoryInterface, WecomInterface, DouyinOneClickPhoneCollectionInterface, ImSpecificInterface, WxxdProductInterface, WxxdOrderInterface, };
52
+ export type { CallConstructor, ContactConstructor, ContactSelfConstructor, FavoriteConstructor, FriendshipConstructor, ImageConstructor, VoiceConstructor, LocationConstructor, MessageConstructor, MiniProgramConstructor, MomentConstructor, MoneyConstructor, PostConstructor, RoomConstructor, RoomInvitationConstructor, DelayConstructor, TagConstructor, TagGroupConstructor, UrlLinkConstructor, ChannelConstructor, ChannelCardConstructor, ConsultCardConstructor, PremiumOnlineAppointmentCardConstructor, CallRecordConstructor, ChatHistoryConstructor, WecomConstructor, DouyinOneClickPhoneCollectionConstructor, ImSpecificConstructor, WxxdProductConstructor, WxxdOrderConstructor, };
53
+ export { wechatifyUserModule, CallImpl, ContactImpl, ContactSelfImpl, FavoriteImpl, FriendshipImpl, ImageImpl, VoiceImpl, LocationImpl, MessageImpl, MiniProgramImpl, MomentImpl, MoneyImpl, PostImpl, RoomImpl, RoomInvitationImpl, DelayImpl, TagImpl, TagGroupImpl, UrlLinkImpl, ChannelImpl, ChannelCardImpl, ConsultCardImpl, PremiumOnlineAppointmentCardImpl, CallRecordImpl, ChatHistoryImpl, WecomImpl, DouyinOneClickPhoneCollectionImpl, ImSpecificImpl, WxxdProductImpl, WxxdOrderImpl, };
53
54
  //# sourceMappingURL=mod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../src/user-modules/mod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../src/user-modules/mod.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ import { ContactSelfImpl, } from './contact-self.js';
22
22
  import { FavoriteImpl, } from './favorite.js';
23
23
  import { FriendshipImpl, } from './friendship.js';
24
24
  import { ImageImpl, } from './image.js';
25
+ import { VoiceImpl, } from './voice.js';
25
26
  import { LocationImpl, } from './location.js';
26
27
  import { MessageImpl, } from './message.js';
27
28
  import { MiniProgramImpl, } from './mini-program.js';
@@ -46,5 +47,5 @@ import { ImSpecificImpl, } from './im-specific.js';
46
47
  import { WxxdProductImpl, } from './wxxd-product.js';
47
48
  import { WxxdOrderImpl, } from './wxxd-order.js';
48
49
  import { wechatifyUserModule } from '../user-mixins/wechatify.js';
49
- export { wechatifyUserModule, CallImpl, ContactImpl, ContactSelfImpl, FavoriteImpl, FriendshipImpl, ImageImpl, LocationImpl, MessageImpl, MiniProgramImpl, MomentImpl, MoneyImpl, PostImpl, RoomImpl, RoomInvitationImpl, DelayImpl, TagImpl, TagGroupImpl, UrlLinkImpl, ChannelImpl, ChannelCardImpl, ConsultCardImpl, PremiumOnlineAppointmentCardImpl, CallRecordImpl, ChatHistoryImpl, WecomImpl, DouyinOneClickPhoneCollectionImpl, ImSpecificImpl, WxxdProductImpl, WxxdOrderImpl, };
50
+ export { wechatifyUserModule, CallImpl, ContactImpl, ContactSelfImpl, FavoriteImpl, FriendshipImpl, ImageImpl, VoiceImpl, LocationImpl, MessageImpl, MiniProgramImpl, MomentImpl, MoneyImpl, PostImpl, RoomImpl, RoomInvitationImpl, DelayImpl, TagImpl, TagGroupImpl, UrlLinkImpl, ChannelImpl, ChannelCardImpl, ConsultCardImpl, PremiumOnlineAppointmentCardImpl, CallRecordImpl, ChatHistoryImpl, WecomImpl, DouyinOneClickPhoneCollectionImpl, ImSpecificImpl, WxxdProductImpl, WxxdOrderImpl, };
50
51
  //# sourceMappingURL=mod.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../../src/user-modules/mod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EACL,WAAW,GAGZ,MAAgC,cAAc,CAAA;AAC/C,OAAO,EACL,eAAe,GAGhB,MAAgC,mBAAmB,CAAA;AACpD,OAAO,EACL,YAAY,GAGb,MAAgC,eAAe,CAAA;AAChD,OAAO,EACL,cAAc,GAGf,MAAgC,iBAAiB,CAAA;AAClD,OAAO,EACL,SAAS,GAGV,MAAgC,YAAY,CAAA;AAC7C,OAAO,EACL,YAAY,GAGb,MAAgC,eAAe,CAAA;AAChD,OAAO,EACL,WAAW,GAGZ,MAAgC,cAAc,CAAA;AAC/C,OAAO,EACL,eAAe,GAGhB,MAAgC,mBAAmB,CAAA;AACpD,OAAO,EACL,UAAU,GAGX,MAAgC,aAAa,CAAA;AAC9C,OAAO,EACL,SAAS,GAGV,MAAgC,YAAY,CAAA;AAC7C,OAAO,EACL,QAAQ,GAGT,MAAgC,WAAW,CAAA;AAC5C,OAAO,EACL,QAAQ,GAGT,MAAgC,WAAW,CAAA;AAC5C,OAAO,EACL,kBAAkB,GAGnB,MAAgC,sBAAsB,CAAA;AACvD,OAAO,EACL,OAAO,GAGR,MAAgC,UAAU,CAAA;AAC3C,OAAO,EACL,YAAY,GAGb,MAAgC,gBAAgB,CAAA;AACjD,OAAO,EACL,WAAW,GAGZ,MAAgC,eAAe,CAAA;AAChD,OAAO,EACL,SAAS,GAGV,MAAgC,YAAY,CAAA;AAC7C,OAAO,EACL,WAAW,GAGZ,MAAgC,cAAc,CAAA;AAC/C,OAAO,EACL,eAAe,GAGhB,MAAgC,mBAAmB,CAAA;AACpD,OAAO,EACL,eAAe,GAGhB,MAAgC,mBAAmB,CAAA;AACpD,OAAO,EACL,gCAAgC,GAGjC,MAAgC,sCAAsC,CAAA;AACvE,OAAO,EACL,QAAQ,EAGR,cAAc,GAGf,MAAgC,WAAW,CAAA;AAC5C,OAAO,EACL,eAAe,GAGhB,MAAgC,mBAAmB,CAAA;AACpD,OAAO,EACL,SAAS,GAGV,MAAgC,YAAY,CAAA;AAC7C,OAAO,EACL,iCAAiC,GAGlC,MAAgC,wCAAwC,CAAA;AACzE,OAAO,EACL,cAAc,GAGf,MAAgC,kBAAkB,CAAA;AACnD,OAAO,EACL,eAAe,GAGhB,MAAgC,mBAAmB,CAAA;AACpD,OAAO,EACL,aAAa,GAGd,MAAgC,iBAAiB,CAAA;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAuEjE,OAAO,EACL,mBAAmB,EAEnB,QAAQ,EACR,WAAW,EACX,eAAe,EACf,YAAY,EACZ,cAAc,EACd,SAAS,EACT,YAAY,EACZ,WAAW,EACX,eAAe,EACf,UAAU,EACV,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,OAAO,EACP,YAAY,EACZ,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,EACf,gCAAgC,EAChC,cAAc,EACd,eAAe,EACf,SAAS,EACT,iCAAiC,EACjC,cAAc,EACd,eAAe,EACf,aAAa,GACd,CAAA"}
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../../src/user-modules/mod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EACL,WAAW,GAGZ,MAAgC,cAAc,CAAA;AAC/C,OAAO,EACL,eAAe,GAGhB,MAAgC,mBAAmB,CAAA;AACpD,OAAO,EACL,YAAY,GAGb,MAAgC,eAAe,CAAA;AAChD,OAAO,EACL,cAAc,GAGf,MAAgC,iBAAiB,CAAA;AAClD,OAAO,EACL,SAAS,GAGV,MAAgC,YAAY,CAAA;AAC7C,OAAO,EACL,SAAS,GAGV,MAAgC,YAAY,CAAA;AAC7C,OAAO,EACL,YAAY,GAGb,MAAgC,eAAe,CAAA;AAChD,OAAO,EACL,WAAW,GAGZ,MAAgC,cAAc,CAAA;AAC/C,OAAO,EACL,eAAe,GAGhB,MAAgC,mBAAmB,CAAA;AACpD,OAAO,EACL,UAAU,GAGX,MAAgC,aAAa,CAAA;AAC9C,OAAO,EACL,SAAS,GAGV,MAAgC,YAAY,CAAA;AAC7C,OAAO,EACL,QAAQ,GAGT,MAAgC,WAAW,CAAA;AAC5C,OAAO,EACL,QAAQ,GAGT,MAAgC,WAAW,CAAA;AAC5C,OAAO,EACL,kBAAkB,GAGnB,MAAgC,sBAAsB,CAAA;AACvD,OAAO,EACL,OAAO,GAGR,MAAgC,UAAU,CAAA;AAC3C,OAAO,EACL,YAAY,GAGb,MAAgC,gBAAgB,CAAA;AACjD,OAAO,EACL,WAAW,GAGZ,MAAgC,eAAe,CAAA;AAChD,OAAO,EACL,SAAS,GAGV,MAAgC,YAAY,CAAA;AAC7C,OAAO,EACL,WAAW,GAGZ,MAAgC,cAAc,CAAA;AAC/C,OAAO,EACL,eAAe,GAGhB,MAAgC,mBAAmB,CAAA;AACpD,OAAO,EACL,eAAe,GAGhB,MAAgC,mBAAmB,CAAA;AACpD,OAAO,EACL,gCAAgC,GAGjC,MAAgC,sCAAsC,CAAA;AACvE,OAAO,EACL,QAAQ,EAGR,cAAc,GAGf,MAAgC,WAAW,CAAA;AAC5C,OAAO,EACL,eAAe,GAGhB,MAAgC,mBAAmB,CAAA;AACpD,OAAO,EACL,SAAS,GAGV,MAAgC,YAAY,CAAA;AAC7C,OAAO,EACL,iCAAiC,GAGlC,MAAgC,wCAAwC,CAAA;AACzE,OAAO,EACL,cAAc,GAGf,MAAgC,kBAAkB,CAAA;AACnD,OAAO,EACL,eAAe,GAGhB,MAAgC,mBAAmB,CAAA;AACpD,OAAO,EACL,aAAa,GAGd,MAAgC,iBAAiB,CAAA;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAyEjE,OAAO,EACL,mBAAmB,EAEnB,QAAQ,EACR,WAAW,EACX,eAAe,EACf,YAAY,EACZ,cAAc,EACd,SAAS,EACT,SAAS,EACT,YAAY,EACZ,WAAW,EACX,eAAe,EACf,UAAU,EACV,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,OAAO,EACP,YAAY,EACZ,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,EACf,gCAAgC,EAChC,cAAc,EACd,eAAe,EACf,SAAS,EACT,iCAAiC,EACjC,cAAc,EACd,eAAe,EACf,aAAa,GACd,CAAA"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Wechaty Chatbot SDK - https://github.com/wechaty/wechaty
3
+ *
4
+ * @copyright 2016 Huan LI (李卓桓) <https://github.com/huan>, and
5
+ * Wechaty Contributors <https://github.com/wechaty>.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ *
19
+ */
20
+ import type { FileBoxInterface } from 'file-box';
21
+ import type { Constructor } from 'clone-class';
22
+ import type * as PUPPET from '@juzi/wechaty-puppet';
23
+ declare const VoiceMixin_base: ((abstract new (...args: any[]) => {
24
+ readonly wechaty: import("../wechaty/wechaty-impl.js").WechatyInterface;
25
+ }) & {
26
+ readonly wechaty: import("../wechaty/wechaty-impl.js").WechatyInterface;
27
+ }) & {
28
+ new (): {};
29
+ };
30
+ declare class VoiceMixin extends VoiceMixin_base {
31
+ id: string;
32
+ static create(id: string): VoiceInterface;
33
+ constructor(id: string);
34
+ /**
35
+ * Get the voice file (FileBox) via the puppet's dedicated `messageVoice` RPC.
36
+ *
37
+ * Falls back to the generic `messageFile` when the puppet does not implement
38
+ * `messageVoice` — either the method is absent (old puppet built without it,
39
+ * caught by the `typeof` guard) or it rejects with an unsupported-API error.
40
+ * Keeps the behaviour compatible with the legacy "voice file via messageFile"
41
+ * path. A genuine runtime error from a working `messageVoice` is rethrown.
42
+ */
43
+ file(): Promise<FileBoxInterface>;
44
+ /**
45
+ * Get the voice-to-text (ASR) result via the puppet's dedicated
46
+ * `messageVoiceText` RPC. Returns a discriminated result so the bot can tell
47
+ * "confirmed no speech" (`noSpeech=true`) from "normal transcription".
48
+ *
49
+ * Falls back to reading the legacy `messagePayload().text` when the puppet
50
+ * does not implement `messageVoiceText` — either the method is absent (old
51
+ * puppet built without it, caught by the `typeof` guard) or it rejects with
52
+ * an unsupported-API error. Old puppets put the ASR result into
53
+ * `payload.text`, so this keeps the behaviour compatible; `noSpeech` is
54
+ * `false` in the fallback. A genuine runtime error is rethrown (so the bot
55
+ * does not silently drop `noSpeech` and re-run its own paid ASR).
56
+ */
57
+ text(): Promise<PUPPET.payloads.VoiceText>;
58
+ }
59
+ declare const VoiceImpl_base: {
60
+ new (...args: any[]): {};
61
+ valid: (o: any) => o is VoiceInterface;
62
+ validInstance: (target: any) => target is VoiceMixin;
63
+ validInterface: (target: any) => target is VoiceInterface;
64
+ } & typeof VoiceMixin;
65
+ declare class VoiceImpl extends VoiceImpl_base {
66
+ }
67
+ interface VoiceInterface extends VoiceImpl {
68
+ }
69
+ declare type VoiceConstructor = Constructor<VoiceInterface, typeof VoiceImpl>;
70
+ export type { VoiceConstructor, VoiceInterface, };
71
+ export { VoiceImpl, };
72
+ //# sourceMappingURL=voice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../../../../src/user-modules/voice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EACV,gBAAgB,EACjB,MAAwB,UAAU,CAAA;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,MAAM,sBAAsB,CAAA;;;;;;;;AAsCnD,cAAM,UAAW,SAAQ,eAAoB;IAUlC,EAAE,EAAE,MAAM;IARnB,MAAM,CAAC,MAAM,CAAE,EAAE,EAAE,MAAM,GAAG,cAAc;gBAQjC,EAAE,EAAE,MAAM;IAMnB;;;;;;;;OAQG;IACG,IAAI,IAAK,OAAO,CAAC,gBAAgB,CAAC;IAqBxC;;;;;;;;;;;;OAYG;IACG,IAAI,IAAK,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;CAsBlD;;;;;;;AAED,cAAM,SAAU,SAAQ,cAA6C;CAAG;AACxE,UAAU,cAAe,SAAQ,SAAS;CAAI;AAE9C,aAAK,gBAAgB,GAAG,WAAW,CACjC,cAAc,EACd,OAAO,SAAS,CACjB,CAAA;AAED,YAAY,EACV,gBAAgB,EAChB,cAAc,GACf,CAAA;AACD,OAAO,EACL,SAAS,GACV,CAAA"}
@@ -0,0 +1,113 @@
1
+ import { validationMixin } from '../user-mixins/validation.js';
2
+ import { log } from '../config.js';
3
+ import { wechatifyMixinBase, } from '../user-mixins/wechatify.js';
4
+ /**
5
+ * gRPC status code for an RPC the server does not implement.
6
+ * @see https://grpc.github.io/grpc/core/md_doc_statuscodes.html
7
+ */
8
+ const GRPC_STATUS_UNIMPLEMENTED = 12;
9
+ /**
10
+ * Whether `e` means the puppet / server does not implement the new voice RPC,
11
+ * i.e. it is safe to fall back to the legacy path.
12
+ *
13
+ * Transient errors (network / timeout / file expired / other gRPC codes) must
14
+ * NOT match here: otherwise the fallback silently masks real failures and — for
15
+ * `text()` — discards the `noSpeech` discriminator, making the bot re-run its
16
+ * own paid ASR on voices the puppet already confirmed as empty.
17
+ *
18
+ * Note: the "method does not exist at all" case (an old puppet built against a
19
+ * wechaty-puppet without the method) is detected up-front via a `typeof` guard
20
+ * at the call site, NOT here — matching the `'is not a function'` text would
21
+ * also swallow a genuine `TypeError` raised inside a working implementation.
22
+ */
23
+ function isUnsupportedError(e) {
24
+ const err = e;
25
+ // old wechaty-puppet-service server without the new RPC → gRPC UNIMPLEMENTED
26
+ if (err?.code === GRPC_STATUS_UNIMPLEMENTED) {
27
+ return true;
28
+ }
29
+ // puppet implements the abstract method via throwUnsupportedError()
30
+ return (err?.message || '').includes('Unsupported API');
31
+ }
32
+ class VoiceMixin extends wechatifyMixinBase() {
33
+ id;
34
+ static create(id) {
35
+ log.verbose('Voice', 'static create(%s)', id);
36
+ const voice = new this(id);
37
+ return voice;
38
+ }
39
+ constructor(id) {
40
+ super();
41
+ this.id = id;
42
+ log.verbose('Voice', 'constructor(%s)', id);
43
+ }
44
+ /**
45
+ * Get the voice file (FileBox) via the puppet's dedicated `messageVoice` RPC.
46
+ *
47
+ * Falls back to the generic `messageFile` when the puppet does not implement
48
+ * `messageVoice` — either the method is absent (old puppet built without it,
49
+ * caught by the `typeof` guard) or it rejects with an unsupported-API error.
50
+ * Keeps the behaviour compatible with the legacy "voice file via messageFile"
51
+ * path. A genuine runtime error from a working `messageVoice` is rethrown.
52
+ */
53
+ async file() {
54
+ log.verbose('Voice', 'file() for id: "%s"', this.id);
55
+ const puppet = this.wechaty.puppet;
56
+ // puppet built against an old wechaty-puppet without the method at all
57
+ if (typeof puppet.messageVoice !== 'function') {
58
+ log.verbose('Voice', 'file() messageVoice() absent, fallback to messageFile()');
59
+ return puppet.messageFile(this.id);
60
+ }
61
+ try {
62
+ const fileBox = await puppet.messageVoice(this.id);
63
+ return fileBox;
64
+ }
65
+ catch (e) {
66
+ if (!isUnsupportedError(e)) {
67
+ throw e;
68
+ }
69
+ log.verbose('Voice', 'file() messageVoice() unsupported, fallback to messageFile(): %s', e.message);
70
+ const fileBox = await puppet.messageFile(this.id);
71
+ return fileBox;
72
+ }
73
+ }
74
+ /**
75
+ * Get the voice-to-text (ASR) result via the puppet's dedicated
76
+ * `messageVoiceText` RPC. Returns a discriminated result so the bot can tell
77
+ * "confirmed no speech" (`noSpeech=true`) from "normal transcription".
78
+ *
79
+ * Falls back to reading the legacy `messagePayload().text` when the puppet
80
+ * does not implement `messageVoiceText` — either the method is absent (old
81
+ * puppet built without it, caught by the `typeof` guard) or it rejects with
82
+ * an unsupported-API error. Old puppets put the ASR result into
83
+ * `payload.text`, so this keeps the behaviour compatible; `noSpeech` is
84
+ * `false` in the fallback. A genuine runtime error is rethrown (so the bot
85
+ * does not silently drop `noSpeech` and re-run its own paid ASR).
86
+ */
87
+ async text() {
88
+ log.verbose('Voice', 'text() for id: "%s"', this.id);
89
+ const puppet = this.wechaty.puppet;
90
+ // puppet built against an old wechaty-puppet without the method at all
91
+ if (typeof puppet.messageVoiceText !== 'function') {
92
+ log.verbose('Voice', 'text() messageVoiceText() absent, fallback to messagePayload().text');
93
+ const payload = await puppet.messagePayload(this.id);
94
+ return { text: payload.text || '', noSpeech: false };
95
+ }
96
+ try {
97
+ const payload = await puppet.messageVoiceText(this.id);
98
+ return payload;
99
+ }
100
+ catch (e) {
101
+ if (!isUnsupportedError(e)) {
102
+ throw e;
103
+ }
104
+ log.verbose('Voice', 'text() messageVoiceText() unsupported, fallback to messagePayload().text: %s', e.message);
105
+ const payload = await puppet.messagePayload(this.id);
106
+ return { text: payload.text || '', noSpeech: false };
107
+ }
108
+ }
109
+ }
110
+ class VoiceImpl extends validationMixin(VoiceMixin)() {
111
+ }
112
+ export { VoiceImpl, };
113
+ //# sourceMappingURL=voice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice.js","sourceRoot":"","sources":["../../../../src/user-modules/voice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env -S node --no-warnings --loader ts-node/esm
2
+ export {};
3
+ //# sourceMappingURL=voice.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice.spec.d.ts","sourceRoot":"","sources":["../../../../src/user-modules/voice.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,153 @@
1
+ #!/usr/bin/env -S node --no-warnings --loader ts-node/esm
2
+ /**
3
+ * Wechaty Chatbot SDK - https://github.com/wechaty/wechaty
4
+ *
5
+ * @copyright 2016 Huan LI (李卓桓) <https://github.com/huan>, and
6
+ * Wechaty Contributors <https://github.com/wechaty>.
7
+ *
8
+ * Licensed under the Apache License, Version 2.0 (the "License");
9
+ * you may not use this file except in compliance with the License.
10
+ * You may obtain a copy of the License at
11
+ *
12
+ * http://www.apache.org/licenses/LICENSE-2.0
13
+ *
14
+ * Unless required by applicable law or agreed to in writing, software
15
+ * distributed under the License is distributed on an "AS IS" BASIS,
16
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ * See the License for the specific language governing permissions and
18
+ * limitations under the License.
19
+ *
20
+ */
21
+ import { test, sinon, } from 'tstest';
22
+ import { FileBox } from 'file-box';
23
+ import { PuppetMock } from '@juzi/wechaty-puppet-mock';
24
+ import { WechatyBuilder } from '../wechaty-builder.js';
25
+ const MESSAGE_ID = 'message-id-voice';
26
+ /**
27
+ * The fallback must trigger ONLY when the puppet does not implement the new
28
+ * RPC, never on transient failures: otherwise `text()` silently drops the
29
+ * `noSpeech` discriminator and makes the bot re-run its own paid ASR.
30
+ *
31
+ * The puppet is built & started once and reused across cases (`wechaty.Voice`
32
+ * is unavailable before `start()`). `messageVoice` / `messageVoiceText` are
33
+ * assigned directly (rather than via `sinon.stub(puppet, ...)`) because the
34
+ * installed wechaty-puppet-mock predates those methods, so stubbing a
35
+ * non-existent property would throw.
36
+ */
37
+ const puppet = new PuppetMock();
38
+ const wechaty = WechatyBuilder.build({ puppet });
39
+ let started = false;
40
+ async function ensureStarted() {
41
+ if (!started) {
42
+ await wechaty.start();
43
+ started = true;
44
+ }
45
+ }
46
+ const voice = () => wechaty.Voice.create(MESSAGE_ID);
47
+ const UNSUPPORTED = new Error('Wechaty Puppet Unsupported API Error.');
48
+ test('Voice.file() returns the dedicated messageVoice result when supported', async (t) => {
49
+ await ensureStarted();
50
+ puppet.messageVoice = sinon.stub().resolves(FileBox.fromBuffer(Buffer.from('voice'), 'voice.silk'));
51
+ puppet.messageFile = sinon.stub().resolves(FileBox.fromBuffer(Buffer.from('file'), 'file.bin'));
52
+ const fileBox = await voice().file();
53
+ t.equal(fileBox.name, 'voice.silk', 'should return the messageVoice FileBox');
54
+ t.ok(puppet.messageVoice.calledOnceWith(MESSAGE_ID), 'should call messageVoice');
55
+ t.notOk(puppet.messageFile.called, 'should NOT fall back to messageFile when supported');
56
+ });
57
+ test('Voice.file() falls back to messageFile on unsupported error', async (t) => {
58
+ await ensureStarted();
59
+ puppet.messageVoice = sinon.stub().rejects(UNSUPPORTED);
60
+ puppet.messageFile = sinon.stub().resolves(FileBox.fromBuffer(Buffer.from('file'), 'file.bin'));
61
+ const fileBox = await voice().file();
62
+ t.equal(fileBox.name, 'file.bin', 'should fall back to messageFile');
63
+ t.ok(puppet.messageFile.calledOnceWith(MESSAGE_ID), 'should call messageFile on fallback');
64
+ });
65
+ test('Voice.file() falls back to messageFile when messageVoice is absent (old puppet)', async (t) => {
66
+ await ensureStarted();
67
+ puppet.messageVoice = undefined; // old puppet built without the method at all
68
+ puppet.messageFile = sinon.stub().resolves(FileBox.fromBuffer(Buffer.from('file'), 'file.bin'));
69
+ const fileBox = await voice().file();
70
+ t.equal(fileBox.name, 'file.bin', 'should fall back to messageFile via the typeof guard');
71
+ t.ok(puppet.messageFile.calledOnceWith(MESSAGE_ID), 'should call messageFile on fallback');
72
+ });
73
+ test('Voice.file() rethrows a transient error instead of falling back', async (t) => {
74
+ await ensureStarted();
75
+ puppet.messageVoice = sinon.stub().rejects(new Error('socket hang up'));
76
+ puppet.messageFile = sinon.stub().resolves(FileBox.fromBuffer(Buffer.from('file'), 'file.bin'));
77
+ await t.rejects(() => voice().file(), /socket hang up/, 'should rethrow the transient error');
78
+ t.notOk(puppet.messageFile.called, 'should NOT fall back on a transient error');
79
+ });
80
+ test('Voice.file() rethrows a genuine "is not a function" TypeError from a working messageVoice', async (t) => {
81
+ await ensureStarted();
82
+ // method exists but its implementation throws internally — must NOT be
83
+ // misclassified as unsupported just because the message says "is not a function"
84
+ puppet.messageVoice = sinon.stub().rejects(new TypeError('innerHelper.process is not a function'));
85
+ puppet.messageFile = sinon.stub().resolves(FileBox.fromBuffer(Buffer.from('file'), 'file.bin'));
86
+ await t.rejects(() => voice().file(), /is not a function/, 'should rethrow the internal TypeError');
87
+ t.notOk(puppet.messageFile.called, 'should NOT mask a real implementation bug');
88
+ });
89
+ test('Voice.text() returns the dedicated messageVoiceText payload when supported', async (t) => {
90
+ await ensureStarted();
91
+ puppet.messageVoiceText = sinon.stub().resolves({ text: 'hello', noSpeech: false });
92
+ puppet.messagePayload = sinon.stub().resolves({ text: 'legacy' });
93
+ const result = await voice().text();
94
+ t.same(result, { text: 'hello', noSpeech: false }, 'should return the messageVoiceText payload');
95
+ t.ok(puppet.messageVoiceText.calledOnceWith(MESSAGE_ID), 'should call messageVoiceText');
96
+ t.notOk(puppet.messagePayload.called, 'should NOT fall back to messagePayload when supported');
97
+ });
98
+ test('Voice.text() preserves noSpeech=true from the puppet (skip paid ASR)', async (t) => {
99
+ await ensureStarted();
100
+ puppet.messageVoiceText = sinon.stub().resolves({ text: '', noSpeech: true });
101
+ puppet.messagePayload = sinon.stub().resolves({ text: '' });
102
+ const result = await voice().text();
103
+ t.same(result, { text: '', noSpeech: true }, 'should return the puppet payload verbatim');
104
+ t.equal(result.noSpeech, true, 'should preserve noSpeech=true so the bot can skip its own ASR');
105
+ t.ok(puppet.messageVoiceText.calledOnceWith(MESSAGE_ID), 'should call messageVoiceText');
106
+ t.notOk(puppet.messagePayload.called, 'should NOT fall back when supported');
107
+ });
108
+ test('Voice.text() falls back to messagePayload().text on unsupported error', async (t) => {
109
+ await ensureStarted();
110
+ puppet.messageVoiceText = sinon.stub().rejects(UNSUPPORTED);
111
+ puppet.messagePayload = sinon.stub().resolves({ text: 'legacy asr' });
112
+ const result = await voice().text();
113
+ t.same(result, { text: 'legacy asr', noSpeech: false }, 'should fall back to legacy payload.text with noSpeech=false');
114
+ t.ok(puppet.messagePayload.calledOnceWith(MESSAGE_ID), 'should call messagePayload on fallback');
115
+ });
116
+ test('Voice.text() falls back on gRPC UNIMPLEMENTED (code 12)', async (t) => {
117
+ await ensureStarted();
118
+ const unimplemented = Object.assign(new Error('12 UNIMPLEMENTED'), { code: 12 });
119
+ puppet.messageVoiceText = sinon.stub().rejects(unimplemented);
120
+ puppet.messagePayload = sinon.stub().resolves({ text: 'legacy asr' });
121
+ const result = await voice().text();
122
+ t.same(result, { text: 'legacy asr', noSpeech: false }, 'should fall back when the server returns UNIMPLEMENTED');
123
+ t.ok(puppet.messagePayload.calledOnceWith(MESSAGE_ID), 'should call messagePayload on fallback');
124
+ });
125
+ test('Voice.text() falls back to messagePayload when messageVoiceText is absent (old puppet)', async (t) => {
126
+ await ensureStarted();
127
+ puppet.messageVoiceText = undefined; // old puppet built without the method at all
128
+ puppet.messagePayload = sinon.stub().resolves({ text: 'legacy asr' });
129
+ const result = await voice().text();
130
+ t.same(result, { text: 'legacy asr', noSpeech: false }, 'should fall back via the typeof guard with noSpeech=false');
131
+ t.ok(puppet.messagePayload.calledOnceWith(MESSAGE_ID), 'should call messagePayload on fallback');
132
+ });
133
+ test('Voice.text() rethrows a transient error instead of falling back', async (t) => {
134
+ await ensureStarted();
135
+ puppet.messageVoiceText = sinon.stub().rejects(new Error('ETIMEDOUT'));
136
+ puppet.messagePayload = sinon.stub().resolves({ text: 'legacy asr' });
137
+ await t.rejects(() => voice().text(), /ETIMEDOUT/, 'should rethrow the transient error');
138
+ t.notOk(puppet.messagePayload.called, 'should NOT fall back on a transient error (would drop noSpeech)');
139
+ });
140
+ test('Voice.text() rethrows a genuine "is not a function" TypeError from a working messageVoiceText', async (t) => {
141
+ await ensureStarted();
142
+ // regression: a real internal TypeError must NOT be downgraded — that would
143
+ // drop noSpeech and make the bot re-run its own paid ASR
144
+ puppet.messageVoiceText = sinon.stub().rejects(new TypeError('innerHelper.process is not a function'));
145
+ puppet.messagePayload = sinon.stub().resolves({ text: 'legacy asr' });
146
+ await t.rejects(() => voice().text(), /is not a function/, 'should rethrow the internal TypeError');
147
+ t.notOk(puppet.messagePayload.called, 'should NOT mask a real implementation bug');
148
+ });
149
+ test('teardown: stop the shared wechaty', async (t) => {
150
+ await wechaty.stop();
151
+ t.pass('stopped');
152
+ });
153
+ //# sourceMappingURL=voice.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice.spec.js","sourceRoot":"","sources":["../../../../src/user-modules/voice.spec.ts"],"names":[],"mappings":"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"}
@@ -66,6 +66,7 @@ declare const mixinBase: (abstract new (...args: any[]) => {
66
66
  __wechatifiedDelay?: import("../user-modules/delay.js").DelayConstructor | undefined;
67
67
  __wechatifiedFriendship?: import("../user-modules/friendship.js").FriendshipConstructor | undefined;
68
68
  __wechatifiedImage?: import("../user-modules/image.js").ImageConstructor | undefined;
69
+ __wechatifiedVoice?: import("../user-modules/voice.js").VoiceConstructor | undefined;
69
70
  __wechatifiedLocation?: import("../user-modules/location.js").LocationConstructor | undefined;
70
71
  __wechatifiedMessage?: import("../user-modules/message.js").MessageConstructor | undefined;
71
72
  __wechatifiedMiniProgram?: import("../user-modules/mini-program.js").MiniProgramConstructor | undefined;
@@ -93,6 +94,7 @@ declare const mixinBase: (abstract new (...args: any[]) => {
93
94
  readonly Delay: import("../user-modules/delay.js").DelayConstructor;
94
95
  readonly Friendship: import("../user-modules/friendship.js").FriendshipConstructor;
95
96
  readonly Image: import("../user-modules/image.js").ImageConstructor;
97
+ readonly Voice: import("../user-modules/voice.js").VoiceConstructor;
96
98
  readonly Location: import("../user-modules/location.js").LocationConstructor;
97
99
  readonly Message: import("../user-modules/message.js").MessageConstructor;
98
100
  readonly MiniProgram: import("../user-modules/mini-program.js").MiniProgramConstructor;
@@ -164,6 +166,7 @@ declare const mixinBase: (abstract new (...args: any[]) => {
164
166
  __wechatifiedDelay?: import("../user-modules/delay.js").DelayConstructor | undefined;
165
167
  __wechatifiedFriendship?: import("../user-modules/friendship.js").FriendshipConstructor | undefined;
166
168
  __wechatifiedImage?: import("../user-modules/image.js").ImageConstructor | undefined;
169
+ __wechatifiedVoice?: import("../user-modules/voice.js").VoiceConstructor | undefined;
167
170
  __wechatifiedLocation?: import("../user-modules/location.js").LocationConstructor | undefined;
168
171
  __wechatifiedMessage?: import("../user-modules/message.js").MessageConstructor | undefined;
169
172
  __wechatifiedMiniProgram?: import("../user-modules/mini-program.js").MiniProgramConstructor | undefined;
@@ -191,6 +194,7 @@ declare const mixinBase: (abstract new (...args: any[]) => {
191
194
  readonly Delay: import("../user-modules/delay.js").DelayConstructor;
192
195
  readonly Friendship: import("../user-modules/friendship.js").FriendshipConstructor;
193
196
  readonly Image: import("../user-modules/image.js").ImageConstructor;
197
+ readonly Voice: import("../user-modules/voice.js").VoiceConstructor;
194
198
  readonly Location: import("../user-modules/location.js").LocationConstructor;
195
199
  readonly Message: import("../user-modules/message.js").MessageConstructor;
196
200
  readonly MiniProgram: import("../user-modules/mini-program.js").MiniProgramConstructor;
@@ -289,6 +293,7 @@ declare const mixinBase: (abstract new (...args: any[]) => {
289
293
  __wechatifiedDelay?: import("../user-modules/delay.js").DelayConstructor | undefined;
290
294
  __wechatifiedFriendship?: import("../user-modules/friendship.js").FriendshipConstructor | undefined;
291
295
  __wechatifiedImage?: import("../user-modules/image.js").ImageConstructor | undefined;
296
+ __wechatifiedVoice?: import("../user-modules/voice.js").VoiceConstructor | undefined;
292
297
  __wechatifiedLocation?: import("../user-modules/location.js").LocationConstructor | undefined;
293
298
  __wechatifiedMessage?: import("../user-modules/message.js").MessageConstructor | undefined;
294
299
  __wechatifiedMiniProgram?: import("../user-modules/mini-program.js").MiniProgramConstructor | undefined;
@@ -316,6 +321,7 @@ declare const mixinBase: (abstract new (...args: any[]) => {
316
321
  readonly Delay: import("../user-modules/delay.js").DelayConstructor;
317
322
  readonly Friendship: import("../user-modules/friendship.js").FriendshipConstructor;
318
323
  readonly Image: import("../user-modules/image.js").ImageConstructor;
324
+ readonly Voice: import("../user-modules/voice.js").VoiceConstructor;
319
325
  readonly Location: import("../user-modules/location.js").LocationConstructor;
320
326
  readonly Message: import("../user-modules/message.js").MessageConstructor;
321
327
  readonly MiniProgram: import("../user-modules/mini-program.js").MiniProgramConstructor;
@@ -363,6 +369,7 @@ declare const mixinBase: (abstract new (...args: any[]) => {
363
369
  __wechatifiedDelay?: import("../user-modules/delay.js").DelayConstructor | undefined;
364
370
  __wechatifiedFriendship?: import("../user-modules/friendship.js").FriendshipConstructor | undefined;
365
371
  __wechatifiedImage?: import("../user-modules/image.js").ImageConstructor | undefined;
372
+ __wechatifiedVoice?: import("../user-modules/voice.js").VoiceConstructor | undefined;
366
373
  __wechatifiedLocation?: import("../user-modules/location.js").LocationConstructor | undefined;
367
374
  __wechatifiedMessage?: import("../user-modules/message.js").MessageConstructor | undefined;
368
375
  __wechatifiedMiniProgram?: import("../user-modules/mini-program.js").MiniProgramConstructor | undefined;
@@ -390,6 +397,7 @@ declare const mixinBase: (abstract new (...args: any[]) => {
390
397
  readonly Delay: import("../user-modules/delay.js").DelayConstructor;
391
398
  readonly Friendship: import("../user-modules/friendship.js").FriendshipConstructor;
392
399
  readonly Image: import("../user-modules/image.js").ImageConstructor;
400
+ readonly Voice: import("../user-modules/voice.js").VoiceConstructor;
393
401
  readonly Location: import("../user-modules/location.js").LocationConstructor;
394
402
  readonly Message: import("../user-modules/message.js").MessageConstructor;
395
403
  readonly MiniProgram: import("../user-modules/mini-program.js").MiniProgramConstructor;
@@ -478,6 +486,7 @@ declare const mixinBase: (abstract new (...args: any[]) => {
478
486
  __wechatifiedDelay?: import("../user-modules/delay.js").DelayConstructor | undefined;
479
487
  __wechatifiedFriendship?: import("../user-modules/friendship.js").FriendshipConstructor | undefined;
480
488
  __wechatifiedImage?: import("../user-modules/image.js").ImageConstructor | undefined;
489
+ __wechatifiedVoice?: import("../user-modules/voice.js").VoiceConstructor | undefined;
481
490
  __wechatifiedLocation?: import("../user-modules/location.js").LocationConstructor | undefined;
482
491
  __wechatifiedMessage?: import("../user-modules/message.js").MessageConstructor | undefined;
483
492
  __wechatifiedMiniProgram?: import("../user-modules/mini-program.js").MiniProgramConstructor | undefined;
@@ -505,6 +514,7 @@ declare const mixinBase: (abstract new (...args: any[]) => {
505
514
  readonly Delay: import("../user-modules/delay.js").DelayConstructor;
506
515
  readonly Friendship: import("../user-modules/friendship.js").FriendshipConstructor;
507
516
  readonly Image: import("../user-modules/image.js").ImageConstructor;
517
+ readonly Voice: import("../user-modules/voice.js").VoiceConstructor;
508
518
  readonly Location: import("../user-modules/location.js").LocationConstructor;
509
519
  readonly Message: import("../user-modules/message.js").MessageConstructor;
510
520
  readonly MiniProgram: import("../user-modules/mini-program.js").MiniProgramConstructor;
@@ -1 +1 @@
1
- {"version":3,"file":"wechaty-base.d.ts","sourceRoot":"","sources":["../../../../src/wechaty/wechaty-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wechaty-base.d.ts","sourceRoot":"","sources":["../../../../src/wechaty/wechaty-base.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ test('Wechaty interface', async (t) => {
14
14
  Delay;
15
15
  Friendship;
16
16
  Image;
17
+ Voice;
17
18
  Location;
18
19
  Message;
19
20
  MiniProgram;
@@ -44,29 +45,30 @@ test('Wechaty interface', async (t) => {
44
45
  = this.Delay
45
46
  = this.Friendship
46
47
  = this.Image
47
- = this.Location
48
- = this.Message
49
- = this.MiniProgram
50
- = this.Post
51
- = this.Room
52
- = this.RoomInvitation
53
- = this.Tag
54
- = this.TagGroup
55
- = this.UrlLink
56
- = this.Channel
57
- = this.ChannelCard
58
- = this.ConsultCard
59
- = this.PremiumOnlineAppointmentCard
60
- = this.Moment
61
- = this.Call
62
- = this.CallRecord
63
- = this.ChatHistory
64
- = this.Wecom
65
- = this.DouyinOneClickPhoneCollection
66
- = this.ImSpecific
67
- = this.WxxdProduct
68
- = this.WxxdOrder
69
- = {};
48
+ = this.Voice
49
+ = this.Location
50
+ = this.Message
51
+ = this.MiniProgram
52
+ = this.Post
53
+ = this.Room
54
+ = this.RoomInvitation
55
+ = this.Tag
56
+ = this.TagGroup
57
+ = this.UrlLink
58
+ = this.Channel
59
+ = this.ChannelCard
60
+ = this.ConsultCard
61
+ = this.PremiumOnlineAppointmentCard
62
+ = this.Moment
63
+ = this.Call
64
+ = this.CallRecord
65
+ = this.ChatHistory
66
+ = this.Wecom
67
+ = this.DouyinOneClickPhoneCollection
68
+ = this.ImSpecific
69
+ = this.WxxdProduct
70
+ = this.WxxdOrder
71
+ = {};
70
72
  }
71
73
  }
72
74
  const WechatyTest = WechatyImplementation;