wechaty-puppet-matrix 0.0.4

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 (352) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +14 -0
  3. package/dist/cjs/package.json +3 -0
  4. package/dist/cjs/src/cleanup.d.ts +4 -0
  5. package/dist/cjs/src/cleanup.d.ts.map +1 -0
  6. package/dist/cjs/src/cleanup.js +31 -0
  7. package/dist/cjs/src/config.d.ts +5 -0
  8. package/dist/cjs/src/config.d.ts.map +1 -0
  9. package/dist/cjs/src/config.js +10 -0
  10. package/dist/cjs/src/engine-schema.d.ts +76 -0
  11. package/dist/cjs/src/engine-schema.d.ts.map +1 -0
  12. package/dist/cjs/src/engine-schema.js +14 -0
  13. package/dist/cjs/src/matrix/cache-manager.d.ts +58 -0
  14. package/dist/cjs/src/matrix/cache-manager.d.ts.map +1 -0
  15. package/dist/cjs/src/matrix/cache-manager.js +286 -0
  16. package/dist/cjs/src/matrix/events/event-friendship.d.ts +6 -0
  17. package/dist/cjs/src/matrix/events/event-friendship.d.ts.map +1 -0
  18. package/dist/cjs/src/matrix/events/event-friendship.js +109 -0
  19. package/dist/cjs/src/matrix/events/event-message.d.ts +6 -0
  20. package/dist/cjs/src/matrix/events/event-message.d.ts.map +1 -0
  21. package/dist/cjs/src/matrix/events/event-message.js +5 -0
  22. package/dist/cjs/src/matrix/events/event-room-invite.d.ts +6 -0
  23. package/dist/cjs/src/matrix/events/event-room-invite.d.ts.map +1 -0
  24. package/dist/cjs/src/matrix/events/event-room-invite.js +55 -0
  25. package/dist/cjs/src/matrix/events/event-room-join.d.ts +6 -0
  26. package/dist/cjs/src/matrix/events/event-room-join.d.ts.map +1 -0
  27. package/dist/cjs/src/matrix/events/event-room-join.js +127 -0
  28. package/dist/cjs/src/matrix/events/event-room-leave.d.ts +8 -0
  29. package/dist/cjs/src/matrix/events/event-room-leave.d.ts.map +1 -0
  30. package/dist/cjs/src/matrix/events/event-room-leave.js +83 -0
  31. package/dist/cjs/src/matrix/events/event-room-topic.d.ts +6 -0
  32. package/dist/cjs/src/matrix/events/event-room-topic.d.ts.map +1 -0
  33. package/dist/cjs/src/matrix/events/event-room-topic.js +56 -0
  34. package/dist/cjs/src/matrix/events/event.d.ts +28 -0
  35. package/dist/cjs/src/matrix/events/event.d.ts.map +1 -0
  36. package/dist/cjs/src/matrix/events/event.js +42 -0
  37. package/dist/cjs/src/matrix/events/mod.d.ts +3 -0
  38. package/dist/cjs/src/matrix/events/mod.d.ts.map +1 -0
  39. package/dist/cjs/src/matrix/events/mod.js +21 -0
  40. package/dist/cjs/src/matrix/messages/message-appmsg.d.ts +57 -0
  41. package/dist/cjs/src/matrix/messages/message-appmsg.d.ts.map +1 -0
  42. package/dist/cjs/src/matrix/messages/message-appmsg.js +60 -0
  43. package/dist/cjs/src/matrix/messages/message-audio.d.ts +32 -0
  44. package/dist/cjs/src/matrix/messages/message-audio.d.ts.map +1 -0
  45. package/dist/cjs/src/matrix/messages/message-audio.js +17 -0
  46. package/dist/cjs/src/matrix/messages/message-emotion.d.ts +13 -0
  47. package/dist/cjs/src/matrix/messages/message-emotion.d.ts.map +1 -0
  48. package/dist/cjs/src/matrix/messages/message-emotion.js +32 -0
  49. package/dist/cjs/src/matrix/messages/message-image.d.ts +33 -0
  50. package/dist/cjs/src/matrix/messages/message-image.d.ts.map +1 -0
  51. package/dist/cjs/src/matrix/messages/message-image.js +14 -0
  52. package/dist/cjs/src/matrix/messages/message-miniprogram.d.ts +4 -0
  53. package/dist/cjs/src/matrix/messages/message-miniprogram.d.ts.map +1 -0
  54. package/dist/cjs/src/matrix/messages/message-miniprogram.js +21 -0
  55. package/dist/cjs/src/matrix/messages/message-sysmsg.d.ts +18 -0
  56. package/dist/cjs/src/matrix/messages/message-sysmsg.d.ts.map +1 -0
  57. package/dist/cjs/src/matrix/messages/message-sysmsg.js +76 -0
  58. package/dist/cjs/src/matrix/messages/message-video.d.ts +43 -0
  59. package/dist/cjs/src/matrix/messages/message-video.d.ts.map +1 -0
  60. package/dist/cjs/src/matrix/messages/message-video.js +20 -0
  61. package/dist/cjs/src/matrix/messages/sysmsg/message-pat.d.ts +14 -0
  62. package/dist/cjs/src/matrix/messages/sysmsg/message-pat.d.ts.map +1 -0
  63. package/dist/cjs/src/matrix/messages/sysmsg/message-pat.js +11 -0
  64. package/dist/cjs/src/matrix/messages/sysmsg/message-revokemsg.d.ts +19 -0
  65. package/dist/cjs/src/matrix/messages/sysmsg/message-revokemsg.d.ts.map +1 -0
  66. package/dist/cjs/src/matrix/messages/sysmsg/message-revokemsg.js +48 -0
  67. package/dist/cjs/src/matrix/messages/sysmsg/message-sysmsgtemplate.d.ts +59 -0
  68. package/dist/cjs/src/matrix/messages/sysmsg/message-sysmsgtemplate.d.ts.map +1 -0
  69. package/dist/cjs/src/matrix/messages/sysmsg/message-sysmsgtemplate.js +61 -0
  70. package/dist/cjs/src/matrix/messages/sysmsg/message-todo.d.ts +31 -0
  71. package/dist/cjs/src/matrix/messages/sysmsg/message-todo.d.ts.map +1 -0
  72. package/dist/cjs/src/matrix/messages/sysmsg/message-todo.js +16 -0
  73. package/dist/cjs/src/matrix/schema-mapper/contact.d.ts +4 -0
  74. package/dist/cjs/src/matrix/schema-mapper/contact.d.ts.map +1 -0
  75. package/dist/cjs/src/matrix/schema-mapper/contact.js +62 -0
  76. package/dist/cjs/src/matrix/schema-mapper/message/message-parser-appmsg.d.ts +3 -0
  77. package/dist/cjs/src/matrix/schema-mapper/message/message-parser-appmsg.d.ts.map +1 -0
  78. package/dist/cjs/src/matrix/schema-mapper/message/message-parser-appmsg.js +100 -0
  79. package/dist/cjs/src/matrix/schema-mapper/message/message-parser-refermsg.d.ts +3 -0
  80. package/dist/cjs/src/matrix/schema-mapper/message/message-parser-refermsg.d.ts.map +1 -0
  81. package/dist/cjs/src/matrix/schema-mapper/message/message-parser-refermsg.js +67 -0
  82. package/dist/cjs/src/matrix/schema-mapper/message/message-parser-room.d.ts +3 -0
  83. package/dist/cjs/src/matrix/schema-mapper/message/message-parser-room.d.ts.map +1 -0
  84. package/dist/cjs/src/matrix/schema-mapper/message/message-parser-room.js +40 -0
  85. package/dist/cjs/src/matrix/schema-mapper/message/message-parser-single-chat.d.ts +3 -0
  86. package/dist/cjs/src/matrix/schema-mapper/message/message-parser-single-chat.d.ts.map +1 -0
  87. package/dist/cjs/src/matrix/schema-mapper/message/message-parser-single-chat.js +11 -0
  88. package/dist/cjs/src/matrix/schema-mapper/message/message-parser-sysmsg.d.ts +3 -0
  89. package/dist/cjs/src/matrix/schema-mapper/message/message-parser-sysmsg.d.ts.map +1 -0
  90. package/dist/cjs/src/matrix/schema-mapper/message/message-parser-sysmsg.js +41 -0
  91. package/dist/cjs/src/matrix/schema-mapper/message/message-parser-type.d.ts +3 -0
  92. package/dist/cjs/src/matrix/schema-mapper/message/message-parser-type.d.ts.map +1 -0
  93. package/dist/cjs/src/matrix/schema-mapper/message/message-parser-type.js +65 -0
  94. package/dist/cjs/src/matrix/schema-mapper/message/message-parser.d.ts +13 -0
  95. package/dist/cjs/src/matrix/schema-mapper/message/message-parser.d.ts.map +1 -0
  96. package/dist/cjs/src/matrix/schema-mapper/message/message-parser.js +20 -0
  97. package/dist/cjs/src/matrix/schema-mapper/message/mod.d.ts +3 -0
  98. package/dist/cjs/src/matrix/schema-mapper/message/mod.d.ts.map +1 -0
  99. package/dist/cjs/src/matrix/schema-mapper/message/mod.js +17 -0
  100. package/dist/cjs/src/matrix/schema-mapper/message.d.ts +6 -0
  101. package/dist/cjs/src/matrix/schema-mapper/message.d.ts.map +1 -0
  102. package/dist/cjs/src/matrix/schema-mapper/message.js +47 -0
  103. package/dist/cjs/src/matrix/schema-mapper/room.d.ts +6 -0
  104. package/dist/cjs/src/matrix/schema-mapper/room.d.ts.map +1 -0
  105. package/dist/cjs/src/matrix/schema-mapper/room.js +27 -0
  106. package/dist/cjs/src/matrix/service/request.d.ts +290 -0
  107. package/dist/cjs/src/matrix/service/request.d.ts.map +1 -0
  108. package/dist/cjs/src/matrix/service/request.js +1315 -0
  109. package/dist/cjs/src/matrix/types.d.ts +34 -0
  110. package/dist/cjs/src/matrix/types.d.ts.map +1 -0
  111. package/dist/cjs/src/matrix/types.js +30 -0
  112. package/dist/cjs/src/matrix/utils/cached-promise.d.ts +5 -0
  113. package/dist/cjs/src/matrix/utils/cached-promise.d.ts.map +1 -0
  114. package/dist/cjs/src/matrix/utils/cached-promise.js +22 -0
  115. package/dist/cjs/src/matrix/utils/image-decrypt.d.ts +7 -0
  116. package/dist/cjs/src/matrix/utils/image-decrypt.d.ts.map +1 -0
  117. package/dist/cjs/src/matrix/utils/image-decrypt.js +158 -0
  118. package/dist/cjs/src/matrix/utils/index.d.ts +4 -0
  119. package/dist/cjs/src/matrix/utils/index.d.ts.map +1 -0
  120. package/dist/cjs/src/matrix/utils/index.js +32 -0
  121. package/dist/cjs/src/matrix/utils/is-type.d.ts +9 -0
  122. package/dist/cjs/src/matrix/utils/is-type.d.ts.map +1 -0
  123. package/dist/cjs/src/matrix/utils/is-type.js +72 -0
  124. package/dist/cjs/src/matrix/utils/regex.d.ts +3 -0
  125. package/dist/cjs/src/matrix/utils/regex.d.ts.map +1 -0
  126. package/dist/cjs/src/matrix/utils/regex.js +14 -0
  127. package/dist/cjs/src/matrix/utils/runner.d.ts +3 -0
  128. package/dist/cjs/src/matrix/utils/runner.d.ts.map +1 -0
  129. package/dist/cjs/src/matrix/utils/runner.js +12 -0
  130. package/dist/cjs/src/matrix/utils/string.d.ts +2 -0
  131. package/dist/cjs/src/matrix/utils/string.d.ts.map +1 -0
  132. package/dist/cjs/src/matrix/utils/string.js +7 -0
  133. package/dist/cjs/src/matrix/utils/xml-to-json.d.ts +5 -0
  134. package/dist/cjs/src/matrix/utils/xml-to-json.d.ts.map +1 -0
  135. package/dist/cjs/src/matrix/utils/xml-to-json.js +51 -0
  136. package/dist/cjs/src/mod.d.ts +5 -0
  137. package/dist/cjs/src/mod.d.ts.map +1 -0
  138. package/dist/cjs/src/mod.js +9 -0
  139. package/dist/cjs/src/package-json.d.ts +3 -0
  140. package/dist/cjs/src/package-json.d.ts.map +1 -0
  141. package/dist/cjs/src/package-json.js +4 -0
  142. package/dist/cjs/src/package-json.spec.d.ts +3 -0
  143. package/dist/cjs/src/package-json.spec.d.ts.map +1 -0
  144. package/dist/cjs/src/package-json.spec.js +9 -0
  145. package/dist/cjs/src/puppet-matrix.d.ts +114 -0
  146. package/dist/cjs/src/puppet-matrix.d.ts.map +1 -0
  147. package/dist/cjs/src/puppet-matrix.js +1037 -0
  148. package/dist/cjs/tests/integration.spec.d.ts +3 -0
  149. package/dist/cjs/tests/integration.spec.d.ts.map +1 -0
  150. package/dist/cjs/tests/integration.spec.js +7 -0
  151. package/dist/cjs/tests/tap.spec.d.ts +3 -0
  152. package/dist/cjs/tests/tap.spec.d.ts.map +1 -0
  153. package/dist/cjs/tests/tap.spec.js +32 -0
  154. package/dist/esm/src/cleanup.d.ts +4 -0
  155. package/dist/esm/src/cleanup.d.ts.map +1 -0
  156. package/dist/esm/src/cleanup.js +24 -0
  157. package/dist/esm/src/config.d.ts +5 -0
  158. package/dist/esm/src/config.d.ts.map +1 -0
  159. package/dist/esm/src/config.js +5 -0
  160. package/dist/esm/src/engine-schema.d.ts +76 -0
  161. package/dist/esm/src/engine-schema.d.ts.map +1 -0
  162. package/dist/esm/src/engine-schema.js +11 -0
  163. package/dist/esm/src/matrix/cache-manager.d.ts +58 -0
  164. package/dist/esm/src/matrix/cache-manager.d.ts.map +1 -0
  165. package/dist/esm/src/matrix/cache-manager.js +279 -0
  166. package/dist/esm/src/matrix/events/event-friendship.d.ts +6 -0
  167. package/dist/esm/src/matrix/events/event-friendship.d.ts.map +1 -0
  168. package/dist/esm/src/matrix/events/event-friendship.js +84 -0
  169. package/dist/esm/src/matrix/events/event-message.d.ts +6 -0
  170. package/dist/esm/src/matrix/events/event-message.d.ts.map +1 -0
  171. package/dist/esm/src/matrix/events/event-message.js +3 -0
  172. package/dist/esm/src/matrix/events/event-room-invite.d.ts +6 -0
  173. package/dist/esm/src/matrix/events/event-room-invite.d.ts.map +1 -0
  174. package/dist/esm/src/matrix/events/event-room-invite.js +53 -0
  175. package/dist/esm/src/matrix/events/event-room-join.d.ts +6 -0
  176. package/dist/esm/src/matrix/events/event-room-join.d.ts.map +1 -0
  177. package/dist/esm/src/matrix/events/event-room-join.js +125 -0
  178. package/dist/esm/src/matrix/events/event-room-leave.d.ts +8 -0
  179. package/dist/esm/src/matrix/events/event-room-leave.d.ts.map +1 -0
  180. package/dist/esm/src/matrix/events/event-room-leave.js +79 -0
  181. package/dist/esm/src/matrix/events/event-room-topic.d.ts +6 -0
  182. package/dist/esm/src/matrix/events/event-room-topic.d.ts.map +1 -0
  183. package/dist/esm/src/matrix/events/event-room-topic.js +54 -0
  184. package/dist/esm/src/matrix/events/event.d.ts +28 -0
  185. package/dist/esm/src/matrix/events/event.d.ts.map +1 -0
  186. package/dist/esm/src/matrix/events/event.js +37 -0
  187. package/dist/esm/src/matrix/events/mod.d.ts +3 -0
  188. package/dist/esm/src/matrix/events/mod.d.ts.map +1 -0
  189. package/dist/esm/src/matrix/events/mod.js +14 -0
  190. package/dist/esm/src/matrix/messages/message-appmsg.d.ts +57 -0
  191. package/dist/esm/src/matrix/messages/message-appmsg.d.ts.map +1 -0
  192. package/dist/esm/src/matrix/messages/message-appmsg.js +56 -0
  193. package/dist/esm/src/matrix/messages/message-audio.d.ts +32 -0
  194. package/dist/esm/src/matrix/messages/message-audio.d.ts.map +1 -0
  195. package/dist/esm/src/matrix/messages/message-audio.js +14 -0
  196. package/dist/esm/src/matrix/messages/message-emotion.d.ts +13 -0
  197. package/dist/esm/src/matrix/messages/message-emotion.d.ts.map +1 -0
  198. package/dist/esm/src/matrix/messages/message-emotion.js +28 -0
  199. package/dist/esm/src/matrix/messages/message-image.d.ts +33 -0
  200. package/dist/esm/src/matrix/messages/message-image.d.ts.map +1 -0
  201. package/dist/esm/src/matrix/messages/message-image.js +11 -0
  202. package/dist/esm/src/matrix/messages/message-miniprogram.d.ts +4 -0
  203. package/dist/esm/src/matrix/messages/message-miniprogram.d.ts.map +1 -0
  204. package/dist/esm/src/matrix/messages/message-miniprogram.js +18 -0
  205. package/dist/esm/src/matrix/messages/message-sysmsg.d.ts +18 -0
  206. package/dist/esm/src/matrix/messages/message-sysmsg.d.ts.map +1 -0
  207. package/dist/esm/src/matrix/messages/message-sysmsg.js +69 -0
  208. package/dist/esm/src/matrix/messages/message-video.d.ts +43 -0
  209. package/dist/esm/src/matrix/messages/message-video.d.ts.map +1 -0
  210. package/dist/esm/src/matrix/messages/message-video.js +17 -0
  211. package/dist/esm/src/matrix/messages/sysmsg/message-pat.d.ts +14 -0
  212. package/dist/esm/src/matrix/messages/sysmsg/message-pat.d.ts.map +1 -0
  213. package/dist/esm/src/matrix/messages/sysmsg/message-pat.js +8 -0
  214. package/dist/esm/src/matrix/messages/sysmsg/message-revokemsg.d.ts +19 -0
  215. package/dist/esm/src/matrix/messages/sysmsg/message-revokemsg.d.ts.map +1 -0
  216. package/dist/esm/src/matrix/messages/sysmsg/message-revokemsg.js +43 -0
  217. package/dist/esm/src/matrix/messages/sysmsg/message-sysmsgtemplate.d.ts +59 -0
  218. package/dist/esm/src/matrix/messages/sysmsg/message-sysmsgtemplate.d.ts.map +1 -0
  219. package/dist/esm/src/matrix/messages/sysmsg/message-sysmsgtemplate.js +56 -0
  220. package/dist/esm/src/matrix/messages/sysmsg/message-todo.d.ts +31 -0
  221. package/dist/esm/src/matrix/messages/sysmsg/message-todo.d.ts.map +1 -0
  222. package/dist/esm/src/matrix/messages/sysmsg/message-todo.js +13 -0
  223. package/dist/esm/src/matrix/schema-mapper/contact.d.ts +4 -0
  224. package/dist/esm/src/matrix/schema-mapper/contact.d.ts.map +1 -0
  225. package/dist/esm/src/matrix/schema-mapper/contact.js +36 -0
  226. package/dist/esm/src/matrix/schema-mapper/message/message-parser-appmsg.d.ts +3 -0
  227. package/dist/esm/src/matrix/schema-mapper/message/message-parser-appmsg.d.ts.map +1 -0
  228. package/dist/esm/src/matrix/schema-mapper/message/message-parser-appmsg.js +73 -0
  229. package/dist/esm/src/matrix/schema-mapper/message/message-parser-refermsg.d.ts +3 -0
  230. package/dist/esm/src/matrix/schema-mapper/message/message-parser-refermsg.d.ts.map +1 -0
  231. package/dist/esm/src/matrix/schema-mapper/message/message-parser-refermsg.js +40 -0
  232. package/dist/esm/src/matrix/schema-mapper/message/message-parser-room.d.ts +3 -0
  233. package/dist/esm/src/matrix/schema-mapper/message/message-parser-room.d.ts.map +1 -0
  234. package/dist/esm/src/matrix/schema-mapper/message/message-parser-room.js +36 -0
  235. package/dist/esm/src/matrix/schema-mapper/message/message-parser-single-chat.d.ts +3 -0
  236. package/dist/esm/src/matrix/schema-mapper/message/message-parser-single-chat.d.ts.map +1 -0
  237. package/dist/esm/src/matrix/schema-mapper/message/message-parser-single-chat.js +7 -0
  238. package/dist/esm/src/matrix/schema-mapper/message/message-parser-sysmsg.d.ts +3 -0
  239. package/dist/esm/src/matrix/schema-mapper/message/message-parser-sysmsg.d.ts.map +1 -0
  240. package/dist/esm/src/matrix/schema-mapper/message/message-parser-sysmsg.js +37 -0
  241. package/dist/esm/src/matrix/schema-mapper/message/message-parser-type.d.ts +3 -0
  242. package/dist/esm/src/matrix/schema-mapper/message/message-parser-type.d.ts.map +1 -0
  243. package/dist/esm/src/matrix/schema-mapper/message/message-parser-type.js +38 -0
  244. package/dist/esm/src/matrix/schema-mapper/message/message-parser.d.ts +13 -0
  245. package/dist/esm/src/matrix/schema-mapper/message/message-parser.d.ts.map +1 -0
  246. package/dist/esm/src/matrix/schema-mapper/message/message-parser.js +15 -0
  247. package/dist/esm/src/matrix/schema-mapper/message/mod.d.ts +3 -0
  248. package/dist/esm/src/matrix/schema-mapper/message/mod.d.ts.map +1 -0
  249. package/dist/esm/src/matrix/schema-mapper/message/mod.js +14 -0
  250. package/dist/esm/src/matrix/schema-mapper/message.d.ts +6 -0
  251. package/dist/esm/src/matrix/schema-mapper/message.d.ts.map +1 -0
  252. package/dist/esm/src/matrix/schema-mapper/message.js +21 -0
  253. package/dist/esm/src/matrix/schema-mapper/room.d.ts +6 -0
  254. package/dist/esm/src/matrix/schema-mapper/room.d.ts.map +1 -0
  255. package/dist/esm/src/matrix/schema-mapper/room.js +22 -0
  256. package/dist/esm/src/matrix/service/request.d.ts +290 -0
  257. package/dist/esm/src/matrix/service/request.d.ts.map +1 -0
  258. package/dist/esm/src/matrix/service/request.js +1286 -0
  259. package/dist/esm/src/matrix/types.d.ts +34 -0
  260. package/dist/esm/src/matrix/types.d.ts.map +1 -0
  261. package/dist/esm/src/matrix/types.js +27 -0
  262. package/dist/esm/src/matrix/utils/cached-promise.d.ts +5 -0
  263. package/dist/esm/src/matrix/utils/cached-promise.d.ts.map +1 -0
  264. package/dist/esm/src/matrix/utils/cached-promise.js +18 -0
  265. package/dist/esm/src/matrix/utils/image-decrypt.d.ts +7 -0
  266. package/dist/esm/src/matrix/utils/image-decrypt.d.ts.map +1 -0
  267. package/dist/esm/src/matrix/utils/image-decrypt.js +153 -0
  268. package/dist/esm/src/matrix/utils/index.d.ts +4 -0
  269. package/dist/esm/src/matrix/utils/index.d.ts.map +1 -0
  270. package/dist/esm/src/matrix/utils/index.js +24 -0
  271. package/dist/esm/src/matrix/utils/is-type.d.ts +9 -0
  272. package/dist/esm/src/matrix/utils/is-type.d.ts.map +1 -0
  273. package/dist/esm/src/matrix/utils/is-type.js +62 -0
  274. package/dist/esm/src/matrix/utils/regex.d.ts +3 -0
  275. package/dist/esm/src/matrix/utils/regex.d.ts.map +1 -0
  276. package/dist/esm/src/matrix/utils/regex.js +11 -0
  277. package/dist/esm/src/matrix/utils/runner.d.ts +3 -0
  278. package/dist/esm/src/matrix/utils/runner.d.ts.map +1 -0
  279. package/dist/esm/src/matrix/utils/runner.js +9 -0
  280. package/dist/esm/src/matrix/utils/string.d.ts +2 -0
  281. package/dist/esm/src/matrix/utils/string.d.ts.map +1 -0
  282. package/dist/esm/src/matrix/utils/string.js +3 -0
  283. package/dist/esm/src/matrix/utils/xml-to-json.d.ts +5 -0
  284. package/dist/esm/src/matrix/utils/xml-to-json.d.ts.map +1 -0
  285. package/dist/esm/src/matrix/utils/xml-to-json.js +45 -0
  286. package/dist/esm/src/mod.d.ts +5 -0
  287. package/dist/esm/src/mod.d.ts.map +1 -0
  288. package/dist/esm/src/mod.js +4 -0
  289. package/dist/esm/src/package-json.d.ts +3 -0
  290. package/dist/esm/src/package-json.d.ts.map +1 -0
  291. package/dist/esm/src/package-json.js +1 -0
  292. package/dist/esm/src/package-json.spec.d.ts +3 -0
  293. package/dist/esm/src/package-json.spec.d.ts.map +1 -0
  294. package/dist/esm/src/package-json.spec.js +7 -0
  295. package/dist/esm/src/puppet-matrix.d.ts +114 -0
  296. package/dist/esm/src/puppet-matrix.d.ts.map +1 -0
  297. package/dist/esm/src/puppet-matrix.js +1007 -0
  298. package/dist/esm/tests/integration.spec.d.ts +3 -0
  299. package/dist/esm/tests/integration.spec.d.ts.map +1 -0
  300. package/dist/esm/tests/integration.spec.js +5 -0
  301. package/dist/esm/tests/tap.spec.d.ts +3 -0
  302. package/dist/esm/tests/tap.spec.d.ts.map +1 -0
  303. package/dist/esm/tests/tap.spec.js +7 -0
  304. package/package.json +98 -0
  305. package/src/cleanup.ts +36 -0
  306. package/src/config.ts +15 -0
  307. package/src/engine-schema.ts +171 -0
  308. package/src/matrix/cache-manager.ts +359 -0
  309. package/src/matrix/events/event-friendship.ts +116 -0
  310. package/src/matrix/events/event-message.ts +7 -0
  311. package/src/matrix/events/event-room-invite.ts +64 -0
  312. package/src/matrix/events/event-room-join.ts +200 -0
  313. package/src/matrix/events/event-room-leave.ts +111 -0
  314. package/src/matrix/events/event-room-topic.ts +73 -0
  315. package/src/matrix/events/event.ts +60 -0
  316. package/src/matrix/events/mod.ts +16 -0
  317. package/src/matrix/messages/message-appmsg.ts +131 -0
  318. package/src/matrix/messages/message-audio.ts +48 -0
  319. package/src/matrix/messages/message-emotion.ts +68 -0
  320. package/src/matrix/messages/message-image.ts +46 -0
  321. package/src/matrix/messages/message-miniprogram.ts +45 -0
  322. package/src/matrix/messages/message-sysmsg.ts +106 -0
  323. package/src/matrix/messages/message-video.ts +62 -0
  324. package/src/matrix/messages/sysmsg/message-pat.ts +22 -0
  325. package/src/matrix/messages/sysmsg/message-revokemsg.ts +70 -0
  326. package/src/matrix/messages/sysmsg/message-sysmsgtemplate.ts +133 -0
  327. package/src/matrix/messages/sysmsg/message-todo.ts +45 -0
  328. package/src/matrix/schema-mapper/contact.ts +37 -0
  329. package/src/matrix/schema-mapper/message/message-parser-appmsg.ts +78 -0
  330. package/src/matrix/schema-mapper/message/message-parser-refermsg.ts +53 -0
  331. package/src/matrix/schema-mapper/message/message-parser-room.ts +62 -0
  332. package/src/matrix/schema-mapper/message/message-parser-single-chat.ts +12 -0
  333. package/src/matrix/schema-mapper/message/message-parser-sysmsg.ts +62 -0
  334. package/src/matrix/schema-mapper/message/message-parser-type.ts +48 -0
  335. package/src/matrix/schema-mapper/message/message-parser.ts +35 -0
  336. package/src/matrix/schema-mapper/message/mod.ts +17 -0
  337. package/src/matrix/schema-mapper/message.ts +30 -0
  338. package/src/matrix/schema-mapper/room.ts +28 -0
  339. package/src/matrix/service/request.ts +1944 -0
  340. package/src/matrix/types.ts +37 -0
  341. package/src/matrix/utils/cached-promise.ts +25 -0
  342. package/src/matrix/utils/image-decrypt.ts +198 -0
  343. package/src/matrix/utils/index.ts +34 -0
  344. package/src/matrix/utils/is-type.ts +72 -0
  345. package/src/matrix/utils/regex.ts +15 -0
  346. package/src/matrix/utils/runner.ts +12 -0
  347. package/src/matrix/utils/string.ts +3 -0
  348. package/src/matrix/utils/xml-to-json.ts +59 -0
  349. package/src/mod.ts +10 -0
  350. package/src/package-json.spec.ts +10 -0
  351. package/src/package-json.ts +11 -0
  352. package/src/puppet-matrix.ts +1402 -0
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ts-node
2
+ export {};
3
+ //# sourceMappingURL=integration.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.spec.d.ts","sourceRoot":"","sources":["../../../tests/integration.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ts-node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const tstest_1 = require("tstest");
5
+ (0, tstest_1.test)('integration testing', async (t) => {
6
+ void t.skip('tbw');
7
+ });
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env -S node -r ts-node/register
2
+ export {};
3
+ //# sourceMappingURL=tap.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tap.spec.d.ts","sourceRoot":"","sources":["../../../tests/tap.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env -S node -r ts-node/register
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ const tstest_1 = require("tstest");
28
+ const WECHATY = __importStar(require("@juzi/wechaty"));
29
+ (0, tstest_1.test)('smoke testing', async (t) => {
30
+ const bot = WECHATY.WechatyBuilder.build();
31
+ t.ok(bot, 'bot has created');
32
+ });
@@ -0,0 +1,4 @@
1
+ import type * as PUPPET from '@juzi/wechaty-puppet';
2
+ export declare function addRunningPuppet(puppet: PUPPET.Puppet): void;
3
+ export declare function removeRunningPuppet(puppet: PUPPET.Puppet): void;
4
+ //# sourceMappingURL=cleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../../src/cleanup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAyBnD,wBAAgB,gBAAgB,CAAE,MAAM,EAAE,MAAM,CAAC,MAAM,QAEtD;AAED,wBAAgB,mBAAmB,CAAE,MAAM,EAAE,MAAM,CAAC,MAAM,QAKzD"}
@@ -0,0 +1,24 @@
1
+ import nodeCleanup from 'node-cleanup';
2
+ const RunningPuppets = [];
3
+ nodeCleanup((exitCode, signal) => {
4
+ if (exitCode !== null) {
5
+ return true;
6
+ }
7
+ const puppets = RunningPuppets.slice();
8
+ Promise.all(puppets.map(async (puppet) => {
9
+ await puppet.stop();
10
+ })).finally(() => {
11
+ nodeCleanup.uninstall();
12
+ process.kill(process.pid, signal);
13
+ }).catch(console.error);
14
+ return false;
15
+ });
16
+ export function addRunningPuppet(puppet) {
17
+ RunningPuppets.push(puppet);
18
+ }
19
+ export function removeRunningPuppet(puppet) {
20
+ const puppetIndex = RunningPuppets.indexOf(puppet);
21
+ if (puppetIndex !== -1) {
22
+ delete RunningPuppets[puppetIndex];
23
+ }
24
+ }
@@ -0,0 +1,5 @@
1
+ import { log } from '@juzi/wechaty-puppet';
2
+ declare const VERSION: string;
3
+ declare const MEMORY_SLOT = "PUPPET_ENGINE";
4
+ export { VERSION, log, MEMORY_SLOT, };
5
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACJ,MAAuB,sBAAsB,CAAA;AAI9C,QAAA,MAAM,OAAO,QAAiC,CAAA;AAE9C,QAAA,MAAM,WAAW,kBAAkB,CAAA;AAEnC,OAAO,EACL,OAAO,EACP,GAAG,EACH,WAAW,GACZ,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { log, } from '@juzi/wechaty-puppet';
2
+ import { packageJson } from './package-json.js';
3
+ const VERSION = packageJson.version || '0.0.0';
4
+ const MEMORY_SLOT = 'PUPPET_ENGINE';
5
+ export { VERSION, log, MEMORY_SLOT, };
@@ -0,0 +1,76 @@
1
+ import type { WechatMessageType } from './matrix/types.js';
2
+ export interface MessagePayload {
3
+ id: string;
4
+ timeStamp: number;
5
+ talkerId: string;
6
+ text: string;
7
+ msgType?: WechatMessageType;
8
+ fromWxid?: string;
9
+ atWxidList?: string[];
10
+ msg: string;
11
+ listenerId: string;
12
+ }
13
+ export interface ChatRoomMember {
14
+ wxid: string;
15
+ groupNick: string;
16
+ avatar?: string;
17
+ inviterUserName?: string;
18
+ displayName?: string;
19
+ }
20
+ export declare enum SexType {
21
+ MEN = 2,
22
+ FEMALE = 2
23
+ }
24
+ declare enum ContactGender {
25
+ Unknown = 0,
26
+ Male = 1,
27
+ Female = 2
28
+ }
29
+ export interface ContactPayload {
30
+ avatar: string;
31
+ city: string;
32
+ country: string;
33
+ memberNum?: number;
34
+ momentsBackgroudImgUrl?: string;
35
+ name: string;
36
+ alias: string;
37
+ province: string;
38
+ remark?: string;
39
+ sex: ContactGender;
40
+ sign?: string;
41
+ ticket?: string;
42
+ wxid: string;
43
+ wxNum: string;
44
+ chatroommemberList?: string[];
45
+ ownerId?: string;
46
+ adminIdList?: string[];
47
+ isFriend?: number;
48
+ scene?: string;
49
+ device?: string;
50
+ qq?: string;
51
+ phone?: string;
52
+ email?: string;
53
+ description?: string;
54
+ labelIdlist?: string;
55
+ snsBgImg?: string;
56
+ contactType?: number;
57
+ announcement?: string;
58
+ }
59
+ export interface MessageRevokeInfo {
60
+ fromWxid: string;
61
+ msg: string;
62
+ }
63
+ export interface Label {
64
+ name: string;
65
+ id: string | number;
66
+ }
67
+ export interface MusicPayLoad {
68
+ name: string;
69
+ author: string;
70
+ app: string;
71
+ jumpUrl: string;
72
+ musicUrl: string;
73
+ imageUrl: string;
74
+ }
75
+ export {};
76
+ //# sourceMappingURL=engine-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-schema.d.ts","sourceRoot":"","sources":["../../../src/engine-schema.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAGD,oBAAY,OAAO;IACjB,GAAG,IAAI;IACP,MAAM,IAAI;CACX;AAKD,aAAK,aAAa;IAChB,OAAO,IAAI;IACX,IAAI,IAAI;IACR,MAAM,IAAI;CACX;AAED,MAAM,WAAW,cAAc;IAI7B,MAAM,EAAE,MAAM,CAAC;IAIf,IAAI,EAAE,MAAM,CAAC;IAIb,OAAO,EAAE,MAAM,CAAC;IAIhB,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAIhC,IAAI,EAAE,MAAM,CAAC;IAIb,KAAK,EAAE,MAAM,CAAC;IAId,QAAQ,EAAE,MAAM,CAAC;IAIjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB,GAAG,EAAE,aAAa,CAAC;IAInB,IAAI,CAAC,EAAE,MAAM,CAAC;IAKd,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB,IAAI,EAAE,MAAM,CAAC;IAIb,KAAK,EAAE,MAAM,CAAC;IAId,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAI9B,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IAItB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAIjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAC,MAAM,CAAC;IACX,OAAO,EAAC,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB"}
@@ -0,0 +1,11 @@
1
+ export var SexType;
2
+ (function (SexType) {
3
+ SexType[SexType["MEN"] = 2] = "MEN";
4
+ SexType[SexType["FEMALE"] = 2] = "FEMALE";
5
+ })(SexType || (SexType = {}));
6
+ var ContactGender;
7
+ (function (ContactGender) {
8
+ ContactGender[ContactGender["Unknown"] = 0] = "Unknown";
9
+ ContactGender[ContactGender["Male"] = 1] = "Male";
10
+ ContactGender[ContactGender["Female"] = 2] = "Female";
11
+ })(ContactGender || (ContactGender = {}));
@@ -0,0 +1,58 @@
1
+ import type * as PUPPET from '@juzi/wechaty-puppet';
2
+ import type { MessagePayload, ContactPayload, MessageRevokeInfo, Label } from '../engine-schema.js';
3
+ export type RoomMemberMap = {
4
+ [contactId: string]: ContactPayload;
5
+ };
6
+ export declare class CacheManager {
7
+ private readonly _userName;
8
+ private _messageCache?;
9
+ private _messageRevokeCache?;
10
+ private _contactCache?;
11
+ private _contactSearchCache?;
12
+ private _contactStrangerAliasCache?;
13
+ private _roomCache?;
14
+ private _roomMemberCache?;
15
+ private _roomInvitationCache?;
16
+ private _friendshipCache?;
17
+ private _labelList?;
18
+ constructor(userName: string);
19
+ init(): Promise<void>;
20
+ close(): Promise<void>;
21
+ getMessage(messageId: string): Promise<MessagePayload | undefined>;
22
+ setMessage(messageId: string, payload: MessagePayload): Promise<void>;
23
+ hasMessage(messageId: string): Promise<boolean>;
24
+ getMessageRevokeInfo(messageId: string): Promise<MessageRevokeInfo | undefined>;
25
+ setMessageRevokeInfo(messageId: string, messageSendResult: MessageRevokeInfo): Promise<void>;
26
+ getContact(contactId: string): Promise<ContactPayload | undefined>;
27
+ setContact(contactId: string, payload: ContactPayload): Promise<void>;
28
+ deleteContact(contactId: string): Promise<void>;
29
+ getContactIds(): Promise<string[]>;
30
+ getAllContacts(): Promise<ContactPayload[]>;
31
+ hasContact(contactId: string): Promise<boolean>;
32
+ getContactCount(): Promise<number>;
33
+ getContactSearch(id: string): Promise<ContactPayload | undefined>;
34
+ setContactSearch(id: string, payload: ContactPayload): Promise<void>;
35
+ hasContactSearch(id: string): Promise<boolean>;
36
+ getContactStrangerAlias(encryptedUserName: string): Promise<string | undefined>;
37
+ setContactStrangerAlias(encryptedUserName: string, alias: string): Promise<void>;
38
+ deleteContactStrangerAlias(encryptedUserName: string): Promise<void>;
39
+ getRoom(roomId: string): Promise<ContactPayload | undefined>;
40
+ setRoom(roomId: string, payload: ContactPayload): Promise<void>;
41
+ deleteRoom(roomId: string): Promise<void>;
42
+ getRoomIds(): Promise<string[]>;
43
+ getRoomCount(): Promise<number>;
44
+ hasRoom(roomId: string): Promise<boolean>;
45
+ getRoomMember(roomId: string): Promise<RoomMemberMap | undefined>;
46
+ setRoomMember(roomId: string, payload: RoomMemberMap): Promise<void>;
47
+ deleteRoomMember(roomId: string): Promise<void>;
48
+ updateSingleRoomMember(roomId: string, payload: ContactPayload): Promise<void>;
49
+ deleteSingleRoomMember(roomId: string, contactId: string): Promise<void>;
50
+ getRoomInvitation(messageId: string): Promise<PUPPET.payloads.RoomInvitation | undefined>;
51
+ setRoomInvitation(messageId: string, payload: PUPPET.payloads.RoomInvitation): Promise<void>;
52
+ deleteRoomInvitation(messageId: string): Promise<void>;
53
+ getFriendshipRawPayload(id: string): Promise<PUPPET.payloads.FriendshipReceive | PUPPET.payloads.FriendshipConfirm | undefined>;
54
+ setFriendshipRawPayload(id: string, payload: PUPPET.payloads.FriendshipReceive | PUPPET.payloads.FriendshipConfirm): Promise<void>;
55
+ getLabelList(): Label[] | undefined;
56
+ setLabelList(labelList: Label[]): void;
57
+ }
58
+ //# sourceMappingURL=cache-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-manager.d.ts","sourceRoot":"","sources":["../../../../src/matrix/cache-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,279 @@
1
+ import fs from 'fs-extra';
2
+ import os from 'os';
3
+ import path from 'path';
4
+ import LRU from 'lru-cache';
5
+ import { log } from '@juzi/wechaty-puppet';
6
+ import { FlashStore } from 'flash-store';
7
+ const PRE = '[CacheManager]';
8
+ export class CacheManager {
9
+ _userName;
10
+ _messageCache;
11
+ _messageRevokeCache;
12
+ _contactCache;
13
+ _contactSearchCache;
14
+ _contactStrangerAliasCache;
15
+ _roomCache;
16
+ _roomMemberCache;
17
+ _roomInvitationCache;
18
+ _friendshipCache;
19
+ _labelList;
20
+ constructor(userName) {
21
+ this._userName = userName;
22
+ }
23
+ async init() {
24
+ if (this._messageCache) {
25
+ throw new Error('already initialized');
26
+ }
27
+ const baseDir = path.join(os.homedir(), path.sep, '.wechaty', 'puppet-engine-cache', path.sep, this._userName, path.sep);
28
+ const baseDirExist = await fs.pathExists(baseDir);
29
+ if (!baseDirExist) {
30
+ await fs.mkdirp(baseDir);
31
+ }
32
+ this._messageCache = new LRU({
33
+ dispose(key, val) {
34
+ log.silly(PRE, 'constructor() lruOptions.dispose(%s, %s)', key, JSON.stringify(val));
35
+ },
36
+ max: 1000,
37
+ maxAge: 1000 * 60 * 60,
38
+ });
39
+ this._messageRevokeCache = new LRU({
40
+ dispose(key, val) {
41
+ log.silly(PRE, 'constructor() lruOptions.dispose(%s, %s)', key, JSON.stringify(val));
42
+ },
43
+ max: 1000,
44
+ maxAge: 1000 * 60 * 60,
45
+ });
46
+ this._contactCache = new FlashStore(path.join(baseDir, 'contact-raw-payload'));
47
+ this._contactSearchCache = new LRU({
48
+ dispose(key, val) {
49
+ log.silly(PRE, 'constructor() lruOptions.dispose(%s, %s)', key, JSON.stringify(val));
50
+ },
51
+ max: 1000,
52
+ maxAge: 1000 * 60 * 60,
53
+ });
54
+ this._contactStrangerAliasCache = new FlashStore(path.join(baseDir, 'contact-stranger-alias'));
55
+ this._roomCache = new FlashStore(path.join(baseDir, 'room-raw-payload'));
56
+ this._roomMemberCache = new FlashStore(path.join(baseDir, 'room-member-raw-payload'));
57
+ this._roomInvitationCache = new FlashStore(path.join(baseDir, 'room-invitation-raw-payload'));
58
+ this._friendshipCache = new FlashStore(path.join(baseDir, 'friendship-raw-payload'));
59
+ const contactTotal = await this._contactCache.size;
60
+ log.silly(PRE, `initCache() inited ${contactTotal} Contacts, cachedir="${baseDir}"`);
61
+ }
62
+ async close() {
63
+ log.silly(PRE, 'close()');
64
+ if (this._contactCache
65
+ && this._contactStrangerAliasCache
66
+ && this._roomMemberCache
67
+ && this._roomCache
68
+ && this._friendshipCache
69
+ && this._roomInvitationCache
70
+ && this._messageCache) {
71
+ log.silly(PRE, 'close() closing caches ...');
72
+ await Promise.all([
73
+ this._contactCache.close(),
74
+ this._contactStrangerAliasCache.close(),
75
+ this._roomMemberCache.close(),
76
+ this._roomCache.close(),
77
+ this._friendshipCache.close(),
78
+ this._roomInvitationCache.close(),
79
+ ]);
80
+ this._contactCache = undefined;
81
+ this._contactStrangerAliasCache = undefined;
82
+ this._roomMemberCache = undefined;
83
+ this._roomCache = undefined;
84
+ this._friendshipCache = undefined;
85
+ this._roomInvitationCache = undefined;
86
+ this._messageCache = undefined;
87
+ log.silly(PRE, 'close() cache closed.');
88
+ }
89
+ else {
90
+ log.silly(PRE, 'close() cache not exist.');
91
+ }
92
+ }
93
+ async getMessage(messageId) {
94
+ if (!messageId)
95
+ return;
96
+ return this._messageCache.get(messageId);
97
+ }
98
+ async setMessage(messageId, payload) {
99
+ if (!messageId)
100
+ return;
101
+ await this._messageCache.set(messageId, payload);
102
+ }
103
+ async hasMessage(messageId) {
104
+ if (!messageId)
105
+ return false;
106
+ return this._messageCache.has(messageId);
107
+ }
108
+ async getMessageRevokeInfo(messageId) {
109
+ if (!messageId)
110
+ return;
111
+ return this._messageRevokeCache.get(messageId);
112
+ }
113
+ async setMessageRevokeInfo(messageId, messageSendResult) {
114
+ await this._messageRevokeCache.set(messageId, messageSendResult);
115
+ }
116
+ async getContact(contactId) {
117
+ if (!contactId)
118
+ return;
119
+ return this._contactCache.get(contactId);
120
+ }
121
+ async setContact(contactId, payload) {
122
+ if (!contactId)
123
+ return;
124
+ await this._contactCache.set(contactId, payload);
125
+ }
126
+ async deleteContact(contactId) {
127
+ if (!contactId)
128
+ return;
129
+ await this._contactCache.delete(contactId);
130
+ }
131
+ async getContactIds() {
132
+ const result = [];
133
+ for await (const key of this._contactCache.keys()) {
134
+ result.push(key);
135
+ }
136
+ return result;
137
+ }
138
+ async getAllContacts() {
139
+ const result = [];
140
+ for await (const value of this._contactCache.values()) {
141
+ result.push(value);
142
+ }
143
+ return result;
144
+ }
145
+ async hasContact(contactId) {
146
+ if (!contactId)
147
+ return false;
148
+ return this._contactCache.has(contactId);
149
+ }
150
+ async getContactCount() {
151
+ return this._contactCache.size;
152
+ }
153
+ async getContactSearch(id) {
154
+ if (!id)
155
+ return;
156
+ return this._contactSearchCache.get(id);
157
+ }
158
+ async setContactSearch(id, payload) {
159
+ if (!id)
160
+ return;
161
+ this._contactSearchCache.set(id, payload);
162
+ }
163
+ async hasContactSearch(id) {
164
+ if (!id)
165
+ return false;
166
+ return this._contactSearchCache.has(id);
167
+ }
168
+ async getContactStrangerAlias(encryptedUserName) {
169
+ return this._contactStrangerAliasCache.get(encryptedUserName);
170
+ }
171
+ async setContactStrangerAlias(encryptedUserName, alias) {
172
+ await this._contactStrangerAliasCache.set(encryptedUserName, alias);
173
+ }
174
+ async deleteContactStrangerAlias(encryptedUserName) {
175
+ await this._contactStrangerAliasCache.delete(encryptedUserName);
176
+ }
177
+ async getRoom(roomId) {
178
+ if (!roomId)
179
+ return;
180
+ return this._roomCache.get(roomId);
181
+ }
182
+ async setRoom(roomId, payload) {
183
+ if (!roomId)
184
+ return;
185
+ await this._roomCache.set(roomId, payload);
186
+ }
187
+ async deleteRoom(roomId) {
188
+ if (!roomId)
189
+ return;
190
+ await this._roomCache.delete(roomId);
191
+ }
192
+ async getRoomIds() {
193
+ const result = [];
194
+ for await (const key of this._roomCache.keys()) {
195
+ result.push(key);
196
+ }
197
+ return result;
198
+ }
199
+ async getRoomCount() {
200
+ return this._roomCache.size;
201
+ }
202
+ async hasRoom(roomId) {
203
+ if (!roomId)
204
+ return false;
205
+ return this._roomCache.has(roomId);
206
+ }
207
+ async getRoomMember(roomId) {
208
+ if (!roomId)
209
+ return;
210
+ return this._roomMemberCache.get(roomId);
211
+ }
212
+ async setRoomMember(roomId, payload) {
213
+ if (!roomId)
214
+ return;
215
+ await this._roomMemberCache.set(roomId, payload);
216
+ const roomInfo = await this.getRoom(roomId);
217
+ if (roomInfo && roomInfo.chatroommemberList) {
218
+ roomInfo.chatroommemberList = Object.keys(payload);
219
+ await this.setRoom(roomId, roomInfo);
220
+ }
221
+ }
222
+ async deleteRoomMember(roomId) {
223
+ if (!roomId)
224
+ return;
225
+ await this._roomMemberCache.delete(roomId);
226
+ }
227
+ async updateSingleRoomMember(roomId, payload) {
228
+ if (!roomId)
229
+ return;
230
+ const roomMemberMap = await this.getRoomMember(roomId);
231
+ if (roomMemberMap) {
232
+ roomMemberMap[payload.wxid] = payload;
233
+ await this.setRoomMember(roomId, roomMemberMap);
234
+ }
235
+ else {
236
+ await this.setRoomMember(roomId, { [payload.wxid]: payload });
237
+ }
238
+ }
239
+ async deleteSingleRoomMember(roomId, contactId) {
240
+ if (!roomId || !contactId)
241
+ return;
242
+ const roomMemberMap = await this.getRoomMember(roomId);
243
+ if (roomMemberMap) {
244
+ delete roomMemberMap[contactId];
245
+ await this.setRoomMember(roomId, roomMemberMap);
246
+ }
247
+ }
248
+ async getRoomInvitation(messageId) {
249
+ if (!messageId)
250
+ return;
251
+ return this._roomInvitationCache.get(messageId);
252
+ }
253
+ async setRoomInvitation(messageId, payload) {
254
+ if (!messageId)
255
+ return;
256
+ await this._roomInvitationCache.set(messageId, payload);
257
+ }
258
+ async deleteRoomInvitation(messageId) {
259
+ if (!messageId)
260
+ return;
261
+ await this._roomInvitationCache.delete(messageId);
262
+ }
263
+ async getFriendshipRawPayload(id) {
264
+ if (!id)
265
+ return;
266
+ return this._friendshipCache.get(id);
267
+ }
268
+ async setFriendshipRawPayload(id, payload) {
269
+ if (!id)
270
+ return;
271
+ await this._friendshipCache.set(id, payload);
272
+ }
273
+ getLabelList() {
274
+ return this._labelList;
275
+ }
276
+ setLabelList(labelList) {
277
+ this._labelList = labelList;
278
+ }
279
+ }
@@ -0,0 +1,6 @@
1
+ import type { MessagePayload } from '../../engine-schema.js';
2
+ import * as PUPPET from '@juzi/wechaty-puppet';
3
+ import type { EventPayload } from './event.js';
4
+ declare const _default: (_puppet: PUPPET.Puppet, message: MessagePayload) => Promise<EventPayload>;
5
+ export default _default;
6
+ //# sourceMappingURL=event-friendship.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-friendship.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/events/event-friendship.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;kCAyEf,MAAM,CAAC,MAAM,WAAW,cAAc,KAAG,OAAO,CAAC,YAAY,CAAC;AAA7F,wBAwCC"}
@@ -0,0 +1,84 @@
1
+ import * as PUPPET from '@juzi/wechaty-puppet';
2
+ import { WechatMessageType } from '../types.js';
3
+ import { xmlToJson } from '../utils/xml-to-json.js';
4
+ import { isContactId, isIMContactId } from '../utils/is-type.js';
5
+ const FRIENDSHIP_CONFIRM_REGEX_LIST = [
6
+ /^You have added (.+) as your WeChat contact. Start chatting!$/,
7
+ /^你已添加了(.+),现在可以开始聊天了。$/,
8
+ /I've accepted your friend request. Now let's chat!$/,
9
+ /^(.+) just added you to his\/her contacts list. Send a message to him\/her now!$/,
10
+ /^(.+)刚刚把你添加到通讯录,现在可以开始聊天了。$/,
11
+ /^我通过了你的朋友验证请求,现在我们可以开始聊天了$/,
12
+ ];
13
+ const FRIENDSHIP_VERIFY_REGEX_LIST = [
14
+ /^(.+) has enabled Friend Confirmation/,
15
+ /^(.+)开启了朋友验证,你还不是他(她)朋友。请先发送朋友验证请求,对方验证通过后,才能聊天。/,
16
+ ];
17
+ const isConfirm = (message) => {
18
+ return FRIENDSHIP_CONFIRM_REGEX_LIST.some((regexp) => {
19
+ return !!message.text.match(regexp);
20
+ });
21
+ };
22
+ const isNeedVerify = (message) => {
23
+ return FRIENDSHIP_VERIFY_REGEX_LIST.some((regexp) => {
24
+ return !!message.text.match(regexp);
25
+ });
26
+ };
27
+ const isReceive = async (message) => {
28
+ if (message.msgType !== WechatMessageType.VerifyMsg
29
+ && message.msgType !== WechatMessageType.VerifyMsgEnterprise) {
30
+ return null;
31
+ }
32
+ try {
33
+ const verifyXml = await xmlToJson(message.text);
34
+ const contactId = verifyXml.msg.$.fromusername;
35
+ if (isContactId(contactId) && verifyXml.msg.$.encryptusername) {
36
+ return verifyXml;
37
+ }
38
+ else if (isIMContactId(contactId)) {
39
+ return verifyXml;
40
+ }
41
+ }
42
+ catch (e) {
43
+ }
44
+ return null;
45
+ };
46
+ export default async (_puppet, message) => {
47
+ if (isConfirm(message)) {
48
+ return {
49
+ contactId: message.talkerId,
50
+ id: message.id,
51
+ timestamp: message.timeStamp,
52
+ type: PUPPET.types.Friendship.Confirm,
53
+ };
54
+ }
55
+ else if (isNeedVerify(message)) {
56
+ return {
57
+ contactId: message.talkerId,
58
+ id: message.id,
59
+ timestamp: message.timeStamp,
60
+ type: PUPPET.types.Friendship.Verify,
61
+ };
62
+ }
63
+ else {
64
+ const verifyXml = await isReceive(message);
65
+ if (verifyXml) {
66
+ const payload = verifyXml.msg.$;
67
+ return {
68
+ contactId: payload.fromusername,
69
+ hello: payload.content,
70
+ id: message.id,
71
+ scene: parseInt(payload.scene, 10),
72
+ stranger: payload.encryptusername,
73
+ ticket: payload.ticket,
74
+ timestamp: message.timeStamp,
75
+ type: PUPPET.types.Friendship.Receive,
76
+ sourceNickName: payload.sourcenickname,
77
+ sourceContactId: payload.sourceusername,
78
+ shareCardNickName: payload.sharecardnickname,
79
+ shareCardContactId: payload.sharecardusername,
80
+ };
81
+ }
82
+ return null;
83
+ }
84
+ };
@@ -0,0 +1,6 @@
1
+ import type * as PUPPET from '@juzi/wechaty-puppet';
2
+ import type { MessagePayload } from '../../engine-schema.js';
3
+ import type { EventPayload } from './event.js';
4
+ declare const _default: (_puppet: PUPPET.Puppet, message: MessagePayload) => Promise<EventPayload>;
5
+ export default _default;
6
+ //# sourceMappingURL=event-message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-message.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/events/event-message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;kCAEf,MAAM,CAAC,MAAM,WAAW,cAAc,KAAG,OAAO,CAAC,YAAY,CAAC;AAA7F,wBAEC"}
@@ -0,0 +1,3 @@
1
+ export default async (_puppet, message) => {
2
+ return message;
3
+ };
@@ -0,0 +1,6 @@
1
+ import type * as PUPPET from '@juzi/wechaty-puppet';
2
+ import type { MessagePayload } from '../../engine-schema.js';
3
+ import type { EventPayload } from './event.js';
4
+ declare const _default: (_puppet: PUPPET.Puppet, message: MessagePayload) => Promise<EventPayload>;
5
+ export default _default;
6
+ //# sourceMappingURL=event-room-invite.d.ts.map