@juzi/wechaty 1.0.0

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 (1026) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +565 -0
  3. package/bin/clean-json.js +15 -0
  4. package/bin/cli.ts +36 -0
  5. package/bin/doctor.ts +55 -0
  6. package/bin/entrypoint.sh +338 -0
  7. package/bin/io-client.ts +95 -0
  8. package/bin/providers-trends.ts +13 -0
  9. package/bin/puppet-install.ts +69 -0
  10. package/bin/version.ts +24 -0
  11. package/dist/cjs/bin/cli.d.ts +14 -0
  12. package/dist/cjs/bin/cli.d.ts.map +1 -0
  13. package/dist/cjs/bin/cli.js +50 -0
  14. package/dist/cjs/bin/cli.js.map +1 -0
  15. package/dist/cjs/bin/doctor.d.ts +22 -0
  16. package/dist/cjs/bin/doctor.d.ts.map +1 -0
  17. package/dist/cjs/bin/doctor.js +55 -0
  18. package/dist/cjs/bin/doctor.js.map +1 -0
  19. package/dist/cjs/bin/io-client.d.ts +22 -0
  20. package/dist/cjs/bin/io-client.d.ts.map +1 -0
  21. package/dist/cjs/bin/io-client.js +74 -0
  22. package/dist/cjs/bin/io-client.js.map +1 -0
  23. package/dist/cjs/bin/providers-trends.d.ts +3 -0
  24. package/dist/cjs/bin/providers-trends.d.ts.map +1 -0
  25. package/dist/cjs/bin/providers-trends.js +14 -0
  26. package/dist/cjs/bin/providers-trends.js.map +1 -0
  27. package/dist/cjs/bin/puppet-install.d.ts +3 -0
  28. package/dist/cjs/bin/puppet-install.d.ts.map +1 -0
  29. package/dist/cjs/bin/puppet-install.js +60 -0
  30. package/dist/cjs/bin/puppet-install.js.map +1 -0
  31. package/dist/cjs/bin/version.d.ts +22 -0
  32. package/dist/cjs/bin/version.d.ts.map +1 -0
  33. package/dist/cjs/bin/version.js +25 -0
  34. package/dist/cjs/bin/version.js.map +1 -0
  35. package/dist/cjs/examples/ding-dong-bot.d.ts +2 -0
  36. package/dist/cjs/examples/ding-dong-bot.d.ts.map +1 -0
  37. package/dist/cjs/examples/ding-dong-bot.js +183 -0
  38. package/dist/cjs/examples/ding-dong-bot.js.map +1 -0
  39. package/dist/cjs/examples/video-post.d.ts +2 -0
  40. package/dist/cjs/examples/video-post.d.ts.map +1 -0
  41. package/dist/cjs/examples/video-post.js +75 -0
  42. package/dist/cjs/examples/video-post.js.map +1 -0
  43. package/dist/cjs/package.json +3 -0
  44. package/dist/cjs/scripts/retry-unit-tests.d.ts +3 -0
  45. package/dist/cjs/scripts/retry-unit-tests.d.ts.map +1 -0
  46. package/dist/cjs/scripts/retry-unit-tests.js +58 -0
  47. package/dist/cjs/scripts/retry-unit-tests.js.map +1 -0
  48. package/dist/cjs/scripts/sort-contributiveness.d.ts +3 -0
  49. package/dist/cjs/scripts/sort-contributiveness.d.ts.map +1 -0
  50. package/dist/cjs/scripts/sort-contributiveness.js +122 -0
  51. package/dist/cjs/scripts/sort-contributiveness.js.map +1 -0
  52. package/dist/cjs/scripts/update-license.d.ts +3 -0
  53. package/dist/cjs/scripts/update-license.d.ts.map +1 -0
  54. package/dist/cjs/scripts/update-license.js +163 -0
  55. package/dist/cjs/scripts/update-license.js.map +1 -0
  56. package/dist/cjs/src/cli/friday.d.ts +7 -0
  57. package/dist/cjs/src/cli/friday.d.ts.map +1 -0
  58. package/dist/cjs/src/cli/friday.js +18 -0
  59. package/dist/cjs/src/cli/friday.js.map +1 -0
  60. package/dist/cjs/src/cli/gateway.d.ts +17 -0
  61. package/dist/cjs/src/cli/gateway.d.ts.map +1 -0
  62. package/dist/cjs/src/cli/gateway.js +154 -0
  63. package/dist/cjs/src/cli/gateway.js.map +1 -0
  64. package/dist/cjs/src/cli/mod.d.ts +6 -0
  65. package/dist/cjs/src/cli/mod.d.ts.map +1 -0
  66. package/dist/cjs/src/cli/mod.js +14 -0
  67. package/dist/cjs/src/cli/mod.js.map +1 -0
  68. package/dist/cjs/src/cli/provider.d.ts +7 -0
  69. package/dist/cjs/src/cli/provider.d.ts.map +1 -0
  70. package/dist/cjs/src/cli/provider.js +18 -0
  71. package/dist/cjs/src/cli/provider.js.map +1 -0
  72. package/dist/cjs/src/cli/service.d.ts +7 -0
  73. package/dist/cjs/src/cli/service.d.ts.map +1 -0
  74. package/dist/cjs/src/cli/service.js +18 -0
  75. package/dist/cjs/src/cli/service.js.map +1 -0
  76. package/dist/cjs/src/cli/token.d.ts +39 -0
  77. package/dist/cjs/src/cli/token.d.ts.map +1 -0
  78. package/dist/cjs/src/cli/token.js +15 -0
  79. package/dist/cjs/src/cli/token.js.map +1 -0
  80. package/dist/cjs/src/config.d.ts +61 -0
  81. package/dist/cjs/src/config.d.ts.map +1 -0
  82. package/dist/cjs/src/config.js +110 -0
  83. package/dist/cjs/src/config.js.map +1 -0
  84. package/dist/cjs/src/config.spec.d.ts +22 -0
  85. package/dist/cjs/src/config.spec.d.ts.map +1 -0
  86. package/dist/cjs/src/config.spec.js +84 -0
  87. package/dist/cjs/src/config.spec.js.map +1 -0
  88. package/dist/cjs/src/doctor.d.ts +9 -0
  89. package/dist/cjs/src/doctor.d.ts.map +1 -0
  90. package/dist/cjs/src/doctor.js +82 -0
  91. package/dist/cjs/src/doctor.js.map +1 -0
  92. package/dist/cjs/src/helper-functions/open-graph.d.ts +22 -0
  93. package/dist/cjs/src/helper-functions/open-graph.d.ts.map +1 -0
  94. package/dist/cjs/src/helper-functions/open-graph.js +43 -0
  95. package/dist/cjs/src/helper-functions/open-graph.js.map +1 -0
  96. package/dist/cjs/src/helper-functions/stringify-filter.d.ts +3 -0
  97. package/dist/cjs/src/helper-functions/stringify-filter.d.ts.map +1 -0
  98. package/dist/cjs/src/helper-functions/stringify-filter.js +12 -0
  99. package/dist/cjs/src/helper-functions/stringify-filter.js.map +1 -0
  100. package/dist/cjs/src/io-client.d.ts +28 -0
  101. package/dist/cjs/src/io-client.d.ts.map +1 -0
  102. package/dist/cjs/src/io-client.js +217 -0
  103. package/dist/cjs/src/io-client.js.map +1 -0
  104. package/dist/cjs/src/io-peer/io-peer.d.ts +12 -0
  105. package/dist/cjs/src/io-peer/io-peer.d.ts.map +1 -0
  106. package/dist/cjs/src/io-peer/io-peer.js +71 -0
  107. package/dist/cjs/src/io-peer/io-peer.js.map +1 -0
  108. package/dist/cjs/src/io-peer/io-peer.spec.d.ts +3 -0
  109. package/dist/cjs/src/io-peer/io-peer.spec.d.ts.map +1 -0
  110. package/dist/cjs/src/io-peer/io-peer.spec.js +61 -0
  111. package/dist/cjs/src/io-peer/io-peer.spec.js.map +1 -0
  112. package/dist/cjs/src/io.d.ts +98 -0
  113. package/dist/cjs/src/io.d.ts.map +1 -0
  114. package/dist/cjs/src/io.js +468 -0
  115. package/dist/cjs/src/io.js.map +1 -0
  116. package/dist/cjs/src/io.spec.d.ts +3 -0
  117. package/dist/cjs/src/io.spec.d.ts.map +1 -0
  118. package/dist/cjs/src/io.spec.js +45 -0
  119. package/dist/cjs/src/io.spec.js.map +1 -0
  120. package/dist/cjs/src/mods/helpers.d.ts +2 -0
  121. package/dist/cjs/src/mods/helpers.d.ts.map +1 -0
  122. package/dist/cjs/src/mods/helpers.js +8 -0
  123. package/dist/cjs/src/mods/helpers.js.map +1 -0
  124. package/dist/cjs/src/mods/impls.d.ts +36 -0
  125. package/dist/cjs/src/mods/impls.d.ts.map +1 -0
  126. package/dist/cjs/src/mods/impls.js +53 -0
  127. package/dist/cjs/src/mods/impls.js.map +1 -0
  128. package/dist/cjs/src/mods/impls.spec.d.ts +3 -0
  129. package/dist/cjs/src/mods/impls.spec.d.ts.map +1 -0
  130. package/dist/cjs/src/mods/impls.spec.js +36 -0
  131. package/dist/cjs/src/mods/impls.spec.js.map +1 -0
  132. package/dist/cjs/src/mods/mod.d.ts +40 -0
  133. package/dist/cjs/src/mods/mod.d.ts.map +1 -0
  134. package/dist/cjs/src/mods/mod.js +67 -0
  135. package/dist/cjs/src/mods/mod.js.map +1 -0
  136. package/dist/cjs/src/mods/mod.spec.d.ts +3 -0
  137. package/dist/cjs/src/mods/mod.spec.d.ts.map +1 -0
  138. package/dist/cjs/src/mods/mod.spec.js +39 -0
  139. package/dist/cjs/src/mods/mod.spec.js.map +1 -0
  140. package/dist/cjs/src/mods/users.d.ts +26 -0
  141. package/dist/cjs/src/mods/users.d.ts.map +1 -0
  142. package/dist/cjs/src/mods/users.js +22 -0
  143. package/dist/cjs/src/mods/users.js.map +1 -0
  144. package/dist/cjs/src/package-json.d.ts +7 -0
  145. package/dist/cjs/src/package-json.d.ts.map +1 -0
  146. package/dist/cjs/src/package-json.js +178 -0
  147. package/dist/cjs/src/package-json.js.map +1 -0
  148. package/dist/cjs/src/package-json.spec.d.ts +3 -0
  149. package/dist/cjs/src/package-json.spec.d.ts.map +1 -0
  150. package/dist/cjs/src/package-json.spec.js +17 -0
  151. package/dist/cjs/src/package-json.spec.js.map +1 -0
  152. package/dist/cjs/src/plugin.d.ts +9 -0
  153. package/dist/cjs/src/plugin.d.ts.map +1 -0
  154. package/dist/cjs/src/plugin.js +8 -0
  155. package/dist/cjs/src/plugin.js.map +1 -0
  156. package/dist/cjs/src/plugin.spec.d.ts +3 -0
  157. package/dist/cjs/src/plugin.spec.d.ts.map +1 -0
  158. package/dist/cjs/src/plugin.spec.js +70 -0
  159. package/dist/cjs/src/plugin.spec.js.map +1 -0
  160. package/dist/cjs/src/puppet-config.d.ts +78 -0
  161. package/dist/cjs/src/puppet-config.d.ts.map +1 -0
  162. package/dist/cjs/src/puppet-config.js +84 -0
  163. package/dist/cjs/src/puppet-config.js.map +1 -0
  164. package/dist/cjs/src/pure-functions/escape-regexp.d.ts +21 -0
  165. package/dist/cjs/src/pure-functions/escape-regexp.d.ts.map +1 -0
  166. package/dist/cjs/src/pure-functions/escape-regexp.js +27 -0
  167. package/dist/cjs/src/pure-functions/escape-regexp.js.map +1 -0
  168. package/dist/cjs/src/pure-functions/guard-qr-code-value.d.ts +2 -0
  169. package/dist/cjs/src/pure-functions/guard-qr-code-value.d.ts.map +1 -0
  170. package/dist/cjs/src/pure-functions/guard-qr-code-value.js +31 -0
  171. package/dist/cjs/src/pure-functions/guard-qr-code-value.js.map +1 -0
  172. package/dist/cjs/src/pure-functions/is-template-string-array.d.ts +3 -0
  173. package/dist/cjs/src/pure-functions/is-template-string-array.d.ts.map +1 -0
  174. package/dist/cjs/src/pure-functions/is-template-string-array.js +8 -0
  175. package/dist/cjs/src/pure-functions/is-template-string-array.js.map +1 -0
  176. package/dist/cjs/src/pure-functions/is-template-string-array.spec.d.ts +3 -0
  177. package/dist/cjs/src/pure-functions/is-template-string-array.spec.d.ts.map +1 -0
  178. package/dist/cjs/src/pure-functions/is-template-string-array.spec.js +40 -0
  179. package/dist/cjs/src/pure-functions/is-template-string-array.spec.js.map +1 -0
  180. package/dist/cjs/src/pure-functions/mod.d.ts +22 -0
  181. package/dist/cjs/src/pure-functions/mod.d.ts.map +1 -0
  182. package/dist/cjs/src/pure-functions/mod.js +32 -0
  183. package/dist/cjs/src/pure-functions/mod.js.map +1 -0
  184. package/dist/cjs/src/pure-functions/retry-policy.d.ts +10 -0
  185. package/dist/cjs/src/pure-functions/retry-policy.d.ts.map +1 -0
  186. package/dist/cjs/src/pure-functions/retry-policy.js +32 -0
  187. package/dist/cjs/src/pure-functions/retry-policy.js.map +1 -0
  188. package/dist/cjs/src/pure-functions/timestamp-to-date.d.ts +21 -0
  189. package/dist/cjs/src/pure-functions/timestamp-to-date.d.ts.map +1 -0
  190. package/dist/cjs/src/pure-functions/timestamp-to-date.js +35 -0
  191. package/dist/cjs/src/pure-functions/timestamp-to-date.js.map +1 -0
  192. package/dist/cjs/src/pure-functions/timestamp-to-date.spec.d.ts +3 -0
  193. package/dist/cjs/src/pure-functions/timestamp-to-date.spec.d.ts.map +1 -0
  194. package/dist/cjs/src/pure-functions/timestamp-to-date.spec.js +42 -0
  195. package/dist/cjs/src/pure-functions/timestamp-to-date.spec.js.map +1 -0
  196. package/dist/cjs/src/pure-functions/xml.d.ts +33 -0
  197. package/dist/cjs/src/pure-functions/xml.d.ts.map +1 -0
  198. package/dist/cjs/src/pure-functions/xml.js +83 -0
  199. package/dist/cjs/src/pure-functions/xml.js.map +1 -0
  200. package/dist/cjs/src/pure-functions/xml.spec.d.ts +3 -0
  201. package/dist/cjs/src/pure-functions/xml.spec.d.ts.map +1 -0
  202. package/dist/cjs/src/pure-functions/xml.spec.js +97 -0
  203. package/dist/cjs/src/pure-functions/xml.spec.js.map +1 -0
  204. package/dist/cjs/src/raven.d.ts +4 -0
  205. package/dist/cjs/src/raven.d.ts.map +1 -0
  206. package/dist/cjs/src/raven.js +83 -0
  207. package/dist/cjs/src/raven.js.map +1 -0
  208. package/dist/cjs/src/sayable/deliver-sayable.d.ts +8 -0
  209. package/dist/cjs/src/sayable/deliver-sayable.d.ts.map +1 -0
  210. package/dist/cjs/src/sayable/deliver-sayable.js +75 -0
  211. package/dist/cjs/src/sayable/deliver-sayable.js.map +1 -0
  212. package/dist/cjs/src/sayable/message-to-sayable.d.ts +5 -0
  213. package/dist/cjs/src/sayable/message-to-sayable.d.ts.map +1 -0
  214. package/dist/cjs/src/sayable/message-to-sayable.js +57 -0
  215. package/dist/cjs/src/sayable/message-to-sayable.js.map +1 -0
  216. package/dist/cjs/src/sayable/mod.d.ts +8 -0
  217. package/dist/cjs/src/sayable/mod.d.ts.map +1 -0
  218. package/dist/cjs/src/sayable/mod.js +12 -0
  219. package/dist/cjs/src/sayable/mod.js.map +1 -0
  220. package/dist/cjs/src/sayable/payload-to-sayable.d.ts +6 -0
  221. package/dist/cjs/src/sayable/payload-to-sayable.d.ts.map +1 -0
  222. package/dist/cjs/src/sayable/payload-to-sayable.js +55 -0
  223. package/dist/cjs/src/sayable/payload-to-sayable.js.map +1 -0
  224. package/dist/cjs/src/sayable/sayable-to-payload.d.ts +5 -0
  225. package/dist/cjs/src/sayable/sayable-to-payload.d.ts.map +1 -0
  226. package/dist/cjs/src/sayable/sayable-to-payload.js +73 -0
  227. package/dist/cjs/src/sayable/sayable-to-payload.js.map +1 -0
  228. package/dist/cjs/src/sayable/types.d.ts +30 -0
  229. package/dist/cjs/src/sayable/types.d.ts.map +1 -0
  230. package/dist/cjs/src/sayable/types.js +3 -0
  231. package/dist/cjs/src/sayable/types.js.map +1 -0
  232. package/dist/cjs/src/schemas/acceptable.d.ts +27 -0
  233. package/dist/cjs/src/schemas/acceptable.d.ts.map +1 -0
  234. package/dist/cjs/src/schemas/acceptable.js +3 -0
  235. package/dist/cjs/src/schemas/acceptable.js.map +1 -0
  236. package/dist/cjs/src/schemas/contact-events.d.ts +12 -0
  237. package/dist/cjs/src/schemas/contact-events.d.ts.map +1 -0
  238. package/dist/cjs/src/schemas/contact-events.js +7 -0
  239. package/dist/cjs/src/schemas/contact-events.js.map +1 -0
  240. package/dist/cjs/src/schemas/mod.d.ts +7 -0
  241. package/dist/cjs/src/schemas/mod.d.ts.map +1 -0
  242. package/dist/cjs/src/schemas/mod.js +10 -0
  243. package/dist/cjs/src/schemas/mod.js.map +1 -0
  244. package/dist/cjs/src/schemas/room-events.d.ts +103 -0
  245. package/dist/cjs/src/schemas/room-events.d.ts.map +1 -0
  246. package/dist/cjs/src/schemas/room-events.js +14 -0
  247. package/dist/cjs/src/schemas/room-events.js.map +1 -0
  248. package/dist/cjs/src/schemas/wechaty-events.d.ts +218 -0
  249. package/dist/cjs/src/schemas/wechaty-events.d.ts.map +1 -0
  250. package/dist/cjs/src/schemas/wechaty-events.js +41 -0
  251. package/dist/cjs/src/schemas/wechaty-events.js.map +1 -0
  252. package/dist/cjs/src/schemas/wechaty-options.d.ts +20 -0
  253. package/dist/cjs/src/schemas/wechaty-options.d.ts.map +1 -0
  254. package/dist/cjs/src/schemas/wechaty-options.js +3 -0
  255. package/dist/cjs/src/schemas/wechaty-options.js.map +1 -0
  256. package/dist/cjs/src/user-mixins/mod.d.ts +7 -0
  257. package/dist/cjs/src/user-mixins/mod.d.ts.map +1 -0
  258. package/dist/cjs/src/user-mixins/mod.js +11 -0
  259. package/dist/cjs/src/user-mixins/mod.js.map +1 -0
  260. package/dist/cjs/src/user-mixins/poolify.d.ts +32 -0
  261. package/dist/cjs/src/user-mixins/poolify.d.ts.map +1 -0
  262. package/dist/cjs/src/user-mixins/poolify.js +47 -0
  263. package/dist/cjs/src/user-mixins/poolify.js.map +1 -0
  264. package/dist/cjs/src/user-mixins/poolify.spec.d.ts +3 -0
  265. package/dist/cjs/src/user-mixins/poolify.spec.d.ts.map +1 -0
  266. package/dist/cjs/src/user-mixins/poolify.spec.js +53 -0
  267. package/dist/cjs/src/user-mixins/poolify.spec.js.map +1 -0
  268. package/dist/cjs/src/user-mixins/validation.d.ts +9 -0
  269. package/dist/cjs/src/user-mixins/validation.d.ts.map +1 -0
  270. package/dist/cjs/src/user-mixins/validation.js +29 -0
  271. package/dist/cjs/src/user-mixins/validation.js.map +1 -0
  272. package/dist/cjs/src/user-mixins/validation.spec.d.ts +3 -0
  273. package/dist/cjs/src/user-mixins/validation.spec.d.ts.map +1 -0
  274. package/dist/cjs/src/user-mixins/validation.spec.js +56 -0
  275. package/dist/cjs/src/user-mixins/validation.spec.js.map +1 -0
  276. package/dist/cjs/src/user-mixins/wechatify.d.ts +24 -0
  277. package/dist/cjs/src/user-mixins/wechatify.d.ts.map +1 -0
  278. package/dist/cjs/src/user-mixins/wechatify.js +47 -0
  279. package/dist/cjs/src/user-mixins/wechatify.js.map +1 -0
  280. package/dist/cjs/src/user-mixins/wechatify.spec.d.ts +3 -0
  281. package/dist/cjs/src/user-mixins/wechatify.spec.d.ts.map +1 -0
  282. package/dist/cjs/src/user-mixins/wechatify.spec.js +20 -0
  283. package/dist/cjs/src/user-mixins/wechatify.spec.js.map +1 -0
  284. package/dist/cjs/src/user-modules/contact-self.d.ts +110 -0
  285. package/dist/cjs/src/user-modules/contact-self.d.ts.map +1 -0
  286. package/dist/cjs/src/user-modules/contact-self.js +133 -0
  287. package/dist/cjs/src/user-modules/contact-self.js.map +1 -0
  288. package/dist/cjs/src/user-modules/contact.d.ts +388 -0
  289. package/dist/cjs/src/user-modules/contact.d.ts.map +1 -0
  290. package/dist/cjs/src/user-modules/contact.js +667 -0
  291. package/dist/cjs/src/user-modules/contact.js.map +1 -0
  292. package/dist/cjs/src/user-modules/contact.spec.d.ts +3 -0
  293. package/dist/cjs/src/user-modules/contact.spec.d.ts.map +1 -0
  294. package/dist/cjs/src/user-modules/contact.spec.js +71 -0
  295. package/dist/cjs/src/user-modules/contact.spec.js.map +1 -0
  296. package/dist/cjs/src/user-modules/delay.d.ts +47 -0
  297. package/dist/cjs/src/user-modules/delay.d.ts.map +1 -0
  298. package/dist/cjs/src/user-modules/delay.js +24 -0
  299. package/dist/cjs/src/user-modules/delay.js.map +1 -0
  300. package/dist/cjs/src/user-modules/favorite.d.ts +38 -0
  301. package/dist/cjs/src/user-modules/favorite.d.ts.map +1 -0
  302. package/dist/cjs/src/user-modules/favorite.js +68 -0
  303. package/dist/cjs/src/user-modules/favorite.js.map +1 -0
  304. package/dist/cjs/src/user-modules/friendship.d.ts +244 -0
  305. package/dist/cjs/src/user-modules/friendship.d.ts.map +1 -0
  306. package/dist/cjs/src/user-modules/friendship.js +369 -0
  307. package/dist/cjs/src/user-modules/friendship.js.map +1 -0
  308. package/dist/cjs/src/user-modules/image.d.ts +31 -0
  309. package/dist/cjs/src/user-modules/image.d.ts.map +1 -0
  310. package/dist/cjs/src/user-modules/image.js +81 -0
  311. package/dist/cjs/src/user-modules/image.js.map +1 -0
  312. package/dist/cjs/src/user-modules/location.d.ts +59 -0
  313. package/dist/cjs/src/user-modules/location.d.ts.map +1 -0
  314. package/dist/cjs/src/user-modules/location.js +58 -0
  315. package/dist/cjs/src/user-modules/location.js.map +1 -0
  316. package/dist/cjs/src/user-modules/message.d.ts +459 -0
  317. package/dist/cjs/src/user-modules/message.d.ts.map +1 -0
  318. package/dist/cjs/src/user-modules/message.js +932 -0
  319. package/dist/cjs/src/user-modules/message.js.map +1 -0
  320. package/dist/cjs/src/user-modules/message.spec.d.ts +22 -0
  321. package/dist/cjs/src/user-modules/message.spec.d.ts.map +1 -0
  322. package/dist/cjs/src/user-modules/message.spec.js +125 -0
  323. package/dist/cjs/src/user-modules/message.spec.js.map +1 -0
  324. package/dist/cjs/src/user-modules/mini-program.d.ts +59 -0
  325. package/dist/cjs/src/user-modules/mini-program.d.ts.map +1 -0
  326. package/dist/cjs/src/user-modules/mini-program.js +63 -0
  327. package/dist/cjs/src/user-modules/mini-program.js.map +1 -0
  328. package/dist/cjs/src/user-modules/mod.d.ts +40 -0
  329. package/dist/cjs/src/user-modules/mod.d.ts.map +1 -0
  330. package/dist/cjs/src/user-modules/mod.js +57 -0
  331. package/dist/cjs/src/user-modules/mod.js.map +1 -0
  332. package/dist/cjs/src/user-modules/moment.d.ts +28 -0
  333. package/dist/cjs/src/user-modules/moment.d.ts.map +1 -0
  334. package/dist/cjs/src/user-modules/moment.js +46 -0
  335. package/dist/cjs/src/user-modules/moment.js.map +1 -0
  336. package/dist/cjs/src/user-modules/money.d.ts +44 -0
  337. package/dist/cjs/src/user-modules/money.d.ts.map +1 -0
  338. package/dist/cjs/src/user-modules/money.js +14 -0
  339. package/dist/cjs/src/user-modules/money.js.map +1 -0
  340. package/dist/cjs/src/user-modules/post.d.ts +114 -0
  341. package/dist/cjs/src/user-modules/post.d.ts.map +1 -0
  342. package/dist/cjs/src/user-modules/post.js +372 -0
  343. package/dist/cjs/src/user-modules/post.js.map +1 -0
  344. package/dist/cjs/src/user-modules/post.spec.d.ts +3 -0
  345. package/dist/cjs/src/user-modules/post.spec.d.ts.map +1 -0
  346. package/dist/cjs/src/user-modules/post.spec.js +89 -0
  347. package/dist/cjs/src/user-modules/post.spec.js.map +1 -0
  348. package/dist/cjs/src/user-modules/room-invitation.d.ts +154 -0
  349. package/dist/cjs/src/user-modules/room-invitation.d.ts.map +1 -0
  350. package/dist/cjs/src/user-modules/room-invitation.js +201 -0
  351. package/dist/cjs/src/user-modules/room-invitation.js.map +1 -0
  352. package/dist/cjs/src/user-modules/room.d.ts +404 -0
  353. package/dist/cjs/src/user-modules/room.d.ts.map +1 -0
  354. package/dist/cjs/src/user-modules/room.js +932 -0
  355. package/dist/cjs/src/user-modules/room.js.map +1 -0
  356. package/dist/cjs/src/user-modules/room.spec.d.ts +3 -0
  357. package/dist/cjs/src/user-modules/room.spec.d.ts.map +1 -0
  358. package/dist/cjs/src/user-modules/room.spec.js +135 -0
  359. package/dist/cjs/src/user-modules/room.spec.js.map +1 -0
  360. package/dist/cjs/src/user-modules/tag.d.ts +92 -0
  361. package/dist/cjs/src/user-modules/tag.d.ts.map +1 -0
  362. package/dist/cjs/src/user-modules/tag.js +163 -0
  363. package/dist/cjs/src/user-modules/tag.js.map +1 -0
  364. package/dist/cjs/src/user-modules/url-link.d.ts +38 -0
  365. package/dist/cjs/src/user-modules/url-link.d.ts.map +1 -0
  366. package/dist/cjs/src/user-modules/url-link.js +116 -0
  367. package/dist/cjs/src/user-modules/url-link.js.map +1 -0
  368. package/dist/cjs/src/user-modules/url-link.spec.d.ts +3 -0
  369. package/dist/cjs/src/user-modules/url-link.spec.d.ts.map +1 -0
  370. package/dist/cjs/src/user-modules/url-link.spec.js +31 -0
  371. package/dist/cjs/src/user-modules/url-link.spec.js.map +1 -0
  372. package/dist/cjs/src/wechaty/mod.d.ts +6 -0
  373. package/dist/cjs/src/wechaty/mod.d.ts.map +1 -0
  374. package/dist/cjs/src/wechaty/mod.js +8 -0
  375. package/dist/cjs/src/wechaty/mod.js.map +1 -0
  376. package/dist/cjs/src/wechaty/wechaty-base.d.ts +545 -0
  377. package/dist/cjs/src/wechaty/wechaty-base.d.ts.map +1 -0
  378. package/dist/cjs/src/wechaty/wechaty-base.js +221 -0
  379. package/dist/cjs/src/wechaty/wechaty-base.js.map +1 -0
  380. package/dist/cjs/src/wechaty/wechaty-base.spec.d.ts +14 -0
  381. package/dist/cjs/src/wechaty/wechaty-base.spec.d.ts.map +1 -0
  382. package/dist/cjs/src/wechaty/wechaty-base.spec.js +288 -0
  383. package/dist/cjs/src/wechaty/wechaty-base.spec.js.map +1 -0
  384. package/dist/cjs/src/wechaty/wechaty-impl.d.ts +56 -0
  385. package/dist/cjs/src/wechaty/wechaty-impl.d.ts.map +1 -0
  386. package/dist/cjs/src/wechaty/wechaty-impl.js +17 -0
  387. package/dist/cjs/src/wechaty/wechaty-impl.js.map +1 -0
  388. package/dist/cjs/src/wechaty/wechaty-impl.spec.d.ts +3 -0
  389. package/dist/cjs/src/wechaty/wechaty-impl.spec.d.ts.map +1 -0
  390. package/dist/cjs/src/wechaty/wechaty-impl.spec.js +64 -0
  391. package/dist/cjs/src/wechaty/wechaty-impl.spec.js.map +1 -0
  392. package/dist/cjs/src/wechaty/wechaty-skeleton.d.ts +51 -0
  393. package/dist/cjs/src/wechaty/wechaty-skeleton.d.ts.map +1 -0
  394. package/dist/cjs/src/wechaty/wechaty-skeleton.js +119 -0
  395. package/dist/cjs/src/wechaty/wechaty-skeleton.js.map +1 -0
  396. package/dist/cjs/src/wechaty/wechaty-skelton.spec.d.ts +3 -0
  397. package/dist/cjs/src/wechaty/wechaty-skelton.spec.d.ts.map +1 -0
  398. package/dist/cjs/src/wechaty/wechaty-skelton.spec.js +9 -0
  399. package/dist/cjs/src/wechaty/wechaty-skelton.spec.js.map +1 -0
  400. package/dist/cjs/src/wechaty-builder.d.ts +38 -0
  401. package/dist/cjs/src/wechaty-builder.d.ts.map +1 -0
  402. package/dist/cjs/src/wechaty-builder.js +98 -0
  403. package/dist/cjs/src/wechaty-builder.js.map +1 -0
  404. package/dist/cjs/src/wechaty-builder.spec.d.ts +22 -0
  405. package/dist/cjs/src/wechaty-builder.spec.d.ts.map +1 -0
  406. package/dist/cjs/src/wechaty-builder.spec.js +66 -0
  407. package/dist/cjs/src/wechaty-builder.spec.js.map +1 -0
  408. package/dist/cjs/src/wechaty-mixins/gerror-mixin.d.ts +52 -0
  409. package/dist/cjs/src/wechaty-mixins/gerror-mixin.d.ts.map +1 -0
  410. package/dist/cjs/src/wechaty-mixins/gerror-mixin.js +54 -0
  411. package/dist/cjs/src/wechaty-mixins/gerror-mixin.js.map +1 -0
  412. package/dist/cjs/src/wechaty-mixins/gerror-mixin.spec.d.ts +3 -0
  413. package/dist/cjs/src/wechaty-mixins/gerror-mixin.spec.d.ts.map +1 -0
  414. package/dist/cjs/src/wechaty-mixins/gerror-mixin.spec.js +9 -0
  415. package/dist/cjs/src/wechaty-mixins/gerror-mixin.spec.js.map +1 -0
  416. package/dist/cjs/src/wechaty-mixins/io-mixin.d.ts +75 -0
  417. package/dist/cjs/src/wechaty-mixins/io-mixin.d.ts.map +1 -0
  418. package/dist/cjs/src/wechaty-mixins/io-mixin.js +86 -0
  419. package/dist/cjs/src/wechaty-mixins/io-mixin.js.map +1 -0
  420. package/dist/cjs/src/wechaty-mixins/login-mixin.d.ts +290 -0
  421. package/dist/cjs/src/wechaty-mixins/login-mixin.d.ts.map +1 -0
  422. package/dist/cjs/src/wechaty-mixins/login-mixin.js +89 -0
  423. package/dist/cjs/src/wechaty-mixins/login-mixin.js.map +1 -0
  424. package/dist/cjs/src/wechaty-mixins/login-mixin.spec.d.ts +3 -0
  425. package/dist/cjs/src/wechaty-mixins/login-mixin.spec.d.ts.map +1 -0
  426. package/dist/cjs/src/wechaty-mixins/login-mixin.spec.js +9 -0
  427. package/dist/cjs/src/wechaty-mixins/login-mixin.spec.js.map +1 -0
  428. package/dist/cjs/src/wechaty-mixins/misc-mixin.d.ts +295 -0
  429. package/dist/cjs/src/wechaty-mixins/misc-mixin.d.ts.map +1 -0
  430. package/dist/cjs/src/wechaty-mixins/misc-mixin.js +67 -0
  431. package/dist/cjs/src/wechaty-mixins/misc-mixin.js.map +1 -0
  432. package/dist/cjs/src/wechaty-mixins/mod.d.ts +18 -0
  433. package/dist/cjs/src/wechaty-mixins/mod.d.ts.map +1 -0
  434. package/dist/cjs/src/wechaty-mixins/mod.js +18 -0
  435. package/dist/cjs/src/wechaty-mixins/mod.js.map +1 -0
  436. package/dist/cjs/src/wechaty-mixins/plugin-mixin.d.ts +384 -0
  437. package/dist/cjs/src/wechaty-mixins/plugin-mixin.d.ts.map +1 -0
  438. package/dist/cjs/src/wechaty-mixins/plugin-mixin.js +56 -0
  439. package/dist/cjs/src/wechaty-mixins/plugin-mixin.js.map +1 -0
  440. package/dist/cjs/src/wechaty-mixins/plugin-mixin.spec.d.ts +13 -0
  441. package/dist/cjs/src/wechaty-mixins/plugin-mixin.spec.d.ts.map +1 -0
  442. package/dist/cjs/src/wechaty-mixins/plugin-mixin.spec.js +60 -0
  443. package/dist/cjs/src/wechaty-mixins/plugin-mixin.spec.js.map +1 -0
  444. package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts +194 -0
  445. package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -0
  446. package/dist/cjs/src/wechaty-mixins/puppet-mixin.js +425 -0
  447. package/dist/cjs/src/wechaty-mixins/puppet-mixin.js.map +1 -0
  448. package/dist/cjs/src/wechaty-mixins/puppet-mixin.spec.d.ts +3 -0
  449. package/dist/cjs/src/wechaty-mixins/puppet-mixin.spec.d.ts.map +1 -0
  450. package/dist/cjs/src/wechaty-mixins/puppet-mixin.spec.js +9 -0
  451. package/dist/cjs/src/wechaty-mixins/puppet-mixin.spec.js.map +1 -0
  452. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.d.ts +61 -0
  453. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.d.ts.map +1 -0
  454. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.js +84 -0
  455. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.js.map +1 -0
  456. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.spec.d.ts +3 -0
  457. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.spec.d.ts.map +1 -0
  458. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.spec.js +9 -0
  459. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.spec.js.map +1 -0
  460. package/dist/cjs/tests/electron.spec.d.ts +3 -0
  461. package/dist/cjs/tests/electron.spec.d.ts.map +1 -0
  462. package/dist/cjs/tests/electron.spec.js +30 -0
  463. package/dist/cjs/tests/electron.spec.js.map +1 -0
  464. package/dist/cjs/tests/node.spec.d.ts +3 -0
  465. package/dist/cjs/tests/node.spec.d.ts.map +1 -0
  466. package/dist/cjs/tests/node.spec.js +43 -0
  467. package/dist/cjs/tests/node.spec.js.map +1 -0
  468. package/dist/esm/bin/cli.d.ts +14 -0
  469. package/dist/esm/bin/cli.d.ts.map +1 -0
  470. package/dist/esm/bin/cli.js +25 -0
  471. package/dist/esm/bin/cli.js.map +1 -0
  472. package/dist/esm/bin/doctor.d.ts +22 -0
  473. package/dist/esm/bin/doctor.d.ts.map +1 -0
  474. package/dist/esm/bin/doctor.js +50 -0
  475. package/dist/esm/bin/doctor.js.map +1 -0
  476. package/dist/esm/bin/io-client.d.ts +22 -0
  477. package/dist/esm/bin/io-client.d.ts.map +1 -0
  478. package/dist/esm/bin/io-client.js +72 -0
  479. package/dist/esm/bin/io-client.js.map +1 -0
  480. package/dist/esm/bin/providers-trends.d.ts +3 -0
  481. package/dist/esm/bin/providers-trends.d.ts.map +1 -0
  482. package/dist/esm/bin/providers-trends.js +12 -0
  483. package/dist/esm/bin/providers-trends.js.map +1 -0
  484. package/dist/esm/bin/puppet-install.d.ts +3 -0
  485. package/dist/esm/bin/puppet-install.d.ts.map +1 -0
  486. package/dist/esm/bin/puppet-install.js +55 -0
  487. package/dist/esm/bin/puppet-install.js.map +1 -0
  488. package/dist/esm/bin/version.d.ts +22 -0
  489. package/dist/esm/bin/version.d.ts.map +1 -0
  490. package/dist/esm/bin/version.js +23 -0
  491. package/dist/esm/bin/version.js.map +1 -0
  492. package/dist/esm/examples/ding-dong-bot.d.ts +2 -0
  493. package/dist/esm/examples/ding-dong-bot.d.ts.map +1 -0
  494. package/dist/esm/examples/ding-dong-bot.js +178 -0
  495. package/dist/esm/examples/ding-dong-bot.js.map +1 -0
  496. package/dist/esm/examples/video-post.d.ts +2 -0
  497. package/dist/esm/examples/video-post.d.ts.map +1 -0
  498. package/dist/esm/examples/video-post.js +70 -0
  499. package/dist/esm/examples/video-post.js.map +1 -0
  500. package/dist/esm/scripts/retry-unit-tests.d.ts +3 -0
  501. package/dist/esm/scripts/retry-unit-tests.d.ts.map +1 -0
  502. package/dist/esm/scripts/retry-unit-tests.js +56 -0
  503. package/dist/esm/scripts/retry-unit-tests.js.map +1 -0
  504. package/dist/esm/scripts/sort-contributiveness.d.ts +3 -0
  505. package/dist/esm/scripts/sort-contributiveness.d.ts.map +1 -0
  506. package/dist/esm/scripts/sort-contributiveness.js +117 -0
  507. package/dist/esm/scripts/sort-contributiveness.js.map +1 -0
  508. package/dist/esm/scripts/update-license.d.ts +3 -0
  509. package/dist/esm/scripts/update-license.d.ts.map +1 -0
  510. package/dist/esm/scripts/update-license.js +163 -0
  511. package/dist/esm/scripts/update-license.js.map +1 -0
  512. package/dist/esm/src/cli/friday.d.ts +7 -0
  513. package/dist/esm/src/cli/friday.d.ts.map +1 -0
  514. package/dist/esm/src/cli/friday.js +15 -0
  515. package/dist/esm/src/cli/friday.js.map +1 -0
  516. package/dist/esm/src/cli/gateway.d.ts +17 -0
  517. package/dist/esm/src/cli/gateway.d.ts.map +1 -0
  518. package/dist/esm/src/cli/gateway.js +148 -0
  519. package/dist/esm/src/cli/gateway.js.map +1 -0
  520. package/dist/esm/src/cli/mod.d.ts +6 -0
  521. package/dist/esm/src/cli/mod.d.ts.map +1 -0
  522. package/dist/esm/src/cli/mod.js +6 -0
  523. package/dist/esm/src/cli/mod.js.map +1 -0
  524. package/dist/esm/src/cli/provider.d.ts +7 -0
  525. package/dist/esm/src/cli/provider.d.ts.map +1 -0
  526. package/dist/esm/src/cli/provider.js +15 -0
  527. package/dist/esm/src/cli/provider.js.map +1 -0
  528. package/dist/esm/src/cli/service.d.ts +7 -0
  529. package/dist/esm/src/cli/service.d.ts.map +1 -0
  530. package/dist/esm/src/cli/service.js +15 -0
  531. package/dist/esm/src/cli/service.js.map +1 -0
  532. package/dist/esm/src/cli/token.d.ts +39 -0
  533. package/dist/esm/src/cli/token.d.ts.map +1 -0
  534. package/dist/esm/src/cli/token.js +12 -0
  535. package/dist/esm/src/cli/token.js.map +1 -0
  536. package/dist/esm/src/config.d.ts +61 -0
  537. package/dist/esm/src/config.d.ts.map +1 -0
  538. package/dist/esm/src/config.js +100 -0
  539. package/dist/esm/src/config.js.map +1 -0
  540. package/dist/esm/src/config.spec.d.ts +22 -0
  541. package/dist/esm/src/config.spec.d.ts.map +1 -0
  542. package/dist/esm/src/config.spec.js +82 -0
  543. package/dist/esm/src/config.spec.js.map +1 -0
  544. package/dist/esm/src/doctor.d.ts +9 -0
  545. package/dist/esm/src/doctor.d.ts.map +1 -0
  546. package/dist/esm/src/doctor.js +78 -0
  547. package/dist/esm/src/doctor.js.map +1 -0
  548. package/dist/esm/src/helper-functions/open-graph.d.ts +22 -0
  549. package/dist/esm/src/helper-functions/open-graph.d.ts.map +1 -0
  550. package/dist/esm/src/helper-functions/open-graph.js +36 -0
  551. package/dist/esm/src/helper-functions/open-graph.js.map +1 -0
  552. package/dist/esm/src/helper-functions/stringify-filter.d.ts +3 -0
  553. package/dist/esm/src/helper-functions/stringify-filter.d.ts.map +1 -0
  554. package/dist/esm/src/helper-functions/stringify-filter.js +9 -0
  555. package/dist/esm/src/helper-functions/stringify-filter.js.map +1 -0
  556. package/dist/esm/src/io-client.d.ts +28 -0
  557. package/dist/esm/src/io-client.d.ts.map +1 -0
  558. package/dist/esm/src/io-client.js +213 -0
  559. package/dist/esm/src/io-client.js.map +1 -0
  560. package/dist/esm/src/io-peer/io-peer.d.ts +12 -0
  561. package/dist/esm/src/io-peer/io-peer.d.ts.map +1 -0
  562. package/dist/esm/src/io-peer/io-peer.js +61 -0
  563. package/dist/esm/src/io-peer/io-peer.js.map +1 -0
  564. package/dist/esm/src/io-peer/io-peer.spec.d.ts +3 -0
  565. package/dist/esm/src/io-peer/io-peer.spec.d.ts.map +1 -0
  566. package/dist/esm/src/io-peer/io-peer.spec.js +56 -0
  567. package/dist/esm/src/io-peer/io-peer.spec.js.map +1 -0
  568. package/dist/esm/src/io.d.ts +98 -0
  569. package/dist/esm/src/io.d.ts.map +1 -0
  570. package/dist/esm/src/io.js +438 -0
  571. package/dist/esm/src/io.js.map +1 -0
  572. package/dist/esm/src/io.spec.d.ts +3 -0
  573. package/dist/esm/src/io.spec.d.ts.map +1 -0
  574. package/dist/esm/src/io.spec.js +43 -0
  575. package/dist/esm/src/io.spec.js.map +1 -0
  576. package/dist/esm/src/mods/helpers.d.ts +2 -0
  577. package/dist/esm/src/mods/helpers.d.ts.map +1 -0
  578. package/dist/esm/src/mods/helpers.js +2 -0
  579. package/dist/esm/src/mods/helpers.js.map +1 -0
  580. package/dist/esm/src/mods/impls.d.ts +36 -0
  581. package/dist/esm/src/mods/impls.d.ts.map +1 -0
  582. package/dist/esm/src/mods/impls.js +33 -0
  583. package/dist/esm/src/mods/impls.js.map +1 -0
  584. package/dist/esm/src/mods/impls.spec.d.ts +3 -0
  585. package/dist/esm/src/mods/impls.spec.d.ts.map +1 -0
  586. package/dist/esm/src/mods/impls.spec.js +11 -0
  587. package/dist/esm/src/mods/impls.spec.js.map +1 -0
  588. package/dist/esm/src/mods/mod.d.ts +40 -0
  589. package/dist/esm/src/mods/mod.d.ts.map +1 -0
  590. package/dist/esm/src/mods/mod.js +31 -0
  591. package/dist/esm/src/mods/mod.js.map +1 -0
  592. package/dist/esm/src/mods/mod.spec.d.ts +3 -0
  593. package/dist/esm/src/mods/mod.spec.d.ts.map +1 -0
  594. package/dist/esm/src/mods/mod.spec.js +14 -0
  595. package/dist/esm/src/mods/mod.spec.js.map +1 -0
  596. package/dist/esm/src/mods/users.d.ts +26 -0
  597. package/dist/esm/src/mods/users.d.ts.map +1 -0
  598. package/dist/esm/src/mods/users.js +21 -0
  599. package/dist/esm/src/mods/users.js.map +1 -0
  600. package/dist/esm/src/package-json.d.ts +7 -0
  601. package/dist/esm/src/package-json.d.ts.map +1 -0
  602. package/dist/esm/src/package-json.js +175 -0
  603. package/dist/esm/src/package-json.js.map +1 -0
  604. package/dist/esm/src/package-json.spec.d.ts +3 -0
  605. package/dist/esm/src/package-json.spec.d.ts.map +1 -0
  606. package/dist/esm/src/package-json.spec.js +15 -0
  607. package/dist/esm/src/package-json.spec.js.map +1 -0
  608. package/dist/esm/src/plugin.d.ts +9 -0
  609. package/dist/esm/src/plugin.d.ts.map +1 -0
  610. package/dist/esm/src/plugin.js +5 -0
  611. package/dist/esm/src/plugin.js.map +1 -0
  612. package/dist/esm/src/plugin.spec.d.ts +3 -0
  613. package/dist/esm/src/plugin.spec.d.ts.map +1 -0
  614. package/dist/esm/src/plugin.spec.js +68 -0
  615. package/dist/esm/src/plugin.spec.js.map +1 -0
  616. package/dist/esm/src/puppet-config.d.ts +78 -0
  617. package/dist/esm/src/puppet-config.d.ts.map +1 -0
  618. package/dist/esm/src/puppet-config.js +80 -0
  619. package/dist/esm/src/puppet-config.js.map +1 -0
  620. package/dist/esm/src/pure-functions/escape-regexp.d.ts +21 -0
  621. package/dist/esm/src/pure-functions/escape-regexp.d.ts.map +1 -0
  622. package/dist/esm/src/pure-functions/escape-regexp.js +23 -0
  623. package/dist/esm/src/pure-functions/escape-regexp.js.map +1 -0
  624. package/dist/esm/src/pure-functions/guard-qr-code-value.d.ts +2 -0
  625. package/dist/esm/src/pure-functions/guard-qr-code-value.d.ts.map +1 -0
  626. package/dist/esm/src/pure-functions/guard-qr-code-value.js +27 -0
  627. package/dist/esm/src/pure-functions/guard-qr-code-value.js.map +1 -0
  628. package/dist/esm/src/pure-functions/is-template-string-array.d.ts +3 -0
  629. package/dist/esm/src/pure-functions/is-template-string-array.d.ts.map +1 -0
  630. package/dist/esm/src/pure-functions/is-template-string-array.js +5 -0
  631. package/dist/esm/src/pure-functions/is-template-string-array.js.map +1 -0
  632. package/dist/esm/src/pure-functions/is-template-string-array.spec.d.ts +3 -0
  633. package/dist/esm/src/pure-functions/is-template-string-array.spec.d.ts.map +1 -0
  634. package/dist/esm/src/pure-functions/is-template-string-array.spec.js +38 -0
  635. package/dist/esm/src/pure-functions/is-template-string-array.spec.js.map +1 -0
  636. package/dist/esm/src/pure-functions/mod.d.ts +22 -0
  637. package/dist/esm/src/pure-functions/mod.d.ts.map +1 -0
  638. package/dist/esm/src/pure-functions/mod.js +22 -0
  639. package/dist/esm/src/pure-functions/mod.js.map +1 -0
  640. package/dist/esm/src/pure-functions/retry-policy.d.ts +10 -0
  641. package/dist/esm/src/pure-functions/retry-policy.d.ts.map +1 -0
  642. package/dist/esm/src/pure-functions/retry-policy.js +29 -0
  643. package/dist/esm/src/pure-functions/retry-policy.js.map +1 -0
  644. package/dist/esm/src/pure-functions/timestamp-to-date.d.ts +21 -0
  645. package/dist/esm/src/pure-functions/timestamp-to-date.d.ts.map +1 -0
  646. package/dist/esm/src/pure-functions/timestamp-to-date.js +31 -0
  647. package/dist/esm/src/pure-functions/timestamp-to-date.js.map +1 -0
  648. package/dist/esm/src/pure-functions/timestamp-to-date.spec.d.ts +3 -0
  649. package/dist/esm/src/pure-functions/timestamp-to-date.spec.d.ts.map +1 -0
  650. package/dist/esm/src/pure-functions/timestamp-to-date.spec.js +40 -0
  651. package/dist/esm/src/pure-functions/timestamp-to-date.spec.js.map +1 -0
  652. package/dist/esm/src/pure-functions/xml.d.ts +33 -0
  653. package/dist/esm/src/pure-functions/xml.d.ts.map +1 -0
  654. package/dist/esm/src/pure-functions/xml.js +74 -0
  655. package/dist/esm/src/pure-functions/xml.js.map +1 -0
  656. package/dist/esm/src/pure-functions/xml.spec.d.ts +3 -0
  657. package/dist/esm/src/pure-functions/xml.spec.d.ts.map +1 -0
  658. package/dist/esm/src/pure-functions/xml.spec.js +95 -0
  659. package/dist/esm/src/pure-functions/xml.spec.js.map +1 -0
  660. package/dist/esm/src/raven.d.ts +4 -0
  661. package/dist/esm/src/raven.d.ts.map +1 -0
  662. package/dist/esm/src/raven.js +54 -0
  663. package/dist/esm/src/raven.js.map +1 -0
  664. package/dist/esm/src/sayable/deliver-sayable.d.ts +8 -0
  665. package/dist/esm/src/sayable/deliver-sayable.d.ts.map +1 -0
  666. package/dist/esm/src/sayable/deliver-sayable.js +72 -0
  667. package/dist/esm/src/sayable/deliver-sayable.js.map +1 -0
  668. package/dist/esm/src/sayable/message-to-sayable.d.ts +5 -0
  669. package/dist/esm/src/sayable/message-to-sayable.d.ts.map +1 -0
  670. package/dist/esm/src/sayable/message-to-sayable.js +31 -0
  671. package/dist/esm/src/sayable/message-to-sayable.js.map +1 -0
  672. package/dist/esm/src/sayable/mod.d.ts +8 -0
  673. package/dist/esm/src/sayable/mod.d.ts.map +1 -0
  674. package/dist/esm/src/sayable/mod.js +6 -0
  675. package/dist/esm/src/sayable/mod.js.map +1 -0
  676. package/dist/esm/src/sayable/payload-to-sayable.d.ts +6 -0
  677. package/dist/esm/src/sayable/payload-to-sayable.d.ts.map +1 -0
  678. package/dist/esm/src/sayable/payload-to-sayable.js +29 -0
  679. package/dist/esm/src/sayable/payload-to-sayable.js.map +1 -0
  680. package/dist/esm/src/sayable/sayable-to-payload.d.ts +5 -0
  681. package/dist/esm/src/sayable/sayable-to-payload.d.ts.map +1 -0
  682. package/dist/esm/src/sayable/sayable-to-payload.js +47 -0
  683. package/dist/esm/src/sayable/sayable-to-payload.js.map +1 -0
  684. package/dist/esm/src/sayable/types.d.ts +30 -0
  685. package/dist/esm/src/sayable/types.d.ts.map +1 -0
  686. package/dist/esm/src/sayable/types.js +2 -0
  687. package/dist/esm/src/sayable/types.js.map +1 -0
  688. package/dist/esm/src/schemas/acceptable.d.ts +27 -0
  689. package/dist/esm/src/schemas/acceptable.d.ts.map +1 -0
  690. package/dist/esm/src/schemas/acceptable.js +2 -0
  691. package/dist/esm/src/schemas/acceptable.js.map +1 -0
  692. package/dist/esm/src/schemas/contact-events.d.ts +12 -0
  693. package/dist/esm/src/schemas/contact-events.d.ts.map +1 -0
  694. package/dist/esm/src/schemas/contact-events.js +4 -0
  695. package/dist/esm/src/schemas/contact-events.js.map +1 -0
  696. package/dist/esm/src/schemas/mod.d.ts +7 -0
  697. package/dist/esm/src/schemas/mod.d.ts.map +1 -0
  698. package/dist/esm/src/schemas/mod.js +5 -0
  699. package/dist/esm/src/schemas/mod.js.map +1 -0
  700. package/dist/esm/src/schemas/room-events.d.ts +103 -0
  701. package/dist/esm/src/schemas/room-events.d.ts.map +1 -0
  702. package/dist/esm/src/schemas/room-events.js +11 -0
  703. package/dist/esm/src/schemas/room-events.js.map +1 -0
  704. package/dist/esm/src/schemas/wechaty-events.d.ts +218 -0
  705. package/dist/esm/src/schemas/wechaty-events.d.ts.map +1 -0
  706. package/dist/esm/src/schemas/wechaty-events.js +15 -0
  707. package/dist/esm/src/schemas/wechaty-events.js.map +1 -0
  708. package/dist/esm/src/schemas/wechaty-options.d.ts +20 -0
  709. package/dist/esm/src/schemas/wechaty-options.d.ts.map +1 -0
  710. package/dist/esm/src/schemas/wechaty-options.js +2 -0
  711. package/dist/esm/src/schemas/wechaty-options.js.map +1 -0
  712. package/dist/esm/src/user-mixins/mod.d.ts +7 -0
  713. package/dist/esm/src/user-mixins/mod.d.ts.map +1 -0
  714. package/dist/esm/src/user-mixins/mod.js +5 -0
  715. package/dist/esm/src/user-mixins/mod.js.map +1 -0
  716. package/dist/esm/src/user-mixins/poolify.d.ts +32 -0
  717. package/dist/esm/src/user-mixins/poolify.d.ts.map +1 -0
  718. package/dist/esm/src/user-mixins/poolify.js +44 -0
  719. package/dist/esm/src/user-mixins/poolify.js.map +1 -0
  720. package/dist/esm/src/user-mixins/poolify.spec.d.ts +3 -0
  721. package/dist/esm/src/user-mixins/poolify.spec.d.ts.map +1 -0
  722. package/dist/esm/src/user-mixins/poolify.spec.js +51 -0
  723. package/dist/esm/src/user-mixins/poolify.spec.js.map +1 -0
  724. package/dist/esm/src/user-mixins/validation.d.ts +9 -0
  725. package/dist/esm/src/user-mixins/validation.d.ts.map +1 -0
  726. package/dist/esm/src/user-mixins/validation.js +26 -0
  727. package/dist/esm/src/user-mixins/validation.js.map +1 -0
  728. package/dist/esm/src/user-mixins/validation.spec.d.ts +3 -0
  729. package/dist/esm/src/user-mixins/validation.spec.d.ts.map +1 -0
  730. package/dist/esm/src/user-mixins/validation.spec.js +54 -0
  731. package/dist/esm/src/user-mixins/validation.spec.js.map +1 -0
  732. package/dist/esm/src/user-mixins/wechatify.d.ts +24 -0
  733. package/dist/esm/src/user-mixins/wechatify.d.ts.map +1 -0
  734. package/dist/esm/src/user-mixins/wechatify.js +41 -0
  735. package/dist/esm/src/user-mixins/wechatify.js.map +1 -0
  736. package/dist/esm/src/user-mixins/wechatify.spec.d.ts +3 -0
  737. package/dist/esm/src/user-mixins/wechatify.spec.d.ts.map +1 -0
  738. package/dist/esm/src/user-mixins/wechatify.spec.js +18 -0
  739. package/dist/esm/src/user-mixins/wechatify.spec.js.map +1 -0
  740. package/dist/esm/src/user-modules/contact-self.d.ts +110 -0
  741. package/dist/esm/src/user-modules/contact-self.d.ts.map +1 -0
  742. package/dist/esm/src/user-modules/contact-self.js +130 -0
  743. package/dist/esm/src/user-modules/contact-self.js.map +1 -0
  744. package/dist/esm/src/user-modules/contact.d.ts +388 -0
  745. package/dist/esm/src/user-modules/contact.d.ts.map +1 -0
  746. package/dist/esm/src/user-modules/contact.js +641 -0
  747. package/dist/esm/src/user-modules/contact.js.map +1 -0
  748. package/dist/esm/src/user-modules/contact.spec.d.ts +3 -0
  749. package/dist/esm/src/user-modules/contact.spec.d.ts.map +1 -0
  750. package/dist/esm/src/user-modules/contact.spec.js +69 -0
  751. package/dist/esm/src/user-modules/contact.spec.js.map +1 -0
  752. package/dist/esm/src/user-modules/delay.d.ts +47 -0
  753. package/dist/esm/src/user-modules/delay.d.ts.map +1 -0
  754. package/dist/esm/src/user-modules/delay.js +21 -0
  755. package/dist/esm/src/user-modules/delay.js.map +1 -0
  756. package/dist/esm/src/user-modules/favorite.d.ts +38 -0
  757. package/dist/esm/src/user-modules/favorite.d.ts.map +1 -0
  758. package/dist/esm/src/user-modules/favorite.js +65 -0
  759. package/dist/esm/src/user-modules/favorite.js.map +1 -0
  760. package/dist/esm/src/user-modules/friendship.d.ts +244 -0
  761. package/dist/esm/src/user-modules/friendship.d.ts.map +1 -0
  762. package/dist/esm/src/user-modules/friendship.js +343 -0
  763. package/dist/esm/src/user-modules/friendship.js.map +1 -0
  764. package/dist/esm/src/user-modules/image.d.ts +31 -0
  765. package/dist/esm/src/user-modules/image.d.ts.map +1 -0
  766. package/dist/esm/src/user-modules/image.js +55 -0
  767. package/dist/esm/src/user-modules/image.js.map +1 -0
  768. package/dist/esm/src/user-modules/location.d.ts +59 -0
  769. package/dist/esm/src/user-modules/location.d.ts.map +1 -0
  770. package/dist/esm/src/user-modules/location.js +55 -0
  771. package/dist/esm/src/user-modules/location.js.map +1 -0
  772. package/dist/esm/src/user-modules/message.d.ts +459 -0
  773. package/dist/esm/src/user-modules/message.d.ts.map +1 -0
  774. package/dist/esm/src/user-modules/message.js +906 -0
  775. package/dist/esm/src/user-modules/message.js.map +1 -0
  776. package/dist/esm/src/user-modules/message.spec.d.ts +22 -0
  777. package/dist/esm/src/user-modules/message.spec.d.ts.map +1 -0
  778. package/dist/esm/src/user-modules/message.spec.js +100 -0
  779. package/dist/esm/src/user-modules/message.spec.js.map +1 -0
  780. package/dist/esm/src/user-modules/mini-program.d.ts +59 -0
  781. package/dist/esm/src/user-modules/mini-program.d.ts.map +1 -0
  782. package/dist/esm/src/user-modules/mini-program.js +60 -0
  783. package/dist/esm/src/user-modules/mini-program.js.map +1 -0
  784. package/dist/esm/src/user-modules/mod.d.ts +40 -0
  785. package/dist/esm/src/user-modules/mod.d.ts.map +1 -0
  786. package/dist/esm/src/user-modules/mod.js +38 -0
  787. package/dist/esm/src/user-modules/mod.js.map +1 -0
  788. package/dist/esm/src/user-modules/moment.d.ts +28 -0
  789. package/dist/esm/src/user-modules/moment.d.ts.map +1 -0
  790. package/dist/esm/src/user-modules/moment.js +43 -0
  791. package/dist/esm/src/user-modules/moment.js.map +1 -0
  792. package/dist/esm/src/user-modules/money.d.ts +44 -0
  793. package/dist/esm/src/user-modules/money.d.ts.map +1 -0
  794. package/dist/esm/src/user-modules/money.js +11 -0
  795. package/dist/esm/src/user-modules/money.js.map +1 -0
  796. package/dist/esm/src/user-modules/post.d.ts +114 -0
  797. package/dist/esm/src/user-modules/post.d.ts.map +1 -0
  798. package/dist/esm/src/user-modules/post.js +345 -0
  799. package/dist/esm/src/user-modules/post.js.map +1 -0
  800. package/dist/esm/src/user-modules/post.spec.d.ts +3 -0
  801. package/dist/esm/src/user-modules/post.spec.d.ts.map +1 -0
  802. package/dist/esm/src/user-modules/post.spec.js +61 -0
  803. package/dist/esm/src/user-modules/post.spec.js.map +1 -0
  804. package/dist/esm/src/user-modules/room-invitation.d.ts +154 -0
  805. package/dist/esm/src/user-modules/room-invitation.d.ts.map +1 -0
  806. package/dist/esm/src/user-modules/room-invitation.js +198 -0
  807. package/dist/esm/src/user-modules/room-invitation.js.map +1 -0
  808. package/dist/esm/src/user-modules/room.d.ts +404 -0
  809. package/dist/esm/src/user-modules/room.d.ts.map +1 -0
  810. package/dist/esm/src/user-modules/room.js +929 -0
  811. package/dist/esm/src/user-modules/room.js.map +1 -0
  812. package/dist/esm/src/user-modules/room.spec.d.ts +3 -0
  813. package/dist/esm/src/user-modules/room.spec.d.ts.map +1 -0
  814. package/dist/esm/src/user-modules/room.spec.js +133 -0
  815. package/dist/esm/src/user-modules/room.spec.js.map +1 -0
  816. package/dist/esm/src/user-modules/tag.d.ts +92 -0
  817. package/dist/esm/src/user-modules/tag.d.ts.map +1 -0
  818. package/dist/esm/src/user-modules/tag.js +160 -0
  819. package/dist/esm/src/user-modules/tag.js.map +1 -0
  820. package/dist/esm/src/user-modules/url-link.d.ts +38 -0
  821. package/dist/esm/src/user-modules/url-link.d.ts.map +1 -0
  822. package/dist/esm/src/user-modules/url-link.js +110 -0
  823. package/dist/esm/src/user-modules/url-link.js.map +1 -0
  824. package/dist/esm/src/user-modules/url-link.spec.d.ts +3 -0
  825. package/dist/esm/src/user-modules/url-link.spec.d.ts.map +1 -0
  826. package/dist/esm/src/user-modules/url-link.spec.js +29 -0
  827. package/dist/esm/src/user-modules/url-link.spec.js.map +1 -0
  828. package/dist/esm/src/wechaty/mod.d.ts +6 -0
  829. package/dist/esm/src/wechaty/mod.d.ts.map +1 -0
  830. package/dist/esm/src/wechaty/mod.js +4 -0
  831. package/dist/esm/src/wechaty/mod.js.map +1 -0
  832. package/dist/esm/src/wechaty/wechaty-base.d.ts +545 -0
  833. package/dist/esm/src/wechaty/wechaty-base.d.ts.map +1 -0
  834. package/dist/esm/src/wechaty/wechaty-base.js +218 -0
  835. package/dist/esm/src/wechaty/wechaty-base.js.map +1 -0
  836. package/dist/esm/src/wechaty/wechaty-base.spec.d.ts +14 -0
  837. package/dist/esm/src/wechaty/wechaty-base.spec.d.ts.map +1 -0
  838. package/dist/esm/src/wechaty/wechaty-base.spec.js +286 -0
  839. package/dist/esm/src/wechaty/wechaty-base.spec.js.map +1 -0
  840. package/dist/esm/src/wechaty/wechaty-impl.d.ts +56 -0
  841. package/dist/esm/src/wechaty/wechaty-impl.d.ts.map +1 -0
  842. package/dist/esm/src/wechaty/wechaty-impl.js +14 -0
  843. package/dist/esm/src/wechaty/wechaty-impl.js.map +1 -0
  844. package/dist/esm/src/wechaty/wechaty-impl.spec.d.ts +3 -0
  845. package/dist/esm/src/wechaty/wechaty-impl.spec.d.ts.map +1 -0
  846. package/dist/esm/src/wechaty/wechaty-impl.spec.js +61 -0
  847. package/dist/esm/src/wechaty/wechaty-impl.spec.js.map +1 -0
  848. package/dist/esm/src/wechaty/wechaty-skeleton.d.ts +51 -0
  849. package/dist/esm/src/wechaty/wechaty-skeleton.d.ts.map +1 -0
  850. package/dist/esm/src/wechaty/wechaty-skeleton.js +93 -0
  851. package/dist/esm/src/wechaty/wechaty-skeleton.js.map +1 -0
  852. package/dist/esm/src/wechaty/wechaty-skelton.spec.d.ts +3 -0
  853. package/dist/esm/src/wechaty/wechaty-skelton.spec.d.ts.map +1 -0
  854. package/dist/esm/src/wechaty/wechaty-skelton.spec.js +7 -0
  855. package/dist/esm/src/wechaty/wechaty-skelton.spec.js.map +1 -0
  856. package/dist/esm/src/wechaty-builder.d.ts +38 -0
  857. package/dist/esm/src/wechaty-builder.d.ts.map +1 -0
  858. package/dist/esm/src/wechaty-builder.js +95 -0
  859. package/dist/esm/src/wechaty-builder.js.map +1 -0
  860. package/dist/esm/src/wechaty-builder.spec.d.ts +22 -0
  861. package/dist/esm/src/wechaty-builder.spec.d.ts.map +1 -0
  862. package/dist/esm/src/wechaty-builder.spec.js +64 -0
  863. package/dist/esm/src/wechaty-builder.spec.js.map +1 -0
  864. package/dist/esm/src/wechaty-mixins/gerror-mixin.d.ts +52 -0
  865. package/dist/esm/src/wechaty-mixins/gerror-mixin.d.ts.map +1 -0
  866. package/dist/esm/src/wechaty-mixins/gerror-mixin.js +51 -0
  867. package/dist/esm/src/wechaty-mixins/gerror-mixin.js.map +1 -0
  868. package/dist/esm/src/wechaty-mixins/gerror-mixin.spec.d.ts +3 -0
  869. package/dist/esm/src/wechaty-mixins/gerror-mixin.spec.d.ts.map +1 -0
  870. package/dist/esm/src/wechaty-mixins/gerror-mixin.spec.js +7 -0
  871. package/dist/esm/src/wechaty-mixins/gerror-mixin.spec.js.map +1 -0
  872. package/dist/esm/src/wechaty-mixins/io-mixin.d.ts +75 -0
  873. package/dist/esm/src/wechaty-mixins/io-mixin.d.ts.map +1 -0
  874. package/dist/esm/src/wechaty-mixins/io-mixin.js +83 -0
  875. package/dist/esm/src/wechaty-mixins/io-mixin.js.map +1 -0
  876. package/dist/esm/src/wechaty-mixins/login-mixin.d.ts +290 -0
  877. package/dist/esm/src/wechaty-mixins/login-mixin.d.ts.map +1 -0
  878. package/dist/esm/src/wechaty-mixins/login-mixin.js +86 -0
  879. package/dist/esm/src/wechaty-mixins/login-mixin.js.map +1 -0
  880. package/dist/esm/src/wechaty-mixins/login-mixin.spec.d.ts +3 -0
  881. package/dist/esm/src/wechaty-mixins/login-mixin.spec.d.ts.map +1 -0
  882. package/dist/esm/src/wechaty-mixins/login-mixin.spec.js +7 -0
  883. package/dist/esm/src/wechaty-mixins/login-mixin.spec.js.map +1 -0
  884. package/dist/esm/src/wechaty-mixins/misc-mixin.d.ts +295 -0
  885. package/dist/esm/src/wechaty-mixins/misc-mixin.d.ts.map +1 -0
  886. package/dist/esm/src/wechaty-mixins/misc-mixin.js +64 -0
  887. package/dist/esm/src/wechaty-mixins/misc-mixin.js.map +1 -0
  888. package/dist/esm/src/wechaty-mixins/mod.d.ts +18 -0
  889. package/dist/esm/src/wechaty-mixins/mod.d.ts.map +1 -0
  890. package/dist/esm/src/wechaty-mixins/mod.js +9 -0
  891. package/dist/esm/src/wechaty-mixins/mod.js.map +1 -0
  892. package/dist/esm/src/wechaty-mixins/plugin-mixin.d.ts +384 -0
  893. package/dist/esm/src/wechaty-mixins/plugin-mixin.d.ts.map +1 -0
  894. package/dist/esm/src/wechaty-mixins/plugin-mixin.js +53 -0
  895. package/dist/esm/src/wechaty-mixins/plugin-mixin.js.map +1 -0
  896. package/dist/esm/src/wechaty-mixins/plugin-mixin.spec.d.ts +13 -0
  897. package/dist/esm/src/wechaty-mixins/plugin-mixin.spec.d.ts.map +1 -0
  898. package/dist/esm/src/wechaty-mixins/plugin-mixin.spec.js +58 -0
  899. package/dist/esm/src/wechaty-mixins/plugin-mixin.spec.js.map +1 -0
  900. package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts +194 -0
  901. package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -0
  902. package/dist/esm/src/wechaty-mixins/puppet-mixin.js +399 -0
  903. package/dist/esm/src/wechaty-mixins/puppet-mixin.js.map +1 -0
  904. package/dist/esm/src/wechaty-mixins/puppet-mixin.spec.d.ts +3 -0
  905. package/dist/esm/src/wechaty-mixins/puppet-mixin.spec.d.ts.map +1 -0
  906. package/dist/esm/src/wechaty-mixins/puppet-mixin.spec.js +7 -0
  907. package/dist/esm/src/wechaty-mixins/puppet-mixin.spec.js.map +1 -0
  908. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.d.ts +61 -0
  909. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.d.ts.map +1 -0
  910. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.js +81 -0
  911. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.js.map +1 -0
  912. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.spec.d.ts +3 -0
  913. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.spec.d.ts.map +1 -0
  914. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.spec.js +7 -0
  915. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.spec.js.map +1 -0
  916. package/dist/esm/tests/electron.spec.d.ts +3 -0
  917. package/dist/esm/tests/electron.spec.d.ts.map +1 -0
  918. package/dist/esm/tests/electron.spec.js +28 -0
  919. package/dist/esm/tests/electron.spec.js.map +1 -0
  920. package/dist/esm/tests/node.spec.d.ts +3 -0
  921. package/dist/esm/tests/node.spec.d.ts.map +1 -0
  922. package/dist/esm/tests/node.spec.js +41 -0
  923. package/dist/esm/tests/node.spec.js.map +1 -0
  924. package/package.json +173 -0
  925. package/src/cli/friday.ts +20 -0
  926. package/src/cli/gateway.ts +190 -0
  927. package/src/cli/mod.ts +5 -0
  928. package/src/cli/provider.ts +20 -0
  929. package/src/cli/service.ts +20 -0
  930. package/src/cli/token.ts +19 -0
  931. package/src/config.spec.ts +97 -0
  932. package/src/config.ts +165 -0
  933. package/src/doctor.ts +92 -0
  934. package/src/helper-functions/open-graph.ts +34 -0
  935. package/src/helper-functions/stringify-filter.ts +13 -0
  936. package/src/io-client.ts +276 -0
  937. package/src/io-peer/io-peer.spec.ts +64 -0
  938. package/src/io-peer/io-peer.ts +79 -0
  939. package/src/io-peer/json-rpc-peer.d.ts +68 -0
  940. package/src/io.spec.ts +44 -0
  941. package/src/io.ts +585 -0
  942. package/src/mods/helpers.ts +5 -0
  943. package/src/mods/impls.spec.ts +13 -0
  944. package/src/mods/impls.ts +115 -0
  945. package/src/mods/mod.spec.ts +17 -0
  946. package/src/mods/mod.ts +74 -0
  947. package/src/mods/users.ts +44 -0
  948. package/src/package-json.spec.ts +18 -0
  949. package/src/package-json.ts +180 -0
  950. package/src/plugin.spec.ts +87 -0
  951. package/src/plugin.ts +19 -0
  952. package/src/puppet-config.ts +104 -0
  953. package/src/pure-functions/escape-regexp.ts +22 -0
  954. package/src/pure-functions/guard-qr-code-value.ts +27 -0
  955. package/src/pure-functions/is-template-string-array.spec.ts +44 -0
  956. package/src/pure-functions/is-template-string-array.ts +5 -0
  957. package/src/pure-functions/mod.ts +28 -0
  958. package/src/pure-functions/retry-policy.ts +45 -0
  959. package/src/pure-functions/timestamp-to-date.spec.ts +43 -0
  960. package/src/pure-functions/timestamp-to-date.ts +31 -0
  961. package/src/pure-functions/xml.spec.ts +116 -0
  962. package/src/pure-functions/xml.ts +98 -0
  963. package/src/raven.ts +75 -0
  964. package/src/sayable/deliver-sayable.ts +107 -0
  965. package/src/sayable/message-to-sayable.ts +57 -0
  966. package/src/sayable/mod.ts +27 -0
  967. package/src/sayable/payload-to-sayable.ts +51 -0
  968. package/src/sayable/sayable-to-payload.ts +54 -0
  969. package/src/sayable/types.ts +62 -0
  970. package/src/schemas/acceptable.ts +30 -0
  971. package/src/schemas/contact-events.ts +29 -0
  972. package/src/schemas/mod.ts +29 -0
  973. package/src/schemas/room-events.ts +128 -0
  974. package/src/schemas/wechaty-events.ts +251 -0
  975. package/src/schemas/wechaty-options.ts +40 -0
  976. package/src/user-mixins/mod.ts +23 -0
  977. package/src/user-mixins/poolify.spec.ts +110 -0
  978. package/src/user-mixins/poolify.ts +72 -0
  979. package/src/user-mixins/validation.spec.ts +87 -0
  980. package/src/user-mixins/validation.ts +39 -0
  981. package/src/user-mixins/wechatify.spec.ts +27 -0
  982. package/src/user-mixins/wechatify.ts +72 -0
  983. package/src/user-modules/contact-self.ts +217 -0
  984. package/src/user-modules/contact.spec.ts +91 -0
  985. package/src/user-modules/contact.ts +806 -0
  986. package/src/user-modules/delay.ts +61 -0
  987. package/src/user-modules/favorite.ts +89 -0
  988. package/src/user-modules/friendship.ts +441 -0
  989. package/src/user-modules/image.ts +91 -0
  990. package/src/user-modules/location.ts +103 -0
  991. package/src/user-modules/message.spec.ts +124 -0
  992. package/src/user-modules/message.ts +1109 -0
  993. package/src/user-modules/mini-program.ts +111 -0
  994. package/src/user-modules/mod.ts +160 -0
  995. package/src/user-modules/moment.ts +64 -0
  996. package/src/user-modules/money.ts +49 -0
  997. package/src/user-modules/post.spec.ts +77 -0
  998. package/src/user-modules/post.ts +549 -0
  999. package/src/user-modules/room-invitation.ts +291 -0
  1000. package/src/user-modules/room.spec.ts +170 -0
  1001. package/src/user-modules/room.ts +1158 -0
  1002. package/src/user-modules/tag.ts +202 -0
  1003. package/src/user-modules/url-link.spec.ts +35 -0
  1004. package/src/user-modules/url-link.ts +145 -0
  1005. package/src/wechaty/mod.ts +18 -0
  1006. package/src/wechaty/wechaty-base.spec.ts +392 -0
  1007. package/src/wechaty/wechaty-base.ts +307 -0
  1008. package/src/wechaty/wechaty-impl.spec.ts +118 -0
  1009. package/src/wechaty/wechaty-impl.ts +65 -0
  1010. package/src/wechaty/wechaty-skeleton.ts +129 -0
  1011. package/src/wechaty/wechaty-skelton.spec.ts +18 -0
  1012. package/src/wechaty-builder.spec.ts +79 -0
  1013. package/src/wechaty-builder.ts +123 -0
  1014. package/src/wechaty-mixins/gerror-mixin.spec.ts +15 -0
  1015. package/src/wechaty-mixins/gerror-mixin.ts +78 -0
  1016. package/src/wechaty-mixins/io-mixin.ts +117 -0
  1017. package/src/wechaty-mixins/login-mixin.spec.ts +15 -0
  1018. package/src/wechaty-mixins/login-mixin.ts +124 -0
  1019. package/src/wechaty-mixins/misc-mixin.ts +93 -0
  1020. package/src/wechaty-mixins/mod.ts +84 -0
  1021. package/src/wechaty-mixins/plugin-mixin.spec.ts +98 -0
  1022. package/src/wechaty-mixins/plugin-mixin.ts +99 -0
  1023. package/src/wechaty-mixins/puppet-mixin.spec.ts +15 -0
  1024. package/src/wechaty-mixins/puppet-mixin.ts +501 -0
  1025. package/src/wechaty-mixins/wechatify-user-module-mixin.spec.ts +18 -0
  1026. package/src/wechaty-mixins/wechatify-user-module-mixin.ts +151 -0
@@ -0,0 +1,929 @@
1
+ import { concurrencyExecuter } from 'rx-queue';
2
+ import { FOUR_PER_EM_SPACE, log, } from '../config.js';
3
+ import { wechatyCaptureException, } from '../raven.js';
4
+ import { guardQrCodeValue, } from '../pure-functions/guard-qr-code-value.js';
5
+ import { isTemplateStringArray, } from '../pure-functions/is-template-string-array.js';
6
+ import { RoomEventEmitter } from '../schemas/mod.js';
7
+ import { poolifyMixin, wechatifyMixin, validationMixin, } from '../user-mixins/mod.js';
8
+ import { deliverSayableConversationPuppet, } from '../sayable/mod.js';
9
+ import { stringifyFilter } from '../helper-functions/stringify-filter.js';
10
+ import { ContactImpl, } from './contact.js';
11
+ const MixinBase = wechatifyMixin(poolifyMixin(RoomEventEmitter)());
12
+ /**
13
+ * All WeChat rooms(groups) will be encapsulated as a Room.
14
+ *
15
+ * [Examples/Room-Bot]{@link https://github.com/wechaty/wechaty/blob/1523c5e02be46ebe2cc172a744b2fbe53351540e/examples/room-bot.ts}
16
+ *
17
+ */
18
+ class RoomMixin extends MixinBase {
19
+ id;
20
+ /**
21
+ * Create a new room.
22
+ *
23
+ * @static
24
+ * @param {ContactInterface[]} contactList
25
+ * @param {string} [topic]
26
+ * @returns {Promise<RoomInterface>}
27
+ * @example <caption>Creat a room with 'lijiarui' and 'huan', the room topic is 'ding - created'</caption>
28
+ * const helperContactA = await Contact.find({ name: 'lijiarui' }) // change 'lijiarui' to any contact in your WeChat
29
+ * const helperContactB = await Contact.find({ name: 'huan' }) // change 'huan' to any contact in your WeChat
30
+ * const contactList = [helperContactA, helperContactB]
31
+ * console.log('Bot', 'contactList: %s', contactList.join(','))
32
+ * const room = await Room.create(contactList, 'ding')
33
+ * console.log('Bot', 'createDingRoom() new ding room created: %s', room)
34
+ * await room.topic('ding - created')
35
+ * await room.say('ding - created')
36
+ */
37
+ static async create(contactList, topic) {
38
+ log.verbose('Room', 'create(%s, %s)', contactList.join(','), topic);
39
+ if (contactList.length < 2) {
40
+ throw new Error('contactList need at least 2 contact to create a new room');
41
+ }
42
+ try {
43
+ const contactIdList = contactList.map(contact => contact.id);
44
+ const roomId = await this.wechaty.puppet.roomCreate(contactIdList, topic);
45
+ const room = this.load(roomId);
46
+ return room;
47
+ }
48
+ catch (e) {
49
+ this.wechaty.emitError(e);
50
+ log.error('Room', 'create() exception: %s', (e && e.stack) || e.message || e);
51
+ throw e;
52
+ }
53
+ }
54
+ /**
55
+ * The filter to find the room: {topic: string | RegExp}
56
+ *
57
+ * @typedef RoomQueryFilter
58
+ * @property {string} topic
59
+ */
60
+ /**
61
+ * Find room by filter: {topic: string | RegExp}, return all the matched room.
62
+ *
63
+ * NOTE: The returned list would be limited by the underlying puppet
64
+ * implementation of `puppet.roomList`. Some implementation (i.e.
65
+ * wechaty-puppet-wechat) would only return rooms which have received messges
66
+ * after a log-in.
67
+ *
68
+ * @static
69
+ * @param {RoomQueryFilter} [query]
70
+ * @returns {Promise<RoomInterface[]>}
71
+ * @example
72
+ * const bot = new Wechaty()
73
+ * await bot.start()
74
+ * // after logged in
75
+ * const roomList = await bot.Room.findAll() // get the room list of the bot
76
+ * const roomList = await bot.Room.findAll({topic: 'wechaty'}) // find all of the rooms with name 'wechaty'
77
+ */
78
+ static async findAll(query) {
79
+ log.verbose('Room', 'findAll(%s)', JSON.stringify(query, stringifyFilter) || '');
80
+ try {
81
+ const roomIdList = await this.wechaty.puppet.roomSearch(query);
82
+ const idToRoom = async (id) => this.wechaty.Room.find({ id })
83
+ .catch(e => this.wechaty.emitError(e));
84
+ /**
85
+ * we need to use concurrencyExecuter to reduce the parallel number of the requests
86
+ */
87
+ const CONCURRENCY = 17;
88
+ const roomIterator = concurrencyExecuter(CONCURRENCY)(idToRoom)(roomIdList);
89
+ const roomList = [];
90
+ for await (const room of roomIterator) {
91
+ if (room) {
92
+ roomList.push(room);
93
+ }
94
+ }
95
+ return roomList;
96
+ }
97
+ catch (e) {
98
+ this.wechaty.emitError(e);
99
+ log.verbose('Room', 'findAll() rejected: %s', e.message);
100
+ return []; // fail safe
101
+ }
102
+ }
103
+ /**
104
+ * Try to find a room by filter: {topic: string | RegExp}. If get many, return the first one.
105
+ *
106
+ * NOTE: The search space is limited by the underlying puppet
107
+ * implementation of `puppet.roomList`. Some implementation (i.e.
108
+ * wechaty-puppet-wechat) would only return rooms which have received messges
109
+ * after a log-in.
110
+ *
111
+ * @param {RoomQueryFilter} query
112
+ * @returns {Promise<undefined | RoomInterface>} If can find the room, return Room, or return null
113
+ * @example
114
+ * const bot = new Wechaty()
115
+ * await bot.start()
116
+ * // after logged in...
117
+ * const roomList = await bot.Room.find()
118
+ * const roomList = await bot.Room.find({topic: 'wechaty'})
119
+ */
120
+ static async find(query) {
121
+ log.silly('Room', 'find(%s)', JSON.stringify(query, stringifyFilter));
122
+ if (typeof query === 'string') {
123
+ query = { topic: query };
124
+ }
125
+ if (query.id) {
126
+ const room = this.wechaty.Room.load(query.id);
127
+ try {
128
+ await room.ready();
129
+ }
130
+ catch (e) {
131
+ this.wechaty.emitError(e);
132
+ return undefined;
133
+ }
134
+ return room;
135
+ }
136
+ const roomList = await this.findAll(query);
137
+ // if (!roomList) {
138
+ // return null
139
+ // }
140
+ if (roomList.length < 1) {
141
+ return undefined;
142
+ }
143
+ if (roomList.length > 1) {
144
+ log.warn('Room', 'find() got more than one(%d) result', roomList.length);
145
+ }
146
+ for (const [idx, room] of roomList.entries()) {
147
+ // use puppet.roomValidate() to confirm double confirm that this roomId is valid.
148
+ // https://github.com/wechaty/wechaty-puppet-padchat/issues/64
149
+ // https://github.com/wechaty/wechaty/issues/1345
150
+ const valid = await this.wechaty.puppet.roomValidate(room.id);
151
+ if (valid) {
152
+ log.verbose('Room', 'find() room<id=%s> is valid: return it', idx, room.id);
153
+ return room;
154
+ }
155
+ else {
156
+ log.verbose('Room', 'find() room<id=%s> is invalid: skip it', idx, room.id);
157
+ }
158
+ }
159
+ log.warn('Room', 'find() all %d rooms are invalid', roomList.length);
160
+ return undefined;
161
+ }
162
+ /** const roomList: RoomInterface[] = []
163
+
164
+ * @ignore
165
+ *
166
+ * Instance Properties
167
+ *
168
+ *
169
+ */
170
+ payload;
171
+ /**
172
+ * @hideconstructor
173
+ * @property {string} id - Room id.
174
+ * This function is depending on the Puppet Implementation, see [puppet-compatible-table](https://github.com/wechaty/wechaty/wiki/Puppet#3-puppet-compatible-table)
175
+ */
176
+ constructor(id) {
177
+ super();
178
+ this.id = id;
179
+ log.silly('Room', `constructor(${id})`);
180
+ }
181
+ /**
182
+ * @ignore
183
+ */
184
+ toString() {
185
+ if (!this.payload) {
186
+ return this.constructor.name;
187
+ }
188
+ return `Room<${this.payload.topic || 'loading...'}>`;
189
+ }
190
+ async *[Symbol.asyncIterator]() {
191
+ const memberList = await this.memberList();
192
+ for (const contact of memberList) {
193
+ yield contact;
194
+ }
195
+ }
196
+ /**
197
+ * Proposal: add a handle field to RoomPayload #181
198
+ * @link https://github.com/wechaty/puppet/issues/181
199
+ */
200
+ handle() {
201
+ return this.payload?.handle;
202
+ }
203
+ /**
204
+ * Force reload data for Room, Sync data from puppet API again.
205
+ *
206
+ * @returns {Promise<void>}
207
+ * @example
208
+ * await room.sync()
209
+ */
210
+ async sync() {
211
+ await this.wechaty.puppet.roomPayloadDirty(this.id);
212
+ await this.wechaty.puppet.roomMemberPayloadDirty(this.id);
213
+ await this.ready(true);
214
+ }
215
+ /**
216
+ * Warning: `ready()` is for the framework internally use ONLY!
217
+ *
218
+ * Please not to use `ready()` at the user land.
219
+ * If you want to sync data, use `sync()` instead.
220
+ *
221
+ * @ignore
222
+ */
223
+ async ready(forceSync = false) {
224
+ log.silly('Room', 'ready()');
225
+ if (!forceSync && this.isReady()) {
226
+ return;
227
+ }
228
+ this.payload = await this.wechaty.puppet.roomPayload(this.id);
229
+ /**
230
+ * Sync all room member contacts
231
+ */
232
+ const memberIdList = await this.wechaty.puppet.roomMemberList(this.id);
233
+ const doReady = async (id) => {
234
+ try {
235
+ await this.wechaty.Contact.find({ id });
236
+ }
237
+ catch (e) {
238
+ this.wechaty.emitError(e);
239
+ }
240
+ };
241
+ /**
242
+ * we need to use concurrencyExecuter to reduce the parallel number of the requests
243
+ */
244
+ const CONCURRENCY = 17;
245
+ const contactIterator = concurrencyExecuter(CONCURRENCY)(doReady)(memberIdList);
246
+ for await (const contact of contactIterator) {
247
+ void contact; // just a empty loop to wait all iterator finished
248
+ }
249
+ }
250
+ /**
251
+ * @ignore
252
+ */
253
+ isReady() {
254
+ return !!(this.payload);
255
+ }
256
+ // Huan(202006): allow fall down to the defination to get more flexibility.
257
+ // public say (...args: never[]): never
258
+ /**
259
+ * Send message inside Room, if set [replyTo], wechaty will mention the contact as well.
260
+ * > Tips:
261
+ * This function is depending on the Puppet Implementation, see [puppet-compatible-table](https://github.com/wechaty/wechaty/wiki/Puppet#3-puppet-compatible-table)
262
+ *
263
+ * @param {(string | ContactInterface | FileBox)} textOrContactOrFileOrUrlOrMini - Send `text` or `media file` inside Room. <br>
264
+ * You can use {@link https://www.npmjs.com/package/file-box|FileBox} to send file
265
+ * @param {(ContactInterface | ContactInterface[])} [mention] - Optional parameter, send content inside Room, and mention @replyTo contact or contactList.
266
+ * @returns {Promise<void | MessageInterface>}
267
+ *
268
+ * @example
269
+ * const bot = new Wechaty()
270
+ * await bot.start()
271
+ * // after logged in...
272
+ * const room = await bot.Room.find({topic: 'wechaty'})
273
+ *
274
+ * // 1. Send text inside Room
275
+ *
276
+ * await room.say('Hello world!')
277
+ * const msg = await room.say('Hello world!') // only supported by puppet-padplus
278
+ *
279
+ * // 2. Send media file inside Room
280
+ * import { FileBox } from 'wechaty'
281
+ * const fileBox1 = FileBox.fromUrl('https://wechaty.github.io/wechaty/images/bot-qr-code.png')
282
+ * const fileBox2 = FileBox.fromLocal('/tmp/text.txt')
283
+ * await room.say(fileBox1)
284
+ * const msg1 = await room.say(fileBox1) // only supported by puppet-padplus
285
+ * await room.say(fileBox2)
286
+ * const msg2 = await room.say(fileBox2) // only supported by puppet-padplus
287
+ *
288
+ * // 3. Send Contact Card in a room
289
+ * const contactCard = await bot.Contact.find({name: 'lijiarui'}) // change 'lijiarui' to any of the room member
290
+ * await room.say(contactCard)
291
+ * const msg = await room.say(contactCard) // only supported by puppet-padplus
292
+ *
293
+ * // 4. Send text inside room and mention @mention contact
294
+ * const contact = await bot.Contact.find({name: 'lijiarui'}) // change 'lijiarui' to any of the room member
295
+ * await room.say('Hello world!', contact)
296
+ * const msg = await room.say('Hello world!', contact) // only supported by puppet-padplus
297
+ *
298
+ * // 5. Send text inside room and mention someone with Tagged Template
299
+ * const contact2 = await bot.Contact.find({name: 'zixia'}) // change 'zixia' to any of the room member
300
+ * await room.say`Hello ${contact}, here is the world ${contact2}`
301
+ * const msg = await room.say`Hello ${contact}, here is the world ${contact2}` // only supported by puppet-padplus
302
+ *
303
+ * // 6. send url link in a room
304
+ *
305
+ * const urlLink = new UrlLink ({
306
+ * description : 'WeChat Bot SDK for Individual Account, Powered by TypeScript, Docker, and Love',
307
+ * thumbnailUrl: 'https://avatars0.githubusercontent.com/u/25162437?s=200&v=4',
308
+ * title : 'Welcome to Wechaty',
309
+ * url : 'https://github.com/wechaty/wechaty',
310
+ * })
311
+ * await room.say(urlLink)
312
+ * const msg = await room.say(urlLink) // only supported by puppet-padplus
313
+ *
314
+ * // 7. send mini program in a room
315
+ *
316
+ * const miniProgram = new MiniProgram ({
317
+ * username : 'gh_xxxxxxx', //get from mp.weixin.qq.com
318
+ * appid : '', //optional, get from mp.weixin.qq.com
319
+ * title : '', //optional
320
+ * pagepath : '', //optional
321
+ * description : '', //optional
322
+ * thumbnailurl : '', //optional
323
+ * })
324
+ * await room.say(miniProgram)
325
+ * const msg = await room.say(miniProgram) // only supported by puppet-padplus
326
+ *
327
+ * // 8. send location in a room
328
+ * const location = new Location ({
329
+ * accuracy : 15,
330
+ * address : '北京市北京市海淀区45 Chengfu Rd',
331
+ * latitude : 39.995120999999997,
332
+ * longitude : 116.334154,
333
+ * name : '东升乡人民政府(海淀区成府路45号)',
334
+ * })
335
+ * await room.say(location)
336
+ * const msg = await room.say(location)
337
+ */
338
+ async say(sayable, ...varList) {
339
+ log.verbose('Room', 'say(%s, %s)', sayable, varList.join(', '));
340
+ let msgId;
341
+ let text;
342
+ if (isTemplateStringArray(sayable)) {
343
+ msgId = await this.sayTemplateStringsArray(sayable, ...varList);
344
+ }
345
+ else if (typeof sayable === 'string') {
346
+ /**
347
+ * 1. string
348
+ */
349
+ let mentionList = [];
350
+ if (varList.length > 0) {
351
+ const allIsContact = varList.every(c => ContactImpl.valid(c));
352
+ if (!allIsContact) {
353
+ throw new Error('mentionList must be contact when not using TemplateStringsArray function call.');
354
+ }
355
+ mentionList = [...varList];
356
+ const AT_SEPARATOR = FOUR_PER_EM_SPACE;
357
+ const mentionAlias = await Promise.all(mentionList.map(async (contact) => '@' + (await this.alias(contact) || contact.name())));
358
+ const mentionText = mentionAlias.join(AT_SEPARATOR);
359
+ text = mentionText + ' ' + sayable;
360
+ }
361
+ else {
362
+ text = sayable;
363
+ }
364
+ // const receiver = {
365
+ // contactId : (mentionList.length && mentionList[0].id) || undefined,
366
+ // roomId : this.id,
367
+ // }
368
+ msgId = await this.wechaty.puppet.messageSendText(this.id, text, mentionList.map(c => c.id));
369
+ }
370
+ else {
371
+ msgId = await deliverSayableConversationPuppet(this.wechaty.puppet)(this.id)(sayable);
372
+ }
373
+ if (msgId) {
374
+ const msg = await this.wechaty.Message.find({ id: msgId });
375
+ return msg;
376
+ }
377
+ }
378
+ async sayTemplateStringsArray(textList, ...varList) {
379
+ const mentionList = varList.filter(c => ContactImpl.valid(c));
380
+ // const receiver = {
381
+ // contactId : (mentionList.length && mentionList[0].id) || undefined,
382
+ // roomId : this.id,
383
+ // }
384
+ if (varList.length === 0) {
385
+ /**
386
+ * No mention in the string
387
+ */
388
+ return this.wechaty.puppet.messageSendText(this.id, textList[0]);
389
+ // TODO(huan) 20191222 it seems the following code will not happen,
390
+ // because it's equal the mentionList.length === 0 situation?
391
+ //
392
+ // XXX(huan) 20200101: See issue https://github.com/wechaty/wechaty/issues/1893
393
+ // This is an anti-pattern usage.
394
+ //
395
+ // } else if (textList.length === 1) {
396
+ // /**
397
+ // * Constructed mention string, skip inserting @ signs
398
+ // */
399
+ // return this.wechaty.puppet.messageSendText(
400
+ // receiver,
401
+ // textList[0],
402
+ // mentionList.map(c => c.id),
403
+ // )
404
+ }
405
+ else { // mentionList.length > 0
406
+ /**
407
+ * Mention in the string
408
+ */
409
+ const textListLength = textList.length;
410
+ const varListLength = varList.length;
411
+ if (textListLength - varListLength !== 1) {
412
+ throw new Error('Can not say message, invalid Template String Array.');
413
+ }
414
+ let finalText = '';
415
+ let i = 0;
416
+ for (; i < varListLength; i++) {
417
+ if (ContactImpl.valid(varList[i])) {
418
+ const mentionContact = varList[i];
419
+ const mentionName = await this.alias(mentionContact) || mentionContact.name();
420
+ finalText += textList[i] + '@' + mentionName;
421
+ }
422
+ else {
423
+ finalText += textList[i] + varList[i];
424
+ }
425
+ }
426
+ finalText += textList[i];
427
+ return this.wechaty.puppet.messageSendText(this.id, finalText, mentionList.map(c => c.id));
428
+ }
429
+ }
430
+ /**
431
+ * @desc Room Class Event Type
432
+ * @typedef RoomEventName
433
+ * @property {string} join - Emit when anyone join any room.
434
+ * @property {string} topic - Get topic event, emitted when someone change room topic.
435
+ * @property {string} leave - Emit when anyone leave the room.<br>
436
+ * If someone leaves the room by themselves, WeChat will not notice other people in the room, so the bot will never get the "leave" event.
437
+ */
438
+ /**
439
+ * @desc Room Class Event Function
440
+ * @typedef RoomEventFunction
441
+ * @property {Function} room-join - (this: Room, inviteeList: Contact[] , inviter: Contact) => void
442
+ * @property {Function} room-topic - (this: Room, topic: string, oldTopic: string, changer: Contact) => void
443
+ * @property {Function} room-leave - (this: Room, leaver: Contact) => void
444
+ */
445
+ /**
446
+ * @listens Room
447
+ * @param {RoomEventName} event - Emit WechatyEvent
448
+ * @param {RoomEventFunction} listener - Depends on the WechatyEvent
449
+ * @return {this} - this for chain
450
+ *
451
+ * @example <caption>Event:join </caption>
452
+ * const bot = new Wechaty()
453
+ * await bot.start()
454
+ * // after logged in...
455
+ * const room = await bot.Room.find({topic: 'topic of your room'}) // change `event-room` to any room topic in your WeChat
456
+ * if (room) {
457
+ * room.on('join', (room, inviteeList, inviter) => {
458
+ * const nameList = inviteeList.map(c => c.name()).join(',')
459
+ * console.log(`Room got new member ${nameList}, invited by ${inviter}`)
460
+ * })
461
+ * }
462
+ *
463
+ * @example <caption>Event:leave </caption>
464
+ * const bot = new Wechaty()
465
+ * await bot.start()
466
+ * // after logged in...
467
+ * const room = await bot.Room.find({topic: 'topic of your room'}) // change `event-room` to any room topic in your WeChat
468
+ * if (room) {
469
+ * room.on('leave', (room, leaverList) => {
470
+ * const nameList = leaverList.map(c => c.name()).join(',')
471
+ * console.log(`Room lost member ${nameList}`)
472
+ * })
473
+ * }
474
+ *
475
+ * @example <caption>Event:message </caption>
476
+ * const bot = new Wechaty()
477
+ * await bot.start()
478
+ * // after logged in...
479
+ * const room = await bot.Room.find({topic: 'topic of your room'}) // change `event-room` to any room topic in your WeChat
480
+ * if (room) {
481
+ * room.on('message', (message) => {
482
+ * console.log(`Room received new message: ${message}`)
483
+ * })
484
+ * }
485
+ *
486
+ * @example <caption>Event:topic </caption>
487
+ * const bot = new Wechaty()
488
+ * await bot.start()
489
+ * // after logged in...
490
+ * const room = await bot.Room.find({topic: 'topic of your room'}) // change `event-room` to any room topic in your WeChat
491
+ * if (room) {
492
+ * room.on('topic', (room, topic, oldTopic, changer) => {
493
+ * console.log(`Room topic changed from ${oldTopic} to ${topic} by ${changer.name()}`)
494
+ * })
495
+ * }
496
+ *
497
+ * @example <caption>Event:invite </caption>
498
+ * const bot = new Wechaty()
499
+ * await bot.start()
500
+ * // after logged in...
501
+ * const room = await bot.Room.find({topic: 'topic of your room'}) // change `event-room` to any room topic in your WeChat
502
+ * if (room) {
503
+ * room.on('invite', roomInvitation => roomInvitation.accept())
504
+ * }
505
+ *
506
+ */
507
+ // public on (event: RoomEventName, listener: (...args: any[]) => any): this {
508
+ // log.verbose('Room', 'on(%s, %s)', event, typeof listener)
509
+ // super.on(event, listener) // Room is `Sayable`
510
+ // return this
511
+ // }
512
+ /**
513
+ * Add contact in a room
514
+ *
515
+ * > Tips:
516
+ * This function is depending on the Puppet Implementation, see [puppet-compatible-table](https://github.com/wechaty/wechaty/wiki/Puppet#3-puppet-compatible-table)
517
+ * >
518
+ * > see {@link https://github.com/wechaty/wechaty/issues/1441|Web version of WeChat closed group interface}
519
+ *
520
+ * @param {ContactInterface} contact
521
+ * @returns {Promise<void>}
522
+ * @example
523
+ * const bot = new Wechaty()
524
+ * await bot.start()
525
+ * // after logged in...
526
+ * const contact = await bot.Contact.find({name: 'lijiarui'}) // change 'lijiarui' to any contact in your WeChat
527
+ * const room = await bot.Room.find({topic: 'WeChat'}) // change 'WeChat' to any room topic in your WeChat
528
+ * if (room) {
529
+ * try {
530
+ * await room.add(contact)
531
+ * } catch(e) {
532
+ * console.error(e)
533
+ * }
534
+ * }
535
+ */
536
+ async add(contact) {
537
+ log.verbose('Room', 'add(%s)', contact);
538
+ await this.wechaty.puppet.roomAdd(this.id, contact.id);
539
+ }
540
+ /**
541
+ * Remove a contact from the room
542
+ * It works only when the bot is the owner of the room
543
+ *
544
+ * > Tips:
545
+ * This function is depending on the Puppet Implementation, see [puppet-compatible-table](https://github.com/wechaty/wechaty/wiki/Puppet#3-puppet-compatible-table)
546
+ * >
547
+ * > see {@link https://github.com/wechaty/wechaty/issues/1441|Web version of WeChat closed group interface}
548
+ *
549
+ * @param {ContactInterface} contact
550
+ * @returns {Promise<void>}
551
+ * @example
552
+ * const bot = new Wechaty()
553
+ * await bot.start()
554
+ * // after logged in...
555
+ * const room = await bot.Room.find({topic: 'WeChat'}) // change 'WeChat' to any room topic in your WeChat
556
+ * const contact = await bot.Contact.find({name: 'lijiarui'}) // change 'lijiarui' to any room member in the room you just set
557
+ * if (room) {
558
+ * try {
559
+ * await room.remove(contact)
560
+ * } catch(e) {
561
+ * console.error(e)
562
+ * }
563
+ * }
564
+ */
565
+ async remove(contact) {
566
+ log.verbose('Room', 'del(%s)', contact);
567
+ await this.wechaty.puppet.roomDel(this.id, contact.id);
568
+ // this.delLocal(contact)
569
+ }
570
+ /**
571
+ * Huan(202106): will be removed after Dec 31, 2023
572
+ * @deprecated use remove(contact) instead.
573
+ */
574
+ async del(contact) {
575
+ log.warn('Room', 'del() is DEPRECATED, use remove() instead.\n%s', new Error().stack);
576
+ return this.remove(contact);
577
+ }
578
+ // private delLocal(contact: Contact): void {
579
+ // log.verbose('Room', 'delLocal(%s)', contact)
580
+ // const memberIdList = this.payload && this.payload.memberIdList
581
+ // if (memberIdList && memberIdList.length > 0) {
582
+ // for (let i = 0; i < memberIdList.length; i++) {
583
+ // if (memberIdList[i] === contact.id) {
584
+ // memberIdList.splice(i, 1)
585
+ // break
586
+ // }
587
+ // }
588
+ // }
589
+ // }
590
+ /**
591
+ * Bot quit the room itself
592
+ *
593
+ * > Tips:
594
+ * This function is depending on the Puppet Implementation, see [puppet-compatible-table](https://github.com/wechaty/wechaty/wiki/Puppet#3-puppet-compatible-table)
595
+ *
596
+ * @returns {Promise<void>}
597
+ * @example
598
+ * await room.quit()
599
+ */
600
+ async quit() {
601
+ log.verbose('Room', 'quit() %s', this);
602
+ await this.wechaty.puppet.roomQuit(this.id);
603
+ }
604
+ /**
605
+ * SET/GET topic from the room
606
+ *
607
+ * @param {string} [newTopic] If set this para, it will change room topic.
608
+ * @returns {Promise<string | void>}
609
+ *
610
+ * @example <caption>When you say anything in a room, it will get room topic. </caption>
611
+ * const bot = new Wechaty()
612
+ * bot
613
+ * .on('message', async m => {
614
+ * const room = m.room()
615
+ * if (room) {
616
+ * const topic = await room.topic()
617
+ * console.log(`room topic is : ${topic}`)
618
+ * }
619
+ * })
620
+ * .start()
621
+ *
622
+ * @example <caption>When you say anything in a room, it will change room topic. </caption>
623
+ * const bot = new Wechaty()
624
+ * bot
625
+ * .on('message', async m => {
626
+ * const room = m.room()
627
+ * if (room) {
628
+ * const oldTopic = await room.topic()
629
+ * await room.topic('change topic to wechaty!')
630
+ * console.log(`room topic change from ${oldTopic} to ${room.topic()}`)
631
+ * }
632
+ * })
633
+ * .start()
634
+ */
635
+ async topic(newTopic) {
636
+ log.verbose('Room', 'topic(%s)', newTopic || '');
637
+ if (!this.isReady()) {
638
+ log.warn('Room', 'topic() room not ready');
639
+ throw new Error('not ready');
640
+ }
641
+ if (typeof newTopic === 'undefined') {
642
+ if (this.payload && this.payload.topic) {
643
+ return this.payload.topic;
644
+ }
645
+ else {
646
+ const memberIdList = await this.wechaty.puppet.roomMemberList(this.id);
647
+ const memberListFuture = memberIdList
648
+ .filter(id => id !== this.wechaty.puppet.currentUserId)
649
+ .map(id => this.wechaty.Contact.find({ id }));
650
+ const memberList = (await Promise.all(memberListFuture))
651
+ .filter(Boolean);
652
+ let defaultTopic = (memberList[0] && memberList[0].name()) || '';
653
+ for (let i = 1; i < 3 && memberList[i]; i++) {
654
+ defaultTopic += ',' + memberList[i].name();
655
+ }
656
+ return defaultTopic;
657
+ }
658
+ }
659
+ const future = this.wechaty.puppet
660
+ .roomTopic(this.id, newTopic)
661
+ .catch(e => {
662
+ log.warn('Room', 'topic(newTopic=%s) exception: %s', newTopic, (e && e.message) || e);
663
+ wechatyCaptureException(e);
664
+ });
665
+ return future;
666
+ }
667
+ /**
668
+ * SET/GET announce from the room
669
+ * > Tips: It only works when bot is the owner of the room.
670
+ * >
671
+ * > This function is depending on the Puppet Implementation, see [puppet-compatible-table](https://github.com/wechaty/wechaty/wiki/Puppet#3-puppet-compatible-table)
672
+ *
673
+ * @param {string} [text] If set this para, it will change room announce.
674
+ * @returns {(Promise<void | string>)}
675
+ *
676
+ * @example <caption>When you say anything in a room, it will get room announce. </caption>
677
+ * const bot = new Wechaty()
678
+ * await bot.start()
679
+ * // after logged in...
680
+ * const room = await bot.Room.find({topic: 'your room'})
681
+ * const announce = await room.announce()
682
+ * console.log(`room announce is : ${announce}`)
683
+ *
684
+ * @example <caption>When you say anything in a room, it will change room announce. </caption>
685
+ * const bot = new Wechaty()
686
+ * await bot.start()
687
+ * // after logged in...
688
+ * const room = await bot.Room.find({topic: 'your room'})
689
+ * const oldAnnounce = await room.announce()
690
+ * await room.announce('change announce to wechaty!')
691
+ * console.log(`room announce change from ${oldAnnounce} to ${room.announce()}`)
692
+ */
693
+ async announce(text) {
694
+ log.verbose('Room', 'announce(%s)', typeof text === 'undefined'
695
+ ? ''
696
+ : `"${text || ''}"`);
697
+ if (typeof text === 'undefined') {
698
+ const announcement = await this.wechaty.puppet.roomAnnounce(this.id);
699
+ return announcement;
700
+ }
701
+ else {
702
+ await this.wechaty.puppet.roomAnnounce(this.id, text);
703
+ }
704
+ }
705
+ /**
706
+ * Get QR Code Value of the Room from the room, which can be used as scan and join the room.
707
+ * > Tips:
708
+ * 1. This function is depending on the Puppet Implementation, see [puppet-compatible-table](https://github.com/wechaty/wechaty/wiki/Puppet#3-puppet-compatible-table)
709
+ * 2. The return should be the QR Code Data, instead of the QR Code Image. (the data should be less than 8KB. See: https://stackoverflow.com/a/12764370/1123955 )
710
+ * @returns {Promise<string>}
711
+ */
712
+ async qrCode() {
713
+ log.verbose('Room', 'qrCode()');
714
+ const qrcodeValue = await this.wechaty.puppet.roomQRCode(this.id);
715
+ return guardQrCodeValue(qrcodeValue);
716
+ }
717
+ /**
718
+ * Return contact's roomAlias in the room
719
+ * @param {ContactInterface} contact
720
+ * @returns {Promise<string | null>} - If a contact has an alias in room, return string, otherwise return null
721
+ * @example
722
+ * const bot = new Wechaty()
723
+ * bot
724
+ * .on('message', async m => {
725
+ * const room = m.room()
726
+ * const contact = m.from()
727
+ * if (room) {
728
+ * const alias = await room.alias(contact)
729
+ * console.log(`${contact.name()} alias is ${alias}`)
730
+ * }
731
+ * })
732
+ * .start()
733
+ */
734
+ async alias(contact) {
735
+ const memberPayload = await this.wechaty.puppet.roomMemberPayload(this.id, contact.id);
736
+ if (memberPayload.roomAlias) {
737
+ return memberPayload.roomAlias;
738
+ }
739
+ return undefined;
740
+ }
741
+ /**
742
+ * Mark the conversation as read
743
+ * @param { undefined | boolean } hasRead
744
+ *
745
+ * @example
746
+ * const bot = new Wechaty()
747
+ * const room = await bot.Room.find({topic: 'xxx'})
748
+ * await room.readMark()
749
+ */
750
+ async readMark(hasRead) {
751
+ try {
752
+ if (typeof hasRead === 'undefined') {
753
+ return this.wechaty.puppet.conversationReadMark(this.id);
754
+ }
755
+ else {
756
+ await this.wechaty.puppet.conversationReadMark(this.id, hasRead);
757
+ }
758
+ }
759
+ catch (e) {
760
+ this.wechaty.emitError(e);
761
+ log.error('Room', 'readMark() exception: %s', e.message);
762
+ }
763
+ }
764
+ /**
765
+ * Check if the room has member `contact`, the return is a Promise and must be `await`-ed
766
+ *
767
+ * @param {ContactInterface} contact
768
+ * @returns {Promise<boolean>} Return `true` if has contact, else return `false`.
769
+ * @example <caption>Check whether 'lijiarui' is in the room 'wechaty'</caption>
770
+ * const bot = new Wechaty()
771
+ * await bot.start()
772
+ * // after logged in...
773
+ * const contact = await bot.Contact.find({name: 'lijiarui'}) // change 'lijiarui' to any of contact in your WeChat
774
+ * const room = await bot.Room.find({topic: 'wechaty'}) // change 'wechaty' to any of the room in your WeChat
775
+ * if (contact && room) {
776
+ * if (await room.has(contact)) {
777
+ * console.log(`${contact.name()} is in the room wechaty!`)
778
+ * } else {
779
+ * console.log(`${contact.name()} is not in the room wechaty!`)
780
+ * }
781
+ * }
782
+ */
783
+ async has(contact) {
784
+ const memberIdList = await this.wechaty.puppet.roomMemberList(this.id);
785
+ // if (!memberIdList) {
786
+ // return false
787
+ // }
788
+ return memberIdList
789
+ .filter(id => id === contact.id)
790
+ .length > 0;
791
+ }
792
+ /**
793
+ * The way to search member by Room.member()
794
+ *
795
+ * @typedef RoomMemberQueryFilter
796
+ * @property {string} name -Find the contact by WeChat name in a room, equal to `Contact.name()`.
797
+ * @property {string} roomAlias -Find the contact by alias set by the bot for others in a room.
798
+ * @property {string} contactAlias -Find the contact by alias set by the contact out of a room, equal to `Contact.alias()`.
799
+ * [More Detail]{@link https://github.com/wechaty/wechaty/issues/365}
800
+ */
801
+ /**
802
+ * Find all contacts in a room
803
+ *
804
+ * #### definition
805
+ * - `name` the name-string set by user-self, should be called name, equal to `Contact.name()`
806
+ * - `roomAlias` the name-string set by user-self in the room, should be called roomAlias
807
+ * - `contactAlias` the name-string set by bot for others, should be called alias, equal to `Contact.alias()`
808
+ * @param {(RoomMemberQueryFilter | string)} [query] -Optional parameter, When use memberAll(name:string), return all matched members, including name, roomAlias, contactAlias
809
+ * @returns {Promise<ContactInterface[]>}
810
+ * @example
811
+ * const roomList:Contact[] | null = await room.findAll()
812
+ * if(roomList)
813
+ * console.log(`room all member list: `, roomList)
814
+ * const memberContactList: Contact[] | null =await room.findAll(`abc`)
815
+ * console.log(`contact list with all name, room alias, alias are abc:`, memberContactList)
816
+ */
817
+ async memberAll(query) {
818
+ log.silly('Room', 'memberAll(%s)', JSON.stringify(query) || '');
819
+ if (!query) {
820
+ return this.memberList();
821
+ }
822
+ const contactIdList = await this.wechaty.puppet.roomMemberSearch(this.id, query);
823
+ const contactListAll = await Promise.all(contactIdList.map(id => this.wechaty.Contact.find({ id })));
824
+ const contactList = contactListAll.filter(c => !!c);
825
+ return contactList;
826
+ }
827
+ /**
828
+ * Find all contacts in a room, if get many, return the first one.
829
+ *
830
+ * @param {(RoomMemberQueryFilter | string)} queryArg -When use member(name:string), return all matched members, including name, roomAlias, contactAlias
831
+ * @returns {Promise<undefined | ContactInterface>}
832
+ *
833
+ * @example <caption>Find member by name</caption>
834
+ * const bot = new Wechaty()
835
+ * await bot.start()
836
+ * // after logged in...
837
+ * const room = await bot.Room.find({topic: 'wechaty'}) // change 'wechaty' to any room name in your WeChat
838
+ * if (room) {
839
+ * const member = await room.member('lijiarui') // change 'lijiarui' to any room member in your WeChat
840
+ * if (member) {load
841
+ * @example <caption>Find member by MemberQueryFilter</caption>
842
+ * const bot = new Wechaty()
843
+ * await bot.start()
844
+ * // after logged in...
845
+ * const room = await bot.Room.find({topic: 'wechaty'}) // change 'wechaty' to any room name in your WeChat
846
+ * if (room) {
847
+ * const member = await room.member({name: 'lijiarui'}) // change 'lijiarui' to any room member in your WeChat
848
+ * if (member) {
849
+ * console.log(`wechaty room got the member: ${member.name()}`)
850
+ * } else {
851
+ * console.log(`cannot get member in wechaty room!`)
852
+ * }
853
+ * }
854
+ */
855
+ async member(queryArg) {
856
+ log.verbose('Room', 'member(%s)', JSON.stringify(queryArg));
857
+ let memberList;
858
+ // ISSUE #622
859
+ // error TS2345: Argument of type 'string | MemberQueryFilter' is not assignable to parameter of type 'MemberQueryFilter' #622
860
+ if (typeof queryArg === 'string') {
861
+ memberList = await this.memberAll(queryArg);
862
+ }
863
+ else {
864
+ memberList = await this.memberAll(queryArg);
865
+ }
866
+ if (memberList.length <= 0) {
867
+ return undefined;
868
+ }
869
+ if (memberList.length > 1) {
870
+ log.warn('Room', 'member(%s) get %d contacts, use the first one by default', JSON.stringify(queryArg), memberList.length);
871
+ }
872
+ return memberList[0];
873
+ }
874
+ /**
875
+ * Huan(202110):
876
+ * - Q: why this method marked as `privated` before?
877
+ * - A: it is for supporting the `memberAll()` API
878
+ *
879
+ * Get all room member from the room
880
+ *
881
+ * @returns {Promise<ContactInterface[]>}
882
+ * @example
883
+ * await room.memberList()
884
+ */
885
+ async memberList() {
886
+ log.verbose('Room', 'memberList()');
887
+ const memberIdList = await this.wechaty.puppet.roomMemberList(this.id);
888
+ // if (!memberIdList) {
889
+ // log.warn('Room', 'memberList() not ready')
890
+ // return []
891
+ // }
892
+ const contactListAll = await Promise.all(memberIdList.map(id => this.wechaty.Contact.find({ id })));
893
+ const contactList = contactListAll.filter(c => !!c);
894
+ return contactList;
895
+ }
896
+ /**
897
+ * Get room's owner from the room.
898
+ * > Tips:
899
+ * This function is depending on the Puppet Implementation, see [puppet-compatible-table](https://github.com/wechaty/wechaty/wiki/Puppet#3-puppet-compatible-table)
900
+ * @returns {(ContactInterface | undefined)}
901
+ * @example
902
+ * const owner = room.owner()
903
+ */
904
+ owner() {
905
+ log.verbose('Room', 'owner()');
906
+ const ownerId = this.payload && this.payload.ownerId;
907
+ if (!ownerId) {
908
+ return undefined;
909
+ }
910
+ const owner = this.wechaty.Contact.load(ownerId);
911
+ return owner;
912
+ }
913
+ /**
914
+ * Get avatar from the room.
915
+ * @returns {FileBox}
916
+ * @example
917
+ * const fileBox = await room.avatar()
918
+ * const name = fileBox.name
919
+ * fileBox.toFile(name)
920
+ */
921
+ async avatar() {
922
+ log.verbose('Room', 'avatar()');
923
+ return this.wechaty.puppet.roomAvatar(this.id);
924
+ }
925
+ }
926
+ class RoomImpl extends validationMixin(RoomMixin)() {
927
+ }
928
+ export { RoomImpl, };
929
+ //# sourceMappingURL=room.js.map