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,78 @@
1
+ import * as PUPPET from '@juzi/wechaty-puppet'
2
+ import type { MessagePayload } from '../../../engine-schema.js'
3
+
4
+ import { log } from '@juzi/wechaty-puppet'
5
+ import { LOGPRE, MessageParser, MessageParserContext } from './message-parser.js'
6
+ import { AppMessageType, parseAppmsgMessagePayload } from '../../messages/message-appmsg.js'
7
+ import { getFileName } from '../../utils/index.js'
8
+
9
+ export const appMsgParser: MessageParser = async (engineMessage: MessagePayload, ret: PUPPET.payloads.Message, context: MessageParserContext) => {
10
+ if (ret.type !== PUPPET.types.Message.Attachment) {
11
+ return ret
12
+ }
13
+
14
+ try {
15
+ if (engineMessage.msg.includes('[file=')) {
16
+ const reg = /\[file=(.+)]/
17
+ const res = engineMessage.msg && reg.exec(engineMessage.msg)
18
+ const path = res?.[1]
19
+ if (path) {
20
+ ret.type = PUPPET.types.Message.Attachment
21
+ ret.filename = getFileName(path)
22
+ return ret
23
+ }
24
+ ret.type = PUPPET.types.Message.Attachment
25
+ ret.filename = ''
26
+ return ret
27
+ }
28
+ const appPayload = await parseAppmsgMessagePayload(engineMessage.msg)
29
+ context.appMessagePayload = appPayload
30
+
31
+ switch (appPayload.type) {
32
+ case AppMessageType.Text:
33
+ ret.type = PUPPET.types.Message.Text
34
+ ret.text = appPayload.title
35
+ break
36
+ case AppMessageType.Audio:
37
+ ret.type = PUPPET.types.Message.Url
38
+ break
39
+ case AppMessageType.Video:
40
+ ret.type = PUPPET.types.Message.Url
41
+ break
42
+ case AppMessageType.Url:
43
+ ret.type = PUPPET.types.Message.Url
44
+ break
45
+ case AppMessageType.Attach:
46
+ ret.type = PUPPET.types.Message.Attachment
47
+ ret.filename = appPayload.title
48
+ break
49
+ case AppMessageType.ChatHistory:
50
+ ret.type = PUPPET.types.Message.ChatHistory
51
+ break
52
+ case AppMessageType.MiniProgram:
53
+ case AppMessageType.MiniProgramApp:
54
+ ret.type = PUPPET.types.Message.MiniProgram
55
+ break
56
+ case AppMessageType.RedEnvelopes:
57
+ ret.type = PUPPET.types.Message.RedEnvelope
58
+ break
59
+ case AppMessageType.Transfers:
60
+ ret.type = PUPPET.types.Message.Transfer
61
+ break
62
+ case AppMessageType.RealtimeShareLocation:
63
+ ret.type = PUPPET.types.Message.Location
64
+ break
65
+ case AppMessageType.GroupNote:
66
+ ret.type = PUPPET.types.Message.GroupNote
67
+ ret.text = appPayload.title
68
+ break
69
+ default:
70
+ ret.type = PUPPET.types.Message.Unknown
71
+ break
72
+ }
73
+ } catch (e) {
74
+ log.warn(LOGPRE, `Error occurred while parse message attachment: ${JSON.stringify(engineMessage)} , ${(e as Error).stack}`)
75
+ }
76
+
77
+ return ret
78
+ }
@@ -0,0 +1,53 @@
1
+ import * as PUPPET from '@juzi/wechaty-puppet'
2
+ import type { MessagePayload } from '../../../engine-schema.js'
3
+ import { AppMessageType, parseAppmsgMessagePayload, ReferMsgPayload } from '../../messages/message-appmsg.js'
4
+ import { WechatMessageType } from '../../types.js'
5
+ import type { MessageParser, MessageParserContext } from './message-parser.js'
6
+
7
+ export const referMsgParser: MessageParser = async (_padLocalMessage: MessagePayload, ret: PUPPET.payloads.Message, context: MessageParserContext) => {
8
+ if (!context.appMessagePayload || context.appMessagePayload.type !== AppMessageType.ReferMsg) {
9
+ return ret
10
+ }
11
+
12
+ const appPayload = context.appMessagePayload
13
+
14
+ let referMessageContent: string
15
+
16
+ const referMessagePayload: ReferMsgPayload = appPayload.refermsg!
17
+ const referMessageType = parseInt(referMessagePayload.type) as WechatMessageType
18
+ switch (referMessageType) {
19
+ case WechatMessageType.Text:
20
+ referMessageContent = referMessagePayload.content
21
+ break
22
+ case WechatMessageType.Image:
23
+ referMessageContent = '图片'
24
+ break
25
+
26
+ case WechatMessageType.Video:
27
+ referMessageContent = '视频'
28
+ break
29
+
30
+ case WechatMessageType.Emoticon:
31
+ referMessageContent = '动画表情'
32
+ break
33
+
34
+ case WechatMessageType.Location:
35
+ referMessageContent = '位置'
36
+ break
37
+
38
+ case WechatMessageType.App: {
39
+ const referMessageAppPayload = await parseAppmsgMessagePayload(referMessagePayload.content)
40
+ referMessageContent = referMessageAppPayload.title
41
+ break
42
+ }
43
+
44
+ default:
45
+ referMessageContent = '未知消息'
46
+ break
47
+ }
48
+
49
+ ret.type = PUPPET.types.Message.Text
50
+ ret.text = `「${referMessagePayload.displayname}:${referMessageContent}」\n- - - - - - - - - - - - - - -\n${appPayload.title}`
51
+
52
+ return ret
53
+ }
@@ -0,0 +1,62 @@
1
+ import type * as PUPPET from '@juzi/wechaty-puppet'
2
+ import type { MessagePayload } from '../../../engine-schema.js'
3
+ import { isIMRoomId, isRoomId } from '../../utils/is-type.js'
4
+ import type { MessageParser, MessageParserContext } from './message-parser.js'
5
+
6
+ async function roomMessageSentByOthers (engineMessage: MessagePayload, ret: PUPPET.payloads.Message) {
7
+ if (isRoomId(engineMessage.talkerId) || isIMRoomId(engineMessage.talkerId)) {
8
+ ret.roomId = engineMessage.talkerId
9
+ ret.talkerId = engineMessage.talkerId
10
+ ret.text = engineMessage.msg
11
+ /**
12
+ * separator of talkerId and content:
13
+ *
14
+ * text: "wxid_xxxx:\nnihao"
15
+ * appmsg: "wxid_xxxx:\n<?xml version="1.0"?><msg><appmsg appid="" sdkver="0">..."
16
+ * pat: "19850419xxx@chatroom:\n<sysmsg type="pat"><pat><fromusername>xxx</fromusername><chatusername>19850419xxx@chatroom</chatusername><pattedusername>wxid_xxx</pattedusername>...<template><![CDATA["${vagase}" 拍了拍我]]></template></pat></sysmsg>"
17
+ */
18
+ }
19
+ }
20
+
21
+ async function roomMessageSentBySelf (engineMessage: MessagePayload, ret: PUPPET.payloads.Message) {
22
+ if (isRoomId(engineMessage.fromWxid) || isIMRoomId(engineMessage.fromWxid)) {
23
+ // room message sent by self
24
+ ret.roomId = engineMessage.fromWxid
25
+ ret.talkerId = engineMessage.talkerId
26
+ ret.text = engineMessage.msg
27
+ }
28
+ }
29
+
30
+ /**
31
+ * try to parse talkerId and content for generic room messages
32
+ * @param engineMessage
33
+ * @param ret
34
+ * @param context
35
+ */
36
+ export const roomParser: MessageParser = async (engineMessage: MessagePayload, ret: PUPPET.payloads.Message, context: MessageParserContext) => {
37
+ await roomMessageSentByOthers(engineMessage, ret)
38
+ await roomMessageSentBySelf(engineMessage, ret)
39
+
40
+ if (ret.roomId) {
41
+ context.isRoomMessage = true
42
+
43
+ let mentionIdList: string[]
44
+ /**
45
+ *
46
+ */
47
+ if (!Array.isArray(engineMessage.atWxidList)) {
48
+ engineMessage.atWxidList = []
49
+ }
50
+ if ((engineMessage.atWxidList.length === 1 && engineMessage.atWxidList[0] === 'announcement@all') || engineMessage.msg.includes('@所有人 ')) {
51
+ const roomPayload = await context.puppet.roomPayload(ret.roomId)
52
+ mentionIdList = roomPayload.memberIdList
53
+ } else {
54
+ mentionIdList = engineMessage.atWxidList
55
+ }
56
+
57
+ const room = ret as PUPPET.payloads.MessageRoom
58
+ room.mentionIdList = mentionIdList
59
+ }
60
+
61
+ return ret
62
+ }
@@ -0,0 +1,12 @@
1
+ import type * as PUPPET from '@juzi/wechaty-puppet'
2
+ import type { MessagePayload } from '../../../engine-schema.js'
3
+ import type { MessageParser, MessageParserContext } from './message-parser.js'
4
+
5
+ export const singleChatParser: MessageParser = async (engineMessage: MessagePayload, ret: PUPPET.payloads.Message, context: MessageParserContext) => {
6
+ if (!context.isRoomMessage) {
7
+ ret.talkerId = engineMessage.talkerId
8
+ ret.listenerId = engineMessage.listenerId
9
+ }
10
+
11
+ return ret
12
+ }
@@ -0,0 +1,62 @@
1
+ import type { MessageParser, MessageParserContext } from './message-parser.js'
2
+ import type { MessagePayload } from '../../../engine-schema.js'
3
+ import type * as PUPPET from '@juzi/wechaty-puppet'
4
+ import { parseSysmsgMessagePayload } from '../../messages/message-sysmsg.js'
5
+ import type { PatMessagePayload } from '../../messages/sysmsg/message-pat.js'
6
+ import type { TodoMessagePayload } from '../../messages/sysmsg/message-todo.js'
7
+ import type { RevokeMsgMessagePayload } from '../../messages/sysmsg/message-revokemsg.js'
8
+
9
+ /**
10
+ * try to parse talker and listenerId from sysmsg for room messages
11
+ * @param engineMessage
12
+ * @param ret
13
+ * @param context
14
+ */
15
+ export const sysmsgParser: MessageParser = async (engineMessage: MessagePayload, ret: PUPPET.payloads.Message, context: MessageParserContext) => {
16
+ const sysmsgPayload = await parseSysmsgMessagePayload(engineMessage)
17
+ if (!sysmsgPayload) {
18
+ return ret
19
+ }
20
+
21
+ switch (sysmsgPayload.type) {
22
+ case 'pat': {
23
+ const patMessagePayload: PatMessagePayload = sysmsgPayload.payload as PatMessagePayload
24
+
25
+ if (context.isRoomMessage) {
26
+ ret.talkerId = patMessagePayload.pattedUserName
27
+ ret.listenerId = patMessagePayload.fromUserName
28
+ }
29
+
30
+ break
31
+ }
32
+
33
+ case 'roomtoolstips': {
34
+ const todoMessagePayload: TodoMessagePayload = sysmsgPayload.payload as TodoMessagePayload
35
+
36
+ if (context.isRoomMessage) {
37
+ ret.talkerId = todoMessagePayload.operatorUserName
38
+ }
39
+
40
+ break
41
+ }
42
+
43
+ case 'revokemsg': {
44
+ const revokeMsgPayload: RevokeMsgMessagePayload = sysmsgPayload.payload as RevokeMsgMessagePayload
45
+
46
+ if (context.isRoomMessage) {
47
+ // Generic room message logic can get the right talkerId for revoke message
48
+ } else {
49
+ // Fix talkerId for single chat revoke message that sent by you
50
+ // talkerId and listenerId for revoke message sent by others is right already
51
+ if (revokeMsgPayload.type === 'You') {
52
+ ret.listenerId = ret.talkerId
53
+ ret.talkerId = context.puppet.currentUserId
54
+ }
55
+ }
56
+
57
+ break
58
+ }
59
+ }
60
+
61
+ return ret
62
+ }
@@ -0,0 +1,48 @@
1
+ import * as PUPPET from '@juzi/wechaty-puppet'
2
+ import type { MessagePayload } from '../../../engine-schema.js'
3
+ import { WechatMessageType } from '../../types.js'
4
+ import { log } from '@juzi/wechaty-puppet'
5
+ import type { MessageParser, MessageParserContext } from './message-parser.js'
6
+ import { LOGPRE } from './message-parser.js'
7
+
8
+ const TypeMappings: { [key: number]: PUPPET.types.Message; } = {
9
+ [WechatMessageType.Text]: PUPPET.types.Message.Text,
10
+ [WechatMessageType.Image]: PUPPET.types.Message.Image,
11
+ [WechatMessageType.Voice]: PUPPET.types.Message.Audio,
12
+ [WechatMessageType.Emoticon]: PUPPET.types.Message.Emoticon,
13
+ [WechatMessageType.App]: PUPPET.types.Message.Attachment,
14
+ [WechatMessageType.File]: PUPPET.types.Message.Attachment,
15
+ [WechatMessageType.Location]: PUPPET.types.Message.Location,
16
+ [WechatMessageType.Video]: PUPPET.types.Message.Video,
17
+ [WechatMessageType.Sys]: PUPPET.types.Message.Unknown,
18
+ [WechatMessageType.ShareCard]: PUPPET.types.Message.Contact,
19
+ [WechatMessageType.VoipMsg]: PUPPET.types.Message.Recalled,
20
+ [WechatMessageType.SysTemplate]: PUPPET.types.Message.Recalled,
21
+ [WechatMessageType.StatusNotify]: PUPPET.types.Message.Unknown,
22
+ [WechatMessageType.SysNotice]: PUPPET.types.Message.Unknown,
23
+ [WechatMessageType.RedEnvelope]: PUPPET.types.Message.RedEnvelope,
24
+ [WechatMessageType.Transfer]: PUPPET.types.Message.Transfer,
25
+ }
26
+
27
+ export const typeParser: MessageParser = async (engineMessage: MessagePayload, ret: PUPPET.payloads.Message, _context: MessageParserContext) => {
28
+ let type: PUPPET.types.Message | undefined
29
+ const wechatMessageType = engineMessage.msgType
30
+
31
+ if (!wechatMessageType) {
32
+ type = PUPPET.types.Message.Unknown
33
+ ret.type = type
34
+ return ret
35
+ }
36
+
37
+ type = TypeMappings[wechatMessageType]
38
+
39
+ if (!type) {
40
+ log.verbose(LOGPRE, `unsupported type: ${JSON.stringify(engineMessage)}`)
41
+
42
+ type = PUPPET.types.Message.Unknown
43
+ }
44
+
45
+ ret.type = type
46
+
47
+ return ret
48
+ }
@@ -0,0 +1,35 @@
1
+ import type * as PUPPET from '@juzi/wechaty-puppet'
2
+ import type { MessagePayload } from '../../../engine-schema.js'
3
+ import type { AppMessagePayload } from '../../messages/message-appmsg.js'
4
+
5
+ /**
6
+ * Add customized message parser context info here
7
+ */
8
+ export type MessageParserContext = {
9
+ puppet: PUPPET.Puppet,
10
+ isRoomMessage: boolean,
11
+ appMessagePayload?: AppMessagePayload,
12
+ };
13
+
14
+ export type MessageParser = (padLocalMessage: MessagePayload, ret: PUPPET.payloads.Message, context: MessageParserContext) => Promise<PUPPET.payloads.Message>;
15
+
16
+ const messageParserList: Array<MessageParser> = []
17
+
18
+ export function addMessageParser (parser: MessageParser) {
19
+ messageParserList.push(parser)
20
+ }
21
+
22
+ export async function executeMessageParsers (puppet: PUPPET.Puppet, engineMessage: MessagePayload, ret: PUPPET.payloads.Message): Promise<PUPPET.payloads.Message> {
23
+ const context: MessageParserContext = {
24
+ isRoomMessage: false,
25
+ puppet,
26
+ }
27
+
28
+ for (const parser of messageParserList) {
29
+ ret = await parser(engineMessage, ret, context)
30
+ }
31
+
32
+ return ret
33
+ }
34
+
35
+ export const LOGPRE = 'message-parser'
@@ -0,0 +1,17 @@
1
+ import { addMessageParser, executeMessageParsers } from './message-parser.js'
2
+ import { typeParser } from './message-parser-type.js'
3
+ import { roomParser } from './message-parser-room.js'
4
+ import { singleChatParser } from './message-parser-single-chat.js'
5
+ import { appMsgParser } from './message-parser-appmsg.js'
6
+ import { referMsgParser } from './message-parser-refermsg.js'
7
+ import { sysmsgParser } from './message-parser-sysmsg.js'
8
+
9
+ // The order of message parser is important
10
+ addMessageParser(typeParser)
11
+ addMessageParser(roomParser)
12
+ addMessageParser(singleChatParser)
13
+ addMessageParser(appMsgParser)
14
+ addMessageParser(referMsgParser)
15
+ addMessageParser(sysmsgParser)
16
+
17
+ export { executeMessageParsers }
@@ -0,0 +1,30 @@
1
+ import type { MessagePayload } from '../../engine-schema.js'
2
+ import * as PUPPET from '@juzi/wechaty-puppet'
3
+ import { executeMessageParsers } from './message/mod.js'
4
+
5
+ type WechatyMessagePayload = PUPPET.payloads.Message
6
+
7
+ export async function engineMessageToWechaty (puppet: PUPPET.Puppet, engineMessage: MessagePayload): Promise<WechatyMessagePayload> {
8
+ try {
9
+ // set default value for MessagePayloadBase, other fields will be fulfilled or updated var MessageParers
10
+ let ret: PUPPET.payloads.Message = {
11
+ id: engineMessage.id,
12
+ talkerId: engineMessage.talkerId,
13
+ text: engineMessage.msg,
14
+ timestamp: engineMessage.timeStamp,
15
+ type: PUPPET.types.Message.Unknown,
16
+ } as WechatyMessagePayload
17
+
18
+ ret = await executeMessageParsers(puppet, engineMessage, ret)
19
+
20
+ // validate the return value
21
+ if (!(ret.roomId || ret.listenerId)) {
22
+ throw new Error('neither roomId nor listenerId')
23
+ }
24
+
25
+ return ret
26
+ } catch (e) {
27
+ return {} as PUPPET.payloads.Message
28
+ }
29
+
30
+ }
@@ -0,0 +1,28 @@
1
+ import type { ContactPayload } from '../../engine-schema.js'
2
+
3
+ import type * as PUPPET from '@juzi/wechaty-puppet'
4
+
5
+ export function engineRoomToWechaty (contact: ContactPayload): PUPPET.payloads.Room {
6
+ return {
7
+ adminIdList: contact.adminIdList || [],
8
+ avatar: contact.avatar,
9
+ id: contact.wxid,
10
+ memberIdList: contact.chatroommemberList || [],
11
+ ownerId: contact.ownerId,
12
+ topic: contact.name,
13
+ }
14
+ }
15
+
16
+ export function engineRoomMemberToWechaty (chatRoomMember: ContactPayload): PUPPET.payloads.RoomMember {
17
+ return {
18
+ avatar: chatRoomMember.avatar,
19
+ id: chatRoomMember.wxid,
20
+ inviterId: '',
21
+ name: chatRoomMember.name,
22
+ roomAlias: chatRoomMember.remark,
23
+ }
24
+ }
25
+
26
+ export function chatRoomMemberToContact (chatRoomMember: ContactPayload): ContactPayload {
27
+ return chatRoomMember
28
+ }