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.
- package/LICENSE +202 -0
- package/README.md +14 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/src/cleanup.d.ts +4 -0
- package/dist/cjs/src/cleanup.d.ts.map +1 -0
- package/dist/cjs/src/cleanup.js +31 -0
- package/dist/cjs/src/config.d.ts +5 -0
- package/dist/cjs/src/config.d.ts.map +1 -0
- package/dist/cjs/src/config.js +10 -0
- package/dist/cjs/src/engine-schema.d.ts +76 -0
- package/dist/cjs/src/engine-schema.d.ts.map +1 -0
- package/dist/cjs/src/engine-schema.js +14 -0
- package/dist/cjs/src/matrix/cache-manager.d.ts +58 -0
- package/dist/cjs/src/matrix/cache-manager.d.ts.map +1 -0
- package/dist/cjs/src/matrix/cache-manager.js +286 -0
- package/dist/cjs/src/matrix/events/event-friendship.d.ts +6 -0
- package/dist/cjs/src/matrix/events/event-friendship.d.ts.map +1 -0
- package/dist/cjs/src/matrix/events/event-friendship.js +109 -0
- package/dist/cjs/src/matrix/events/event-message.d.ts +6 -0
- package/dist/cjs/src/matrix/events/event-message.d.ts.map +1 -0
- package/dist/cjs/src/matrix/events/event-message.js +5 -0
- package/dist/cjs/src/matrix/events/event-room-invite.d.ts +6 -0
- package/dist/cjs/src/matrix/events/event-room-invite.d.ts.map +1 -0
- package/dist/cjs/src/matrix/events/event-room-invite.js +55 -0
- package/dist/cjs/src/matrix/events/event-room-join.d.ts +6 -0
- package/dist/cjs/src/matrix/events/event-room-join.d.ts.map +1 -0
- package/dist/cjs/src/matrix/events/event-room-join.js +127 -0
- package/dist/cjs/src/matrix/events/event-room-leave.d.ts +8 -0
- package/dist/cjs/src/matrix/events/event-room-leave.d.ts.map +1 -0
- package/dist/cjs/src/matrix/events/event-room-leave.js +83 -0
- package/dist/cjs/src/matrix/events/event-room-topic.d.ts +6 -0
- package/dist/cjs/src/matrix/events/event-room-topic.d.ts.map +1 -0
- package/dist/cjs/src/matrix/events/event-room-topic.js +56 -0
- package/dist/cjs/src/matrix/events/event.d.ts +28 -0
- package/dist/cjs/src/matrix/events/event.d.ts.map +1 -0
- package/dist/cjs/src/matrix/events/event.js +42 -0
- package/dist/cjs/src/matrix/events/mod.d.ts +3 -0
- package/dist/cjs/src/matrix/events/mod.d.ts.map +1 -0
- package/dist/cjs/src/matrix/events/mod.js +21 -0
- package/dist/cjs/src/matrix/messages/message-appmsg.d.ts +57 -0
- package/dist/cjs/src/matrix/messages/message-appmsg.d.ts.map +1 -0
- package/dist/cjs/src/matrix/messages/message-appmsg.js +60 -0
- package/dist/cjs/src/matrix/messages/message-audio.d.ts +32 -0
- package/dist/cjs/src/matrix/messages/message-audio.d.ts.map +1 -0
- package/dist/cjs/src/matrix/messages/message-audio.js +17 -0
- package/dist/cjs/src/matrix/messages/message-emotion.d.ts +13 -0
- package/dist/cjs/src/matrix/messages/message-emotion.d.ts.map +1 -0
- package/dist/cjs/src/matrix/messages/message-emotion.js +32 -0
- package/dist/cjs/src/matrix/messages/message-image.d.ts +33 -0
- package/dist/cjs/src/matrix/messages/message-image.d.ts.map +1 -0
- package/dist/cjs/src/matrix/messages/message-image.js +14 -0
- package/dist/cjs/src/matrix/messages/message-miniprogram.d.ts +4 -0
- package/dist/cjs/src/matrix/messages/message-miniprogram.d.ts.map +1 -0
- package/dist/cjs/src/matrix/messages/message-miniprogram.js +21 -0
- package/dist/cjs/src/matrix/messages/message-sysmsg.d.ts +18 -0
- package/dist/cjs/src/matrix/messages/message-sysmsg.d.ts.map +1 -0
- package/dist/cjs/src/matrix/messages/message-sysmsg.js +76 -0
- package/dist/cjs/src/matrix/messages/message-video.d.ts +43 -0
- package/dist/cjs/src/matrix/messages/message-video.d.ts.map +1 -0
- package/dist/cjs/src/matrix/messages/message-video.js +20 -0
- package/dist/cjs/src/matrix/messages/sysmsg/message-pat.d.ts +14 -0
- package/dist/cjs/src/matrix/messages/sysmsg/message-pat.d.ts.map +1 -0
- package/dist/cjs/src/matrix/messages/sysmsg/message-pat.js +11 -0
- package/dist/cjs/src/matrix/messages/sysmsg/message-revokemsg.d.ts +19 -0
- package/dist/cjs/src/matrix/messages/sysmsg/message-revokemsg.d.ts.map +1 -0
- package/dist/cjs/src/matrix/messages/sysmsg/message-revokemsg.js +48 -0
- package/dist/cjs/src/matrix/messages/sysmsg/message-sysmsgtemplate.d.ts +59 -0
- package/dist/cjs/src/matrix/messages/sysmsg/message-sysmsgtemplate.d.ts.map +1 -0
- package/dist/cjs/src/matrix/messages/sysmsg/message-sysmsgtemplate.js +61 -0
- package/dist/cjs/src/matrix/messages/sysmsg/message-todo.d.ts +31 -0
- package/dist/cjs/src/matrix/messages/sysmsg/message-todo.d.ts.map +1 -0
- package/dist/cjs/src/matrix/messages/sysmsg/message-todo.js +16 -0
- package/dist/cjs/src/matrix/schema-mapper/contact.d.ts +4 -0
- package/dist/cjs/src/matrix/schema-mapper/contact.d.ts.map +1 -0
- package/dist/cjs/src/matrix/schema-mapper/contact.js +62 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser-appmsg.d.ts +3 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser-appmsg.d.ts.map +1 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser-appmsg.js +100 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser-refermsg.d.ts +3 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser-refermsg.d.ts.map +1 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser-refermsg.js +67 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser-room.d.ts +3 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser-room.d.ts.map +1 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser-room.js +40 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser-single-chat.d.ts +3 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser-single-chat.d.ts.map +1 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser-single-chat.js +11 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser-sysmsg.d.ts +3 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser-sysmsg.d.ts.map +1 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser-sysmsg.js +41 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser-type.d.ts +3 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser-type.d.ts.map +1 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser-type.js +65 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser.d.ts +13 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser.d.ts.map +1 -0
- package/dist/cjs/src/matrix/schema-mapper/message/message-parser.js +20 -0
- package/dist/cjs/src/matrix/schema-mapper/message/mod.d.ts +3 -0
- package/dist/cjs/src/matrix/schema-mapper/message/mod.d.ts.map +1 -0
- package/dist/cjs/src/matrix/schema-mapper/message/mod.js +17 -0
- package/dist/cjs/src/matrix/schema-mapper/message.d.ts +6 -0
- package/dist/cjs/src/matrix/schema-mapper/message.d.ts.map +1 -0
- package/dist/cjs/src/matrix/schema-mapper/message.js +47 -0
- package/dist/cjs/src/matrix/schema-mapper/room.d.ts +6 -0
- package/dist/cjs/src/matrix/schema-mapper/room.d.ts.map +1 -0
- package/dist/cjs/src/matrix/schema-mapper/room.js +27 -0
- package/dist/cjs/src/matrix/service/request.d.ts +290 -0
- package/dist/cjs/src/matrix/service/request.d.ts.map +1 -0
- package/dist/cjs/src/matrix/service/request.js +1315 -0
- package/dist/cjs/src/matrix/types.d.ts +34 -0
- package/dist/cjs/src/matrix/types.d.ts.map +1 -0
- package/dist/cjs/src/matrix/types.js +30 -0
- package/dist/cjs/src/matrix/utils/cached-promise.d.ts +5 -0
- package/dist/cjs/src/matrix/utils/cached-promise.d.ts.map +1 -0
- package/dist/cjs/src/matrix/utils/cached-promise.js +22 -0
- package/dist/cjs/src/matrix/utils/image-decrypt.d.ts +7 -0
- package/dist/cjs/src/matrix/utils/image-decrypt.d.ts.map +1 -0
- package/dist/cjs/src/matrix/utils/image-decrypt.js +158 -0
- package/dist/cjs/src/matrix/utils/index.d.ts +4 -0
- package/dist/cjs/src/matrix/utils/index.d.ts.map +1 -0
- package/dist/cjs/src/matrix/utils/index.js +32 -0
- package/dist/cjs/src/matrix/utils/is-type.d.ts +9 -0
- package/dist/cjs/src/matrix/utils/is-type.d.ts.map +1 -0
- package/dist/cjs/src/matrix/utils/is-type.js +72 -0
- package/dist/cjs/src/matrix/utils/regex.d.ts +3 -0
- package/dist/cjs/src/matrix/utils/regex.d.ts.map +1 -0
- package/dist/cjs/src/matrix/utils/regex.js +14 -0
- package/dist/cjs/src/matrix/utils/runner.d.ts +3 -0
- package/dist/cjs/src/matrix/utils/runner.d.ts.map +1 -0
- package/dist/cjs/src/matrix/utils/runner.js +12 -0
- package/dist/cjs/src/matrix/utils/string.d.ts +2 -0
- package/dist/cjs/src/matrix/utils/string.d.ts.map +1 -0
- package/dist/cjs/src/matrix/utils/string.js +7 -0
- package/dist/cjs/src/matrix/utils/xml-to-json.d.ts +5 -0
- package/dist/cjs/src/matrix/utils/xml-to-json.d.ts.map +1 -0
- package/dist/cjs/src/matrix/utils/xml-to-json.js +51 -0
- package/dist/cjs/src/mod.d.ts +5 -0
- package/dist/cjs/src/mod.d.ts.map +1 -0
- package/dist/cjs/src/mod.js +9 -0
- package/dist/cjs/src/package-json.d.ts +3 -0
- package/dist/cjs/src/package-json.d.ts.map +1 -0
- package/dist/cjs/src/package-json.js +4 -0
- package/dist/cjs/src/package-json.spec.d.ts +3 -0
- package/dist/cjs/src/package-json.spec.d.ts.map +1 -0
- package/dist/cjs/src/package-json.spec.js +9 -0
- package/dist/cjs/src/puppet-matrix.d.ts +114 -0
- package/dist/cjs/src/puppet-matrix.d.ts.map +1 -0
- package/dist/cjs/src/puppet-matrix.js +1037 -0
- package/dist/cjs/tests/integration.spec.d.ts +3 -0
- package/dist/cjs/tests/integration.spec.d.ts.map +1 -0
- package/dist/cjs/tests/integration.spec.js +7 -0
- package/dist/cjs/tests/tap.spec.d.ts +3 -0
- package/dist/cjs/tests/tap.spec.d.ts.map +1 -0
- package/dist/cjs/tests/tap.spec.js +32 -0
- package/dist/esm/src/cleanup.d.ts +4 -0
- package/dist/esm/src/cleanup.d.ts.map +1 -0
- package/dist/esm/src/cleanup.js +24 -0
- package/dist/esm/src/config.d.ts +5 -0
- package/dist/esm/src/config.d.ts.map +1 -0
- package/dist/esm/src/config.js +5 -0
- package/dist/esm/src/engine-schema.d.ts +76 -0
- package/dist/esm/src/engine-schema.d.ts.map +1 -0
- package/dist/esm/src/engine-schema.js +11 -0
- package/dist/esm/src/matrix/cache-manager.d.ts +58 -0
- package/dist/esm/src/matrix/cache-manager.d.ts.map +1 -0
- package/dist/esm/src/matrix/cache-manager.js +279 -0
- package/dist/esm/src/matrix/events/event-friendship.d.ts +6 -0
- package/dist/esm/src/matrix/events/event-friendship.d.ts.map +1 -0
- package/dist/esm/src/matrix/events/event-friendship.js +84 -0
- package/dist/esm/src/matrix/events/event-message.d.ts +6 -0
- package/dist/esm/src/matrix/events/event-message.d.ts.map +1 -0
- package/dist/esm/src/matrix/events/event-message.js +3 -0
- package/dist/esm/src/matrix/events/event-room-invite.d.ts +6 -0
- package/dist/esm/src/matrix/events/event-room-invite.d.ts.map +1 -0
- package/dist/esm/src/matrix/events/event-room-invite.js +53 -0
- package/dist/esm/src/matrix/events/event-room-join.d.ts +6 -0
- package/dist/esm/src/matrix/events/event-room-join.d.ts.map +1 -0
- package/dist/esm/src/matrix/events/event-room-join.js +125 -0
- package/dist/esm/src/matrix/events/event-room-leave.d.ts +8 -0
- package/dist/esm/src/matrix/events/event-room-leave.d.ts.map +1 -0
- package/dist/esm/src/matrix/events/event-room-leave.js +79 -0
- package/dist/esm/src/matrix/events/event-room-topic.d.ts +6 -0
- package/dist/esm/src/matrix/events/event-room-topic.d.ts.map +1 -0
- package/dist/esm/src/matrix/events/event-room-topic.js +54 -0
- package/dist/esm/src/matrix/events/event.d.ts +28 -0
- package/dist/esm/src/matrix/events/event.d.ts.map +1 -0
- package/dist/esm/src/matrix/events/event.js +37 -0
- package/dist/esm/src/matrix/events/mod.d.ts +3 -0
- package/dist/esm/src/matrix/events/mod.d.ts.map +1 -0
- package/dist/esm/src/matrix/events/mod.js +14 -0
- package/dist/esm/src/matrix/messages/message-appmsg.d.ts +57 -0
- package/dist/esm/src/matrix/messages/message-appmsg.d.ts.map +1 -0
- package/dist/esm/src/matrix/messages/message-appmsg.js +56 -0
- package/dist/esm/src/matrix/messages/message-audio.d.ts +32 -0
- package/dist/esm/src/matrix/messages/message-audio.d.ts.map +1 -0
- package/dist/esm/src/matrix/messages/message-audio.js +14 -0
- package/dist/esm/src/matrix/messages/message-emotion.d.ts +13 -0
- package/dist/esm/src/matrix/messages/message-emotion.d.ts.map +1 -0
- package/dist/esm/src/matrix/messages/message-emotion.js +28 -0
- package/dist/esm/src/matrix/messages/message-image.d.ts +33 -0
- package/dist/esm/src/matrix/messages/message-image.d.ts.map +1 -0
- package/dist/esm/src/matrix/messages/message-image.js +11 -0
- package/dist/esm/src/matrix/messages/message-miniprogram.d.ts +4 -0
- package/dist/esm/src/matrix/messages/message-miniprogram.d.ts.map +1 -0
- package/dist/esm/src/matrix/messages/message-miniprogram.js +18 -0
- package/dist/esm/src/matrix/messages/message-sysmsg.d.ts +18 -0
- package/dist/esm/src/matrix/messages/message-sysmsg.d.ts.map +1 -0
- package/dist/esm/src/matrix/messages/message-sysmsg.js +69 -0
- package/dist/esm/src/matrix/messages/message-video.d.ts +43 -0
- package/dist/esm/src/matrix/messages/message-video.d.ts.map +1 -0
- package/dist/esm/src/matrix/messages/message-video.js +17 -0
- package/dist/esm/src/matrix/messages/sysmsg/message-pat.d.ts +14 -0
- package/dist/esm/src/matrix/messages/sysmsg/message-pat.d.ts.map +1 -0
- package/dist/esm/src/matrix/messages/sysmsg/message-pat.js +8 -0
- package/dist/esm/src/matrix/messages/sysmsg/message-revokemsg.d.ts +19 -0
- package/dist/esm/src/matrix/messages/sysmsg/message-revokemsg.d.ts.map +1 -0
- package/dist/esm/src/matrix/messages/sysmsg/message-revokemsg.js +43 -0
- package/dist/esm/src/matrix/messages/sysmsg/message-sysmsgtemplate.d.ts +59 -0
- package/dist/esm/src/matrix/messages/sysmsg/message-sysmsgtemplate.d.ts.map +1 -0
- package/dist/esm/src/matrix/messages/sysmsg/message-sysmsgtemplate.js +56 -0
- package/dist/esm/src/matrix/messages/sysmsg/message-todo.d.ts +31 -0
- package/dist/esm/src/matrix/messages/sysmsg/message-todo.d.ts.map +1 -0
- package/dist/esm/src/matrix/messages/sysmsg/message-todo.js +13 -0
- package/dist/esm/src/matrix/schema-mapper/contact.d.ts +4 -0
- package/dist/esm/src/matrix/schema-mapper/contact.d.ts.map +1 -0
- package/dist/esm/src/matrix/schema-mapper/contact.js +36 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser-appmsg.d.ts +3 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser-appmsg.d.ts.map +1 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser-appmsg.js +73 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser-refermsg.d.ts +3 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser-refermsg.d.ts.map +1 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser-refermsg.js +40 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser-room.d.ts +3 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser-room.d.ts.map +1 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser-room.js +36 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser-single-chat.d.ts +3 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser-single-chat.d.ts.map +1 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser-single-chat.js +7 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser-sysmsg.d.ts +3 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser-sysmsg.d.ts.map +1 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser-sysmsg.js +37 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser-type.d.ts +3 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser-type.d.ts.map +1 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser-type.js +38 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser.d.ts +13 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser.d.ts.map +1 -0
- package/dist/esm/src/matrix/schema-mapper/message/message-parser.js +15 -0
- package/dist/esm/src/matrix/schema-mapper/message/mod.d.ts +3 -0
- package/dist/esm/src/matrix/schema-mapper/message/mod.d.ts.map +1 -0
- package/dist/esm/src/matrix/schema-mapper/message/mod.js +14 -0
- package/dist/esm/src/matrix/schema-mapper/message.d.ts +6 -0
- package/dist/esm/src/matrix/schema-mapper/message.d.ts.map +1 -0
- package/dist/esm/src/matrix/schema-mapper/message.js +21 -0
- package/dist/esm/src/matrix/schema-mapper/room.d.ts +6 -0
- package/dist/esm/src/matrix/schema-mapper/room.d.ts.map +1 -0
- package/dist/esm/src/matrix/schema-mapper/room.js +22 -0
- package/dist/esm/src/matrix/service/request.d.ts +290 -0
- package/dist/esm/src/matrix/service/request.d.ts.map +1 -0
- package/dist/esm/src/matrix/service/request.js +1286 -0
- package/dist/esm/src/matrix/types.d.ts +34 -0
- package/dist/esm/src/matrix/types.d.ts.map +1 -0
- package/dist/esm/src/matrix/types.js +27 -0
- package/dist/esm/src/matrix/utils/cached-promise.d.ts +5 -0
- package/dist/esm/src/matrix/utils/cached-promise.d.ts.map +1 -0
- package/dist/esm/src/matrix/utils/cached-promise.js +18 -0
- package/dist/esm/src/matrix/utils/image-decrypt.d.ts +7 -0
- package/dist/esm/src/matrix/utils/image-decrypt.d.ts.map +1 -0
- package/dist/esm/src/matrix/utils/image-decrypt.js +153 -0
- package/dist/esm/src/matrix/utils/index.d.ts +4 -0
- package/dist/esm/src/matrix/utils/index.d.ts.map +1 -0
- package/dist/esm/src/matrix/utils/index.js +24 -0
- package/dist/esm/src/matrix/utils/is-type.d.ts +9 -0
- package/dist/esm/src/matrix/utils/is-type.d.ts.map +1 -0
- package/dist/esm/src/matrix/utils/is-type.js +62 -0
- package/dist/esm/src/matrix/utils/regex.d.ts +3 -0
- package/dist/esm/src/matrix/utils/regex.d.ts.map +1 -0
- package/dist/esm/src/matrix/utils/regex.js +11 -0
- package/dist/esm/src/matrix/utils/runner.d.ts +3 -0
- package/dist/esm/src/matrix/utils/runner.d.ts.map +1 -0
- package/dist/esm/src/matrix/utils/runner.js +9 -0
- package/dist/esm/src/matrix/utils/string.d.ts +2 -0
- package/dist/esm/src/matrix/utils/string.d.ts.map +1 -0
- package/dist/esm/src/matrix/utils/string.js +3 -0
- package/dist/esm/src/matrix/utils/xml-to-json.d.ts +5 -0
- package/dist/esm/src/matrix/utils/xml-to-json.d.ts.map +1 -0
- package/dist/esm/src/matrix/utils/xml-to-json.js +45 -0
- package/dist/esm/src/mod.d.ts +5 -0
- package/dist/esm/src/mod.d.ts.map +1 -0
- package/dist/esm/src/mod.js +4 -0
- package/dist/esm/src/package-json.d.ts +3 -0
- package/dist/esm/src/package-json.d.ts.map +1 -0
- package/dist/esm/src/package-json.js +1 -0
- package/dist/esm/src/package-json.spec.d.ts +3 -0
- package/dist/esm/src/package-json.spec.d.ts.map +1 -0
- package/dist/esm/src/package-json.spec.js +7 -0
- package/dist/esm/src/puppet-matrix.d.ts +114 -0
- package/dist/esm/src/puppet-matrix.d.ts.map +1 -0
- package/dist/esm/src/puppet-matrix.js +1007 -0
- package/dist/esm/tests/integration.spec.d.ts +3 -0
- package/dist/esm/tests/integration.spec.d.ts.map +1 -0
- package/dist/esm/tests/integration.spec.js +5 -0
- package/dist/esm/tests/tap.spec.d.ts +3 -0
- package/dist/esm/tests/tap.spec.d.ts.map +1 -0
- package/dist/esm/tests/tap.spec.js +7 -0
- package/package.json +98 -0
- package/src/cleanup.ts +36 -0
- package/src/config.ts +15 -0
- package/src/engine-schema.ts +171 -0
- package/src/matrix/cache-manager.ts +359 -0
- package/src/matrix/events/event-friendship.ts +116 -0
- package/src/matrix/events/event-message.ts +7 -0
- package/src/matrix/events/event-room-invite.ts +64 -0
- package/src/matrix/events/event-room-join.ts +200 -0
- package/src/matrix/events/event-room-leave.ts +111 -0
- package/src/matrix/events/event-room-topic.ts +73 -0
- package/src/matrix/events/event.ts +60 -0
- package/src/matrix/events/mod.ts +16 -0
- package/src/matrix/messages/message-appmsg.ts +131 -0
- package/src/matrix/messages/message-audio.ts +48 -0
- package/src/matrix/messages/message-emotion.ts +68 -0
- package/src/matrix/messages/message-image.ts +46 -0
- package/src/matrix/messages/message-miniprogram.ts +45 -0
- package/src/matrix/messages/message-sysmsg.ts +106 -0
- package/src/matrix/messages/message-video.ts +62 -0
- package/src/matrix/messages/sysmsg/message-pat.ts +22 -0
- package/src/matrix/messages/sysmsg/message-revokemsg.ts +70 -0
- package/src/matrix/messages/sysmsg/message-sysmsgtemplate.ts +133 -0
- package/src/matrix/messages/sysmsg/message-todo.ts +45 -0
- package/src/matrix/schema-mapper/contact.ts +37 -0
- package/src/matrix/schema-mapper/message/message-parser-appmsg.ts +78 -0
- package/src/matrix/schema-mapper/message/message-parser-refermsg.ts +53 -0
- package/src/matrix/schema-mapper/message/message-parser-room.ts +62 -0
- package/src/matrix/schema-mapper/message/message-parser-single-chat.ts +12 -0
- package/src/matrix/schema-mapper/message/message-parser-sysmsg.ts +62 -0
- package/src/matrix/schema-mapper/message/message-parser-type.ts +48 -0
- package/src/matrix/schema-mapper/message/message-parser.ts +35 -0
- package/src/matrix/schema-mapper/message/mod.ts +17 -0
- package/src/matrix/schema-mapper/message.ts +30 -0
- package/src/matrix/schema-mapper/room.ts +28 -0
- package/src/matrix/service/request.ts +1944 -0
- package/src/matrix/types.ts +37 -0
- package/src/matrix/utils/cached-promise.ts +25 -0
- package/src/matrix/utils/image-decrypt.ts +198 -0
- package/src/matrix/utils/index.ts +34 -0
- package/src/matrix/utils/is-type.ts +72 -0
- package/src/matrix/utils/regex.ts +15 -0
- package/src/matrix/utils/runner.ts +12 -0
- package/src/matrix/utils/string.ts +3 -0
- package/src/matrix/utils/xml-to-json.ts +59 -0
- package/src/mod.ts +10 -0
- package/src/package-json.spec.ts +10 -0
- package/src/package-json.ts +11 -0
- package/src/puppet-matrix.ts +1402 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unnecessary-condition */
|
|
2
|
+
import type { MessagePayload } from '../../engine-schema.js'
|
|
3
|
+
import { xmlToJson } from '../utils/xml-to-json.js'
|
|
4
|
+
|
|
5
|
+
interface EmotionXmlSchema {
|
|
6
|
+
msg: {
|
|
7
|
+
emoji: {
|
|
8
|
+
$: {
|
|
9
|
+
type: string;
|
|
10
|
+
len: string;
|
|
11
|
+
cdnurl: string;
|
|
12
|
+
width: string;
|
|
13
|
+
height: string;
|
|
14
|
+
md5: string;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
gameext: {
|
|
18
|
+
$: {
|
|
19
|
+
content: string;
|
|
20
|
+
type: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface EmojiMessagePayload {
|
|
27
|
+
type: number;
|
|
28
|
+
len: number;
|
|
29
|
+
md5: string;
|
|
30
|
+
cdnurl: string;
|
|
31
|
+
width: number;
|
|
32
|
+
height: number;
|
|
33
|
+
gameext?: string;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export async function parseEmotionMessagePayload (message: MessagePayload): Promise<EmojiMessagePayload> {
|
|
37
|
+
const jsonPayload: EmotionXmlSchema = await xmlToJson(message.msg)
|
|
38
|
+
|
|
39
|
+
const len = parseInt(jsonPayload.msg.emoji.$.len, 10) || 0
|
|
40
|
+
const width = parseInt(jsonPayload.msg.emoji.$.width, 10) || 0
|
|
41
|
+
const height = parseInt(jsonPayload.msg.emoji.$.height, 10) || 0
|
|
42
|
+
const cdnurl = jsonPayload.msg.emoji.$.cdnurl
|
|
43
|
+
const type = parseInt(jsonPayload.msg.emoji.$.type, 10) || 0
|
|
44
|
+
const md5 = jsonPayload.msg.emoji.$.md5
|
|
45
|
+
|
|
46
|
+
let gameext
|
|
47
|
+
if (jsonPayload.msg.gameext) {
|
|
48
|
+
const gameextType = parseInt(jsonPayload.msg.gameext.$.type, 10) || 0
|
|
49
|
+
const gameextContent = parseInt(jsonPayload.msg.gameext.$.content, 10) || 0
|
|
50
|
+
gameext = `<gameext type="${gameextType}" content="${gameextContent}" ></gameext>`
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return {
|
|
54
|
+
cdnurl,
|
|
55
|
+
gameext,
|
|
56
|
+
height,
|
|
57
|
+
len,
|
|
58
|
+
md5,
|
|
59
|
+
type,
|
|
60
|
+
width,
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function generateEmotionPayload (emojiMessagePayload: EmojiMessagePayload): string {
|
|
65
|
+
return `<msg><emoji cdnurl="${emojiMessagePayload.cdnurl}" len="${emojiMessagePayload.len}" md5="${
|
|
66
|
+
emojiMessagePayload.md5
|
|
67
|
+
}" type="${emojiMessagePayload.type}"/>${emojiMessagePayload.gameext || ''}</msg>`
|
|
68
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { MessagePayload } from '../../engine-schema.js'
|
|
2
|
+
import { xmlToJson } from '../utils/xml-to-json.js'
|
|
3
|
+
|
|
4
|
+
export interface ImageXmlSchema {
|
|
5
|
+
msg: {
|
|
6
|
+
img: {
|
|
7
|
+
$: {
|
|
8
|
+
aeskey: string
|
|
9
|
+
encryver: string
|
|
10
|
+
cdnthumbaeskey: string
|
|
11
|
+
cdnthumburl: string
|
|
12
|
+
cdnthumblength: string
|
|
13
|
+
cdnthumbheight: string
|
|
14
|
+
cdnthumbwidth: string
|
|
15
|
+
cdnmidheight: string
|
|
16
|
+
cdnmidwidth: string
|
|
17
|
+
cdnhdheight: string
|
|
18
|
+
cdnhdwidth: string
|
|
19
|
+
cdnmidimgurl: string
|
|
20
|
+
length: string
|
|
21
|
+
cdnbigimgurl: string
|
|
22
|
+
hdlength: string
|
|
23
|
+
md5: string
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface ImageMessagePayload {
|
|
30
|
+
aes_key: string,
|
|
31
|
+
file_id: string,
|
|
32
|
+
file_size: string,
|
|
33
|
+
file_name: string,
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export async function parseImageMessagePayload (rawPayload: MessagePayload): Promise<ImageMessagePayload> {
|
|
37
|
+
const imageXml: ImageXmlSchema = await xmlToJson(rawPayload.msg)
|
|
38
|
+
const schema = imageXml.msg.img.$
|
|
39
|
+
|
|
40
|
+
return {
|
|
41
|
+
aes_key: schema.aeskey,
|
|
42
|
+
file_id: schema.cdnmidimgurl,
|
|
43
|
+
file_size: schema.length,
|
|
44
|
+
file_name: '',
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type * as PUPPET from '@juzi/wechaty-puppet'
|
|
2
|
+
import type { MessagePayload } from '../../engine-schema.js'
|
|
3
|
+
import { xmlToJson } from '../utils/xml-to-json.js'
|
|
4
|
+
|
|
5
|
+
interface MiniProgramXmlSchema {
|
|
6
|
+
msg: {
|
|
7
|
+
appmsg: {
|
|
8
|
+
title: string;
|
|
9
|
+
sourcedisplayname: string;
|
|
10
|
+
appattach: {
|
|
11
|
+
cdnthumbaeskey: string;
|
|
12
|
+
cdnthumburl: string;
|
|
13
|
+
};
|
|
14
|
+
weappinfo: {
|
|
15
|
+
username: string;
|
|
16
|
+
appid: string;
|
|
17
|
+
pagepath: string;
|
|
18
|
+
weappiconurl: string;
|
|
19
|
+
shareId: string;
|
|
20
|
+
};
|
|
21
|
+
thumburl: string;
|
|
22
|
+
md5: any;
|
|
23
|
+
};
|
|
24
|
+
fromusername: string;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export async function parseMiniProgramMessagePayload (rawPayload: MessagePayload): Promise<PUPPET.payloads.MiniProgram> {
|
|
29
|
+
const miniProgramXml: MiniProgramXmlSchema = await xmlToJson(rawPayload.msg)
|
|
30
|
+
const appmsg = miniProgramXml.msg.appmsg
|
|
31
|
+
const weappinfo = appmsg.weappinfo
|
|
32
|
+
const appattach = appmsg.appattach
|
|
33
|
+
|
|
34
|
+
return {
|
|
35
|
+
appid: weappinfo.appid,
|
|
36
|
+
description: appmsg.sourcedisplayname,
|
|
37
|
+
iconUrl: weappinfo.weappiconurl,
|
|
38
|
+
pagePath: weappinfo.pagepath,
|
|
39
|
+
shareId: weappinfo.shareId,
|
|
40
|
+
thumbKey: appattach.cdnthumbaeskey,
|
|
41
|
+
thumbUrl: appattach.cdnthumburl,
|
|
42
|
+
title: appmsg.title,
|
|
43
|
+
username: weappinfo.username,
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import type { MessagePayload } from '../../engine-schema.js'
|
|
2
|
+
import { WechatMessageType } from '../types.js'
|
|
3
|
+
import { xmlToJson } from '../utils/xml-to-json.js'
|
|
4
|
+
import type { PatMessagePayload, PatXmlSchema } from './sysmsg/message-pat.js'
|
|
5
|
+
import type { SysmsgTemplateMessagePayload, SysmsgTemplateXmlSchema } from './sysmsg/message-sysmsgtemplate.js'
|
|
6
|
+
import { parsePatMessagePayload } from './sysmsg/message-pat.js'
|
|
7
|
+
import { parseSysmsgTemplateMessagePayload } from './sysmsg/message-sysmsgtemplate.js'
|
|
8
|
+
import type { TodoMessagePayload, TodoXmlSchema } from './sysmsg/message-todo.js'
|
|
9
|
+
import { parseTodoMessagePayload } from './sysmsg/message-todo.js'
|
|
10
|
+
import type { RevokeMsgMessagePayload, RevokeMsgXmlSchema } from './sysmsg/message-revokemsg.js'
|
|
11
|
+
import { parseRevokeMsgMessagePayload } from './sysmsg/message-revokemsg.js'
|
|
12
|
+
|
|
13
|
+
interface SysmsgXmlSchema {
|
|
14
|
+
sysmsg: {
|
|
15
|
+
$: {
|
|
16
|
+
type: string;
|
|
17
|
+
},
|
|
18
|
+
pat?: PatXmlSchema,
|
|
19
|
+
sysmsgtemplate?: SysmsgTemplateXmlSchema,
|
|
20
|
+
todo?: TodoXmlSchema,
|
|
21
|
+
revokemsg?: RevokeMsgXmlSchema,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
type SysMsgType = 'pat' | 'sysmsgtemplate' | 'roomtoolstips' | 'revokemsg';
|
|
26
|
+
type SysMsgPayload = PatMessagePayload | SysmsgTemplateMessagePayload | TodoMessagePayload | RevokeMsgMessagePayload;
|
|
27
|
+
|
|
28
|
+
export interface SysmsgMessagePayload {
|
|
29
|
+
type: SysMsgType;
|
|
30
|
+
payload: SysMsgPayload
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export async function parseSysmsgMessagePayload (message: MessagePayload): Promise<SysmsgMessagePayload | null> {
|
|
34
|
+
if (message.msgType !== WechatMessageType.Sys) {
|
|
35
|
+
return null
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const content = message.msg.trim()
|
|
39
|
+
const sysmsgIndex = content.indexOf('<sysmsg')
|
|
40
|
+
if (sysmsgIndex === -1) {
|
|
41
|
+
return null
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const sysmsgXml: SysmsgXmlSchema = await xmlToJson(content.substring(sysmsgIndex))
|
|
45
|
+
|
|
46
|
+
let payload : SysMsgPayload | undefined
|
|
47
|
+
switch (sysmsgXml.sysmsg.$.type) {
|
|
48
|
+
case 'pat':
|
|
49
|
+
payload = await parsePatMessagePayload(sysmsgXml.sysmsg.pat!)
|
|
50
|
+
break
|
|
51
|
+
case 'sysmsgtemplate':
|
|
52
|
+
payload = await parseSysmsgTemplateMessagePayload(sysmsgXml.sysmsg.sysmsgtemplate!)
|
|
53
|
+
break
|
|
54
|
+
case 'roomtoolstips':
|
|
55
|
+
payload = await parseTodoMessagePayload(sysmsgXml.sysmsg.todo!)
|
|
56
|
+
break
|
|
57
|
+
case 'revokemsg':
|
|
58
|
+
payload = await parseRevokeMsgMessagePayload(sysmsgXml.sysmsg.revokemsg!)
|
|
59
|
+
break
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (payload) {
|
|
63
|
+
return {
|
|
64
|
+
payload,
|
|
65
|
+
type: sysmsgXml.sysmsg.$.type as SysMsgType,
|
|
66
|
+
}
|
|
67
|
+
} else {
|
|
68
|
+
return null
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export async function parseSysmsgPatMessagePayload (message: MessagePayload) : Promise<PatMessagePayload | null> {
|
|
73
|
+
const sysmsgPayload = await parseSysmsgMessagePayload(message)
|
|
74
|
+
if (!sysmsgPayload || sysmsgPayload.type !== 'pat') {
|
|
75
|
+
return null
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return sysmsgPayload.payload as PatMessagePayload
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export async function parseSysmsgSysmsgTemplateMessagePayload (message: MessagePayload) : Promise<SysmsgTemplateMessagePayload | null> {
|
|
82
|
+
const sysmsgPayload = await parseSysmsgMessagePayload(message)
|
|
83
|
+
if (!sysmsgPayload || sysmsgPayload.type !== 'sysmsgtemplate') {
|
|
84
|
+
return null
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return sysmsgPayload.payload as SysmsgTemplateMessagePayload
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export async function parseSysmsgTodoMessagePayload (message: MessagePayload) : Promise<TodoMessagePayload | null> {
|
|
91
|
+
const sysmsgPayload = await parseSysmsgMessagePayload(message)
|
|
92
|
+
if (!sysmsgPayload || sysmsgPayload.type !== 'roomtoolstips') {
|
|
93
|
+
return null
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return sysmsgPayload.payload as TodoMessagePayload
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export async function parseSysmsgRevokeMsgMessagePayload (message: MessagePayload) : Promise<RevokeMsgMessagePayload | null> {
|
|
100
|
+
const sysmsgPayload = await parseSysmsgMessagePayload(message)
|
|
101
|
+
if (!sysmsgPayload || sysmsgPayload.type !== 'revokemsg') {
|
|
102
|
+
return null
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
return sysmsgPayload.payload as RevokeMsgMessagePayload
|
|
106
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { MessagePayload } from '../../engine-schema.js'
|
|
2
|
+
import { xmlToJson } from '../utils/xml-to-json.js'
|
|
3
|
+
|
|
4
|
+
export interface VideoXmlSchema {
|
|
5
|
+
msg: {
|
|
6
|
+
videomsg: {
|
|
7
|
+
$: {
|
|
8
|
+
aeskey: string
|
|
9
|
+
cdnvideourl: string
|
|
10
|
+
cdnthumbaeskey: string
|
|
11
|
+
cdnthumburl: string
|
|
12
|
+
length: string
|
|
13
|
+
playlength: string
|
|
14
|
+
cdnthumblength: string
|
|
15
|
+
cdnthumbwidth: string
|
|
16
|
+
cdnthumbheight: string
|
|
17
|
+
fromusername: string
|
|
18
|
+
md5: string
|
|
19
|
+
newmd5: string
|
|
20
|
+
isplaceholder: string
|
|
21
|
+
rawmd5: string
|
|
22
|
+
rawlength: string
|
|
23
|
+
cdnrawvideourl: string
|
|
24
|
+
cdnrawvideoaeskey: string
|
|
25
|
+
overwritenewmsgid: string
|
|
26
|
+
originsourcemd5: string
|
|
27
|
+
isad: string
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface VideoMessagePayload {
|
|
34
|
+
aes_key: string,
|
|
35
|
+
file_id: string,
|
|
36
|
+
file_size: string,
|
|
37
|
+
play_length: string,
|
|
38
|
+
thumb_aes_key: string,
|
|
39
|
+
thumb_url: string,
|
|
40
|
+
thumb_size: string,
|
|
41
|
+
thumb_width: string,
|
|
42
|
+
thumb_height: string,
|
|
43
|
+
file_name: ''
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export async function parseVideoMessagePayload (rawPayload: MessagePayload): Promise<VideoMessagePayload> {
|
|
47
|
+
const videoXml: VideoXmlSchema = await xmlToJson(rawPayload.msg)
|
|
48
|
+
const videoSchema = videoXml.msg.videomsg.$
|
|
49
|
+
|
|
50
|
+
return {
|
|
51
|
+
aes_key: videoSchema.aeskey,
|
|
52
|
+
file_id: videoSchema.cdnvideourl,
|
|
53
|
+
file_size: videoSchema.length,
|
|
54
|
+
play_length: videoSchema.playlength,
|
|
55
|
+
thumb_aes_key: videoSchema.cdnthumbaeskey,
|
|
56
|
+
thumb_url: videoSchema.cdnthumburl,
|
|
57
|
+
thumb_size: videoSchema.cdnthumblength,
|
|
58
|
+
thumb_width: videoSchema.cdnthumbwidth,
|
|
59
|
+
thumb_height: videoSchema.cdnthumbheight,
|
|
60
|
+
file_name: '',
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface PatXmlSchema {
|
|
2
|
+
fromusername: string;
|
|
3
|
+
chatusername: string;
|
|
4
|
+
pattedusername: string;
|
|
5
|
+
template: string;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface PatMessagePayload {
|
|
9
|
+
fromUserName: string;
|
|
10
|
+
chatUserName: string;
|
|
11
|
+
pattedUserName: string;
|
|
12
|
+
template: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export async function parsePatMessagePayload (patXml: PatXmlSchema): Promise<PatMessagePayload> {
|
|
16
|
+
return {
|
|
17
|
+
chatUserName: patXml.chatusername,
|
|
18
|
+
fromUserName: patXml.fromusername,
|
|
19
|
+
pattedUserName: patXml.pattedusername,
|
|
20
|
+
template: patXml.template,
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { parseTextWithRegexList } from '../../utils/regex.js'
|
|
2
|
+
import { executeRunners } from '../../utils/runner.js'
|
|
3
|
+
import type * as PUPPET from '@juzi/wechaty-puppet'
|
|
4
|
+
import { isIMRoomId, isRoomId } from '../../utils/is-type.js'
|
|
5
|
+
|
|
6
|
+
export interface RevokeMsgXmlSchema {
|
|
7
|
+
session: string;
|
|
8
|
+
msgid: string;
|
|
9
|
+
newmsgid: string;
|
|
10
|
+
replacemsg: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export type RevokeMsgType = 'You' | 'Other';
|
|
14
|
+
|
|
15
|
+
export interface RevokeMsgMessagePayload {
|
|
16
|
+
content: string;
|
|
17
|
+
operatorNickName?: string,
|
|
18
|
+
originalMessageId: string;
|
|
19
|
+
session: string;
|
|
20
|
+
type: RevokeMsgType;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const YOU_REVOKE_REGEX_LIST = [
|
|
24
|
+
/你撤回了一条消息/,
|
|
25
|
+
/You recalled a message/,
|
|
26
|
+
]
|
|
27
|
+
const OTHER_REVOKE_REGEX_LIST = [
|
|
28
|
+
/"(.+)" 撤回了一条消息/,
|
|
29
|
+
/"(.+)" has recalled a message./,
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
export async function parseRevokeMsgMessagePayload (revokeMsgXmlSchema: RevokeMsgXmlSchema): Promise<RevokeMsgMessagePayload> {
|
|
33
|
+
let nickName: string | undefined
|
|
34
|
+
|
|
35
|
+
const youRevoke = async () => parseTextWithRegexList<RevokeMsgType>(revokeMsgXmlSchema.replacemsg, YOU_REVOKE_REGEX_LIST, async () => 'You')
|
|
36
|
+
const otherRevoke = async () => parseTextWithRegexList<RevokeMsgType>(revokeMsgXmlSchema.replacemsg, OTHER_REVOKE_REGEX_LIST, async (_, match) => {
|
|
37
|
+
nickName = match[1]
|
|
38
|
+
return 'Other'
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
const type = (await executeRunners<RevokeMsgType>([ youRevoke, otherRevoke ]))!
|
|
42
|
+
|
|
43
|
+
return {
|
|
44
|
+
content: revokeMsgXmlSchema.replacemsg,
|
|
45
|
+
operatorNickName: nickName,
|
|
46
|
+
originalMessageId: revokeMsgXmlSchema.newmsgid,
|
|
47
|
+
session: revokeMsgXmlSchema.session,
|
|
48
|
+
type,
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export async function getRevokeOriginalMessage (puppet: PUPPET.Puppet, revokemsgPayload:RevokeMsgMessagePayload): Promise<PUPPET.payloads.Message | null> {
|
|
53
|
+
const messageIdList = await puppet.messageSearch({ id: revokemsgPayload.originalMessageId })
|
|
54
|
+
if (messageIdList.length) {
|
|
55
|
+
return puppet.messagePayload(messageIdList[0]!)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return null
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export async function getRevokeOperatorIdForRoomMessage (puppet: PUPPET.Puppet, revokemsgPayload:RevokeMsgMessagePayload) : Promise<string | null> {
|
|
62
|
+
if (isRoomId(revokemsgPayload.session) || isIMRoomId(revokemsgPayload.session)) {
|
|
63
|
+
const contactIdList = await puppet.roomMemberSearch(revokemsgPayload.session, revokemsgPayload.operatorNickName!)
|
|
64
|
+
if (contactIdList.length) {
|
|
65
|
+
return contactIdList[0]!
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return null
|
|
70
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/* eslint-disable camelcase */
|
|
2
|
+
import { parseTextWithRegexList } from '../../utils/regex.js'
|
|
3
|
+
import type { Runner } from '../../utils/runner.js'
|
|
4
|
+
|
|
5
|
+
export interface SysmsgTemplateXmlSchema {
|
|
6
|
+
content_template: {
|
|
7
|
+
$: {
|
|
8
|
+
type: string;
|
|
9
|
+
};
|
|
10
|
+
plain: string;
|
|
11
|
+
template: string;
|
|
12
|
+
link_list: {
|
|
13
|
+
link: [
|
|
14
|
+
{
|
|
15
|
+
$: {
|
|
16
|
+
name: string;
|
|
17
|
+
type: string;
|
|
18
|
+
hidden?: string;
|
|
19
|
+
};
|
|
20
|
+
memberlist?: {
|
|
21
|
+
member: [
|
|
22
|
+
{
|
|
23
|
+
username?: string;
|
|
24
|
+
nickname: string;
|
|
25
|
+
}
|
|
26
|
+
];
|
|
27
|
+
};
|
|
28
|
+
separator?: string;
|
|
29
|
+
title?: string;
|
|
30
|
+
usernamelist?: {
|
|
31
|
+
username: string[];
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
];
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export interface SysmsgTemplateLinkMember {
|
|
40
|
+
userName?: string,
|
|
41
|
+
nickName: string,
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export type SysmsgTemplateLinkProfile = Array<SysmsgTemplateLinkMember>;
|
|
45
|
+
|
|
46
|
+
export interface SysmsgTemplateLinkRevoke {
|
|
47
|
+
title: string,
|
|
48
|
+
userNameList: string[],
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export type SysmsgTemplateLinkType = 'link_profile' | 'link_revoke';
|
|
52
|
+
|
|
53
|
+
export type SysmsgTemplateLinkPayload = SysmsgTemplateLinkProfile | SysmsgTemplateLinkRevoke;
|
|
54
|
+
|
|
55
|
+
export interface SysmsgTemplateLink {
|
|
56
|
+
name: string,
|
|
57
|
+
payload: SysmsgTemplateLinkPayload,
|
|
58
|
+
type: SysmsgTemplateLinkType,
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export interface SysmsgTemplateMessagePayload {
|
|
62
|
+
template: string;
|
|
63
|
+
templateLinkList: Array<SysmsgTemplateLink>; // link list is sorted by template variable name order
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* xmlToJson will return element instead of array if xml node only contains one child.
|
|
68
|
+
* @param list
|
|
69
|
+
*/
|
|
70
|
+
function toList (list: any): any[] {
|
|
71
|
+
if (!Array.isArray(list)) {
|
|
72
|
+
return [ list ]
|
|
73
|
+
} else {
|
|
74
|
+
return list
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export async function parseSysmsgTemplateMessagePayload (sysmsgTemplateXml: SysmsgTemplateXmlSchema): Promise<SysmsgTemplateMessagePayload> {
|
|
79
|
+
const linkList = toList(sysmsgTemplateXml.content_template.link_list.link)
|
|
80
|
+
|
|
81
|
+
const allLinkList = linkList.map((link): SysmsgTemplateLink => {
|
|
82
|
+
const type = link.$.type as SysmsgTemplateLinkType
|
|
83
|
+
let payload: SysmsgTemplateLinkPayload | undefined
|
|
84
|
+
|
|
85
|
+
if (type === 'link_profile') {
|
|
86
|
+
const memberList = toList(link.memberlist!.member)
|
|
87
|
+
payload = memberList.map((member: { nickname: string; username?: string; }): SysmsgTemplateLinkMember => {
|
|
88
|
+
return {
|
|
89
|
+
nickName: member.nickname,
|
|
90
|
+
userName: member.username,
|
|
91
|
+
}
|
|
92
|
+
})
|
|
93
|
+
} else if (link.$.type === 'link_revoke') {
|
|
94
|
+
payload = {
|
|
95
|
+
title: link.title!,
|
|
96
|
+
userNameList: toList(link.usernamelist!.username),
|
|
97
|
+
}
|
|
98
|
+
} else {
|
|
99
|
+
// handle more link type here
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return {
|
|
103
|
+
name: link.$.name,
|
|
104
|
+
payload: payload!,
|
|
105
|
+
type,
|
|
106
|
+
}
|
|
107
|
+
})
|
|
108
|
+
|
|
109
|
+
const template = sysmsgTemplateXml.content_template.template
|
|
110
|
+
const matches = [ ...template.matchAll(/\$(.+?)\$/g) ]
|
|
111
|
+
|
|
112
|
+
const templateLinkList = matches.map(match => {
|
|
113
|
+
const linkName = match[1]
|
|
114
|
+
return allLinkList.filter((link) => link.name === linkName)[0]!
|
|
115
|
+
})
|
|
116
|
+
|
|
117
|
+
return {
|
|
118
|
+
template,
|
|
119
|
+
templateLinkList,
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export type SysmsgTemplateHandler<T> = (templateLinkList: SysmsgTemplateLink[], matchedRegexIndex: number) => Promise<T>;
|
|
124
|
+
|
|
125
|
+
export async function parseSysmsgTemplate<T> (sysmsgTemplatePayload: SysmsgTemplateMessagePayload, regexList: RegExp[], handler: SysmsgTemplateHandler<T>) : Promise<T | null> {
|
|
126
|
+
return parseTextWithRegexList(sysmsgTemplatePayload.template, regexList, async (matchedRegexIndex) => {
|
|
127
|
+
return handler(sysmsgTemplatePayload.templateLinkList, matchedRegexIndex)
|
|
128
|
+
})
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export function createSysmsgTemplateRunner<T> (sysmsgTemplatePayload: SysmsgTemplateMessagePayload, regexList: RegExp[], handler: SysmsgTemplateHandler<T>): Runner<T> {
|
|
132
|
+
return async () => parseSysmsgTemplate<T>(sysmsgTemplatePayload, regexList, handler)
|
|
133
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/* eslint-disable camelcase */
|
|
2
|
+
export interface TodoXmlSchema {
|
|
3
|
+
op: string;
|
|
4
|
+
todoid: string;
|
|
5
|
+
username: string;
|
|
6
|
+
path: string;
|
|
7
|
+
time: number;
|
|
8
|
+
custominfo: string;
|
|
9
|
+
title: string;
|
|
10
|
+
creator: string;
|
|
11
|
+
related_msgid: string;
|
|
12
|
+
manager: string;
|
|
13
|
+
nreply: number;
|
|
14
|
+
scene: string;
|
|
15
|
+
oper: string;
|
|
16
|
+
sharekey: string;
|
|
17
|
+
sharename: string;
|
|
18
|
+
template?: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface TodoMessagePayload {
|
|
22
|
+
id: string;
|
|
23
|
+
creatorUserName: string;
|
|
24
|
+
operatorUserName: string;
|
|
25
|
+
numberOfReply: number;
|
|
26
|
+
appId: string;
|
|
27
|
+
path: string;
|
|
28
|
+
relatedMessageId: string;
|
|
29
|
+
title: string;
|
|
30
|
+
template?: string;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export async function parseTodoMessagePayload (todoXml: TodoXmlSchema): Promise<TodoMessagePayload> {
|
|
34
|
+
return {
|
|
35
|
+
appId: todoXml.username,
|
|
36
|
+
creatorUserName: todoXml.creator,
|
|
37
|
+
id: todoXml.todoid,
|
|
38
|
+
numberOfReply: todoXml.nreply,
|
|
39
|
+
operatorUserName: todoXml.oper,
|
|
40
|
+
path: todoXml.path,
|
|
41
|
+
relatedMessageId: todoXml.related_msgid,
|
|
42
|
+
template: todoXml.template,
|
|
43
|
+
title: todoXml.title,
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as PUPPET from '@juzi/wechaty-puppet'
|
|
2
|
+
import { isContactOfficialId } from '../utils/is-type.js'
|
|
3
|
+
import type { ContactPayload } from '../../engine-schema.js'
|
|
4
|
+
|
|
5
|
+
export function engineContactToWechaty (contact?: ContactPayload): PUPPET.payloads.Contact {
|
|
6
|
+
if (contact) {
|
|
7
|
+
return {
|
|
8
|
+
alias: contact.remark, // 备注
|
|
9
|
+
avatar: contact.avatar, // 头像
|
|
10
|
+
city: contact.city, // 城市
|
|
11
|
+
gender: contact.sex, // 性别
|
|
12
|
+
id: contact.wxid, // wxid
|
|
13
|
+
name: contact.name, // 昵称
|
|
14
|
+
friend: !!contact.isFriend, // 是否是好友
|
|
15
|
+
phone: [],
|
|
16
|
+
province: contact.province,
|
|
17
|
+
signature: contact.sign, // 签名
|
|
18
|
+
type: isContactOfficialId(contact.wxid) ? PUPPET.types.Contact.Official : PUPPET.types.Contact.Individual,
|
|
19
|
+
weixin: contact.wxNum,
|
|
20
|
+
}
|
|
21
|
+
} else {
|
|
22
|
+
return {
|
|
23
|
+
alias: '', // 备注
|
|
24
|
+
avatar: '', // 头像
|
|
25
|
+
city: '', // 城市
|
|
26
|
+
gender: 0, // 性别
|
|
27
|
+
id: '', // wxid
|
|
28
|
+
name: '', // 昵称
|
|
29
|
+
friend: false, // 是否是好友
|
|
30
|
+
phone: [],
|
|
31
|
+
province: '',
|
|
32
|
+
signature: '', // 签名
|
|
33
|
+
type: PUPPET.types.Contact.Individual,
|
|
34
|
+
weixin: '',
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|