@juzi/wechaty 1.0.159 → 1.0.161

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 (373) hide show
  1. package/dist/cjs/src/io.js +40 -40
  2. package/dist/cjs/src/io.js.map +1 -1
  3. package/dist/cjs/src/package-json.js +4 -4
  4. package/dist/cjs/src/schemas/logger.d.ts +2 -0
  5. package/dist/cjs/src/schemas/logger.d.ts.map +1 -0
  6. package/dist/cjs/src/schemas/logger.js +3 -0
  7. package/dist/cjs/src/schemas/logger.js.map +1 -0
  8. package/dist/cjs/src/schemas/mod.d.ts +2 -1
  9. package/dist/cjs/src/schemas/mod.d.ts.map +1 -1
  10. package/dist/cjs/src/schemas/mod.js.map +1 -1
  11. package/dist/cjs/src/schemas/wechaty-options.d.ts +19 -0
  12. package/dist/cjs/src/schemas/wechaty-options.d.ts.map +1 -1
  13. package/dist/cjs/src/user-mixins/wechatify.d.ts +23 -0
  14. package/dist/cjs/src/user-mixins/wechatify.d.ts.map +1 -1
  15. package/dist/cjs/src/user-mixins/wechatify.js +25 -0
  16. package/dist/cjs/src/user-mixins/wechatify.js.map +1 -1
  17. package/dist/cjs/src/user-modules/call.d.ts +4 -0
  18. package/dist/cjs/src/user-modules/call.d.ts.map +1 -1
  19. package/dist/cjs/src/user-modules/call.js +6 -7
  20. package/dist/cjs/src/user-modules/call.js.map +1 -1
  21. package/dist/cjs/src/user-modules/channel-card.d.ts +2 -0
  22. package/dist/cjs/src/user-modules/channel-card.d.ts.map +1 -1
  23. package/dist/cjs/src/user-modules/channel-card.js +2 -3
  24. package/dist/cjs/src/user-modules/channel-card.js.map +1 -1
  25. package/dist/cjs/src/user-modules/channel.d.ts +2 -0
  26. package/dist/cjs/src/user-modules/channel.d.ts.map +1 -1
  27. package/dist/cjs/src/user-modules/channel.js +2 -3
  28. package/dist/cjs/src/user-modules/channel.js.map +1 -1
  29. package/dist/cjs/src/user-modules/chat-history.d.ts +2 -0
  30. package/dist/cjs/src/user-modules/chat-history.d.ts.map +1 -1
  31. package/dist/cjs/src/user-modules/chat-history.js +2 -3
  32. package/dist/cjs/src/user-modules/chat-history.js.map +1 -1
  33. package/dist/cjs/src/user-modules/consult-card.d.ts +2 -0
  34. package/dist/cjs/src/user-modules/consult-card.d.ts.map +1 -1
  35. package/dist/cjs/src/user-modules/consult-card.js +3 -4
  36. package/dist/cjs/src/user-modules/consult-card.js.map +1 -1
  37. package/dist/cjs/src/user-modules/contact-self.d.ts.map +1 -1
  38. package/dist/cjs/src/user-modules/contact-self.js +8 -9
  39. package/dist/cjs/src/user-modules/contact-self.js.map +1 -1
  40. package/dist/cjs/src/user-modules/contact.d.ts +2 -0
  41. package/dist/cjs/src/user-modules/contact.d.ts.map +1 -1
  42. package/dist/cjs/src/user-modules/contact.js +36 -37
  43. package/dist/cjs/src/user-modules/contact.js.map +1 -1
  44. package/dist/cjs/src/user-modules/delay.d.ts +2 -0
  45. package/dist/cjs/src/user-modules/delay.d.ts.map +1 -1
  46. package/dist/cjs/src/user-modules/douyin-one-click-phone-collection.d.ts +2 -0
  47. package/dist/cjs/src/user-modules/douyin-one-click-phone-collection.d.ts.map +1 -1
  48. package/dist/cjs/src/user-modules/douyin-one-click-phone-collection.js +2 -3
  49. package/dist/cjs/src/user-modules/douyin-one-click-phone-collection.js.map +1 -1
  50. package/dist/cjs/src/user-modules/favorite.d.ts +21 -0
  51. package/dist/cjs/src/user-modules/favorite.d.ts.map +1 -1
  52. package/dist/cjs/src/user-modules/favorite.js +1 -21
  53. package/dist/cjs/src/user-modules/favorite.js.map +1 -1
  54. package/dist/cjs/src/user-modules/friendship.d.ts +2 -0
  55. package/dist/cjs/src/user-modules/friendship.d.ts.map +1 -1
  56. package/dist/cjs/src/user-modules/friendship.js +11 -12
  57. package/dist/cjs/src/user-modules/friendship.js.map +1 -1
  58. package/dist/cjs/src/user-modules/im-specific.d.ts +2 -0
  59. package/dist/cjs/src/user-modules/im-specific.d.ts.map +1 -1
  60. package/dist/cjs/src/user-modules/im-specific.js +1 -2
  61. package/dist/cjs/src/user-modules/im-specific.js.map +1 -1
  62. package/dist/cjs/src/user-modules/image.d.ts +22 -0
  63. package/dist/cjs/src/user-modules/image.d.ts.map +1 -1
  64. package/dist/cjs/src/user-modules/image.js +5 -6
  65. package/dist/cjs/src/user-modules/image.js.map +1 -1
  66. package/dist/cjs/src/user-modules/location.d.ts +2 -0
  67. package/dist/cjs/src/user-modules/location.d.ts.map +1 -1
  68. package/dist/cjs/src/user-modules/location.js +2 -3
  69. package/dist/cjs/src/user-modules/location.js.map +1 -1
  70. package/dist/cjs/src/user-modules/message.d.ts +2 -0
  71. package/dist/cjs/src/user-modules/message.d.ts.map +1 -1
  72. package/dist/cjs/src/user-modules/message.js +55 -55
  73. package/dist/cjs/src/user-modules/message.js.map +1 -1
  74. package/dist/cjs/src/user-modules/mini-program.d.ts +2 -0
  75. package/dist/cjs/src/user-modules/mini-program.d.ts.map +1 -1
  76. package/dist/cjs/src/user-modules/mini-program.js +2 -3
  77. package/dist/cjs/src/user-modules/mini-program.js.map +1 -1
  78. package/dist/cjs/src/user-modules/moment.d.ts +21 -0
  79. package/dist/cjs/src/user-modules/moment.d.ts.map +1 -1
  80. package/dist/cjs/src/user-modules/moment.js +5 -25
  81. package/dist/cjs/src/user-modules/moment.js.map +1 -1
  82. package/dist/cjs/src/user-modules/money.d.ts +2 -0
  83. package/dist/cjs/src/user-modules/money.d.ts.map +1 -1
  84. package/dist/cjs/src/user-modules/post.d.ts +2 -0
  85. package/dist/cjs/src/user-modules/post.d.ts.map +1 -1
  86. package/dist/cjs/src/user-modules/post.js +25 -25
  87. package/dist/cjs/src/user-modules/post.js.map +1 -1
  88. package/dist/cjs/src/user-modules/premium-online-appointment-card.d.ts +2 -0
  89. package/dist/cjs/src/user-modules/premium-online-appointment-card.d.ts.map +1 -1
  90. package/dist/cjs/src/user-modules/premium-online-appointment-card.js +2 -3
  91. package/dist/cjs/src/user-modules/premium-online-appointment-card.js.map +1 -1
  92. package/dist/cjs/src/user-modules/room-invitation.d.ts +2 -0
  93. package/dist/cjs/src/user-modules/room-invitation.d.ts.map +1 -1
  94. package/dist/cjs/src/user-modules/room-invitation.js +10 -11
  95. package/dist/cjs/src/user-modules/room-invitation.js.map +1 -1
  96. package/dist/cjs/src/user-modules/room.d.ts +2 -0
  97. package/dist/cjs/src/user-modules/room.d.ts.map +1 -1
  98. package/dist/cjs/src/user-modules/room.js +43 -43
  99. package/dist/cjs/src/user-modules/room.js.map +1 -1
  100. package/dist/cjs/src/user-modules/tag-group.d.ts +2 -0
  101. package/dist/cjs/src/user-modules/tag-group.d.ts.map +1 -1
  102. package/dist/cjs/src/user-modules/tag-group.js +13 -14
  103. package/dist/cjs/src/user-modules/tag-group.js.map +1 -1
  104. package/dist/cjs/src/user-modules/tag.d.ts +2 -0
  105. package/dist/cjs/src/user-modules/tag.d.ts.map +1 -1
  106. package/dist/cjs/src/user-modules/tag.js +21 -22
  107. package/dist/cjs/src/user-modules/tag.js.map +1 -1
  108. package/dist/cjs/src/user-modules/url-link.d.ts +2 -0
  109. package/dist/cjs/src/user-modules/url-link.d.ts.map +1 -1
  110. package/dist/cjs/src/user-modules/url-link.js +2 -3
  111. package/dist/cjs/src/user-modules/url-link.js.map +1 -1
  112. package/dist/cjs/src/user-modules/voice.d.ts +2 -0
  113. package/dist/cjs/src/user-modules/voice.d.ts.map +1 -1
  114. package/dist/cjs/src/user-modules/voice.js +8 -9
  115. package/dist/cjs/src/user-modules/voice.js.map +1 -1
  116. package/dist/cjs/src/user-modules/wecom.d.ts +3 -1
  117. package/dist/cjs/src/user-modules/wecom.d.ts.map +1 -1
  118. package/dist/cjs/src/user-modules/wecom.js +2 -3
  119. package/dist/cjs/src/user-modules/wecom.js.map +1 -1
  120. package/dist/cjs/src/user-modules/wxxd-order.d.ts +2 -0
  121. package/dist/cjs/src/user-modules/wxxd-order.d.ts.map +1 -1
  122. package/dist/cjs/src/user-modules/wxxd-order.js +9 -10
  123. package/dist/cjs/src/user-modules/wxxd-order.js.map +1 -1
  124. package/dist/cjs/src/user-modules/wxxd-product.d.ts +2 -0
  125. package/dist/cjs/src/user-modules/wxxd-product.d.ts.map +1 -1
  126. package/dist/cjs/src/user-modules/wxxd-product.js +6 -7
  127. package/dist/cjs/src/user-modules/wxxd-product.js.map +1 -1
  128. package/dist/cjs/src/wechaty/wechaty-base.d.ts +21 -37
  129. package/dist/cjs/src/wechaty/wechaty-base.d.ts.map +1 -1
  130. package/dist/cjs/src/wechaty/wechaty-base.js +17 -17
  131. package/dist/cjs/src/wechaty/wechaty-base.js.map +1 -1
  132. package/dist/cjs/src/wechaty/wechaty-skeleton.d.ts +15 -4
  133. package/dist/cjs/src/wechaty/wechaty-skeleton.d.ts.map +1 -1
  134. package/dist/cjs/src/wechaty/wechaty-skeleton.js +17 -6
  135. package/dist/cjs/src/wechaty/wechaty-skeleton.js.map +1 -1
  136. package/dist/cjs/src/wechaty-mixins/gerror-mixin.d.ts +3 -2
  137. package/dist/cjs/src/wechaty-mixins/gerror-mixin.d.ts.map +1 -1
  138. package/dist/cjs/src/wechaty-mixins/io-mixin.d.ts +12 -6
  139. package/dist/cjs/src/wechaty-mixins/io-mixin.d.ts.map +1 -1
  140. package/dist/cjs/src/wechaty-mixins/io-mixin.js +8 -8
  141. package/dist/cjs/src/wechaty-mixins/io-mixin.js.map +1 -1
  142. package/dist/cjs/src/wechaty-mixins/login-mixin.d.ts +53 -19
  143. package/dist/cjs/src/wechaty-mixins/login-mixin.d.ts.map +1 -1
  144. package/dist/cjs/src/wechaty-mixins/login-mixin.js +5 -5
  145. package/dist/cjs/src/wechaty-mixins/login-mixin.js.map +1 -1
  146. package/dist/cjs/src/wechaty-mixins/misc-mixin.d.ts +15 -10
  147. package/dist/cjs/src/wechaty-mixins/misc-mixin.d.ts.map +1 -1
  148. package/dist/cjs/src/wechaty-mixins/misc-mixin.js +1 -1
  149. package/dist/cjs/src/wechaty-mixins/misc-mixin.js.map +1 -1
  150. package/dist/cjs/src/wechaty-mixins/plugin-mixin.d.ts +18 -12
  151. package/dist/cjs/src/wechaty-mixins/plugin-mixin.d.ts.map +1 -1
  152. package/dist/cjs/src/wechaty-mixins/plugin-mixin.js +5 -5
  153. package/dist/cjs/src/wechaty-mixins/plugin-mixin.js.map +1 -1
  154. package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts +16 -34
  155. package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -1
  156. package/dist/cjs/src/wechaty-mixins/puppet-mixin.js +90 -90
  157. package/dist/cjs/src/wechaty-mixins/puppet-mixin.js.map +1 -1
  158. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.d.ts +3 -2
  159. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.d.ts.map +1 -1
  160. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.js +4 -4
  161. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.js.map +1 -1
  162. package/dist/esm/src/io.js +40 -40
  163. package/dist/esm/src/io.js.map +1 -1
  164. package/dist/esm/src/package-json.js +4 -4
  165. package/dist/esm/src/schemas/logger.d.ts +2 -0
  166. package/dist/esm/src/schemas/logger.d.ts.map +1 -0
  167. package/dist/esm/src/schemas/logger.js +2 -0
  168. package/dist/esm/src/schemas/logger.js.map +1 -0
  169. package/dist/esm/src/schemas/mod.d.ts +2 -1
  170. package/dist/esm/src/schemas/mod.d.ts.map +1 -1
  171. package/dist/esm/src/schemas/mod.js.map +1 -1
  172. package/dist/esm/src/schemas/wechaty-options.d.ts +19 -0
  173. package/dist/esm/src/schemas/wechaty-options.d.ts.map +1 -1
  174. package/dist/esm/src/user-mixins/wechatify.d.ts +23 -0
  175. package/dist/esm/src/user-mixins/wechatify.d.ts.map +1 -1
  176. package/dist/esm/src/user-mixins/wechatify.js +25 -0
  177. package/dist/esm/src/user-mixins/wechatify.js.map +1 -1
  178. package/dist/esm/src/user-modules/call.d.ts +4 -0
  179. package/dist/esm/src/user-modules/call.d.ts.map +1 -1
  180. package/dist/esm/src/user-modules/call.js +6 -7
  181. package/dist/esm/src/user-modules/call.js.map +1 -1
  182. package/dist/esm/src/user-modules/channel-card.d.ts +2 -0
  183. package/dist/esm/src/user-modules/channel-card.d.ts.map +1 -1
  184. package/dist/esm/src/user-modules/channel-card.js +2 -3
  185. package/dist/esm/src/user-modules/channel-card.js.map +1 -1
  186. package/dist/esm/src/user-modules/channel.d.ts +2 -0
  187. package/dist/esm/src/user-modules/channel.d.ts.map +1 -1
  188. package/dist/esm/src/user-modules/channel.js +2 -3
  189. package/dist/esm/src/user-modules/channel.js.map +1 -1
  190. package/dist/esm/src/user-modules/chat-history.d.ts +2 -0
  191. package/dist/esm/src/user-modules/chat-history.d.ts.map +1 -1
  192. package/dist/esm/src/user-modules/chat-history.js +2 -3
  193. package/dist/esm/src/user-modules/chat-history.js.map +1 -1
  194. package/dist/esm/src/user-modules/consult-card.d.ts +2 -0
  195. package/dist/esm/src/user-modules/consult-card.d.ts.map +1 -1
  196. package/dist/esm/src/user-modules/consult-card.js +3 -4
  197. package/dist/esm/src/user-modules/consult-card.js.map +1 -1
  198. package/dist/esm/src/user-modules/contact-self.d.ts.map +1 -1
  199. package/dist/esm/src/user-modules/contact-self.js +8 -9
  200. package/dist/esm/src/user-modules/contact-self.js.map +1 -1
  201. package/dist/esm/src/user-modules/contact.d.ts +2 -0
  202. package/dist/esm/src/user-modules/contact.d.ts.map +1 -1
  203. package/dist/esm/src/user-modules/contact.js +36 -37
  204. package/dist/esm/src/user-modules/contact.js.map +1 -1
  205. package/dist/esm/src/user-modules/delay.d.ts +2 -0
  206. package/dist/esm/src/user-modules/delay.d.ts.map +1 -1
  207. package/dist/esm/src/user-modules/douyin-one-click-phone-collection.d.ts +2 -0
  208. package/dist/esm/src/user-modules/douyin-one-click-phone-collection.d.ts.map +1 -1
  209. package/dist/esm/src/user-modules/douyin-one-click-phone-collection.js +2 -3
  210. package/dist/esm/src/user-modules/douyin-one-click-phone-collection.js.map +1 -1
  211. package/dist/esm/src/user-modules/favorite.d.ts +21 -0
  212. package/dist/esm/src/user-modules/favorite.d.ts.map +1 -1
  213. package/dist/esm/src/user-modules/favorite.js +1 -21
  214. package/dist/esm/src/user-modules/favorite.js.map +1 -1
  215. package/dist/esm/src/user-modules/friendship.d.ts +2 -0
  216. package/dist/esm/src/user-modules/friendship.d.ts.map +1 -1
  217. package/dist/esm/src/user-modules/friendship.js +11 -12
  218. package/dist/esm/src/user-modules/friendship.js.map +1 -1
  219. package/dist/esm/src/user-modules/im-specific.d.ts +2 -0
  220. package/dist/esm/src/user-modules/im-specific.d.ts.map +1 -1
  221. package/dist/esm/src/user-modules/im-specific.js +1 -2
  222. package/dist/esm/src/user-modules/im-specific.js.map +1 -1
  223. package/dist/esm/src/user-modules/image.d.ts +22 -0
  224. package/dist/esm/src/user-modules/image.d.ts.map +1 -1
  225. package/dist/esm/src/user-modules/image.js +5 -6
  226. package/dist/esm/src/user-modules/image.js.map +1 -1
  227. package/dist/esm/src/user-modules/location.d.ts +2 -0
  228. package/dist/esm/src/user-modules/location.d.ts.map +1 -1
  229. package/dist/esm/src/user-modules/location.js +2 -3
  230. package/dist/esm/src/user-modules/location.js.map +1 -1
  231. package/dist/esm/src/user-modules/message.d.ts +2 -0
  232. package/dist/esm/src/user-modules/message.d.ts.map +1 -1
  233. package/dist/esm/src/user-modules/message.js +56 -56
  234. package/dist/esm/src/user-modules/message.js.map +1 -1
  235. package/dist/esm/src/user-modules/mini-program.d.ts +2 -0
  236. package/dist/esm/src/user-modules/mini-program.d.ts.map +1 -1
  237. package/dist/esm/src/user-modules/mini-program.js +2 -3
  238. package/dist/esm/src/user-modules/mini-program.js.map +1 -1
  239. package/dist/esm/src/user-modules/moment.d.ts +21 -0
  240. package/dist/esm/src/user-modules/moment.d.ts.map +1 -1
  241. package/dist/esm/src/user-modules/moment.js +5 -25
  242. package/dist/esm/src/user-modules/moment.js.map +1 -1
  243. package/dist/esm/src/user-modules/money.d.ts +2 -0
  244. package/dist/esm/src/user-modules/money.d.ts.map +1 -1
  245. package/dist/esm/src/user-modules/post.d.ts +2 -0
  246. package/dist/esm/src/user-modules/post.d.ts.map +1 -1
  247. package/dist/esm/src/user-modules/post.js +25 -25
  248. package/dist/esm/src/user-modules/post.js.map +1 -1
  249. package/dist/esm/src/user-modules/premium-online-appointment-card.d.ts +2 -0
  250. package/dist/esm/src/user-modules/premium-online-appointment-card.d.ts.map +1 -1
  251. package/dist/esm/src/user-modules/premium-online-appointment-card.js +2 -3
  252. package/dist/esm/src/user-modules/premium-online-appointment-card.js.map +1 -1
  253. package/dist/esm/src/user-modules/room-invitation.d.ts +2 -0
  254. package/dist/esm/src/user-modules/room-invitation.d.ts.map +1 -1
  255. package/dist/esm/src/user-modules/room-invitation.js +10 -11
  256. package/dist/esm/src/user-modules/room-invitation.js.map +1 -1
  257. package/dist/esm/src/user-modules/room.d.ts +2 -0
  258. package/dist/esm/src/user-modules/room.d.ts.map +1 -1
  259. package/dist/esm/src/user-modules/room.js +44 -44
  260. package/dist/esm/src/user-modules/room.js.map +1 -1
  261. package/dist/esm/src/user-modules/tag-group.d.ts +2 -0
  262. package/dist/esm/src/user-modules/tag-group.d.ts.map +1 -1
  263. package/dist/esm/src/user-modules/tag-group.js +13 -14
  264. package/dist/esm/src/user-modules/tag-group.js.map +1 -1
  265. package/dist/esm/src/user-modules/tag.d.ts +2 -0
  266. package/dist/esm/src/user-modules/tag.d.ts.map +1 -1
  267. package/dist/esm/src/user-modules/tag.js +21 -22
  268. package/dist/esm/src/user-modules/tag.js.map +1 -1
  269. package/dist/esm/src/user-modules/url-link.d.ts +2 -0
  270. package/dist/esm/src/user-modules/url-link.d.ts.map +1 -1
  271. package/dist/esm/src/user-modules/url-link.js +2 -3
  272. package/dist/esm/src/user-modules/url-link.js.map +1 -1
  273. package/dist/esm/src/user-modules/voice.d.ts +2 -0
  274. package/dist/esm/src/user-modules/voice.d.ts.map +1 -1
  275. package/dist/esm/src/user-modules/voice.js +8 -9
  276. package/dist/esm/src/user-modules/voice.js.map +1 -1
  277. package/dist/esm/src/user-modules/wecom.d.ts +3 -1
  278. package/dist/esm/src/user-modules/wecom.d.ts.map +1 -1
  279. package/dist/esm/src/user-modules/wecom.js +2 -3
  280. package/dist/esm/src/user-modules/wecom.js.map +1 -1
  281. package/dist/esm/src/user-modules/wxxd-order.d.ts +2 -0
  282. package/dist/esm/src/user-modules/wxxd-order.d.ts.map +1 -1
  283. package/dist/esm/src/user-modules/wxxd-order.js +9 -10
  284. package/dist/esm/src/user-modules/wxxd-order.js.map +1 -1
  285. package/dist/esm/src/user-modules/wxxd-product.d.ts +2 -0
  286. package/dist/esm/src/user-modules/wxxd-product.d.ts.map +1 -1
  287. package/dist/esm/src/user-modules/wxxd-product.js +6 -7
  288. package/dist/esm/src/user-modules/wxxd-product.js.map +1 -1
  289. package/dist/esm/src/wechaty/wechaty-base.d.ts +21 -37
  290. package/dist/esm/src/wechaty/wechaty-base.d.ts.map +1 -1
  291. package/dist/esm/src/wechaty/wechaty-base.js +17 -17
  292. package/dist/esm/src/wechaty/wechaty-base.js.map +1 -1
  293. package/dist/esm/src/wechaty/wechaty-skeleton.d.ts +15 -4
  294. package/dist/esm/src/wechaty/wechaty-skeleton.d.ts.map +1 -1
  295. package/dist/esm/src/wechaty/wechaty-skeleton.js +17 -6
  296. package/dist/esm/src/wechaty/wechaty-skeleton.js.map +1 -1
  297. package/dist/esm/src/wechaty-mixins/gerror-mixin.d.ts +3 -2
  298. package/dist/esm/src/wechaty-mixins/gerror-mixin.d.ts.map +1 -1
  299. package/dist/esm/src/wechaty-mixins/io-mixin.d.ts +12 -6
  300. package/dist/esm/src/wechaty-mixins/io-mixin.d.ts.map +1 -1
  301. package/dist/esm/src/wechaty-mixins/io-mixin.js +8 -8
  302. package/dist/esm/src/wechaty-mixins/io-mixin.js.map +1 -1
  303. package/dist/esm/src/wechaty-mixins/login-mixin.d.ts +53 -19
  304. package/dist/esm/src/wechaty-mixins/login-mixin.d.ts.map +1 -1
  305. package/dist/esm/src/wechaty-mixins/login-mixin.js +5 -5
  306. package/dist/esm/src/wechaty-mixins/login-mixin.js.map +1 -1
  307. package/dist/esm/src/wechaty-mixins/misc-mixin.d.ts +15 -10
  308. package/dist/esm/src/wechaty-mixins/misc-mixin.d.ts.map +1 -1
  309. package/dist/esm/src/wechaty-mixins/misc-mixin.js +1 -1
  310. package/dist/esm/src/wechaty-mixins/misc-mixin.js.map +1 -1
  311. package/dist/esm/src/wechaty-mixins/plugin-mixin.d.ts +18 -12
  312. package/dist/esm/src/wechaty-mixins/plugin-mixin.d.ts.map +1 -1
  313. package/dist/esm/src/wechaty-mixins/plugin-mixin.js +5 -5
  314. package/dist/esm/src/wechaty-mixins/plugin-mixin.js.map +1 -1
  315. package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts +16 -34
  316. package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -1
  317. package/dist/esm/src/wechaty-mixins/puppet-mixin.js +90 -90
  318. package/dist/esm/src/wechaty-mixins/puppet-mixin.js.map +1 -1
  319. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.d.ts +3 -2
  320. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.d.ts.map +1 -1
  321. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.js +4 -4
  322. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.js.map +1 -1
  323. package/package.json +3 -3
  324. package/src/io.ts +40 -40
  325. package/src/package-json.ts +4 -4
  326. package/src/schemas/logger.ts +1 -0
  327. package/src/schemas/mod.ts +4 -0
  328. package/src/schemas/wechaty-options.ts +21 -0
  329. package/src/user-mixins/wechatify.ts +26 -0
  330. package/src/user-modules/call.ts +6 -7
  331. package/src/user-modules/channel-card.ts +2 -3
  332. package/src/user-modules/channel.ts +2 -3
  333. package/src/user-modules/chat-history.ts +2 -3
  334. package/src/user-modules/consult-card.ts +3 -5
  335. package/src/user-modules/contact-self.ts +8 -11
  336. package/src/user-modules/contact.ts +36 -40
  337. package/src/user-modules/douyin-one-click-phone-collection.ts +2 -3
  338. package/src/user-modules/favorite.ts +1 -2
  339. package/src/user-modules/friendship.ts +11 -12
  340. package/src/user-modules/im-specific.ts +1 -2
  341. package/src/user-modules/image.ts +5 -6
  342. package/src/user-modules/location.ts +2 -3
  343. package/src/user-modules/message.ts +55 -56
  344. package/src/user-modules/mini-program.ts +2 -3
  345. package/src/user-modules/moment.ts +5 -6
  346. package/src/user-modules/post.ts +25 -25
  347. package/src/user-modules/premium-online-appointment-card.ts +2 -3
  348. package/src/user-modules/room-invitation.ts +10 -11
  349. package/src/user-modules/room.ts +43 -44
  350. package/src/user-modules/tag-group.ts +13 -14
  351. package/src/user-modules/tag.ts +21 -22
  352. package/src/user-modules/url-link.ts +2 -3
  353. package/src/user-modules/voice.ts +8 -9
  354. package/src/user-modules/wecom.ts +3 -3
  355. package/src/user-modules/wxxd-order.ts +9 -10
  356. package/src/user-modules/wxxd-product.ts +6 -7
  357. package/src/wechaty/wechaty-base.ts +17 -17
  358. package/src/wechaty/wechaty-skeleton.ts +21 -8
  359. package/src/wechaty-mixins/io-mixin.ts +8 -8
  360. package/src/wechaty-mixins/login-mixin.ts +5 -5
  361. package/src/wechaty-mixins/misc-mixin.ts +1 -1
  362. package/src/wechaty-mixins/plugin-mixin.ts +5 -5
  363. package/src/wechaty-mixins/puppet-mixin.ts +97 -86
  364. package/src/wechaty-mixins/wechatify-user-module-mixin.ts +4 -4
  365. package/dist/cjs/src/wechaty-mixins/puppet-mixin-dirty-pool.spec.d.ts +0 -3
  366. package/dist/cjs/src/wechaty-mixins/puppet-mixin-dirty-pool.spec.d.ts.map +0 -1
  367. package/dist/cjs/src/wechaty-mixins/puppet-mixin-dirty-pool.spec.js +0 -121
  368. package/dist/cjs/src/wechaty-mixins/puppet-mixin-dirty-pool.spec.js.map +0 -1
  369. package/dist/esm/src/wechaty-mixins/puppet-mixin-dirty-pool.spec.d.ts +0 -3
  370. package/dist/esm/src/wechaty-mixins/puppet-mixin-dirty-pool.spec.d.ts.map +0 -1
  371. package/dist/esm/src/wechaty-mixins/puppet-mixin-dirty-pool.spec.js +0 -96
  372. package/dist/esm/src/wechaty-mixins/puppet-mixin-dirty-pool.spec.js.map +0 -1
  373. package/src/wechaty-mixins/puppet-mixin-dirty-pool.spec.ts +0 -144
@@ -23,7 +23,6 @@ import type {
23
23
  import type { Constructor } from 'clone-class'
24
24
  import type * as PUPPET from '@juzi/wechaty-puppet'
25
25
  import { validationMixin } from '../user-mixins/validation.js'
26
- import { log } from '../config.js'
27
26
 
28
27
  import {
29
28
  wechatifyMixinBase,
@@ -62,7 +61,7 @@ function isUnsupportedError (e: unknown): boolean {
62
61
  class VoiceMixin extends wechatifyMixinBase() {
63
62
 
64
63
  static create (id: string): VoiceInterface {
65
- log.verbose('Voice', 'static create(%s)', id)
64
+ this.log.verbose('Voice', 'static create(%s)', id)
66
65
 
67
66
  const voice = new this(id)
68
67
  return voice
@@ -72,7 +71,7 @@ class VoiceMixin extends wechatifyMixinBase() {
72
71
  public id: string,
73
72
  ) {
74
73
  super()
75
- log.verbose('Voice', 'constructor(%s)', id)
74
+ this.log.verbose('Voice', 'constructor(%s)', id)
76
75
  }
77
76
 
78
77
  /**
@@ -85,11 +84,11 @@ class VoiceMixin extends wechatifyMixinBase() {
85
84
  * path. A genuine runtime error from a working `messageVoice` is rethrown.
86
85
  */
87
86
  async file (): Promise<FileBoxInterface> {
88
- log.verbose('Voice', 'file() for id: "%s"', this.id)
87
+ this.log.verbose('Voice', 'file() for id: "%s"', this.id)
89
88
  const puppet = this.wechaty.puppet
90
89
  // puppet built against an old wechaty-puppet without the method at all
91
90
  if (typeof (puppet as { messageVoice?: unknown }).messageVoice !== 'function') {
92
- log.verbose('Voice', 'file() messageVoice() absent, fallback to messageFile()')
91
+ this.log.verbose('Voice', 'file() messageVoice() absent, fallback to messageFile()')
93
92
  return puppet.messageFile(this.id)
94
93
  }
95
94
  try {
@@ -99,7 +98,7 @@ class VoiceMixin extends wechatifyMixinBase() {
99
98
  if (!isUnsupportedError(e)) {
100
99
  throw e
101
100
  }
102
- log.verbose('Voice', 'file() messageVoice() unsupported, fallback to messageFile(): %s', (e as Error).message)
101
+ this.log.verbose('Voice', 'file() messageVoice() unsupported, fallback to messageFile(): %s', (e as Error).message)
103
102
  const fileBox = await puppet.messageFile(this.id)
104
103
  return fileBox
105
104
  }
@@ -119,11 +118,11 @@ class VoiceMixin extends wechatifyMixinBase() {
119
118
  * does not silently drop `noSpeech` and re-run its own paid ASR).
120
119
  */
121
120
  async text (): Promise<PUPPET.payloads.VoiceText> {
122
- log.verbose('Voice', 'text() for id: "%s"', this.id)
121
+ this.log.verbose('Voice', 'text() for id: "%s"', this.id)
123
122
  const puppet = this.wechaty.puppet
124
123
  // puppet built against an old wechaty-puppet without the method at all
125
124
  if (typeof (puppet as { messageVoiceText?: unknown }).messageVoiceText !== 'function') {
126
- log.verbose('Voice', 'text() messageVoiceText() absent, fallback to messagePayload().text')
125
+ this.log.verbose('Voice', 'text() messageVoiceText() absent, fallback to messagePayload().text')
127
126
  const payload = await puppet.messagePayload(this.id)
128
127
  return { text: payload.text || '', noSpeech: false }
129
128
  }
@@ -134,7 +133,7 @@ class VoiceMixin extends wechatifyMixinBase() {
134
133
  if (!isUnsupportedError(e)) {
135
134
  throw e
136
135
  }
137
- log.verbose('Voice', 'text() messageVoiceText() unsupported, fallback to messagePayload().text: %s', (e as Error).message)
136
+ this.log.verbose('Voice', 'text() messageVoiceText() unsupported, fallback to messagePayload().text: %s', (e as Error).message)
138
137
  const payload = await puppet.messagePayload(this.id)
139
138
  return { text: payload.text || '', noSpeech: false }
140
139
  }
@@ -1,4 +1,4 @@
1
- import { log, types } from '@juzi/wechaty-puppet'
1
+ import type { types } from '@juzi/wechaty-puppet'
2
2
  import type { Constructor } from 'clone-class'
3
3
 
4
4
  import { validationMixin } from '../user-mixins/validation.js'
@@ -41,7 +41,7 @@ class WecomMixin extends wechatifyMixinBase() {
41
41
  const filteredRoomIds = Array.from(rawRoomIdSet).filter(id => !actualRoomIdSet.has(id))
42
42
 
43
43
  if (filteredRoomIds.length) {
44
- log.warn(`these rooms cannot be applied with anti-spam strategy: ${filteredRoomIds}`)
44
+ this.log.warn(`these rooms cannot be applied with anti-spam strategy: ${filteredRoomIds}`)
45
45
  }
46
46
 
47
47
  if (actualRoomIdSet.size) {
@@ -58,7 +58,7 @@ class WecomMixin extends wechatifyMixinBase() {
58
58
  */
59
59
  constructor () {
60
60
  super()
61
- log.verbose('Wecom', 'constructor()')
61
+ this.log.verbose('Wecom', 'constructor()')
62
62
  }
63
63
 
64
64
  }
@@ -2,7 +2,6 @@ import type { Constructor } from 'clone-class'
2
2
  import type { PaginationRequest } from '@juzi/wechaty-puppet/filters'
3
3
  import * as PUPPET from '@juzi/wechaty-puppet'
4
4
 
5
- import { log } from '../config.js'
6
5
  import { poolifyMixin } from '../user-mixins/poolify.js'
7
6
  import { validationMixin } from '../user-mixins/validation.js'
8
7
  import { wechatifyMixin } from '../user-mixins/wechatify.js'
@@ -26,14 +25,14 @@ class WxxdOrderMixin extends MixinBase {
26
25
  public readonly id: string,
27
26
  ) {
28
27
  super()
29
- log.silly('WxxdOrder', 'constructor(%s)', id)
28
+ this.log.silly('WxxdOrder', 'constructor(%s)', id)
30
29
  }
31
30
 
32
31
  /**
33
32
  * List all orders
34
33
  */
35
34
  static async list (query: PaginationRequest) {
36
- log.verbose('WxxdOrder', 'list(%s)', JSON.stringify(query))
35
+ this.log.verbose('WxxdOrder', 'list(%s)', JSON.stringify(query))
37
36
 
38
37
  return await this.wechaty.puppet.listWxxdOrders(query)
39
38
  }
@@ -44,7 +43,7 @@ class WxxdOrderMixin extends MixinBase {
44
43
  static async find (
45
44
  query: string | { id: string },
46
45
  ): Promise<WxxdOrderInterface | undefined> {
47
- log.verbose('WxxdOrder', 'find(%s)', JSON.stringify(query))
46
+ this.log.verbose('WxxdOrder', 'find(%s)', JSON.stringify(query))
48
47
 
49
48
  const id = typeof query === 'string' ? query : query.id
50
49
 
@@ -68,7 +67,7 @@ class WxxdOrderMixin extends MixinBase {
68
67
  * Send delivery for an order
69
68
  */
70
69
  static async deliverySend (orderId: string, deliveryId: string, waybillId: string) {
71
- log.verbose('WxxdOrder', 'deliverySend(%s, %s, %s)', orderId, deliveryId, waybillId)
70
+ this.log.verbose('WxxdOrder', 'deliverySend(%s, %s, %s)', orderId, deliveryId, waybillId)
72
71
  return this.wechaty.puppet.wxxdOrderDeliverySend({ orderId, deliveryId, waybillId })
73
72
  }
74
73
 
@@ -76,7 +75,7 @@ class WxxdOrderMixin extends MixinBase {
76
75
  * Generate after sale order
77
76
  */
78
77
  static async genAfterSaleOrder (orderId: string, reason: string) {
79
- log.verbose('WxxdOrder', 'genAfterSaleOrder(%s, %s)', orderId, reason)
78
+ this.log.verbose('WxxdOrder', 'genAfterSaleOrder(%s, %s)', orderId, reason)
80
79
  return this.wechaty.puppet.wxxdOrderGenAfterSaleOrder({ orderId, reason })
81
80
  }
82
81
 
@@ -84,7 +83,7 @@ class WxxdOrderMixin extends MixinBase {
84
83
  * Update order merchant notes
85
84
  */
86
85
  static async updateWxxdMerchantnotes (orderId: string, merchantNotes: string) {
87
- log.verbose('WxxdOrder', 'updateWxxdMerchantnotes(%s, %s)', orderId, merchantNotes)
86
+ this.log.verbose('WxxdOrder', 'updateWxxdMerchantnotes(%s, %s)', orderId, merchantNotes)
88
87
  return this.wechaty.puppet.updateWxxdMerchantnotes(orderId, merchantNotes)
89
88
  }
90
89
 
@@ -93,10 +92,10 @@ class WxxdOrderMixin extends MixinBase {
93
92
  }
94
93
 
95
94
  async ready (forceSync = false): Promise<void> {
96
- log.silly('WxxdOrder', 'ready() @ %s with id="%s"', this.wechaty.puppet, this.id)
95
+ this.log.silly('WxxdOrder', 'ready() @ %s with id="%s"', this.wechaty.puppet, this.id)
97
96
 
98
97
  if (!forceSync && this.isReady()) {
99
- log.silly('WxxdOrder', 'ready() isReady() true')
98
+ this.log.silly('WxxdOrder', 'ready() isReady() true')
100
99
  return
101
100
  }
102
101
 
@@ -104,7 +103,7 @@ class WxxdOrderMixin extends MixinBase {
104
103
  this.payload = await this.wechaty.puppet.wxxdOrderPayload(this.id)
105
104
  } catch (e) {
106
105
  this.wechaty.emitError(e)
107
- log.verbose('WxxdOrder', 'ready() this.wechaty.puppet.wxxdOrderPayload(%s) exception: %s',
106
+ this.log.verbose('WxxdOrder', 'ready() this.wechaty.puppet.wxxdOrderPayload(%s) exception: %s',
108
107
  this.id,
109
108
  (e as Error).message,
110
109
  )
@@ -2,7 +2,6 @@ import type { Constructor } from 'clone-class'
2
2
  import type { PaginationRequest } from '@juzi/wechaty-puppet/filters'
3
3
  import * as PUPPET from '@juzi/wechaty-puppet'
4
4
 
5
- import { log } from '../config.js'
6
5
  import { poolifyMixin } from '../user-mixins/poolify.js'
7
6
  import { validationMixin } from '../user-mixins/validation.js'
8
7
  import { wechatifyMixin } from '../user-mixins/wechatify.js'
@@ -26,14 +25,14 @@ class WxxdProductMixin extends MixinBase {
26
25
  public readonly id: string,
27
26
  ) {
28
27
  super()
29
- log.silly('WxxdProduct', 'constructor(%s)', id)
28
+ this.log.silly('WxxdProduct', 'constructor(%s)', id)
30
29
  }
31
30
 
32
31
  /**
33
32
  * List all products
34
33
  */
35
34
  static async list (query: PaginationRequest) {
36
- log.verbose('WxxdProduct', 'list(%s)', JSON.stringify(query))
35
+ this.log.verbose('WxxdProduct', 'list(%s)', JSON.stringify(query))
37
36
 
38
37
  return await this.wechaty.puppet.listWxxdProducts(query)
39
38
  }
@@ -44,7 +43,7 @@ class WxxdProductMixin extends MixinBase {
44
43
  static async find (
45
44
  query: string | { id: string },
46
45
  ): Promise<WxxdProductInterface | undefined> {
47
- log.verbose('WxxdProduct', 'find(%s)', JSON.stringify(query))
46
+ this.log.verbose('WxxdProduct', 'find(%s)', JSON.stringify(query))
48
47
 
49
48
  const id = typeof query === 'string' ? query : query.id
50
49
 
@@ -69,10 +68,10 @@ class WxxdProductMixin extends MixinBase {
69
68
  }
70
69
 
71
70
  async ready (forceSync = false): Promise<void> {
72
- log.silly('WxxdProduct', 'ready() @ %s with id="%s"', this.wechaty.puppet, this.id)
71
+ this.log.silly('WxxdProduct', 'ready() @ %s with id="%s"', this.wechaty.puppet, this.id)
73
72
 
74
73
  if (!forceSync && this.isReady()) {
75
- log.silly('WxxdProduct', 'ready() isReady() true')
74
+ this.log.silly('WxxdProduct', 'ready() isReady() true')
76
75
  return
77
76
  }
78
77
 
@@ -80,7 +79,7 @@ class WxxdProductMixin extends MixinBase {
80
79
  this.payload = await this.wechaty.puppet.wxxdProductPayload(this.id)
81
80
  } catch (e) {
82
81
  this.wechaty.emitError(e)
83
- log.verbose('WxxdProduct', 'ready() this.wechaty.puppet.wxxdProductPayload(%s) exception: %s',
82
+ this.log.verbose('WxxdProduct', 'ready() this.wechaty.puppet.wxxdProductPayload(%s) exception: %s',
84
83
  this.id,
85
84
  (e as Error).message,
86
85
  )
@@ -169,41 +169,41 @@ class WechatyBase extends mixinBase implements SayableSayer {
169
169
  override __options: WechatyOptions = {},
170
170
  ) {
171
171
  super(__options)
172
- log.verbose('Wechaty', 'constructor()')
172
+ this.log.verbose('Wechaty', 'constructor()')
173
173
 
174
174
  this.__memory = this.__options.memory
175
175
  this.wechaty = this
176
176
  }
177
177
 
178
178
  override async start (): Promise<void> {
179
- log.verbose('Wechaty', 'start()')
179
+ this.log.verbose('Wechaty', 'start()')
180
180
  await this.init()
181
181
  return super.start()
182
182
  }
183
183
 
184
184
  override async onStart (): Promise<void> {
185
- log.verbose('Wechaty', 'onStart()')
185
+ this.log.verbose('Wechaty', 'onStart()')
186
186
 
187
- log.verbose('Wechaty', '<%s>(%s) onStart() v%s is starting...',
187
+ this.log.verbose('Wechaty', '<%s>(%s) onStart() v%s is starting...',
188
188
  this.__options.puppet || config.systemPuppetName(),
189
189
  this.__options.name || '',
190
190
  this.version(),
191
191
  )
192
- log.verbose('Wechaty', 'id: %s', this.id)
192
+ this.log.verbose('Wechaty', 'id: %s', this.id)
193
193
 
194
194
  const lifeTimer = setInterval(() => {
195
- log.silly('Wechaty', 'onStart() setInterval() this timer is to keep Wechaty running...')
195
+ this.log.silly('Wechaty', 'onStart() setInterval() this timer is to keep Wechaty running...')
196
196
  }, 1000 * 60 * 60)
197
197
  this._stopCallbackList.push(() => clearInterval(lifeTimer))
198
198
 
199
199
  this.emit('start')
200
- log.verbose('Wechaty', 'onStart() ... done')
200
+ this.log.verbose('Wechaty', 'onStart() ... done')
201
201
  }
202
202
 
203
203
  override async onStop (): Promise<void> {
204
- log.verbose('Wechaty', 'onStop()')
204
+ this.log.verbose('Wechaty', 'onStop()')
205
205
 
206
- log.verbose('Wechaty', '<%s> onStop() v%s is stopping ...',
206
+ this.log.verbose('Wechaty', '<%s> onStop() v%s is stopping ...',
207
207
  this.__options.puppet || config.systemPuppetName(),
208
208
  this.version(),
209
209
  )
@@ -213,7 +213,7 @@ class WechatyBase extends mixinBase implements SayableSayer {
213
213
  this._stopCallbackList.length = 0
214
214
 
215
215
  this.emit('stop')
216
- log.verbose('Wechaty', 'onStop() ... done')
216
+ this.log.verbose('Wechaty', 'onStop() ... done')
217
217
  }
218
218
 
219
219
  /**
@@ -273,7 +273,7 @@ class WechatyBase extends mixinBase implements SayableSayer {
273
273
  async say (
274
274
  sayable: Sayable,
275
275
  ): Promise<void> {
276
- log.verbose('Wechaty', 'say(%s)', sayable)
276
+ this.log.verbose('Wechaty', 'say(%s)', sayable)
277
277
  await this.currentUser.say(sayable)
278
278
  }
279
279
 
@@ -294,7 +294,7 @@ class WechatyBase extends mixinBase implements SayableSayer {
294
294
  contacts: ContactInterface[],
295
295
  options?: { media?: PUPPET.types.CallMediaType },
296
296
  ): Promise<CallInterface> {
297
- log.verbose('Wechaty', 'call(%d contacts, %s)', contacts.length, JSON.stringify(options ?? {}))
297
+ this.log.verbose('Wechaty', 'call(%d contacts, %s)', contacts.length, JSON.stringify(options ?? {}))
298
298
 
299
299
  if (contacts.length === 0) {
300
300
  throw new Error('Wechaty.call() requires at least one contact')
@@ -317,7 +317,7 @@ class WechatyBase extends mixinBase implements SayableSayer {
317
317
  async publish (
318
318
  post: PostInterface,
319
319
  ): Promise<void | PostInterface> {
320
- log.verbose('Wechaty', 'publish(%s)',
320
+ this.log.verbose('Wechaty', 'publish(%s)',
321
321
  (post.payload.sayableList as PUPPET.payloads.Sayable[])
322
322
  .map(s => s.type).join(','),
323
323
  )
@@ -331,7 +331,7 @@ class WechatyBase extends mixinBase implements SayableSayer {
331
331
  async unpublish (
332
332
  post: PostInterface,
333
333
  ): Promise<void> {
334
- log.verbose('Wechaty', 'unpublish(%s)', post.id)
334
+ this.log.verbose('Wechaty', 'unpublish(%s)', post.id)
335
335
 
336
336
  if (!post.id) {
337
337
  throw new Error('cannot unpublish a post without id')
@@ -346,7 +346,7 @@ class WechatyBase extends mixinBase implements SayableSayer {
346
346
  id: string,
347
347
  code: string,
348
348
  ): Promise<void> {
349
- log.verbose('Wechaty', 'enterVerifyCode(%s, %s)', id, code)
349
+ this.log.verbose('Wechaty', 'enterVerifyCode(%s, %s)', id, code)
350
350
 
351
351
  return this.puppet.enterVerifyCode(id, code)
352
352
  }
@@ -354,14 +354,14 @@ class WechatyBase extends mixinBase implements SayableSayer {
354
354
  async cancelVerifyCode (
355
355
  id: string,
356
356
  ): Promise<void> {
357
- log.verbose('Wechaty', 'cancelVerifyCode(%s)', id)
357
+ this.log.verbose('Wechaty', 'cancelVerifyCode(%s)', id)
358
358
 
359
359
  return this.puppet.cancelVerifyCode(id)
360
360
  }
361
361
 
362
362
  async refreshQrCode (
363
363
  ): Promise<void> {
364
- log.verbose('Wechaty', 'refreshQrCode(%s)')
364
+ this.log.verbose('Wechaty', 'refreshQrCode(%s)')
365
365
 
366
366
  if (this.isLoggedIn) {
367
367
  throw new Error('cannot refresh qr because bot is logged in')
@@ -20,19 +20,31 @@
20
20
  import { MemoryCard } from 'memory-card'
21
21
  import { log } from '@juzi/wechaty-puppet'
22
22
  import * as UUID from 'uuid'
23
- import type { Loggable } from 'brolog'
24
23
 
25
24
  import {
26
25
  WechatyEventEmitter,
27
26
  WechatyEventName,
28
27
  } from '../schemas/mod.js'
29
28
 
29
+ import type { LoggerLike } from '../schemas/logger.js'
30
30
  import type { WechatyOptions } from '../schemas/wechaty-options.js'
31
31
 
32
32
  abstract class WechatySkeleton extends WechatyEventEmitter {
33
33
 
34
- static readonly log: Loggable = log
35
- readonly log: Loggable = log
34
+ static readonly log: LoggerLike = log
35
+
36
+ /**
37
+ * Effective logger for this Wechaty instance.
38
+ *
39
+ * Populated in the following order (see puppet-mixin):
40
+ * 1. `puppet.log` — the logger the puppet ended up using
41
+ * (which, when {@link WechatyOptions.logger} is supplied, is
42
+ * the caller's logger).
43
+ * 2. the built-in brolog `log` — hard fallback for the pre-init
44
+ * window and for puppets that have not adopted `puppet.log`.
45
+ */
46
+ __log: LoggerLike = log
47
+ get log (): LoggerLike { return this.__log }
36
48
 
37
49
  /**
38
50
  * the UUID of the Wechaty
@@ -77,20 +89,20 @@ abstract class WechatySkeleton extends WechatyEventEmitter {
77
89
  * by skipping the second time initialization.
78
90
  */
79
91
  async init (): Promise<void> {
80
- log.verbose('WechatySkeleton', 'init()')
92
+ this.log.verbose('WechatySkeleton', 'init()')
81
93
 
82
94
  if (!this.__memory) {
83
95
  this.__memory = new MemoryCard(this.__options.name)
84
96
  try {
85
97
  await this.__memory.load()
86
98
  } catch (_) {
87
- log.silly('WechatySkeleton', 'onStart() memory.load() had already loaded')
99
+ this.log.silly('WechatySkeleton', 'onStart() memory.load() had already loaded')
88
100
  }
89
101
  }
90
102
  }
91
103
 
92
104
  async start (): Promise<void> {
93
- log.verbose('WechatySkeleton', 'start()')
105
+ this.log.verbose('WechatySkeleton', 'start()')
94
106
  // no super.start()
95
107
 
96
108
  /**
@@ -100,12 +112,12 @@ abstract class WechatySkeleton extends WechatyEventEmitter {
100
112
  }
101
113
 
102
114
  async stop (): Promise<void> {
103
- log.verbose('WechatySkeleton', 'stop()')
115
+ this.log.verbose('WechatySkeleton', 'stop()')
104
116
  // no super.stop()
105
117
  }
106
118
 
107
119
  override on (event: WechatyEventName, listener: (...args: any[]) => any): this {
108
- log.verbose('WechatySkeleton', 'on(%s, listener) registering... listenerCount: %s',
120
+ this.log.verbose('WechatySkeleton', 'on(%s, listener) registering... listenerCount: %s',
109
121
  event,
110
122
  this.listenerCount(event),
111
123
  )
@@ -117,6 +129,7 @@ abstract class WechatySkeleton extends WechatyEventEmitter {
117
129
 
118
130
  type WechatySkeletonProtectedProperty =
119
131
  | '__events'
132
+ | '__log'
120
133
  | '__memory'
121
134
  | '__options'
122
135
  | 'memory'
@@ -36,7 +36,7 @@ const ioMixin = <MixinBase extends typeof WechatySkeleton & GErrorMixin> (mixinB
36
36
  }
37
37
 
38
38
  override async start (): Promise<void> {
39
- log.verbose('WechatyIoMixin', 'start()')
39
+ this.log.verbose('WechatyIoMixin', 'start()')
40
40
 
41
41
  await super.start()
42
42
 
@@ -48,13 +48,13 @@ const ioMixin = <MixinBase extends typeof WechatySkeleton & GErrorMixin> (mixinB
48
48
  * Clean the memory leak-ed io (?)
49
49
  */
50
50
  if (this.__io) {
51
- log.error('WechatyIoMixin', 'start() found existing io instance: stopping...')
51
+ this.log.error('WechatyIoMixin', 'start() found existing io instance: stopping...')
52
52
  try {
53
53
  await this.__io.stop()
54
54
  } catch (e) {
55
55
  this.emitError(e)
56
56
  }
57
- log.error('WechatyIoMixin', 'start() found existing io instance: stopping... done')
57
+ this.log.error('WechatyIoMixin', 'start() found existing io instance: stopping... done')
58
58
  this.__io = undefined
59
59
  }
60
60
 
@@ -66,13 +66,13 @@ const ioMixin = <MixinBase extends typeof WechatySkeleton & GErrorMixin> (mixinB
66
66
  wechaty : this as any, // <- FIXME: remove any, Huan(202111)
67
67
  })
68
68
 
69
- log.verbose('WechatyIoMixin', 'start() starting io ...')
69
+ this.log.verbose('WechatyIoMixin', 'start() starting io ...')
70
70
  await this.__io.start()
71
- log.verbose('WechatyIoMixin', 'start() starting io ... done')
71
+ this.log.verbose('WechatyIoMixin', 'start() starting io ... done')
72
72
  }
73
73
 
74
74
  override async stop (): Promise<void> {
75
- log.verbose('WechatyIoMixin', 'stop()')
75
+ this.log.verbose('WechatyIoMixin', 'stop()')
76
76
 
77
77
  try {
78
78
  if (!this.__io) {
@@ -83,9 +83,9 @@ const ioMixin = <MixinBase extends typeof WechatySkeleton & GErrorMixin> (mixinB
83
83
  this.__io = undefined
84
84
 
85
85
  try {
86
- log.verbose('WechatyIoMixin', 'stop() starting io ...')
86
+ this.log.verbose('WechatyIoMixin', 'stop() starting io ...')
87
87
  await io.stop()
88
- log.verbose('WechatyIoMixin', 'stop() starting io ... done')
88
+ this.log.verbose('WechatyIoMixin', 'stop() starting io ... done')
89
89
  } catch (e) {
90
90
  this.emitError(e)
91
91
  }
@@ -49,7 +49,7 @@ const loginMixin = <MixinBase extends typeof WechatySkeleton & PuppetMixin & GEr
49
49
  } catch (e) {
50
50
  this.emit('error', e)
51
51
 
52
- log.warn('WechatyLoginMixin', 'get isLoggedIn puppet instance is not ready yet')
52
+ this.log.warn('WechatyLoginMixin', 'get isLoggedIn puppet instance is not ready yet')
53
53
  // https://github.com/wechaty/wechaty/issues/1878
54
54
  return false
55
55
  }
@@ -63,7 +63,7 @@ const loginMixin = <MixinBase extends typeof WechatySkeleton & PuppetMixin & GEr
63
63
  }
64
64
 
65
65
  override async init (): Promise<void> {
66
- log.verbose('WechatyLoginMixin', 'init()')
66
+ this.log.verbose('WechatyLoginMixin', 'init()')
67
67
  await super.init()
68
68
 
69
69
  if (this.__loginMixinInited) {
@@ -80,7 +80,7 @@ const loginMixin = <MixinBase extends typeof WechatySkeleton & PuppetMixin & GEr
80
80
  * await bot.logout()
81
81
  */
82
82
  async logout (reason?: string): Promise<void> {
83
- log.verbose('WechatyLoginMixin', 'logout()')
83
+ this.log.verbose('WechatyLoginMixin', 'logout()')
84
84
  await this.puppet.logout(reason)
85
85
  }
86
86
 
@@ -88,7 +88,7 @@ const loginMixin = <MixinBase extends typeof WechatySkeleton & PuppetMixin & GEr
88
88
  * @deprecated: use `isLoggedIn` property instead. will be removed after Dec 31, 2022
89
89
  */
90
90
  logonoff (): boolean {
91
- log.warn('WechatyLoginMixin', 'logonoff() is deprecated: use `isLoggedIn` property instead.\n%s', new Error().stack)
91
+ this.log.warn('WechatyLoginMixin', 'logonoff() is deprecated: use `isLoggedIn` property instead.\n%s', new Error().stack)
92
92
  return this.isLoggedIn
93
93
  }
94
94
 
@@ -97,7 +97,7 @@ const loginMixin = <MixinBase extends typeof WechatySkeleton & PuppetMixin & GEr
97
97
  * @deprecated use {@link Wechaty#currentUser} instead
98
98
  */
99
99
  userSelf () {
100
- log.warn('WechatyLoginMixin', 'userSelf() deprecated: use currentUser instead.\n%s',
100
+ this.log.warn('WechatyLoginMixin', 'userSelf() deprecated: use currentUser instead.\n%s',
101
101
  new Error().stack,
102
102
  )
103
103
  return this.currentUser
@@ -66,7 +66,7 @@ const miscMixin = <MixinBase extends typeof WechatySkeleton & PuppetMixin & GErr
66
66
  * @private
67
67
  */
68
68
  ding (data?: string): void {
69
- log.silly('WechatyMiscMixin', 'ding(%s)', data || '')
69
+ this.log.silly('WechatyMiscMixin', 'ding(%s)', data || '')
70
70
 
71
71
  try {
72
72
  this.puppet.ding(data)
@@ -58,16 +58,16 @@ const pluginMixin = <MixinBase extends typeof WechatySkeleton & GErrorMixin & Mi
58
58
  )[]
59
59
  ): WechatyPluginUninstaller {
60
60
  const pluginList = plugins.flat()
61
- log.verbose('WechatyPluginMixin', 'use() total %d plugins', pluginList.length)
61
+ this.log.verbose('WechatyPluginMixin', 'use() total %d plugins', pluginList.length)
62
62
 
63
63
  const uninstallerList: WechatyPluginUninstaller[] = []
64
64
 
65
65
  for (const plugin of pluginList) {
66
- log.verbose('WechatyPluginMixin', 'use() installing Plugin %s on Wechaty %s ...', plugin.name, this.name())
66
+ this.log.verbose('WechatyPluginMixin', 'use() installing Plugin %s on Wechaty %s ...', plugin.name, this.name())
67
67
 
68
68
  const uninstaller = plugin(this as any) // <- Huan(202110): TODO: remove any
69
69
  if (isWechatyPluginUninstaller(uninstaller)) {
70
- log.verbose('WechatyPluginMixin', 'use() saving uninstaller for Plugin %s on Wechaty %s ...', plugin.name, this.name())
70
+ this.log.verbose('WechatyPluginMixin', 'use() saving uninstaller for Plugin %s on Wechaty %s ...', plugin.name, this.name())
71
71
  uninstallerList.push(uninstaller)
72
72
  }
73
73
  }
@@ -76,9 +76,9 @@ const pluginMixin = <MixinBase extends typeof WechatySkeleton & GErrorMixin & Mi
76
76
  * Return the function to uninstall all plugins
77
77
  */
78
78
  return () => uninstallerList.forEach(uninstaller => {
79
- log.verbose('WechatyPluginMixin', 'use() uninstalling Plugin %s on Wechaty %s ...', uninstaller.name, this.name())
79
+ this.log.verbose('WechatyPluginMixin', 'use() uninstalling Plugin %s on Wechaty %s ...', uninstaller.name, this.name())
80
80
  uninstaller()
81
- log.verbose('WechatyPluginMixin', 'use() uninstalling Plugin %s on Wechaty %s ... done', uninstaller.name, this.name())
81
+ this.log.verbose('WechatyPluginMixin', 'use() uninstalling Plugin %s on Wechaty %s ... done', uninstaller.name, this.name())
82
82
  })
83
83
  }
84
84