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,37 @@
1
+ import type { EmojiMessagePayload } from './messages/message-emotion.js'
2
+
3
+ // 消息类型:1|文本 3|图片 34|语音 42|名片 43|视频 47|动态表情 48|地理位置 49|分享链接或附件 2001|红包 2002|小程序 2003|群邀请 10000|系统消息
4
+ export enum WechatMessageType {
5
+ Text = 1,
6
+ Image = 3,
7
+ Voice = 34,
8
+ VerifyMsg = 37,
9
+ PossibleFriendMsg = 40,
10
+ ShareCard = 42,
11
+ Video = 43,
12
+ Emoticon = 47,
13
+ Location = 48,
14
+ App = 49,
15
+ VoipMsg = 50,
16
+ StatusNotify = 51,
17
+ VoipNotify = 52,
18
+ VoipInvite = 53,
19
+ MicroVideo = 62,
20
+ VerifyMsgEnterprise = 65,
21
+ Transfer = 2000, // 转账
22
+ RedEnvelope = 2001, // 红包
23
+ MiniProgram = 2002, // 小程序
24
+ GroupInvite = 2003, // 群邀请
25
+ File = 2004, // 文件消息
26
+ SysNotice = 9999,
27
+ Sys = 10000,
28
+ SysTemplate = 10002, // NOTIFY 服务通知
29
+ }
30
+
31
+ export type FileBoxMetadataMessageType = 'unknown' | 'emoticon';
32
+ export type FileBoxMetadataMessagePayload = EmojiMessagePayload;
33
+
34
+ export interface FileBoxMetadataMessage {
35
+ type: FileBoxMetadataMessageType,
36
+ payload: FileBoxMetadataMessagePayload
37
+ }
@@ -0,0 +1,25 @@
1
+ const PromiseCache = new Map<string, Promise<any>>()
2
+
3
+ export async function CachedPromise<T> (key: string, promise: Promise<T>): Promise<T> {
4
+ const cache = PromiseCache.get(key)
5
+ if (cache) {
6
+ return cache
7
+ }
8
+
9
+ PromiseCache.set(key, promise)
10
+ return promise.finally(() => PromiseCache.delete(key))
11
+ }
12
+
13
+ type PromiseFunc<T> = () => Promise<T>;
14
+
15
+ export async function CachedPromiseFunc<T> (key: string, promiseFunc: PromiseFunc<T>): Promise<T> {
16
+ const cache = PromiseCache.get(key)
17
+ if (cache) {
18
+ return cache
19
+ }
20
+
21
+ const promise = promiseFunc()
22
+
23
+ PromiseCache.set(key, promise)
24
+ return promise.finally(() => PromiseCache.delete(key))
25
+ }
@@ -0,0 +1,198 @@
1
+ import fs from 'fs'
2
+
3
+ let xorCache:string|null = null
4
+ // let xor = '9a9a' // 异或值(十六进制)
5
+ // xor = hexToBin(xor)
6
+
7
+ const xorLen = 2
8
+
9
+ function ImageDecrypt (dataPath: string, messageId: string) {
10
+ // 读取文件,获取到十六进制数据
11
+ try {
12
+ const data = fs.readFileSync(dataPath, 'hex')
13
+ const res = handleEncrypted(data) // 解密后的十六进制数据
14
+ const extension = getNameExtension(res.substring(0, 4))
15
+ // console.debug(extension)
16
+ const imageInfo = {
17
+ base64: Buffer.from(res, 'hex').toString('base64'),
18
+ extension,
19
+ fileName: `message-${messageId}-url-thumb.${extension}`,
20
+ }
21
+ // console.debug(imageInfo)
22
+ return imageInfo
23
+ } catch (err) {
24
+ console.error(err)
25
+ }
26
+ throw new Error('ImageDecrypt fail')
27
+ }
28
+
29
+ // 解密加密数据
30
+ function handleEncrypted (strEncrypted: string) {
31
+ // 先获取异或值(仅限于jpg文件)
32
+ const code = getXor(strEncrypted.substring(0, 4))
33
+ const strLength = strEncrypted.length
34
+ let source = ''
35
+ const list = []
36
+ for (let i = 0; i < strLength; i = i + xorLen) {
37
+ const str = strEncrypted.substring(0, xorLen)
38
+ strEncrypted = strEncrypted.substring(xorLen)
39
+ const res = hexXor(str, code)
40
+ list.push(res)
41
+ }
42
+ source = list.join('')
43
+ // console.debug(source)
44
+ return source
45
+ }
46
+
47
+ // 获取异或值
48
+ /**
49
+ *
50
+ * @param str strEncrypted.substring(0, 4)
51
+ * @return xor
52
+ */
53
+ function getXor (str: string): string {
54
+ if (typeof xorCache === 'string') {
55
+ return xorCache
56
+ }
57
+ const str01 = str.substring(0, 2)
58
+ const str23 = str.substring(2)
59
+ for (const head of dataHead) {
60
+ const h = head.hex
61
+ const h01 = h.substring(0, 2)
62
+ const h23 = h.substring(2)
63
+ const code = hexXor(h01, str01)
64
+ const testResult = hexXor(str23, code)
65
+ if (testResult === h23) {
66
+ xorCache = code
67
+ return xorCache
68
+ }
69
+ }
70
+ throw new Error('getXor error')
71
+ }
72
+ void getXor
73
+
74
+ // 获取文件名后缀
75
+ function getNameExtension (hex: string) {
76
+ // console.debug(hex)
77
+ const res = dataHead.find(function (item) {
78
+ return item.hex === hex
79
+ })!.name
80
+ return res
81
+ }
82
+
83
+ // 十六进制转二进制
84
+ function hexToBin (str: string) {
85
+ const hexArray = [
86
+ { bin: '0000', hex: '0' },
87
+ { bin: '0001', hex: '1' },
88
+ { bin: '0010', hex: '2' },
89
+ { bin: '0011', hex: '3' },
90
+ { bin: '0100', hex: '4' },
91
+ { bin: '0101', hex: '5' },
92
+ { bin: '0110', hex: '6' },
93
+ { bin: '0111', hex: '7' },
94
+ { bin: '1000', hex: '8' },
95
+ { bin: '1001', hex: '9' },
96
+ { bin: '1010', hex: 'a' },
97
+ { bin: '1011', hex: 'b' },
98
+ { bin: '1100', hex: 'c' },
99
+ { bin: '1101', hex: 'd' },
100
+ { bin: '1110', hex: 'e' },
101
+ { bin: '1111', hex: 'f' },
102
+ ] as const
103
+ let value = ''
104
+ for (let i = 0; i < str.length; i++) {
105
+ value += hexArray.find(function (item) {
106
+ return item.hex === str[i]
107
+ })!.bin
108
+ }
109
+ return value
110
+ }
111
+
112
+ // 二进制转十六进制
113
+ function binToHex (str: string) {
114
+ const hexArray = [
115
+ { bin: '0000', hex: '0' },
116
+ { bin: '0001', hex: '1' },
117
+ { bin: '0010', hex: '2' },
118
+ { bin: '0011', hex: '3' },
119
+ { bin: '0100', hex: '4' },
120
+ { bin: '0101', hex: '5' },
121
+ { bin: '0110', hex: '6' },
122
+ { bin: '0111', hex: '7' },
123
+ { bin: '1000', hex: '8' },
124
+ { bin: '1001', hex: '9' },
125
+ { bin: '1010', hex: 'a' },
126
+ { bin: '1011', hex: 'b' },
127
+ { bin: '1100', hex: 'c' },
128
+ { bin: '1101', hex: 'd' },
129
+ { bin: '1110', hex: 'e' },
130
+ { bin: '1111', hex: 'f' },
131
+ ]
132
+ let value = ''
133
+ const list: string[] = []
134
+ while (str.length > 4) {
135
+ list.push(str.substring(0, 4))
136
+ str = str.substring(4)
137
+ }
138
+ list.push(str)
139
+ for (let i = 0; i < list.length; i++) {
140
+ value += hexArray.find(function (item) {
141
+ return item.bin === list[i]
142
+ })!.hex
143
+ }
144
+ return value
145
+ }
146
+
147
+ // 获取计算结果
148
+ // function getResult (a: string) {
149
+ // const A = hexToBin(a)
150
+ // const B = xor
151
+ // let d = ''
152
+ // for (let i = 0; i < A.length; i++) {
153
+ // if (A[i] === B[i]) {
154
+ // d = d.concat('0')
155
+ // } else {
156
+ // d = d.concat('1')
157
+ // }
158
+ // }
159
+ // return binToHex(d)
160
+ // }
161
+
162
+ function hexXor (a: string, b: string) {
163
+ const A = hexToBin(a)
164
+ const B = hexToBin(b)
165
+ let d = ''
166
+ for (let i = 0; i < A.length; i++) {
167
+ if (A[i] === B[i]) {
168
+ d = d.concat('0')
169
+ } else {
170
+ d = d.concat('1')
171
+ }
172
+ }
173
+ return binToHex(d)
174
+ }
175
+
176
+ // 扩展名-十六进制表
177
+ const dataHead = [
178
+ {
179
+ hex: 'ffd8',
180
+ name: 'jpg',
181
+ },
182
+ {
183
+ hex: '8950',
184
+ name: 'png',
185
+ },
186
+ {
187
+ hex: '4749',
188
+ name: 'gif',
189
+ },
190
+ {
191
+ hex: '424d',
192
+ name: 'bmp',
193
+ },
194
+ ]
195
+
196
+ export {
197
+ ImageDecrypt,
198
+ }
@@ -0,0 +1,34 @@
1
+ import axios from 'axios'
2
+ import { URL } from 'url'
3
+
4
+ /**
5
+ * 延时函数
6
+ * @param {*} ms 毫秒
7
+ */
8
+ export async function delay (ms:number):Promise<void> {
9
+ return new Promise((resolve) => setTimeout(resolve, ms))
10
+ }
11
+
12
+ /**
13
+ * 上传文件
14
+ */
15
+ export async function putFileTransfer (fileName: string, fileData: Buffer): Promise<string> {
16
+ const res = await axios.put(`https://transfer.sh/${fileName}`, fileData)
17
+ if (res.data) {
18
+ const parseUrl = new URL(res.data)
19
+ return parseUrl.origin + '/get' + parseUrl.pathname
20
+ }
21
+ return ''
22
+ }
23
+
24
+ /**
25
+ * 获取带后缀的文件名
26
+ * @param path
27
+ */
28
+
29
+ export function getFileName (path:string): string {
30
+ const pos1 = path.lastIndexOf('/')
31
+ const pos2 = path.lastIndexOf('\\')
32
+ const pos = Math.max(pos1, pos2)
33
+ if (pos < 0) { return path } else { return path.substring(pos + 1) }
34
+ }
@@ -0,0 +1,72 @@
1
+ const officeWxid = [
2
+ 'medianote',
3
+ 'floatbottle',
4
+ 'qmessage',
5
+ 'fmessage',
6
+ 'exmail_tool',
7
+ 'weixin',
8
+ 'newsapp', 'fmessage', 'filehelper', 'weibo', 'qqmail', 'tmessage',
9
+ 'qmessage', 'qqsync', 'floatbottle', 'lbsapp', 'shakeapp', 'medianote', 'qqfriend',
10
+ 'readerapp', 'blogapp', 'facebookapp', 'masssendapp', 'meishiapp', 'feedsapp', 'voip',
11
+ 'blogappweixin', 'weixin', 'brandsessionholder', 'weixinreminder', 'wxid_novlwrv3lqwv11',
12
+ 'gh_22b87fa7cb3c', 'officialaccounts', 'notification_messages', 'wxid_novlwrv3lqwv11',
13
+ 'gh_22b87fa7cb3c', 'wxitil', 'userexperience_alarm', 'notification_messages',
14
+ ]
15
+ export function isRoomId (id?: string): boolean {
16
+ if (!id) {
17
+ return false
18
+ }
19
+ return /@chatroom$/.test(id)
20
+ }
21
+
22
+ export function isIMRoomId (id?: string): boolean {
23
+ if (!id) {
24
+ return false
25
+ }
26
+ return /@im.chatroom$/.test(id)
27
+ }
28
+
29
+ export function isContactId (id?: string): boolean {
30
+ if (!id) {
31
+ return false
32
+ }
33
+ return !isRoomId(id) && !isIMRoomId(id) && !isIMContactId(id)
34
+ }
35
+
36
+ export function isIMContactId (id?: string): boolean {
37
+ if (!id) {
38
+ return false
39
+ }
40
+ return /@openim$/.test(id)
41
+ }
42
+
43
+ export function isContactOfficialId (id?: string): boolean {
44
+ if (!id) {
45
+ return false
46
+ // throw new Error('no id')
47
+ }
48
+ return /^gh_/i.test(id) || officeWxid.includes(id)
49
+ }
50
+
51
+ export function isStrangerV1 (strangerId?: string): boolean {
52
+ if (!strangerId) {
53
+ return false
54
+ // throw new Error('no id')
55
+ }
56
+ return /^v1_/i.test(strangerId)
57
+ }
58
+
59
+ export function isStrangerV2 (strangerId?: string): boolean {
60
+ if (!strangerId) {
61
+ return false
62
+ // throw new Error('no id')
63
+ }
64
+ return /^v2_/i.test(strangerId)
65
+ }
66
+
67
+ export function isPayload (payload?: object): boolean {
68
+ if (payload && Object.keys(payload).length > 0) {
69
+ return true
70
+ }
71
+ return false
72
+ }
@@ -0,0 +1,15 @@
1
+ export type RegexHandler<T> = (matchedRegexIndex: number, match: RegExpMatchArray) => Promise<T>;
2
+
3
+ export async function parseTextWithRegexList<T> (text: string, regexList: RegExp[], handler: RegexHandler<T>) : Promise<T | null> {
4
+ for (let i = 0; i < regexList.length; ++i) {
5
+ const regex = regexList[i]!
6
+ const match = text.match(regex)
7
+ if (!match) {
8
+ continue
9
+ }
10
+
11
+ return await handler(i, match)
12
+ }
13
+
14
+ return null
15
+ }
@@ -0,0 +1,12 @@
1
+ export type Runner<T> = () => Promise<T | null>;
2
+
3
+ export async function executeRunners<T> (runners: Runner<T>[]): Promise<T | null> {
4
+ for (const runner of runners) {
5
+ const ret = await runner()
6
+ if (ret) {
7
+ return ret
8
+ }
9
+ }
10
+
11
+ return null
12
+ }
@@ -0,0 +1,3 @@
1
+ export const clearEscapeFlag = (s: string) => {
2
+ return s.replace(/[\r\n\t]/g, '')
3
+ }
@@ -0,0 +1,59 @@
1
+ import { parseString, Builder } from 'xml2js'
2
+ import { log } from '@juzi/wechaty-puppet'
3
+
4
+ export async function xmlToJson (xml: string): Promise<any> {
5
+ const firstIndex = xml.indexOf('<')
6
+ if (firstIndex !== 0) {
7
+ xml = xml.substring(firstIndex, xml.length)
8
+ }
9
+
10
+ return new Promise((resolve) => {
11
+ parseString(xml, { explicitArray: false }, (err, result) => {
12
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
13
+ if (err && Object.keys(err).length !== 0) {
14
+ log.warn(JSON.stringify(err))
15
+ }
16
+ return resolve(result)
17
+ })
18
+ })
19
+ }
20
+
21
+ export async function JsonToXml (json: any): Promise<string> {
22
+ const builder = new Builder()
23
+ const xml = builder.buildObject(json)
24
+ return xml
25
+ }
26
+
27
+ export function getNickName (linkList: any, name: string) {
28
+ const otherObjectArray = linkList.filter((link: any) =>
29
+ name.includes(link.$.name),
30
+ )
31
+
32
+ if (!otherObjectArray || otherObjectArray.length === 0) {
33
+ return null
34
+ }
35
+ const otherObject = otherObjectArray[0]
36
+ const inviteeList = otherObject.memberlist.member
37
+
38
+ const inviteeIdList = inviteeList.length
39
+ ? inviteeList.map((i: any) => i.nickname)
40
+ : inviteeList.nickname
41
+ return inviteeIdList
42
+ }
43
+
44
+ export function getUserName (linkList: any, name: string) {
45
+ const otherObjectArray = linkList.filter((link: any) =>
46
+ name.includes(link.$.name),
47
+ )
48
+
49
+ if (!otherObjectArray || otherObjectArray.length === 0) {
50
+ return null
51
+ }
52
+ const otherObject = otherObjectArray[0]
53
+ const inviteeList = otherObject.memberlist.member
54
+
55
+ const inviteeIdList = inviteeList.length
56
+ ? inviteeList.map((i: any) => i.username)
57
+ : inviteeList.username
58
+ return inviteeIdList
59
+ }
package/src/mod.ts ADDED
@@ -0,0 +1,10 @@
1
+ import { PuppetMatrix } from './puppet-matrix.js'
2
+ export {
3
+ VERSION,
4
+ log,
5
+ } from './config.js'
6
+
7
+ export {
8
+ PuppetMatrix,
9
+ }
10
+ export default PuppetMatrix
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env -S node --no-warnings --loader ts-node/esm
2
+
3
+ import { test } from 'tstest'
4
+
5
+ import { packageJson } from './package-json.js'
6
+
7
+ test('Make sure the packageJson is fresh in source code', async t => {
8
+ const keyNum = Object.keys(packageJson).length
9
+ t.equal(keyNum, 0, 'packageJson should be empty in source code, only updated before publish to NPM')
10
+ })
@@ -0,0 +1,11 @@
1
+ /**
2
+ * This file will be overwrite when we publish NPM module
3
+ * by scripts/generate_version.ts
4
+ */
5
+ import type { PackageJson } from 'type-fest'
6
+
7
+ /**
8
+ * Huan(202108):
9
+ * The below default values is only for unit testing
10
+ */
11
+ export const packageJson: PackageJson = {}