@juzi/wechaty-puppet-whatsapp 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +83 -0
- package/dist/cjs/examples/ding-dong-bot.d.ts +2 -0
- package/dist/cjs/examples/ding-dong-bot.d.ts.map +1 -0
- package/dist/cjs/examples/ding-dong-bot.js +98 -0
- package/dist/cjs/examples/ding-dong-bot.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/src/config.d.ts +41 -0
- package/dist/cjs/src/config.d.ts.map +1 -0
- package/dist/cjs/src/config.js +58 -0
- package/dist/cjs/src/config.js.map +1 -0
- package/dist/cjs/src/data/cache-manager.d.ts +83 -0
- package/dist/cjs/src/data/cache-manager.d.ts.map +1 -0
- package/dist/cjs/src/data/cache-manager.js +303 -0
- package/dist/cjs/src/data/cache-manager.js.map +1 -0
- package/dist/cjs/src/data/cache-manager.spec.d.ts +2 -0
- package/dist/cjs/src/data/cache-manager.spec.d.ts.map +1 -0
- package/dist/cjs/src/data/cache-manager.spec.js +32 -0
- package/dist/cjs/src/data/cache-manager.spec.js.map +1 -0
- package/dist/cjs/src/exception/error-type.d.ts +80 -0
- package/dist/cjs/src/exception/error-type.d.ts.map +1 -0
- package/dist/cjs/src/exception/error-type.js +61 -0
- package/dist/cjs/src/exception/error-type.js.map +1 -0
- package/dist/cjs/src/exception/whatsapp-error.d.ts +4 -0
- package/dist/cjs/src/exception/whatsapp-error.d.ts.map +1 -0
- package/dist/cjs/src/exception/whatsapp-error.js +14 -0
- package/dist/cjs/src/exception/whatsapp-error.js.map +1 -0
- package/dist/cjs/src/exception/whatsapp-error.spec.d.ts +3 -0
- package/dist/cjs/src/exception/whatsapp-error.spec.d.ts.map +1 -0
- package/dist/cjs/src/exception/whatsapp-error.spec.js +27 -0
- package/dist/cjs/src/exception/whatsapp-error.spec.js.map +1 -0
- package/dist/cjs/src/helper/index.d.ts +2 -0
- package/dist/cjs/src/helper/index.d.ts.map +1 -0
- package/dist/cjs/src/helper/index.js +3 -0
- package/dist/cjs/src/helper/index.js.map +1 -0
- package/dist/cjs/src/helper/miscellaneous.d.ts +8 -0
- package/dist/cjs/src/helper/miscellaneous.d.ts.map +1 -0
- package/dist/cjs/src/helper/miscellaneous.js +48 -0
- package/dist/cjs/src/helper/miscellaneous.js.map +1 -0
- package/dist/cjs/src/helper/pure-function/contact-raw-payload-parser.d.ts +4 -0
- package/dist/cjs/src/helper/pure-function/contact-raw-payload-parser.d.ts.map +1 -0
- package/dist/cjs/src/helper/pure-function/contact-raw-payload-parser.js +62 -0
- package/dist/cjs/src/helper/pure-function/contact-raw-payload-parser.js.map +1 -0
- package/dist/cjs/src/helper/pure-function/contact-raw-payload-parser.spec.d.ts +2 -0
- package/dist/cjs/src/helper/pure-function/contact-raw-payload-parser.spec.d.ts.map +1 -0
- package/dist/cjs/src/helper/pure-function/contact-raw-payload-parser.spec.js +86 -0
- package/dist/cjs/src/helper/pure-function/contact-raw-payload-parser.spec.js.map +1 -0
- package/dist/cjs/src/helper/pure-function/convert-function.d.ts +4 -0
- package/dist/cjs/src/helper/pure-function/convert-function.d.ts.map +1 -0
- package/dist/cjs/src/helper/pure-function/convert-function.js +17 -0
- package/dist/cjs/src/helper/pure-function/convert-function.js.map +1 -0
- package/dist/cjs/src/helper/pure-function/index.d.ts +5 -0
- package/dist/cjs/src/helper/pure-function/index.d.ts.map +1 -0
- package/dist/cjs/src/helper/pure-function/index.js +21 -0
- package/dist/cjs/src/helper/pure-function/index.js.map +1 -0
- package/dist/cjs/src/helper/pure-function/message-raw-payload-parser.d.ts +4 -0
- package/dist/cjs/src/helper/pure-function/message-raw-payload-parser.d.ts.map +1 -0
- package/dist/cjs/src/helper/pure-function/message-raw-payload-parser.js +136 -0
- package/dist/cjs/src/helper/pure-function/message-raw-payload-parser.js.map +1 -0
- package/dist/cjs/src/helper/pure-function/message-raw-payload-parser.spec.d.ts +2 -0
- package/dist/cjs/src/helper/pure-function/message-raw-payload-parser.spec.d.ts.map +1 -0
- package/dist/cjs/src/helper/pure-function/message-raw-payload-parser.spec.js +229 -0
- package/dist/cjs/src/helper/pure-function/message-raw-payload-parser.spec.js.map +1 -0
- package/dist/cjs/src/helper/pure-function/room-event-generator.d.ts +28 -0
- package/dist/cjs/src/helper/pure-function/room-event-generator.d.ts.map +1 -0
- package/dist/cjs/src/helper/pure-function/room-event-generator.js +59 -0
- package/dist/cjs/src/helper/pure-function/room-event-generator.js.map +1 -0
- package/dist/cjs/src/helper/pure-function/room-event-generator.spec.d.ts +2 -0
- package/dist/cjs/src/helper/pure-function/room-event-generator.spec.d.ts.map +1 -0
- package/dist/cjs/src/helper/pure-function/room-event-generator.spec.js +101 -0
- package/dist/cjs/src/helper/pure-function/room-event-generator.spec.js.map +1 -0
- package/dist/cjs/src/helper/pure-function/room-raw-payload-parser.d.ts +4 -0
- package/dist/cjs/src/helper/pure-function/room-raw-payload-parser.d.ts.map +1 -0
- package/dist/cjs/src/helper/pure-function/room-raw-payload-parser.js +24 -0
- package/dist/cjs/src/helper/pure-function/room-raw-payload-parser.js.map +1 -0
- package/dist/cjs/src/helper/pure-function/room-raw-payload-parser.spec.d.ts +2 -0
- package/dist/cjs/src/helper/pure-function/room-raw-payload-parser.spec.d.ts.map +1 -0
- package/dist/cjs/src/helper/pure-function/room-raw-payload-parser.spec.js +68 -0
- package/dist/cjs/src/helper/pure-function/room-raw-payload-parser.spec.js.map +1 -0
- package/dist/cjs/src/helper/pure-function/vcard-parser.d.ts +28 -0
- package/dist/cjs/src/helper/pure-function/vcard-parser.d.ts.map +1 -0
- package/dist/cjs/src/helper/pure-function/vcard-parser.js +109 -0
- package/dist/cjs/src/helper/pure-function/vcard-parser.js.map +1 -0
- package/dist/cjs/src/helper/schedule/schedule-manager.d.ts +19 -0
- package/dist/cjs/src/helper/schedule/schedule-manager.d.ts.map +1 -0
- package/dist/cjs/src/helper/schedule/schedule-manager.js +49 -0
- package/dist/cjs/src/helper/schedule/schedule-manager.js.map +1 -0
- package/dist/cjs/src/helper/schedule/schedule-manager.spec.d.ts +2 -0
- package/dist/cjs/src/helper/schedule/schedule-manager.spec.d.ts.map +1 -0
- package/dist/cjs/src/helper/schedule/schedule-manager.spec.js +45 -0
- package/dist/cjs/src/helper/schedule/schedule-manager.spec.js.map +1 -0
- package/dist/cjs/src/manager-event.d.ts +18 -0
- package/dist/cjs/src/manager-event.d.ts.map +1 -0
- package/dist/cjs/src/manager-event.js +3 -0
- package/dist/cjs/src/manager-event.js.map +1 -0
- package/dist/cjs/src/manager.d.ts +67 -0
- package/dist/cjs/src/manager.d.ts.map +1 -0
- package/dist/cjs/src/manager.js +270 -0
- package/dist/cjs/src/manager.js.map +1 -0
- package/dist/cjs/src/manager.spec.d.ts +3 -0
- package/dist/cjs/src/manager.spec.d.ts.map +1 -0
- package/dist/cjs/src/manager.spec.js +38 -0
- package/dist/cjs/src/manager.spec.js.map +1 -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/mod.js.map +1 -0
- package/dist/cjs/src/package-json.d.ts +6 -0
- package/dist/cjs/src/package-json.d.ts.map +1 -0
- package/dist/cjs/src/package-json.js +93 -0
- package/dist/cjs/src/package-json.js.map +1 -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 +10 -0
- package/dist/cjs/src/package-json.spec.js.map +1 -0
- package/dist/cjs/src/puppet-mixin/contact-self.d.ts +5 -0
- package/dist/cjs/src/puppet-mixin/contact-self.d.ts.map +1 -0
- package/dist/cjs/src/puppet-mixin/contact-self.js +45 -0
- package/dist/cjs/src/puppet-mixin/contact-self.js.map +1 -0
- package/dist/cjs/src/puppet-mixin/contact.d.ts +16 -0
- package/dist/cjs/src/puppet-mixin/contact.d.ts.map +1 -0
- package/dist/cjs/src/puppet-mixin/contact.js +124 -0
- package/dist/cjs/src/puppet-mixin/contact.js.map +1 -0
- package/dist/cjs/src/puppet-mixin/conversation.d.ts +2 -0
- package/dist/cjs/src/puppet-mixin/conversation.d.ts.map +1 -0
- package/dist/cjs/src/puppet-mixin/conversation.js +35 -0
- package/dist/cjs/src/puppet-mixin/conversation.js.map +1 -0
- package/dist/cjs/src/puppet-mixin/friendship.d.ts +12 -0
- package/dist/cjs/src/puppet-mixin/friendship.d.ts.map +1 -0
- package/dist/cjs/src/puppet-mixin/friendship.js +99 -0
- package/dist/cjs/src/puppet-mixin/friendship.js.map +1 -0
- package/dist/cjs/src/puppet-mixin/message.d.ts +57 -0
- package/dist/cjs/src/puppet-mixin/message.d.ts.map +1 -0
- package/dist/cjs/src/puppet-mixin/message.js +327 -0
- package/dist/cjs/src/puppet-mixin/message.js.map +1 -0
- package/dist/cjs/src/puppet-mixin/room.d.ts +42 -0
- package/dist/cjs/src/puppet-mixin/room.d.ts.map +1 -0
- package/dist/cjs/src/puppet-mixin/room.js +319 -0
- package/dist/cjs/src/puppet-mixin/room.js.map +1 -0
- package/dist/cjs/src/puppet-mixin/tag.d.ts +5 -0
- package/dist/cjs/src/puppet-mixin/tag.d.ts.map +1 -0
- package/dist/cjs/src/puppet-mixin/tag.js +50 -0
- package/dist/cjs/src/puppet-mixin/tag.js.map +1 -0
- package/dist/cjs/src/puppet-whatsapp.d.ts +145 -0
- package/dist/cjs/src/puppet-whatsapp.d.ts.map +1 -0
- package/dist/cjs/src/puppet-whatsapp.js +309 -0
- package/dist/cjs/src/puppet-whatsapp.js.map +1 -0
- package/dist/cjs/src/puppet-whatsapp.spec.d.ts +3 -0
- package/dist/cjs/src/puppet-whatsapp.spec.d.ts.map +1 -0
- package/dist/cjs/src/puppet-whatsapp.spec.js +25 -0
- package/dist/cjs/src/puppet-whatsapp.spec.js.map +1 -0
- package/dist/cjs/src/request/rate-manager.d.ts +21 -0
- package/dist/cjs/src/request/rate-manager.d.ts.map +1 -0
- package/dist/cjs/src/request/rate-manager.js +92 -0
- package/dist/cjs/src/request/rate-manager.js.map +1 -0
- package/dist/cjs/src/request/request-manager.d.ts +54 -0
- package/dist/cjs/src/request/request-manager.d.ts.map +1 -0
- package/dist/cjs/src/request/request-manager.js +128 -0
- package/dist/cjs/src/request/request-manager.js.map +1 -0
- package/dist/cjs/src/request/request-pool.d.ts +10 -0
- package/dist/cjs/src/request/request-pool.d.ts.map +1 -0
- package/dist/cjs/src/request/request-pool.js +47 -0
- package/dist/cjs/src/request/request-pool.js.map +1 -0
- package/dist/cjs/src/request/request-pool.spec.d.ts +2 -0
- package/dist/cjs/src/request/request-pool.spec.d.ts.map +1 -0
- package/dist/cjs/src/request/request-pool.spec.js +36 -0
- package/dist/cjs/src/request/request-pool.spec.js.map +1 -0
- package/dist/cjs/src/schema/event-name.d.ts +9 -0
- package/dist/cjs/src/schema/event-name.d.ts.map +1 -0
- package/dist/cjs/src/schema/event-name.js +13 -0
- package/dist/cjs/src/schema/event-name.js.map +1 -0
- package/dist/cjs/src/schema/index.d.ts +2 -0
- package/dist/cjs/src/schema/index.d.ts.map +1 -0
- package/dist/cjs/src/schema/index.js +18 -0
- package/dist/cjs/src/schema/index.js.map +1 -0
- package/dist/cjs/src/schema/whatsapp-interface.d.ts +18 -0
- package/dist/cjs/src/schema/whatsapp-interface.d.ts.map +1 -0
- package/dist/cjs/src/schema/whatsapp-interface.js +26 -0
- package/dist/cjs/src/schema/whatsapp-interface.js.map +1 -0
- package/dist/cjs/src/schema/whatsapp-type.d.ts +42 -0
- package/dist/cjs/src/schema/whatsapp-type.d.ts.map +1 -0
- package/dist/cjs/src/schema/whatsapp-type.js +3 -0
- package/dist/cjs/src/schema/whatsapp-type.js.map +1 -0
- package/dist/cjs/src/whatsapp/event-handler/group-event-handler.d.ts +8 -0
- package/dist/cjs/src/whatsapp/event-handler/group-event-handler.d.ts.map +1 -0
- package/dist/cjs/src/whatsapp/event-handler/group-event-handler.js +84 -0
- package/dist/cjs/src/whatsapp/event-handler/group-event-handler.js.map +1 -0
- package/dist/cjs/src/whatsapp/event-handler/login-event-handler.d.ts +24 -0
- package/dist/cjs/src/whatsapp/event-handler/login-event-handler.d.ts.map +1 -0
- package/dist/cjs/src/whatsapp/event-handler/login-event-handler.js +203 -0
- package/dist/cjs/src/whatsapp/event-handler/login-event-handler.js.map +1 -0
- package/dist/cjs/src/whatsapp/event-handler/message-event-handler.d.ts +35 -0
- package/dist/cjs/src/whatsapp/event-handler/message-event-handler.d.ts.map +1 -0
- package/dist/cjs/src/whatsapp/event-handler/message-event-handler.js +203 -0
- package/dist/cjs/src/whatsapp/event-handler/message-event-handler.js.map +1 -0
- package/dist/cjs/src/whatsapp/whatsapp-base.d.ts +26 -0
- package/dist/cjs/src/whatsapp/whatsapp-base.d.ts.map +1 -0
- package/dist/cjs/src/whatsapp/whatsapp-base.js +69 -0
- package/dist/cjs/src/whatsapp/whatsapp-base.js.map +1 -0
- package/dist/cjs/src/whatsapp/whatsapp-manager.d.ts +16 -0
- package/dist/cjs/src/whatsapp/whatsapp-manager.d.ts.map +1 -0
- package/dist/cjs/src/whatsapp/whatsapp-manager.js +134 -0
- package/dist/cjs/src/whatsapp/whatsapp-manager.js.map +1 -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 +8 -0
- package/dist/cjs/tests/integration.spec.js.map +1 -0
- package/dist/cjs/tests/memory-card.spec.d.ts +2 -0
- package/dist/cjs/tests/memory-card.spec.d.ts.map +1 -0
- package/dist/cjs/tests/memory-card.spec.js +25 -0
- package/dist/cjs/tests/memory-card.spec.js.map +1 -0
- package/dist/cjs/tests/qrcode.spec.d.ts +2 -0
- package/dist/cjs/tests/qrcode.spec.d.ts.map +1 -0
- package/dist/cjs/tests/qrcode.spec.js +51 -0
- package/dist/cjs/tests/qrcode.spec.js.map +1 -0
- package/dist/esm/examples/ding-dong-bot.d.ts +2 -0
- package/dist/esm/examples/ding-dong-bot.d.ts.map +1 -0
- package/dist/esm/examples/ding-dong-bot.js +93 -0
- package/dist/esm/examples/ding-dong-bot.js.map +1 -0
- package/dist/esm/src/config.d.ts +41 -0
- package/dist/esm/src/config.d.ts.map +1 -0
- package/dist/esm/src/config.js +50 -0
- package/dist/esm/src/config.js.map +1 -0
- package/dist/esm/src/data/cache-manager.d.ts +83 -0
- package/dist/esm/src/data/cache-manager.d.ts.map +1 -0
- package/dist/esm/src/data/cache-manager.js +273 -0
- package/dist/esm/src/data/cache-manager.js.map +1 -0
- package/dist/esm/src/data/cache-manager.spec.d.ts +2 -0
- package/dist/esm/src/data/cache-manager.spec.d.ts.map +1 -0
- package/dist/esm/src/data/cache-manager.spec.js +30 -0
- package/dist/esm/src/data/cache-manager.spec.js.map +1 -0
- package/dist/esm/src/exception/error-type.d.ts +80 -0
- package/dist/esm/src/exception/error-type.d.ts.map +1 -0
- package/dist/esm/src/exception/error-type.js +58 -0
- package/dist/esm/src/exception/error-type.js.map +1 -0
- package/dist/esm/src/exception/whatsapp-error.d.ts +4 -0
- package/dist/esm/src/exception/whatsapp-error.d.ts.map +1 -0
- package/dist/esm/src/exception/whatsapp-error.js +11 -0
- package/dist/esm/src/exception/whatsapp-error.js.map +1 -0
- package/dist/esm/src/exception/whatsapp-error.spec.d.ts +3 -0
- package/dist/esm/src/exception/whatsapp-error.spec.d.ts.map +1 -0
- package/dist/esm/src/exception/whatsapp-error.spec.js +22 -0
- package/dist/esm/src/exception/whatsapp-error.spec.js.map +1 -0
- package/dist/esm/src/helper/index.d.ts +2 -0
- package/dist/esm/src/helper/index.d.ts.map +1 -0
- package/dist/esm/src/helper/index.js +2 -0
- package/dist/esm/src/helper/index.js.map +1 -0
- package/dist/esm/src/helper/miscellaneous.d.ts +8 -0
- package/dist/esm/src/helper/miscellaneous.d.ts.map +1 -0
- package/dist/esm/src/helper/miscellaneous.js +38 -0
- package/dist/esm/src/helper/miscellaneous.js.map +1 -0
- package/dist/esm/src/helper/pure-function/contact-raw-payload-parser.d.ts +4 -0
- package/dist/esm/src/helper/pure-function/contact-raw-payload-parser.d.ts.map +1 -0
- package/dist/esm/src/helper/pure-function/contact-raw-payload-parser.js +35 -0
- package/dist/esm/src/helper/pure-function/contact-raw-payload-parser.js.map +1 -0
- package/dist/esm/src/helper/pure-function/contact-raw-payload-parser.spec.d.ts +2 -0
- package/dist/esm/src/helper/pure-function/contact-raw-payload-parser.spec.d.ts.map +1 -0
- package/dist/esm/src/helper/pure-function/contact-raw-payload-parser.spec.js +61 -0
- package/dist/esm/src/helper/pure-function/contact-raw-payload-parser.spec.js.map +1 -0
- package/dist/esm/src/helper/pure-function/convert-function.d.ts +4 -0
- package/dist/esm/src/helper/pure-function/convert-function.d.ts.map +1 -0
- package/dist/esm/src/helper/pure-function/convert-function.js +12 -0
- package/dist/esm/src/helper/pure-function/convert-function.js.map +1 -0
- package/dist/esm/src/helper/pure-function/index.d.ts +5 -0
- package/dist/esm/src/helper/pure-function/index.d.ts.map +1 -0
- package/dist/esm/src/helper/pure-function/index.js +5 -0
- package/dist/esm/src/helper/pure-function/index.js.map +1 -0
- package/dist/esm/src/helper/pure-function/message-raw-payload-parser.d.ts +4 -0
- package/dist/esm/src/helper/pure-function/message-raw-payload-parser.d.ts.map +1 -0
- package/dist/esm/src/helper/pure-function/message-raw-payload-parser.js +106 -0
- package/dist/esm/src/helper/pure-function/message-raw-payload-parser.js.map +1 -0
- package/dist/esm/src/helper/pure-function/message-raw-payload-parser.spec.d.ts +2 -0
- package/dist/esm/src/helper/pure-function/message-raw-payload-parser.spec.d.ts.map +1 -0
- package/dist/esm/src/helper/pure-function/message-raw-payload-parser.spec.js +227 -0
- package/dist/esm/src/helper/pure-function/message-raw-payload-parser.spec.js.map +1 -0
- package/dist/esm/src/helper/pure-function/room-event-generator.d.ts +28 -0
- package/dist/esm/src/helper/pure-function/room-event-generator.d.ts.map +1 -0
- package/dist/esm/src/helper/pure-function/room-event-generator.js +53 -0
- package/dist/esm/src/helper/pure-function/room-event-generator.js.map +1 -0
- package/dist/esm/src/helper/pure-function/room-event-generator.spec.d.ts +2 -0
- package/dist/esm/src/helper/pure-function/room-event-generator.spec.d.ts.map +1 -0
- package/dist/esm/src/helper/pure-function/room-event-generator.spec.js +99 -0
- package/dist/esm/src/helper/pure-function/room-event-generator.spec.js.map +1 -0
- package/dist/esm/src/helper/pure-function/room-raw-payload-parser.d.ts +4 -0
- package/dist/esm/src/helper/pure-function/room-raw-payload-parser.d.ts.map +1 -0
- package/dist/esm/src/helper/pure-function/room-raw-payload-parser.js +17 -0
- package/dist/esm/src/helper/pure-function/room-raw-payload-parser.js.map +1 -0
- package/dist/esm/src/helper/pure-function/room-raw-payload-parser.spec.d.ts +2 -0
- package/dist/esm/src/helper/pure-function/room-raw-payload-parser.spec.d.ts.map +1 -0
- package/dist/esm/src/helper/pure-function/room-raw-payload-parser.spec.js +66 -0
- package/dist/esm/src/helper/pure-function/room-raw-payload-parser.spec.js.map +1 -0
- package/dist/esm/src/helper/pure-function/vcard-parser.d.ts +28 -0
- package/dist/esm/src/helper/pure-function/vcard-parser.d.ts.map +1 -0
- package/dist/esm/src/helper/pure-function/vcard-parser.js +102 -0
- package/dist/esm/src/helper/pure-function/vcard-parser.js.map +1 -0
- package/dist/esm/src/helper/schedule/schedule-manager.d.ts +19 -0
- package/dist/esm/src/helper/schedule/schedule-manager.d.ts.map +1 -0
- package/dist/esm/src/helper/schedule/schedule-manager.js +43 -0
- package/dist/esm/src/helper/schedule/schedule-manager.js.map +1 -0
- package/dist/esm/src/helper/schedule/schedule-manager.spec.d.ts +2 -0
- package/dist/esm/src/helper/schedule/schedule-manager.spec.d.ts.map +1 -0
- package/dist/esm/src/helper/schedule/schedule-manager.spec.js +40 -0
- package/dist/esm/src/helper/schedule/schedule-manager.spec.js.map +1 -0
- package/dist/esm/src/manager-event.d.ts +18 -0
- package/dist/esm/src/manager-event.d.ts.map +1 -0
- package/dist/esm/src/manager-event.js +2 -0
- package/dist/esm/src/manager-event.js.map +1 -0
- package/dist/esm/src/manager.d.ts +67 -0
- package/dist/esm/src/manager.d.ts.map +1 -0
- package/dist/esm/src/manager.js +264 -0
- package/dist/esm/src/manager.js.map +1 -0
- package/dist/esm/src/manager.spec.d.ts +3 -0
- package/dist/esm/src/manager.spec.d.ts.map +1 -0
- package/dist/esm/src/manager.spec.js +33 -0
- package/dist/esm/src/manager.spec.js.map +1 -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 +5 -0
- package/dist/esm/src/mod.js.map +1 -0
- package/dist/esm/src/package-json.d.ts +6 -0
- package/dist/esm/src/package-json.d.ts.map +1 -0
- package/dist/esm/src/package-json.js +90 -0
- package/dist/esm/src/package-json.js.map +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 +8 -0
- package/dist/esm/src/package-json.spec.js.map +1 -0
- package/dist/esm/src/puppet-mixin/contact-self.d.ts +5 -0
- package/dist/esm/src/puppet-mixin/contact-self.d.ts.map +1 -0
- package/dist/esm/src/puppet-mixin/contact-self.js +16 -0
- package/dist/esm/src/puppet-mixin/contact-self.js.map +1 -0
- package/dist/esm/src/puppet-mixin/contact.d.ts +16 -0
- package/dist/esm/src/puppet-mixin/contact.d.ts.map +1 -0
- package/dist/esm/src/puppet-mixin/contact.js +87 -0
- package/dist/esm/src/puppet-mixin/contact.js.map +1 -0
- package/dist/esm/src/puppet-mixin/conversation.d.ts +2 -0
- package/dist/esm/src/puppet-mixin/conversation.d.ts.map +1 -0
- package/dist/esm/src/puppet-mixin/conversation.js +8 -0
- package/dist/esm/src/puppet-mixin/conversation.js.map +1 -0
- package/dist/esm/src/puppet-mixin/friendship.d.ts +12 -0
- package/dist/esm/src/puppet-mixin/friendship.d.ts.map +1 -0
- package/dist/esm/src/puppet-mixin/friendship.js +63 -0
- package/dist/esm/src/puppet-mixin/friendship.js.map +1 -0
- package/dist/esm/src/puppet-mixin/message.d.ts +57 -0
- package/dist/esm/src/puppet-mixin/message.d.ts.map +1 -0
- package/dist/esm/src/puppet-mixin/message.js +282 -0
- package/dist/esm/src/puppet-mixin/message.js.map +1 -0
- package/dist/esm/src/puppet-mixin/room.d.ts +42 -0
- package/dist/esm/src/puppet-mixin/room.d.ts.map +1 -0
- package/dist/esm/src/puppet-mixin/room.js +273 -0
- package/dist/esm/src/puppet-mixin/room.js.map +1 -0
- package/dist/esm/src/puppet-mixin/tag.d.ts +5 -0
- package/dist/esm/src/puppet-mixin/tag.d.ts.map +1 -0
- package/dist/esm/src/puppet-mixin/tag.js +20 -0
- package/dist/esm/src/puppet-mixin/tag.js.map +1 -0
- package/dist/esm/src/puppet-whatsapp.d.ts +145 -0
- package/dist/esm/src/puppet-whatsapp.d.ts.map +1 -0
- package/dist/esm/src/puppet-whatsapp.js +280 -0
- package/dist/esm/src/puppet-whatsapp.js.map +1 -0
- package/dist/esm/src/puppet-whatsapp.spec.d.ts +3 -0
- package/dist/esm/src/puppet-whatsapp.spec.d.ts.map +1 -0
- package/dist/esm/src/puppet-whatsapp.spec.js +23 -0
- package/dist/esm/src/puppet-whatsapp.spec.js.map +1 -0
- package/dist/esm/src/request/rate-manager.d.ts +21 -0
- package/dist/esm/src/request/rate-manager.d.ts.map +1 -0
- package/dist/esm/src/request/rate-manager.js +85 -0
- package/dist/esm/src/request/rate-manager.js.map +1 -0
- package/dist/esm/src/request/request-manager.d.ts +54 -0
- package/dist/esm/src/request/request-manager.d.ts.map +1 -0
- package/dist/esm/src/request/request-manager.js +124 -0
- package/dist/esm/src/request/request-manager.js.map +1 -0
- package/dist/esm/src/request/request-pool.d.ts +10 -0
- package/dist/esm/src/request/request-pool.d.ts.map +1 -0
- package/dist/esm/src/request/request-pool.js +40 -0
- package/dist/esm/src/request/request-pool.js.map +1 -0
- package/dist/esm/src/request/request-pool.spec.d.ts +2 -0
- package/dist/esm/src/request/request-pool.spec.d.ts.map +1 -0
- package/dist/esm/src/request/request-pool.spec.js +34 -0
- package/dist/esm/src/request/request-pool.spec.js.map +1 -0
- package/dist/esm/src/schema/event-name.d.ts +9 -0
- package/dist/esm/src/schema/event-name.d.ts.map +1 -0
- package/dist/esm/src/schema/event-name.js +10 -0
- package/dist/esm/src/schema/event-name.js.map +1 -0
- package/dist/esm/src/schema/index.d.ts +2 -0
- package/dist/esm/src/schema/index.d.ts.map +1 -0
- package/dist/esm/src/schema/index.js +2 -0
- package/dist/esm/src/schema/index.js.map +1 -0
- package/dist/esm/src/schema/whatsapp-interface.d.ts +18 -0
- package/dist/esm/src/schema/whatsapp-interface.d.ts.map +1 -0
- package/dist/esm/src/schema/whatsapp-interface.js +20 -0
- package/dist/esm/src/schema/whatsapp-interface.js.map +1 -0
- package/dist/esm/src/schema/whatsapp-type.d.ts +42 -0
- package/dist/esm/src/schema/whatsapp-type.d.ts.map +1 -0
- package/dist/esm/src/schema/whatsapp-type.js +2 -0
- package/dist/esm/src/schema/whatsapp-type.js.map +1 -0
- package/dist/esm/src/whatsapp/event-handler/group-event-handler.d.ts +8 -0
- package/dist/esm/src/whatsapp/event-handler/group-event-handler.d.ts.map +1 -0
- package/dist/esm/src/whatsapp/event-handler/group-event-handler.js +78 -0
- package/dist/esm/src/whatsapp/event-handler/group-event-handler.js.map +1 -0
- package/dist/esm/src/whatsapp/event-handler/login-event-handler.d.ts +24 -0
- package/dist/esm/src/whatsapp/event-handler/login-event-handler.d.ts.map +1 -0
- package/dist/esm/src/whatsapp/event-handler/login-event-handler.js +174 -0
- package/dist/esm/src/whatsapp/event-handler/login-event-handler.js.map +1 -0
- package/dist/esm/src/whatsapp/event-handler/message-event-handler.d.ts +35 -0
- package/dist/esm/src/whatsapp/event-handler/message-event-handler.d.ts.map +1 -0
- package/dist/esm/src/whatsapp/event-handler/message-event-handler.js +197 -0
- package/dist/esm/src/whatsapp/event-handler/message-event-handler.js.map +1 -0
- package/dist/esm/src/whatsapp/whatsapp-base.d.ts +26 -0
- package/dist/esm/src/whatsapp/whatsapp-base.d.ts.map +1 -0
- package/dist/esm/src/whatsapp/whatsapp-base.js +63 -0
- package/dist/esm/src/whatsapp/whatsapp-base.js.map +1 -0
- package/dist/esm/src/whatsapp/whatsapp-manager.d.ts +16 -0
- package/dist/esm/src/whatsapp/whatsapp-manager.d.ts.map +1 -0
- package/dist/esm/src/whatsapp/whatsapp-manager.js +128 -0
- package/dist/esm/src/whatsapp/whatsapp-manager.js.map +1 -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 +6 -0
- package/dist/esm/tests/integration.spec.js.map +1 -0
- package/dist/esm/tests/memory-card.spec.d.ts +2 -0
- package/dist/esm/tests/memory-card.spec.d.ts.map +1 -0
- package/dist/esm/tests/memory-card.spec.js +23 -0
- package/dist/esm/tests/memory-card.spec.js.map +1 -0
- package/dist/esm/tests/qrcode.spec.d.ts +2 -0
- package/dist/esm/tests/qrcode.spec.d.ts.map +1 -0
- package/dist/esm/tests/qrcode.spec.js +26 -0
- package/dist/esm/tests/qrcode.spec.js.map +1 -0
- package/package.json +89 -0
- package/src/config.ts +70 -0
- package/src/data/cache-manager.spec.ts +33 -0
- package/src/data/cache-manager.ts +331 -0
- package/src/exception/error-type.ts +59 -0
- package/src/exception/whatsapp-error.spec.ts +26 -0
- package/src/exception/whatsapp-error.ts +15 -0
- package/src/helper/index.ts +3 -0
- package/src/helper/miscellaneous.ts +45 -0
- package/src/helper/pure-function/contact-raw-payload-parser.spec.ts +67 -0
- package/src/helper/pure-function/contact-raw-payload-parser.ts +36 -0
- package/src/helper/pure-function/convert-function.ts +24 -0
- package/src/helper/pure-function/index.ts +4 -0
- package/src/helper/pure-function/message-raw-payload-parser.spec.ts +243 -0
- package/src/helper/pure-function/message-raw-payload-parser.ts +117 -0
- package/src/helper/pure-function/room-event-generator.spec.ts +120 -0
- package/src/helper/pure-function/room-event-generator.ts +63 -0
- package/src/helper/pure-function/room-raw-payload-parser.spec.ts +70 -0
- package/src/helper/pure-function/room-raw-payload-parser.ts +19 -0
- package/src/helper/pure-function/vcard-parser.ts +128 -0
- package/src/helper/schedule/schedule-manager.spec.ts +46 -0
- package/src/helper/schedule/schedule-manager.ts +52 -0
- package/src/manager-event.ts +18 -0
- package/src/manager.spec.ts +40 -0
- package/src/manager.ts +297 -0
- package/src/mod.ts +8 -0
- package/src/package-json.spec.ts +10 -0
- package/src/package-json.ts +93 -0
- package/src/puppet-mixin/contact-self.ts +20 -0
- package/src/puppet-mixin/contact.ts +107 -0
- package/src/puppet-mixin/conversation.ts +12 -0
- package/src/puppet-mixin/friendship.ts +88 -0
- package/src/puppet-mixin/message.ts +311 -0
- package/src/puppet-mixin/room.ts +334 -0
- package/src/puppet-mixin/tag.ts +34 -0
- package/src/puppet-whatsapp.spec.ts +30 -0
- package/src/puppet-whatsapp.ts +339 -0
- package/src/request/rate-manager.ts +118 -0
- package/src/request/request-manager.ts +174 -0
- package/src/request/request-pool.spec.ts +36 -0
- package/src/request/request-pool.ts +45 -0
- package/src/schema/event-name.ts +8 -0
- package/src/schema/fix-type.d.ts +63 -0
- package/src/schema/index.ts +1 -0
- package/src/schema/whatsapp-interface.ts +31 -0
- package/src/schema/whatsapp-type.ts +79 -0
- package/src/typings.d.ts +0 -0
- package/src/whatsapp/event-handler/group-event-handler.ts +95 -0
- package/src/whatsapp/event-handler/login-event-handler.ts +210 -0
- package/src/whatsapp/event-handler/message-event-handler.ts +230 -0
- package/src/whatsapp/whatsapp-base.ts +78 -0
- package/src/whatsapp/whatsapp-manager.ts +160 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was auto generated from scripts/generate-version.sh
|
|
3
|
+
*/
|
|
4
|
+
import type { PackageJson } from 'type-fest'
|
|
5
|
+
export const packageJson: PackageJson = {
|
|
6
|
+
"name": "@juzi/wechaty-puppet-whatsapp",
|
|
7
|
+
"version": "1.0.0",
|
|
8
|
+
"description": "Wechaty Puppet for WhatsApp",
|
|
9
|
+
"type": "module",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"import": "./dist/esm/src/mod.js",
|
|
13
|
+
"require": "./dist/cjs/src/mod.js"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"typings": "./dist/esm/src/mod.d.ts",
|
|
17
|
+
"engines": {
|
|
18
|
+
"node": ">=16",
|
|
19
|
+
"npm": ">=7"
|
|
20
|
+
},
|
|
21
|
+
"scripts": {
|
|
22
|
+
"clean": "shx rm -fr dist/*",
|
|
23
|
+
"dist": "npm-run-all clean build fixup",
|
|
24
|
+
"build": "tsc && tsc -p tsconfig.cjs.json",
|
|
25
|
+
"fixup": "shx echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json",
|
|
26
|
+
"start": "cross-env NODE_OPTIONS='--no-warnings --loader=ts-node/esm' node examples/ding-dong-bot.ts",
|
|
27
|
+
"lint": "npm-run-all lint:es lint:ts lint:md",
|
|
28
|
+
"lint:md": "markdownlint README.md",
|
|
29
|
+
"lint:ts": "tsc --isolatedModules --noEmit",
|
|
30
|
+
"lint:es": "eslint \"src/**/*.ts\" \"tests/**/*.spec.ts\" --ignore-pattern tests/fixtures/",
|
|
31
|
+
"test": "npm-run-all lint test:unit",
|
|
32
|
+
"test:pack": "bash -x scripts/npm-pack-testing.sh",
|
|
33
|
+
"test:unit": "tap --node-arg=--loader=ts-node/esm --node-arg=--no-warnings 'src/**/*.spec.ts' 'tests/**/*.spec.ts'"
|
|
34
|
+
},
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "git+https://github.com/juzibot/puppet-whatsapp.git"
|
|
38
|
+
},
|
|
39
|
+
"keywords": [
|
|
40
|
+
"chatie",
|
|
41
|
+
"wechaty",
|
|
42
|
+
"chatbot",
|
|
43
|
+
"bot",
|
|
44
|
+
"wechat",
|
|
45
|
+
"sdk",
|
|
46
|
+
"puppet",
|
|
47
|
+
"mock"
|
|
48
|
+
],
|
|
49
|
+
"author": "Huan LI <zixia@zixia.net>",
|
|
50
|
+
"license": "Apache-2.0",
|
|
51
|
+
"bugs": {
|
|
52
|
+
"url": "https://github.com/juzibot/puppet-whatsapp/issues"
|
|
53
|
+
},
|
|
54
|
+
"homepage": "https://github.com/juzibot/puppet-whatsapp#readme",
|
|
55
|
+
"devDependencies": {
|
|
56
|
+
"@chatie/eslint-config": "^1.0.4",
|
|
57
|
+
"@chatie/semver": "^0.4.7",
|
|
58
|
+
"@chatie/tsconfig": "^4.6.3",
|
|
59
|
+
"@types/cuid": "^2.0.1",
|
|
60
|
+
"@types/fs-extra": "^9.0.13",
|
|
61
|
+
"@types/mime": "^2.0.3",
|
|
62
|
+
"@types/node-schedule": "^1.3.2",
|
|
63
|
+
"@types/qrcode-terminal": "^0.12.0",
|
|
64
|
+
"qrcode-terminal": "^0.12.0",
|
|
65
|
+
"tstest": "^1.2.8"
|
|
66
|
+
},
|
|
67
|
+
"peerDependencies": {
|
|
68
|
+
"@juzi/wechaty-puppet": "1.0.0"
|
|
69
|
+
},
|
|
70
|
+
"dependencies": {
|
|
71
|
+
"@juzi/whatsapp-web.js": "^1.16.10",
|
|
72
|
+
"ee-ts": "^1.0.2",
|
|
73
|
+
"flash-store": "^1.0.6",
|
|
74
|
+
"fs-extra": "^10.0.1",
|
|
75
|
+
"gerror": "^1.0.16",
|
|
76
|
+
"mime": "^3.0.0",
|
|
77
|
+
"node-schedule": "^2.1.0",
|
|
78
|
+
"rxjs": "^7.5.5",
|
|
79
|
+
"type-fest": "^2.12.2"
|
|
80
|
+
},
|
|
81
|
+
"files": [
|
|
82
|
+
"bin/",
|
|
83
|
+
"dist/",
|
|
84
|
+
"src/"
|
|
85
|
+
],
|
|
86
|
+
"tap": {
|
|
87
|
+
"check-coverage": false
|
|
88
|
+
},
|
|
89
|
+
"publishConfig": {
|
|
90
|
+
"access": "public",
|
|
91
|
+
"tag": "next"
|
|
92
|
+
}
|
|
93
|
+
} as any
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as PUPPET from '@juzi/wechaty-puppet'
|
|
2
|
+
import { log } from '../config.js'
|
|
3
|
+
import type PuppetWhatsApp from '../puppet-whatsapp.js'
|
|
4
|
+
|
|
5
|
+
const PRE = 'MIXIN_CONTACT_SELF'
|
|
6
|
+
|
|
7
|
+
export async function contactSelfQRCode (this: PuppetWhatsApp): Promise<string> {
|
|
8
|
+
log.verbose(PRE, 'contactSelfQRCode()')
|
|
9
|
+
return PUPPET.throwUnsupportedError()
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export async function contactSelfName (this: PuppetWhatsApp, name: string): Promise<void> {
|
|
13
|
+
log.verbose(PRE, 'contactSelfName(%s)', name)
|
|
14
|
+
await this.manager.setNickname(name)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export async function contactSelfSignature (this: PuppetWhatsApp, signature: string): Promise<void> {
|
|
18
|
+
log.verbose(PRE, 'contactSelfSignature(%s)', signature)
|
|
19
|
+
await this.manager.setStatusMessage(signature)
|
|
20
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/* eslint-disable no-redeclare */
|
|
2
|
+
import * as PUPPET from '@juzi/wechaty-puppet'
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
FileBox,
|
|
6
|
+
log,
|
|
7
|
+
} from '../config.js'
|
|
8
|
+
import { WA_ERROR_TYPE } from '../exception/error-type.js'
|
|
9
|
+
import WAError from '../exception/whatsapp-error.js'
|
|
10
|
+
import type PuppetWhatsApp from '../puppet-whatsapp.js'
|
|
11
|
+
import type { WhatsAppContactPayload } from '../schema/whatsapp-type.js'
|
|
12
|
+
import { isContactId } from '../helper/miscellaneous.js'
|
|
13
|
+
|
|
14
|
+
import { parserContactRawPayload } from '../helper/pure-function/contact-raw-payload-parser.js'
|
|
15
|
+
|
|
16
|
+
const PRE = 'MIXIN_CONTACT'
|
|
17
|
+
|
|
18
|
+
export async function contactAlias(this: PuppetWhatsApp, contactId: string): Promise<string>;
|
|
19
|
+
export async function contactAlias(this: PuppetWhatsApp, contactId: string, alias: string | null): Promise<void>;
|
|
20
|
+
export async function contactAlias (this: PuppetWhatsApp, contactId: string, alias?: string | null): Promise<void | string> {
|
|
21
|
+
log.verbose(PRE, 'contactAlias(%s, %s)', contactId, alias)
|
|
22
|
+
return PUPPET.throwUnsupportedError()
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export async function contactPhone(this: PuppetWhatsApp, contactId: string): Promise<string[]>
|
|
26
|
+
export async function contactPhone(this: PuppetWhatsApp, contactId: string, phoneList: string[]): Promise<void>
|
|
27
|
+
|
|
28
|
+
export async function contactPhone (this: PuppetWhatsApp, contactId: string, phoneList?: string[]): Promise<string[] | void> {
|
|
29
|
+
log.verbose(PRE, 'contactPhone(%s, %s)', contactId, phoneList)
|
|
30
|
+
if (typeof phoneList === 'undefined') {
|
|
31
|
+
const cacheManager = await this.manager.getCacheManager()
|
|
32
|
+
const contact = await cacheManager.getContactOrRoomRawPayload(contactId)
|
|
33
|
+
if (contact) {
|
|
34
|
+
return [contact!.number]
|
|
35
|
+
} else {
|
|
36
|
+
return []
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export async function contactCorporationRemark (this: PuppetWhatsApp, contactId: string, corporationRemark: string) {
|
|
42
|
+
log.verbose(PRE, 'contactCorporationRemark(%s, %s)', contactId, corporationRemark)
|
|
43
|
+
return PUPPET.throwUnsupportedError()
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export async function contactDescription (this: PuppetWhatsApp, contactId: string, description: string) {
|
|
47
|
+
log.verbose(PRE, 'contactDescription(%s, %s)', contactId, description)
|
|
48
|
+
return PUPPET.throwUnsupportedError()
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export async function contactList (this: PuppetWhatsApp): Promise<string[]> {
|
|
52
|
+
log.verbose(PRE, 'contactList()')
|
|
53
|
+
const cacheManager = await this.manager.getCacheManager()
|
|
54
|
+
const contactIdList = await cacheManager.getContactIdList()
|
|
55
|
+
return contactIdList
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export async function contactAvatar(this: PuppetWhatsApp, contactId: string): Promise<FileBox>
|
|
59
|
+
export async function contactAvatar(this: PuppetWhatsApp, contactId: string, file: FileBox): Promise<void>
|
|
60
|
+
|
|
61
|
+
export async function contactAvatar (this: PuppetWhatsApp, contactId: string, file?: FileBox): Promise<void | FileBox> {
|
|
62
|
+
log.verbose(PRE, 'contactAvatar(%s)', contactId)
|
|
63
|
+
|
|
64
|
+
if (file) {
|
|
65
|
+
return PUPPET.throwUnsupportedError()
|
|
66
|
+
}
|
|
67
|
+
let avatar: string = ''
|
|
68
|
+
const con = await this.manager.getContactById(contactId)
|
|
69
|
+
try {
|
|
70
|
+
avatar = await con.getProfilePicUrl()
|
|
71
|
+
} catch (err) {
|
|
72
|
+
log.error(PRE, 'contactAvatar(%s) error:%s', contactId, (err as Error).message)
|
|
73
|
+
}
|
|
74
|
+
if (avatar) {
|
|
75
|
+
return FileBox.fromUrl(avatar)
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export async function contactRawPayload (this: PuppetWhatsApp, id: string): Promise<WhatsAppContactPayload> {
|
|
80
|
+
log.verbose(PRE, 'contactRawPayload(%s)', id)
|
|
81
|
+
if (!isContactId(id)) {
|
|
82
|
+
throw WAError(WA_ERROR_TYPE.ERR_CONTACT_NOT_FOUND, `please check contact id: ${id} again.`)
|
|
83
|
+
}
|
|
84
|
+
const cacheManager = await this.manager.getCacheManager()
|
|
85
|
+
const contact = await cacheManager.getContactOrRoomRawPayload(id)
|
|
86
|
+
if (contact) {
|
|
87
|
+
return contact
|
|
88
|
+
} else {
|
|
89
|
+
const rawContact = await this.manager.getContactById(id)
|
|
90
|
+
const avatar = await rawContact.getProfilePicUrl() || ''
|
|
91
|
+
const contact = Object.assign(rawContact, { avatar })
|
|
92
|
+
await cacheManager.setContactOrRoomRawPayload(id, contact)
|
|
93
|
+
return contact
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export async function contactRawPayloadParser (this: PuppetWhatsApp, contactPayload: WhatsAppContactPayload): Promise<PUPPET.payloads.Contact> {
|
|
98
|
+
try {
|
|
99
|
+
const userName = this.manager.getWhatsAppClient().info.pushname
|
|
100
|
+
const result = parserContactRawPayload(contactPayload, userName)
|
|
101
|
+
log.verbose(PRE, 'contactRawPayloadParser whatsAppPayload(%s) result(%s)', JSON.stringify(contactPayload), JSON.stringify(result))
|
|
102
|
+
return result
|
|
103
|
+
} catch (error) {
|
|
104
|
+
log.error(PRE, `contactRawPayloadParser(${contactPayload.id._serialized}) failed, error message: ${(error as Error).message}`)
|
|
105
|
+
throw WAError(WA_ERROR_TYPE.ERR_CONTACT_NOT_FOUND, `contactRawPayloadParser(${contactPayload.id._serialized}) failed, error message: ${(error as Error).message}`)
|
|
106
|
+
}
|
|
107
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as PUPPET from '@juzi/wechaty-puppet'
|
|
2
|
+
import { log } from '../config.js'
|
|
3
|
+
|
|
4
|
+
const PRE = 'MIXIN_CONVERSATION'
|
|
5
|
+
|
|
6
|
+
export async function conversationReadMark (
|
|
7
|
+
conversationId: string,
|
|
8
|
+
hasRead?: boolean,
|
|
9
|
+
): Promise<void | boolean> {
|
|
10
|
+
log.verbose(PRE, 'conversationReadMark(%s, %s)', conversationId, hasRead)
|
|
11
|
+
return PUPPET.throwUnsupportedError()
|
|
12
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import * as PUPPET from '@juzi/wechaty-puppet'
|
|
2
|
+
import { LANGUAGE, log, STRINGS } from '../config.js'
|
|
3
|
+
import { WA_ERROR_TYPE } from '../exception/error-type.js'
|
|
4
|
+
import WAError from '../exception/whatsapp-error.js'
|
|
5
|
+
import type PuppetWhatsApp from '../puppet-whatsapp.js'
|
|
6
|
+
import type { WhatsAppMessagePayload } from '../schema/whatsapp-type.js'
|
|
7
|
+
|
|
8
|
+
const PRE = 'MIXIN_FRIENDSHIP'
|
|
9
|
+
|
|
10
|
+
export type FriendshipRawPayload = WhatsAppMessagePayload
|
|
11
|
+
|
|
12
|
+
export async function friendshipRawPayload (this: PuppetWhatsApp, id: string): Promise<FriendshipRawPayload> {
|
|
13
|
+
const cache = await this.manager.getCacheManager()
|
|
14
|
+
const message = await cache.getMessageRawPayload(id)
|
|
15
|
+
if (!message) {
|
|
16
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_NOT_FOUND, 'Message not found', `messageId: ${id}`)
|
|
17
|
+
}
|
|
18
|
+
return message
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export async function friendshipRawPayloadParser (rawPayload: FriendshipRawPayload): Promise<PUPPET.payloads.Friendship> {
|
|
22
|
+
return {
|
|
23
|
+
contactId: rawPayload.from,
|
|
24
|
+
hello: rawPayload.body,
|
|
25
|
+
id: rawPayload.id.id,
|
|
26
|
+
timestamp: rawPayload.timestamp,
|
|
27
|
+
type: PUPPET.types.Friendship.Confirm,
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export async function friendshipSearchPhone (
|
|
32
|
+
this: PuppetWhatsApp,
|
|
33
|
+
phone: string,
|
|
34
|
+
): Promise<null | string> {
|
|
35
|
+
log.verbose(PRE, 'friendshipSearchPhone(%s)', phone)
|
|
36
|
+
const contactId = `${phone}@c.us`
|
|
37
|
+
const isUser = await this.manager.isWhatsappUser(contactId)
|
|
38
|
+
if (!isUser) {
|
|
39
|
+
throw WAError(WA_ERROR_TYPE.ERR_CONTACT_NOT_FOUND, 'Not a registered user on WhatsApp.', `contactId: ${contactId}`)
|
|
40
|
+
}
|
|
41
|
+
return contactId
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export async function friendshipSearchWeixin (
|
|
45
|
+
weixin: string,
|
|
46
|
+
): Promise<null | string> {
|
|
47
|
+
log.verbose(PRE, 'friendshipSearchWeixin(%s)', weixin)
|
|
48
|
+
return PUPPET.throwUnsupportedError()
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export async function friendshipSearchHandle (
|
|
52
|
+
handle: string,
|
|
53
|
+
): Promise<null | string> {
|
|
54
|
+
log.verbose(PRE, 'friendshipSearchHandle(%s)', handle)
|
|
55
|
+
return PUPPET.throwUnsupportedError()
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export async function friendshipAdd (
|
|
59
|
+
this: PuppetWhatsApp,
|
|
60
|
+
contactId: string,
|
|
61
|
+
option?: PUPPET.types.FriendshipAddOptions,
|
|
62
|
+
): Promise<void> {
|
|
63
|
+
let hello: string = ''
|
|
64
|
+
if (typeof (option) === 'object') {
|
|
65
|
+
hello = option.hello || ''
|
|
66
|
+
} else {
|
|
67
|
+
hello = option || ''
|
|
68
|
+
}
|
|
69
|
+
if (hello.length === 0) {
|
|
70
|
+
hello = STRINGS[LANGUAGE].DEFAULT_HELLO_MESSAGE
|
|
71
|
+
}
|
|
72
|
+
log.verbose(PRE, 'friendshipAdd(%s, %s)', contactId, JSON.stringify(option))
|
|
73
|
+
const isUser = await this.manager.isWhatsappUser(contactId)
|
|
74
|
+
if (!isUser) {
|
|
75
|
+
throw WAError(WA_ERROR_TYPE.ERR_CONTACT_NOT_FOUND, 'Not a registered user on WhatsApp.', `contactId: ${contactId}`)
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
await this.contactRawPayload(contactId)
|
|
79
|
+
|
|
80
|
+
await this.messageSendText(contactId, hello)
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export async function friendshipAccept (
|
|
84
|
+
friendshipId: string,
|
|
85
|
+
): Promise<void> {
|
|
86
|
+
log.verbose(PRE, 'friendshipAccept(%s)', friendshipId)
|
|
87
|
+
return PUPPET.throwUnsupportedError()
|
|
88
|
+
}
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
import * as PUPPET from '@juzi/wechaty-puppet'
|
|
2
|
+
import * as path from 'path'
|
|
3
|
+
import mime from 'mime'
|
|
4
|
+
import type PuppetWhatsApp from '../puppet-whatsapp.js'
|
|
5
|
+
import type {
|
|
6
|
+
MessageContent,
|
|
7
|
+
WhatsAppMessagePayload,
|
|
8
|
+
MessageSendOptions,
|
|
9
|
+
} from '../schema/whatsapp-type.js'
|
|
10
|
+
import {
|
|
11
|
+
MessageMedia,
|
|
12
|
+
MessageTypes as WhatsAppMessageType,
|
|
13
|
+
} from '../schema/whatsapp-interface.js'
|
|
14
|
+
import { WA_ERROR_TYPE } from '../exception/error-type.js'
|
|
15
|
+
import WAError from '../exception/whatsapp-error.js'
|
|
16
|
+
import {
|
|
17
|
+
DEFAULT_TIMEOUT,
|
|
18
|
+
FileBox,
|
|
19
|
+
log,
|
|
20
|
+
} from '../config.js'
|
|
21
|
+
import { convertMessagePayloadToClass } from '../helper/pure-function/convert-function.js'
|
|
22
|
+
import { parserMessageRawPayload } from '../helper/pure-function/message-raw-payload-parser.js'
|
|
23
|
+
import { parseVcard } from '../helper/pure-function/vcard-parser.js'
|
|
24
|
+
import { RequestPool } from '../request/request-pool.js'
|
|
25
|
+
|
|
26
|
+
const PRE = 'MIXIN_MESSAGE'
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Get contact message
|
|
30
|
+
* @param messageId message Id
|
|
31
|
+
* @returns contact name
|
|
32
|
+
*/
|
|
33
|
+
export async function messageContact (this: PuppetWhatsApp, messageId: string): Promise<string> {
|
|
34
|
+
log.verbose(PRE, 'messageContact(%s)', messageId)
|
|
35
|
+
const cacheManager = await this.manager.getCacheManager()
|
|
36
|
+
const msg = await cacheManager.getMessageRawPayload(messageId)
|
|
37
|
+
if (!msg) {
|
|
38
|
+
log.error(PRE, 'Message %s not found', messageId)
|
|
39
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_NOT_FOUND, `Message ${messageId} not found`)
|
|
40
|
+
}
|
|
41
|
+
if (msg.type !== WhatsAppMessageType.CONTACT_CARD) {
|
|
42
|
+
log.error(PRE, 'Message %s is not contact type', messageId)
|
|
43
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_NOT_MATCH, `Message ${messageId} is not contact type`)
|
|
44
|
+
}
|
|
45
|
+
if (!msg.vCards[0]) {
|
|
46
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_NOT_MATCH, `Message ${messageId} has no vCards info, detail: ${JSON.stringify(msg)}`)
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
const vcard = parseVcard(msg.vCards[0])
|
|
50
|
+
return vcard.TEL![0]!.waid
|
|
51
|
+
} catch (error) {
|
|
52
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_CONTACT, `Can not parse contact card from message: ${messageId}, error: ${(error as Error).message}`)
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Recall message
|
|
58
|
+
* @param messageId message id
|
|
59
|
+
* @returns { Promise<boolean> }
|
|
60
|
+
*/
|
|
61
|
+
export async function messageRecall (this: PuppetWhatsApp, messageId: string): Promise<boolean> {
|
|
62
|
+
log.verbose(PRE, 'messageRecall(%s)', messageId)
|
|
63
|
+
const cacheManager = await this.manager.getCacheManager()
|
|
64
|
+
const msg = await cacheManager.getMessageRawPayload(messageId)
|
|
65
|
+
if (!msg) {
|
|
66
|
+
log.error(PRE, 'Message %s not found', messageId)
|
|
67
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_NOT_FOUND, `Message ${messageId} not found`)
|
|
68
|
+
}
|
|
69
|
+
const msgObj = convertMessagePayloadToClass(this.manager.getWhatsAppClient(), msg)
|
|
70
|
+
try {
|
|
71
|
+
await msgObj.delete(true)
|
|
72
|
+
return true
|
|
73
|
+
} catch (err) {
|
|
74
|
+
log.error(PRE, `Can not recall this message: ${messageId}, error: ${(err as Error).message}`)
|
|
75
|
+
return false
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Get moment detail image or video from message
|
|
81
|
+
* @param messageId message id
|
|
82
|
+
* @param imageType image size to get (may not apply to WhatsApp)
|
|
83
|
+
* @returns the image or video
|
|
84
|
+
*/
|
|
85
|
+
export async function messagePost (this: PuppetWhatsApp, messageId: string, imageType: PUPPET.types.Image) {
|
|
86
|
+
log.verbose(PRE, 'messagePost(%s, %s)', messageId, PUPPET.types.Image[imageType])
|
|
87
|
+
const cacheManager = await this.manager.getCacheManager()
|
|
88
|
+
const msg = await cacheManager.getMessageRawPayload(messageId)
|
|
89
|
+
if (!msg) {
|
|
90
|
+
log.error(PRE, 'Message %s not found', messageId)
|
|
91
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_NOT_FOUND, `Message ${messageId} Not Found`)
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
if (!msg.hasMedia) {
|
|
95
|
+
log.error(PRE, 'Message %s does not contain any media', messageId)
|
|
96
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_NOT_MATCH, `Message ${messageId} does not contain any media`)
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (msg.type === WhatsAppMessageType.IMAGE) {
|
|
100
|
+
return this.messageImage(messageId, imageType)
|
|
101
|
+
} else if (msg.type === WhatsAppMessageType.VIDEO) {
|
|
102
|
+
return this.messageFile(messageId)
|
|
103
|
+
} else {
|
|
104
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_NOT_MATCH, `Post message ${messageId} with wrong message type: ${msg.type}`)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Get image from message
|
|
111
|
+
* @param messageId message id
|
|
112
|
+
* @param imageType image size to get (may not apply to WhatsApp)
|
|
113
|
+
* @returns the image
|
|
114
|
+
*/
|
|
115
|
+
export async function messageImage (this: PuppetWhatsApp, messageId: string, imageType: PUPPET.types.Image): Promise<FileBox> {
|
|
116
|
+
log.verbose(PRE, 'messageImage(%s, %s)', messageId, PUPPET.types.Image[imageType])
|
|
117
|
+
const cacheManager = await this.manager.getCacheManager()
|
|
118
|
+
const msg = await cacheManager.getMessageRawPayload(messageId)
|
|
119
|
+
if (!msg) {
|
|
120
|
+
log.error(PRE, 'Message %s not found', messageId)
|
|
121
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_NOT_FOUND, `Message ${messageId} Not Found`)
|
|
122
|
+
}
|
|
123
|
+
if (msg.type !== WhatsAppMessageType.IMAGE || (!msg.hasMedia && !msg.body)) {
|
|
124
|
+
log.error(PRE, 'Message %s does not contain any media', messageId)
|
|
125
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_NOT_MATCH, `Message ${messageId} does not contain any media`)
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
switch (imageType) {
|
|
129
|
+
case PUPPET.types.Image.HD:
|
|
130
|
+
case PUPPET.types.Image.Artwork:
|
|
131
|
+
if (msg.hasMedia) {
|
|
132
|
+
return downloadMedia.call(this, msg)
|
|
133
|
+
} else {
|
|
134
|
+
return FileBox.fromBase64(msg.body, 'thumbnail.jpg')
|
|
135
|
+
}
|
|
136
|
+
case PUPPET.types.Image.Thumbnail:
|
|
137
|
+
default:
|
|
138
|
+
if (msg.body) {
|
|
139
|
+
return FileBox.fromBase64(msg.body, 'thumbnail.jpg')
|
|
140
|
+
} else {
|
|
141
|
+
return downloadMedia.call(this, msg)
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
} catch (error) {
|
|
145
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_IMAGE, `Message ${messageId} does not contain any media`)
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Get the file attached to the message
|
|
151
|
+
* @param messageId message id
|
|
152
|
+
* @returns the file that attached to the message
|
|
153
|
+
*/
|
|
154
|
+
export async function messageFile (this: PuppetWhatsApp, messageId: string): Promise<FileBox> {
|
|
155
|
+
log.verbose(PRE, 'messageFile(%s)', messageId)
|
|
156
|
+
const cacheManager = await this.manager.getCacheManager()
|
|
157
|
+
const msg = await cacheManager.getMessageRawPayload(messageId)
|
|
158
|
+
if (!msg) {
|
|
159
|
+
log.error(PRE, 'Message %s not found', messageId)
|
|
160
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_NOT_FOUND, `Message ${messageId} Not Found`)
|
|
161
|
+
}
|
|
162
|
+
if (!msg.hasMedia) {
|
|
163
|
+
log.error(PRE, 'Message %s does not contain any media', messageId)
|
|
164
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_NOT_MATCH, `Message ${messageId} does not contain any media`)
|
|
165
|
+
}
|
|
166
|
+
try {
|
|
167
|
+
return downloadMedia.call(this, msg)
|
|
168
|
+
} catch (error) {
|
|
169
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_FILE, `Message ${messageId} does not contain any media`)
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
async function downloadMedia (this: PuppetWhatsApp, msg: WhatsAppMessagePayload) {
|
|
174
|
+
const msgObj = convertMessagePayloadToClass(this.manager.getWhatsAppClient(), msg)
|
|
175
|
+
const media = await msgObj.downloadMedia()
|
|
176
|
+
const filenameExtension = mime.getExtension(media.mimetype)
|
|
177
|
+
const fileBox = FileBox.fromBase64(media.data, media.filename ?? `unknown_name.${filenameExtension}`)
|
|
178
|
+
fileBox.mimeType = media.mimetype
|
|
179
|
+
return fileBox
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Get url in the message
|
|
184
|
+
* @param messageId message id
|
|
185
|
+
* @returns url in the message
|
|
186
|
+
*/
|
|
187
|
+
export async function messageUrl (this: PuppetWhatsApp, messageId: string): Promise<PUPPET.payloads.UrlLink> {
|
|
188
|
+
log.verbose(PRE, 'messageUrl(%s)', messageId)
|
|
189
|
+
const cacheManager = await this.manager.getCacheManager()
|
|
190
|
+
const msg = await cacheManager.getMessageRawPayload(messageId)
|
|
191
|
+
if (!msg) {
|
|
192
|
+
log.error(PRE, 'Message %s not found', messageId)
|
|
193
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_NOT_FOUND, `Message ${messageId} Not Found`)
|
|
194
|
+
}
|
|
195
|
+
if (msg.links.length === 0) {
|
|
196
|
+
log.error(PRE, 'Message %s is does not contain links', messageId)
|
|
197
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_NOT_MATCH, `Message ${messageId} does not contain any link message.`)
|
|
198
|
+
}
|
|
199
|
+
try {
|
|
200
|
+
return {
|
|
201
|
+
description: msg.description || 'NO_DESCRIPTION',
|
|
202
|
+
title: msg.title || 'NO_TITLE',
|
|
203
|
+
url: msg.links[0]?.link || msg.body,
|
|
204
|
+
}
|
|
205
|
+
} catch (error) {
|
|
206
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_URL_LINK, `Get link message: ${messageId} failed, error: ${(error as Error).message}`)
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Not supported for WhatsApp
|
|
212
|
+
* @param messageId message id
|
|
213
|
+
*/
|
|
214
|
+
export async function messageMiniProgram (this: PuppetWhatsApp, messageId: string): Promise<PUPPET.payloads.MiniProgram> {
|
|
215
|
+
log.verbose(PRE, 'messageMiniProgram(%s)', messageId)
|
|
216
|
+
return PUPPET.throwUnsupportedError()
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
export async function messageSend (this: PuppetWhatsApp, conversationId: string, content: MessageContent, options?: MessageSendOptions, timeout = DEFAULT_TIMEOUT.MESSAGE_SEND): Promise<string> {
|
|
220
|
+
log.verbose(PRE, 'messageSend(%s, %s)', conversationId, typeof content)
|
|
221
|
+
|
|
222
|
+
const msg = await this.manager.sendMessage(conversationId, content, options)
|
|
223
|
+
const messageId = msg.id.id
|
|
224
|
+
const requestPool = RequestPool.Instance
|
|
225
|
+
await requestPool.pushRequest(messageId, timeout)
|
|
226
|
+
return messageId
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
export async function messageSendText (this: PuppetWhatsApp, conversationId: string, text: string, mentions?: string[]): Promise<void | string> {
|
|
230
|
+
log.verbose(PRE, 'messageSendText(%s, %s)', conversationId, text)
|
|
231
|
+
if (mentions) {
|
|
232
|
+
const contacts = await Promise.all(mentions.map((v) => (
|
|
233
|
+
this.manager.getContactById(v)
|
|
234
|
+
)))
|
|
235
|
+
return messageSend.call(this, conversationId, text, { mentions: contacts }, DEFAULT_TIMEOUT.MESSAGE_SEND_TEXT)
|
|
236
|
+
} else {
|
|
237
|
+
return messageSend.call(this, conversationId, text, {}, DEFAULT_TIMEOUT.MESSAGE_SEND_TEXT)
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
export async function messageSendFile (this: PuppetWhatsApp, conversationId: string, file: FileBox, options?: MessageSendOptions): Promise<void | string> {
|
|
242
|
+
log.verbose(PRE, 'messageSendFile(%s, %s)', conversationId, file.name)
|
|
243
|
+
await file.ready()
|
|
244
|
+
const type = (file.mediaType && file.mediaType !== 'application/octet-stream')
|
|
245
|
+
? file.mediaType.replace(/;.*$/, '')
|
|
246
|
+
: path.extname(file.name)
|
|
247
|
+
log.silly(PRE, `message type: ${type}, filename: ${file.name}`)
|
|
248
|
+
const fileBoxJsonObject: any = file.toJSON() // FIXME: need import FileBoxJsonObject from file-box
|
|
249
|
+
const remoteUrl = fileBoxJsonObject.remoteUrl
|
|
250
|
+
let msgContent
|
|
251
|
+
if (remoteUrl) {
|
|
252
|
+
msgContent = await MessageMedia.fromUrl(remoteUrl, { filename: file.name })
|
|
253
|
+
} else {
|
|
254
|
+
const fileData = await file.toBase64()
|
|
255
|
+
msgContent = new MessageMedia(file.mediaType!, fileData, file.name)
|
|
256
|
+
}
|
|
257
|
+
return messageSend.call(this, conversationId, msgContent, options, DEFAULT_TIMEOUT.MESSAGE_SEND_FILE)
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
export async function messageSendContact (this: PuppetWhatsApp, conversationId: string, contactId: string, options?: MessageSendOptions): Promise<void> {
|
|
261
|
+
log.verbose(PRE, 'messageSendContact(%s, %s)', conversationId, contactId)
|
|
262
|
+
|
|
263
|
+
const contact = await this.manager.getContactById(contactId)
|
|
264
|
+
await messageSend.call(this, conversationId, contact, options, DEFAULT_TIMEOUT.MESSAGE_SEND_TEXT)
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
export async function messageSendUrl (
|
|
268
|
+
this: PuppetWhatsApp,
|
|
269
|
+
conversationId: string,
|
|
270
|
+
urlLinkPayload: PUPPET.payloads.UrlLink,
|
|
271
|
+
): Promise<string> {
|
|
272
|
+
log.verbose(PRE, 'messageSendUrl(%s, %s)', conversationId, JSON.stringify(urlLinkPayload))
|
|
273
|
+
return messageSend.call(this, conversationId, urlLinkPayload.url, {}, DEFAULT_TIMEOUT.MESSAGE_SEND_TEXT)
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
export async function messageSendMiniProgram (this: PuppetWhatsApp, conversationId: string, miniProgramPayload: PUPPET.payloads.MiniProgram): Promise<void> {
|
|
277
|
+
log.verbose(PRE, 'messageSendMiniProgram(%s, %s)', conversationId, JSON.stringify(miniProgramPayload))
|
|
278
|
+
return PUPPET.throwUnsupportedError()
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
export async function messageForward (this: PuppetWhatsApp, conversationId: string, messageId: string): Promise<void> {
|
|
282
|
+
log.verbose(PRE, 'messageForward(%s, %s)', conversationId, messageId)
|
|
283
|
+
const cacheManager = await this.manager.getCacheManager()
|
|
284
|
+
const msg = await cacheManager.getMessageRawPayload(messageId)
|
|
285
|
+
if (!msg) {
|
|
286
|
+
log.error(PRE, 'Message %s not found', messageId)
|
|
287
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_NOT_FOUND, `Message ${messageId} not found`)
|
|
288
|
+
}
|
|
289
|
+
const msgObj = convertMessagePayloadToClass(this.manager.getWhatsAppClient(), msg)
|
|
290
|
+
try {
|
|
291
|
+
await msgObj.forward(conversationId)
|
|
292
|
+
} catch (error) {
|
|
293
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_FORWARD, `Forward message: ${messageId} failed, error: ${(error as Error).message}`)
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
export async function messageRawPayload (this: PuppetWhatsApp, id: string): Promise<WhatsAppMessagePayload> {
|
|
298
|
+
log.verbose(PRE, 'messageRawPayload(%s)', id)
|
|
299
|
+
const cacheManager = await this.manager.getCacheManager()
|
|
300
|
+
const msg = await cacheManager.getMessageRawPayload(id)
|
|
301
|
+
if (!msg) {
|
|
302
|
+
throw WAError(WA_ERROR_TYPE.ERR_MSG_NOT_FOUND, `Can not find this message: ${id}`)
|
|
303
|
+
}
|
|
304
|
+
return msg
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
export async function messageRawPayloadParser (this: PuppetWhatsApp, whatsAppPayload: WhatsAppMessagePayload): Promise<PUPPET.payloads.Message> {
|
|
308
|
+
const result = parserMessageRawPayload(whatsAppPayload)
|
|
309
|
+
log.verbose(PRE, 'messageRawPayloadParser whatsAppPayload(%s) result(%s)', JSON.stringify(whatsAppPayload), JSON.stringify(result))
|
|
310
|
+
return result
|
|
311
|
+
}
|