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