@juzi/wechaty 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 +202 -0
- package/README.md +565 -0
- package/bin/clean-json.js +15 -0
- package/bin/cli.ts +36 -0
- package/bin/doctor.ts +55 -0
- package/bin/entrypoint.sh +338 -0
- package/bin/io-client.ts +95 -0
- package/bin/providers-trends.ts +13 -0
- package/bin/puppet-install.ts +69 -0
- package/bin/version.ts +24 -0
- package/dist/cjs/bin/cli.d.ts +14 -0
- package/dist/cjs/bin/cli.d.ts.map +1 -0
- package/dist/cjs/bin/cli.js +50 -0
- package/dist/cjs/bin/cli.js.map +1 -0
- package/dist/cjs/bin/doctor.d.ts +22 -0
- package/dist/cjs/bin/doctor.d.ts.map +1 -0
- package/dist/cjs/bin/doctor.js +55 -0
- package/dist/cjs/bin/doctor.js.map +1 -0
- package/dist/cjs/bin/io-client.d.ts +22 -0
- package/dist/cjs/bin/io-client.d.ts.map +1 -0
- package/dist/cjs/bin/io-client.js +74 -0
- package/dist/cjs/bin/io-client.js.map +1 -0
- package/dist/cjs/bin/providers-trends.d.ts +3 -0
- package/dist/cjs/bin/providers-trends.d.ts.map +1 -0
- package/dist/cjs/bin/providers-trends.js +14 -0
- package/dist/cjs/bin/providers-trends.js.map +1 -0
- package/dist/cjs/bin/puppet-install.d.ts +3 -0
- package/dist/cjs/bin/puppet-install.d.ts.map +1 -0
- package/dist/cjs/bin/puppet-install.js +60 -0
- package/dist/cjs/bin/puppet-install.js.map +1 -0
- package/dist/cjs/bin/version.d.ts +22 -0
- package/dist/cjs/bin/version.d.ts.map +1 -0
- package/dist/cjs/bin/version.js +25 -0
- package/dist/cjs/bin/version.js.map +1 -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 +183 -0
- package/dist/cjs/examples/ding-dong-bot.js.map +1 -0
- package/dist/cjs/examples/video-post.d.ts +2 -0
- package/dist/cjs/examples/video-post.d.ts.map +1 -0
- package/dist/cjs/examples/video-post.js +75 -0
- package/dist/cjs/examples/video-post.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/scripts/retry-unit-tests.d.ts +3 -0
- package/dist/cjs/scripts/retry-unit-tests.d.ts.map +1 -0
- package/dist/cjs/scripts/retry-unit-tests.js +58 -0
- package/dist/cjs/scripts/retry-unit-tests.js.map +1 -0
- package/dist/cjs/scripts/sort-contributiveness.d.ts +3 -0
- package/dist/cjs/scripts/sort-contributiveness.d.ts.map +1 -0
- package/dist/cjs/scripts/sort-contributiveness.js +122 -0
- package/dist/cjs/scripts/sort-contributiveness.js.map +1 -0
- package/dist/cjs/scripts/update-license.d.ts +3 -0
- package/dist/cjs/scripts/update-license.d.ts.map +1 -0
- package/dist/cjs/scripts/update-license.js +163 -0
- package/dist/cjs/scripts/update-license.js.map +1 -0
- package/dist/cjs/src/cli/friday.d.ts +7 -0
- package/dist/cjs/src/cli/friday.d.ts.map +1 -0
- package/dist/cjs/src/cli/friday.js +18 -0
- package/dist/cjs/src/cli/friday.js.map +1 -0
- package/dist/cjs/src/cli/gateway.d.ts +17 -0
- package/dist/cjs/src/cli/gateway.d.ts.map +1 -0
- package/dist/cjs/src/cli/gateway.js +154 -0
- package/dist/cjs/src/cli/gateway.js.map +1 -0
- package/dist/cjs/src/cli/mod.d.ts +6 -0
- package/dist/cjs/src/cli/mod.d.ts.map +1 -0
- package/dist/cjs/src/cli/mod.js +14 -0
- package/dist/cjs/src/cli/mod.js.map +1 -0
- package/dist/cjs/src/cli/provider.d.ts +7 -0
- package/dist/cjs/src/cli/provider.d.ts.map +1 -0
- package/dist/cjs/src/cli/provider.js +18 -0
- package/dist/cjs/src/cli/provider.js.map +1 -0
- package/dist/cjs/src/cli/service.d.ts +7 -0
- package/dist/cjs/src/cli/service.d.ts.map +1 -0
- package/dist/cjs/src/cli/service.js +18 -0
- package/dist/cjs/src/cli/service.js.map +1 -0
- package/dist/cjs/src/cli/token.d.ts +39 -0
- package/dist/cjs/src/cli/token.d.ts.map +1 -0
- package/dist/cjs/src/cli/token.js +15 -0
- package/dist/cjs/src/cli/token.js.map +1 -0
- package/dist/cjs/src/config.d.ts +61 -0
- package/dist/cjs/src/config.d.ts.map +1 -0
- package/dist/cjs/src/config.js +110 -0
- package/dist/cjs/src/config.js.map +1 -0
- package/dist/cjs/src/config.spec.d.ts +22 -0
- package/dist/cjs/src/config.spec.d.ts.map +1 -0
- package/dist/cjs/src/config.spec.js +84 -0
- package/dist/cjs/src/config.spec.js.map +1 -0
- package/dist/cjs/src/doctor.d.ts +9 -0
- package/dist/cjs/src/doctor.d.ts.map +1 -0
- package/dist/cjs/src/doctor.js +82 -0
- package/dist/cjs/src/doctor.js.map +1 -0
- package/dist/cjs/src/helper-functions/open-graph.d.ts +22 -0
- package/dist/cjs/src/helper-functions/open-graph.d.ts.map +1 -0
- package/dist/cjs/src/helper-functions/open-graph.js +43 -0
- package/dist/cjs/src/helper-functions/open-graph.js.map +1 -0
- package/dist/cjs/src/helper-functions/stringify-filter.d.ts +3 -0
- package/dist/cjs/src/helper-functions/stringify-filter.d.ts.map +1 -0
- package/dist/cjs/src/helper-functions/stringify-filter.js +12 -0
- package/dist/cjs/src/helper-functions/stringify-filter.js.map +1 -0
- package/dist/cjs/src/io-client.d.ts +28 -0
- package/dist/cjs/src/io-client.d.ts.map +1 -0
- package/dist/cjs/src/io-client.js +217 -0
- package/dist/cjs/src/io-client.js.map +1 -0
- package/dist/cjs/src/io-peer/io-peer.d.ts +12 -0
- package/dist/cjs/src/io-peer/io-peer.d.ts.map +1 -0
- package/dist/cjs/src/io-peer/io-peer.js +71 -0
- package/dist/cjs/src/io-peer/io-peer.js.map +1 -0
- package/dist/cjs/src/io-peer/io-peer.spec.d.ts +3 -0
- package/dist/cjs/src/io-peer/io-peer.spec.d.ts.map +1 -0
- package/dist/cjs/src/io-peer/io-peer.spec.js +61 -0
- package/dist/cjs/src/io-peer/io-peer.spec.js.map +1 -0
- package/dist/cjs/src/io.d.ts +98 -0
- package/dist/cjs/src/io.d.ts.map +1 -0
- package/dist/cjs/src/io.js +468 -0
- package/dist/cjs/src/io.js.map +1 -0
- package/dist/cjs/src/io.spec.d.ts +3 -0
- package/dist/cjs/src/io.spec.d.ts.map +1 -0
- package/dist/cjs/src/io.spec.js +45 -0
- package/dist/cjs/src/io.spec.js.map +1 -0
- package/dist/cjs/src/mods/helpers.d.ts +2 -0
- package/dist/cjs/src/mods/helpers.d.ts.map +1 -0
- package/dist/cjs/src/mods/helpers.js +8 -0
- package/dist/cjs/src/mods/helpers.js.map +1 -0
- package/dist/cjs/src/mods/impls.d.ts +36 -0
- package/dist/cjs/src/mods/impls.d.ts.map +1 -0
- package/dist/cjs/src/mods/impls.js +53 -0
- package/dist/cjs/src/mods/impls.js.map +1 -0
- package/dist/cjs/src/mods/impls.spec.d.ts +3 -0
- package/dist/cjs/src/mods/impls.spec.d.ts.map +1 -0
- package/dist/cjs/src/mods/impls.spec.js +36 -0
- package/dist/cjs/src/mods/impls.spec.js.map +1 -0
- package/dist/cjs/src/mods/mod.d.ts +40 -0
- package/dist/cjs/src/mods/mod.d.ts.map +1 -0
- package/dist/cjs/src/mods/mod.js +67 -0
- package/dist/cjs/src/mods/mod.js.map +1 -0
- package/dist/cjs/src/mods/mod.spec.d.ts +3 -0
- package/dist/cjs/src/mods/mod.spec.d.ts.map +1 -0
- package/dist/cjs/src/mods/mod.spec.js +39 -0
- package/dist/cjs/src/mods/mod.spec.js.map +1 -0
- package/dist/cjs/src/mods/users.d.ts +26 -0
- package/dist/cjs/src/mods/users.d.ts.map +1 -0
- package/dist/cjs/src/mods/users.js +22 -0
- package/dist/cjs/src/mods/users.js.map +1 -0
- package/dist/cjs/src/package-json.d.ts +7 -0
- package/dist/cjs/src/package-json.d.ts.map +1 -0
- package/dist/cjs/src/package-json.js +178 -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 +17 -0
- package/dist/cjs/src/package-json.spec.js.map +1 -0
- package/dist/cjs/src/plugin.d.ts +9 -0
- package/dist/cjs/src/plugin.d.ts.map +1 -0
- package/dist/cjs/src/plugin.js +8 -0
- package/dist/cjs/src/plugin.js.map +1 -0
- package/dist/cjs/src/plugin.spec.d.ts +3 -0
- package/dist/cjs/src/plugin.spec.d.ts.map +1 -0
- package/dist/cjs/src/plugin.spec.js +70 -0
- package/dist/cjs/src/plugin.spec.js.map +1 -0
- package/dist/cjs/src/puppet-config.d.ts +78 -0
- package/dist/cjs/src/puppet-config.d.ts.map +1 -0
- package/dist/cjs/src/puppet-config.js +84 -0
- package/dist/cjs/src/puppet-config.js.map +1 -0
- package/dist/cjs/src/pure-functions/escape-regexp.d.ts +21 -0
- package/dist/cjs/src/pure-functions/escape-regexp.d.ts.map +1 -0
- package/dist/cjs/src/pure-functions/escape-regexp.js +27 -0
- package/dist/cjs/src/pure-functions/escape-regexp.js.map +1 -0
- package/dist/cjs/src/pure-functions/guard-qr-code-value.d.ts +2 -0
- package/dist/cjs/src/pure-functions/guard-qr-code-value.d.ts.map +1 -0
- package/dist/cjs/src/pure-functions/guard-qr-code-value.js +31 -0
- package/dist/cjs/src/pure-functions/guard-qr-code-value.js.map +1 -0
- package/dist/cjs/src/pure-functions/is-template-string-array.d.ts +3 -0
- package/dist/cjs/src/pure-functions/is-template-string-array.d.ts.map +1 -0
- package/dist/cjs/src/pure-functions/is-template-string-array.js +8 -0
- package/dist/cjs/src/pure-functions/is-template-string-array.js.map +1 -0
- package/dist/cjs/src/pure-functions/is-template-string-array.spec.d.ts +3 -0
- package/dist/cjs/src/pure-functions/is-template-string-array.spec.d.ts.map +1 -0
- package/dist/cjs/src/pure-functions/is-template-string-array.spec.js +40 -0
- package/dist/cjs/src/pure-functions/is-template-string-array.spec.js.map +1 -0
- package/dist/cjs/src/pure-functions/mod.d.ts +22 -0
- package/dist/cjs/src/pure-functions/mod.d.ts.map +1 -0
- package/dist/cjs/src/pure-functions/mod.js +32 -0
- package/dist/cjs/src/pure-functions/mod.js.map +1 -0
- package/dist/cjs/src/pure-functions/retry-policy.d.ts +10 -0
- package/dist/cjs/src/pure-functions/retry-policy.d.ts.map +1 -0
- package/dist/cjs/src/pure-functions/retry-policy.js +32 -0
- package/dist/cjs/src/pure-functions/retry-policy.js.map +1 -0
- package/dist/cjs/src/pure-functions/timestamp-to-date.d.ts +21 -0
- package/dist/cjs/src/pure-functions/timestamp-to-date.d.ts.map +1 -0
- package/dist/cjs/src/pure-functions/timestamp-to-date.js +35 -0
- package/dist/cjs/src/pure-functions/timestamp-to-date.js.map +1 -0
- package/dist/cjs/src/pure-functions/timestamp-to-date.spec.d.ts +3 -0
- package/dist/cjs/src/pure-functions/timestamp-to-date.spec.d.ts.map +1 -0
- package/dist/cjs/src/pure-functions/timestamp-to-date.spec.js +42 -0
- package/dist/cjs/src/pure-functions/timestamp-to-date.spec.js.map +1 -0
- package/dist/cjs/src/pure-functions/xml.d.ts +33 -0
- package/dist/cjs/src/pure-functions/xml.d.ts.map +1 -0
- package/dist/cjs/src/pure-functions/xml.js +83 -0
- package/dist/cjs/src/pure-functions/xml.js.map +1 -0
- package/dist/cjs/src/pure-functions/xml.spec.d.ts +3 -0
- package/dist/cjs/src/pure-functions/xml.spec.d.ts.map +1 -0
- package/dist/cjs/src/pure-functions/xml.spec.js +97 -0
- package/dist/cjs/src/pure-functions/xml.spec.js.map +1 -0
- package/dist/cjs/src/raven.d.ts +4 -0
- package/dist/cjs/src/raven.d.ts.map +1 -0
- package/dist/cjs/src/raven.js +83 -0
- package/dist/cjs/src/raven.js.map +1 -0
- package/dist/cjs/src/sayable/deliver-sayable.d.ts +8 -0
- package/dist/cjs/src/sayable/deliver-sayable.d.ts.map +1 -0
- package/dist/cjs/src/sayable/deliver-sayable.js +75 -0
- package/dist/cjs/src/sayable/deliver-sayable.js.map +1 -0
- package/dist/cjs/src/sayable/message-to-sayable.d.ts +5 -0
- package/dist/cjs/src/sayable/message-to-sayable.d.ts.map +1 -0
- package/dist/cjs/src/sayable/message-to-sayable.js +57 -0
- package/dist/cjs/src/sayable/message-to-sayable.js.map +1 -0
- package/dist/cjs/src/sayable/mod.d.ts +8 -0
- package/dist/cjs/src/sayable/mod.d.ts.map +1 -0
- package/dist/cjs/src/sayable/mod.js +12 -0
- package/dist/cjs/src/sayable/mod.js.map +1 -0
- package/dist/cjs/src/sayable/payload-to-sayable.d.ts +6 -0
- package/dist/cjs/src/sayable/payload-to-sayable.d.ts.map +1 -0
- package/dist/cjs/src/sayable/payload-to-sayable.js +55 -0
- package/dist/cjs/src/sayable/payload-to-sayable.js.map +1 -0
- package/dist/cjs/src/sayable/sayable-to-payload.d.ts +5 -0
- package/dist/cjs/src/sayable/sayable-to-payload.d.ts.map +1 -0
- package/dist/cjs/src/sayable/sayable-to-payload.js +73 -0
- package/dist/cjs/src/sayable/sayable-to-payload.js.map +1 -0
- package/dist/cjs/src/sayable/types.d.ts +30 -0
- package/dist/cjs/src/sayable/types.d.ts.map +1 -0
- package/dist/cjs/src/sayable/types.js +3 -0
- package/dist/cjs/src/sayable/types.js.map +1 -0
- package/dist/cjs/src/schemas/acceptable.d.ts +27 -0
- package/dist/cjs/src/schemas/acceptable.d.ts.map +1 -0
- package/dist/cjs/src/schemas/acceptable.js +3 -0
- package/dist/cjs/src/schemas/acceptable.js.map +1 -0
- package/dist/cjs/src/schemas/contact-events.d.ts +12 -0
- package/dist/cjs/src/schemas/contact-events.d.ts.map +1 -0
- package/dist/cjs/src/schemas/contact-events.js +7 -0
- package/dist/cjs/src/schemas/contact-events.js.map +1 -0
- package/dist/cjs/src/schemas/mod.d.ts +7 -0
- package/dist/cjs/src/schemas/mod.d.ts.map +1 -0
- package/dist/cjs/src/schemas/mod.js +10 -0
- package/dist/cjs/src/schemas/mod.js.map +1 -0
- package/dist/cjs/src/schemas/room-events.d.ts +103 -0
- package/dist/cjs/src/schemas/room-events.d.ts.map +1 -0
- package/dist/cjs/src/schemas/room-events.js +14 -0
- package/dist/cjs/src/schemas/room-events.js.map +1 -0
- package/dist/cjs/src/schemas/wechaty-events.d.ts +218 -0
- package/dist/cjs/src/schemas/wechaty-events.d.ts.map +1 -0
- package/dist/cjs/src/schemas/wechaty-events.js +41 -0
- package/dist/cjs/src/schemas/wechaty-events.js.map +1 -0
- package/dist/cjs/src/schemas/wechaty-options.d.ts +20 -0
- package/dist/cjs/src/schemas/wechaty-options.d.ts.map +1 -0
- package/dist/cjs/src/schemas/wechaty-options.js +3 -0
- package/dist/cjs/src/schemas/wechaty-options.js.map +1 -0
- package/dist/cjs/src/user-mixins/mod.d.ts +7 -0
- package/dist/cjs/src/user-mixins/mod.d.ts.map +1 -0
- package/dist/cjs/src/user-mixins/mod.js +11 -0
- package/dist/cjs/src/user-mixins/mod.js.map +1 -0
- package/dist/cjs/src/user-mixins/poolify.d.ts +32 -0
- package/dist/cjs/src/user-mixins/poolify.d.ts.map +1 -0
- package/dist/cjs/src/user-mixins/poolify.js +47 -0
- package/dist/cjs/src/user-mixins/poolify.js.map +1 -0
- package/dist/cjs/src/user-mixins/poolify.spec.d.ts +3 -0
- package/dist/cjs/src/user-mixins/poolify.spec.d.ts.map +1 -0
- package/dist/cjs/src/user-mixins/poolify.spec.js +53 -0
- package/dist/cjs/src/user-mixins/poolify.spec.js.map +1 -0
- package/dist/cjs/src/user-mixins/validation.d.ts +9 -0
- package/dist/cjs/src/user-mixins/validation.d.ts.map +1 -0
- package/dist/cjs/src/user-mixins/validation.js +29 -0
- package/dist/cjs/src/user-mixins/validation.js.map +1 -0
- package/dist/cjs/src/user-mixins/validation.spec.d.ts +3 -0
- package/dist/cjs/src/user-mixins/validation.spec.d.ts.map +1 -0
- package/dist/cjs/src/user-mixins/validation.spec.js +56 -0
- package/dist/cjs/src/user-mixins/validation.spec.js.map +1 -0
- package/dist/cjs/src/user-mixins/wechatify.d.ts +24 -0
- package/dist/cjs/src/user-mixins/wechatify.d.ts.map +1 -0
- package/dist/cjs/src/user-mixins/wechatify.js +47 -0
- package/dist/cjs/src/user-mixins/wechatify.js.map +1 -0
- package/dist/cjs/src/user-mixins/wechatify.spec.d.ts +3 -0
- package/dist/cjs/src/user-mixins/wechatify.spec.d.ts.map +1 -0
- package/dist/cjs/src/user-mixins/wechatify.spec.js +20 -0
- package/dist/cjs/src/user-mixins/wechatify.spec.js.map +1 -0
- package/dist/cjs/src/user-modules/contact-self.d.ts +110 -0
- package/dist/cjs/src/user-modules/contact-self.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/contact-self.js +133 -0
- package/dist/cjs/src/user-modules/contact-self.js.map +1 -0
- package/dist/cjs/src/user-modules/contact.d.ts +388 -0
- package/dist/cjs/src/user-modules/contact.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/contact.js +667 -0
- package/dist/cjs/src/user-modules/contact.js.map +1 -0
- package/dist/cjs/src/user-modules/contact.spec.d.ts +3 -0
- package/dist/cjs/src/user-modules/contact.spec.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/contact.spec.js +71 -0
- package/dist/cjs/src/user-modules/contact.spec.js.map +1 -0
- package/dist/cjs/src/user-modules/delay.d.ts +47 -0
- package/dist/cjs/src/user-modules/delay.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/delay.js +24 -0
- package/dist/cjs/src/user-modules/delay.js.map +1 -0
- package/dist/cjs/src/user-modules/favorite.d.ts +38 -0
- package/dist/cjs/src/user-modules/favorite.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/favorite.js +68 -0
- package/dist/cjs/src/user-modules/favorite.js.map +1 -0
- package/dist/cjs/src/user-modules/friendship.d.ts +244 -0
- package/dist/cjs/src/user-modules/friendship.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/friendship.js +369 -0
- package/dist/cjs/src/user-modules/friendship.js.map +1 -0
- package/dist/cjs/src/user-modules/image.d.ts +31 -0
- package/dist/cjs/src/user-modules/image.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/image.js +81 -0
- package/dist/cjs/src/user-modules/image.js.map +1 -0
- package/dist/cjs/src/user-modules/location.d.ts +59 -0
- package/dist/cjs/src/user-modules/location.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/location.js +58 -0
- package/dist/cjs/src/user-modules/location.js.map +1 -0
- package/dist/cjs/src/user-modules/message.d.ts +459 -0
- package/dist/cjs/src/user-modules/message.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/message.js +932 -0
- package/dist/cjs/src/user-modules/message.js.map +1 -0
- package/dist/cjs/src/user-modules/message.spec.d.ts +22 -0
- package/dist/cjs/src/user-modules/message.spec.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/message.spec.js +125 -0
- package/dist/cjs/src/user-modules/message.spec.js.map +1 -0
- package/dist/cjs/src/user-modules/mini-program.d.ts +59 -0
- package/dist/cjs/src/user-modules/mini-program.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/mini-program.js +63 -0
- package/dist/cjs/src/user-modules/mini-program.js.map +1 -0
- package/dist/cjs/src/user-modules/mod.d.ts +40 -0
- package/dist/cjs/src/user-modules/mod.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/mod.js +57 -0
- package/dist/cjs/src/user-modules/mod.js.map +1 -0
- package/dist/cjs/src/user-modules/moment.d.ts +28 -0
- package/dist/cjs/src/user-modules/moment.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/moment.js +46 -0
- package/dist/cjs/src/user-modules/moment.js.map +1 -0
- package/dist/cjs/src/user-modules/money.d.ts +44 -0
- package/dist/cjs/src/user-modules/money.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/money.js +14 -0
- package/dist/cjs/src/user-modules/money.js.map +1 -0
- package/dist/cjs/src/user-modules/post.d.ts +114 -0
- package/dist/cjs/src/user-modules/post.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/post.js +372 -0
- package/dist/cjs/src/user-modules/post.js.map +1 -0
- package/dist/cjs/src/user-modules/post.spec.d.ts +3 -0
- package/dist/cjs/src/user-modules/post.spec.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/post.spec.js +89 -0
- package/dist/cjs/src/user-modules/post.spec.js.map +1 -0
- package/dist/cjs/src/user-modules/room-invitation.d.ts +154 -0
- package/dist/cjs/src/user-modules/room-invitation.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/room-invitation.js +201 -0
- package/dist/cjs/src/user-modules/room-invitation.js.map +1 -0
- package/dist/cjs/src/user-modules/room.d.ts +404 -0
- package/dist/cjs/src/user-modules/room.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/room.js +932 -0
- package/dist/cjs/src/user-modules/room.js.map +1 -0
- package/dist/cjs/src/user-modules/room.spec.d.ts +3 -0
- package/dist/cjs/src/user-modules/room.spec.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/room.spec.js +135 -0
- package/dist/cjs/src/user-modules/room.spec.js.map +1 -0
- package/dist/cjs/src/user-modules/tag.d.ts +92 -0
- package/dist/cjs/src/user-modules/tag.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/tag.js +163 -0
- package/dist/cjs/src/user-modules/tag.js.map +1 -0
- package/dist/cjs/src/user-modules/url-link.d.ts +38 -0
- package/dist/cjs/src/user-modules/url-link.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/url-link.js +116 -0
- package/dist/cjs/src/user-modules/url-link.js.map +1 -0
- package/dist/cjs/src/user-modules/url-link.spec.d.ts +3 -0
- package/dist/cjs/src/user-modules/url-link.spec.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/url-link.spec.js +31 -0
- package/dist/cjs/src/user-modules/url-link.spec.js.map +1 -0
- package/dist/cjs/src/wechaty/mod.d.ts +6 -0
- package/dist/cjs/src/wechaty/mod.d.ts.map +1 -0
- package/dist/cjs/src/wechaty/mod.js +8 -0
- package/dist/cjs/src/wechaty/mod.js.map +1 -0
- package/dist/cjs/src/wechaty/wechaty-base.d.ts +545 -0
- package/dist/cjs/src/wechaty/wechaty-base.d.ts.map +1 -0
- package/dist/cjs/src/wechaty/wechaty-base.js +221 -0
- package/dist/cjs/src/wechaty/wechaty-base.js.map +1 -0
- package/dist/cjs/src/wechaty/wechaty-base.spec.d.ts +14 -0
- package/dist/cjs/src/wechaty/wechaty-base.spec.d.ts.map +1 -0
- package/dist/cjs/src/wechaty/wechaty-base.spec.js +288 -0
- package/dist/cjs/src/wechaty/wechaty-base.spec.js.map +1 -0
- package/dist/cjs/src/wechaty/wechaty-impl.d.ts +56 -0
- package/dist/cjs/src/wechaty/wechaty-impl.d.ts.map +1 -0
- package/dist/cjs/src/wechaty/wechaty-impl.js +17 -0
- package/dist/cjs/src/wechaty/wechaty-impl.js.map +1 -0
- package/dist/cjs/src/wechaty/wechaty-impl.spec.d.ts +3 -0
- package/dist/cjs/src/wechaty/wechaty-impl.spec.d.ts.map +1 -0
- package/dist/cjs/src/wechaty/wechaty-impl.spec.js +64 -0
- package/dist/cjs/src/wechaty/wechaty-impl.spec.js.map +1 -0
- package/dist/cjs/src/wechaty/wechaty-skeleton.d.ts +51 -0
- package/dist/cjs/src/wechaty/wechaty-skeleton.d.ts.map +1 -0
- package/dist/cjs/src/wechaty/wechaty-skeleton.js +119 -0
- package/dist/cjs/src/wechaty/wechaty-skeleton.js.map +1 -0
- package/dist/cjs/src/wechaty/wechaty-skelton.spec.d.ts +3 -0
- package/dist/cjs/src/wechaty/wechaty-skelton.spec.d.ts.map +1 -0
- package/dist/cjs/src/wechaty/wechaty-skelton.spec.js +9 -0
- package/dist/cjs/src/wechaty/wechaty-skelton.spec.js.map +1 -0
- package/dist/cjs/src/wechaty-builder.d.ts +38 -0
- package/dist/cjs/src/wechaty-builder.d.ts.map +1 -0
- package/dist/cjs/src/wechaty-builder.js +98 -0
- package/dist/cjs/src/wechaty-builder.js.map +1 -0
- package/dist/cjs/src/wechaty-builder.spec.d.ts +22 -0
- package/dist/cjs/src/wechaty-builder.spec.d.ts.map +1 -0
- package/dist/cjs/src/wechaty-builder.spec.js +66 -0
- package/dist/cjs/src/wechaty-builder.spec.js.map +1 -0
- package/dist/cjs/src/wechaty-mixins/gerror-mixin.d.ts +52 -0
- package/dist/cjs/src/wechaty-mixins/gerror-mixin.d.ts.map +1 -0
- package/dist/cjs/src/wechaty-mixins/gerror-mixin.js +54 -0
- package/dist/cjs/src/wechaty-mixins/gerror-mixin.js.map +1 -0
- package/dist/cjs/src/wechaty-mixins/gerror-mixin.spec.d.ts +3 -0
- package/dist/cjs/src/wechaty-mixins/gerror-mixin.spec.d.ts.map +1 -0
- package/dist/cjs/src/wechaty-mixins/gerror-mixin.spec.js +9 -0
- package/dist/cjs/src/wechaty-mixins/gerror-mixin.spec.js.map +1 -0
- package/dist/cjs/src/wechaty-mixins/io-mixin.d.ts +75 -0
- package/dist/cjs/src/wechaty-mixins/io-mixin.d.ts.map +1 -0
- package/dist/cjs/src/wechaty-mixins/io-mixin.js +86 -0
- package/dist/cjs/src/wechaty-mixins/io-mixin.js.map +1 -0
- package/dist/cjs/src/wechaty-mixins/login-mixin.d.ts +290 -0
- package/dist/cjs/src/wechaty-mixins/login-mixin.d.ts.map +1 -0
- package/dist/cjs/src/wechaty-mixins/login-mixin.js +89 -0
- package/dist/cjs/src/wechaty-mixins/login-mixin.js.map +1 -0
- package/dist/cjs/src/wechaty-mixins/login-mixin.spec.d.ts +3 -0
- package/dist/cjs/src/wechaty-mixins/login-mixin.spec.d.ts.map +1 -0
- package/dist/cjs/src/wechaty-mixins/login-mixin.spec.js +9 -0
- package/dist/cjs/src/wechaty-mixins/login-mixin.spec.js.map +1 -0
- package/dist/cjs/src/wechaty-mixins/misc-mixin.d.ts +295 -0
- package/dist/cjs/src/wechaty-mixins/misc-mixin.d.ts.map +1 -0
- package/dist/cjs/src/wechaty-mixins/misc-mixin.js +67 -0
- package/dist/cjs/src/wechaty-mixins/misc-mixin.js.map +1 -0
- package/dist/cjs/src/wechaty-mixins/mod.d.ts +18 -0
- package/dist/cjs/src/wechaty-mixins/mod.d.ts.map +1 -0
- package/dist/cjs/src/wechaty-mixins/mod.js +18 -0
- package/dist/cjs/src/wechaty-mixins/mod.js.map +1 -0
- package/dist/cjs/src/wechaty-mixins/plugin-mixin.d.ts +384 -0
- package/dist/cjs/src/wechaty-mixins/plugin-mixin.d.ts.map +1 -0
- package/dist/cjs/src/wechaty-mixins/plugin-mixin.js +56 -0
- package/dist/cjs/src/wechaty-mixins/plugin-mixin.js.map +1 -0
- package/dist/cjs/src/wechaty-mixins/plugin-mixin.spec.d.ts +13 -0
- package/dist/cjs/src/wechaty-mixins/plugin-mixin.spec.d.ts.map +1 -0
- package/dist/cjs/src/wechaty-mixins/plugin-mixin.spec.js +60 -0
- package/dist/cjs/src/wechaty-mixins/plugin-mixin.spec.js.map +1 -0
- package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts +194 -0
- package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -0
- package/dist/cjs/src/wechaty-mixins/puppet-mixin.js +425 -0
- package/dist/cjs/src/wechaty-mixins/puppet-mixin.js.map +1 -0
- package/dist/cjs/src/wechaty-mixins/puppet-mixin.spec.d.ts +3 -0
- package/dist/cjs/src/wechaty-mixins/puppet-mixin.spec.d.ts.map +1 -0
- package/dist/cjs/src/wechaty-mixins/puppet-mixin.spec.js +9 -0
- package/dist/cjs/src/wechaty-mixins/puppet-mixin.spec.js.map +1 -0
- package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.d.ts +61 -0
- package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.d.ts.map +1 -0
- package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.js +84 -0
- package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.js.map +1 -0
- package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.spec.d.ts +3 -0
- package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.spec.d.ts.map +1 -0
- package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.spec.js +9 -0
- package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.spec.js.map +1 -0
- package/dist/cjs/tests/electron.spec.d.ts +3 -0
- package/dist/cjs/tests/electron.spec.d.ts.map +1 -0
- package/dist/cjs/tests/electron.spec.js +30 -0
- package/dist/cjs/tests/electron.spec.js.map +1 -0
- package/dist/cjs/tests/node.spec.d.ts +3 -0
- package/dist/cjs/tests/node.spec.d.ts.map +1 -0
- package/dist/cjs/tests/node.spec.js +43 -0
- package/dist/cjs/tests/node.spec.js.map +1 -0
- package/dist/esm/bin/cli.d.ts +14 -0
- package/dist/esm/bin/cli.d.ts.map +1 -0
- package/dist/esm/bin/cli.js +25 -0
- package/dist/esm/bin/cli.js.map +1 -0
- package/dist/esm/bin/doctor.d.ts +22 -0
- package/dist/esm/bin/doctor.d.ts.map +1 -0
- package/dist/esm/bin/doctor.js +50 -0
- package/dist/esm/bin/doctor.js.map +1 -0
- package/dist/esm/bin/io-client.d.ts +22 -0
- package/dist/esm/bin/io-client.d.ts.map +1 -0
- package/dist/esm/bin/io-client.js +72 -0
- package/dist/esm/bin/io-client.js.map +1 -0
- package/dist/esm/bin/providers-trends.d.ts +3 -0
- package/dist/esm/bin/providers-trends.d.ts.map +1 -0
- package/dist/esm/bin/providers-trends.js +12 -0
- package/dist/esm/bin/providers-trends.js.map +1 -0
- package/dist/esm/bin/puppet-install.d.ts +3 -0
- package/dist/esm/bin/puppet-install.d.ts.map +1 -0
- package/dist/esm/bin/puppet-install.js +55 -0
- package/dist/esm/bin/puppet-install.js.map +1 -0
- package/dist/esm/bin/version.d.ts +22 -0
- package/dist/esm/bin/version.d.ts.map +1 -0
- package/dist/esm/bin/version.js +23 -0
- package/dist/esm/bin/version.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 +178 -0
- package/dist/esm/examples/ding-dong-bot.js.map +1 -0
- package/dist/esm/examples/video-post.d.ts +2 -0
- package/dist/esm/examples/video-post.d.ts.map +1 -0
- package/dist/esm/examples/video-post.js +70 -0
- package/dist/esm/examples/video-post.js.map +1 -0
- package/dist/esm/scripts/retry-unit-tests.d.ts +3 -0
- package/dist/esm/scripts/retry-unit-tests.d.ts.map +1 -0
- package/dist/esm/scripts/retry-unit-tests.js +56 -0
- package/dist/esm/scripts/retry-unit-tests.js.map +1 -0
- package/dist/esm/scripts/sort-contributiveness.d.ts +3 -0
- package/dist/esm/scripts/sort-contributiveness.d.ts.map +1 -0
- package/dist/esm/scripts/sort-contributiveness.js +117 -0
- package/dist/esm/scripts/sort-contributiveness.js.map +1 -0
- package/dist/esm/scripts/update-license.d.ts +3 -0
- package/dist/esm/scripts/update-license.d.ts.map +1 -0
- package/dist/esm/scripts/update-license.js +163 -0
- package/dist/esm/scripts/update-license.js.map +1 -0
- package/dist/esm/src/cli/friday.d.ts +7 -0
- package/dist/esm/src/cli/friday.d.ts.map +1 -0
- package/dist/esm/src/cli/friday.js +15 -0
- package/dist/esm/src/cli/friday.js.map +1 -0
- package/dist/esm/src/cli/gateway.d.ts +17 -0
- package/dist/esm/src/cli/gateway.d.ts.map +1 -0
- package/dist/esm/src/cli/gateway.js +148 -0
- package/dist/esm/src/cli/gateway.js.map +1 -0
- package/dist/esm/src/cli/mod.d.ts +6 -0
- package/dist/esm/src/cli/mod.d.ts.map +1 -0
- package/dist/esm/src/cli/mod.js +6 -0
- package/dist/esm/src/cli/mod.js.map +1 -0
- package/dist/esm/src/cli/provider.d.ts +7 -0
- package/dist/esm/src/cli/provider.d.ts.map +1 -0
- package/dist/esm/src/cli/provider.js +15 -0
- package/dist/esm/src/cli/provider.js.map +1 -0
- package/dist/esm/src/cli/service.d.ts +7 -0
- package/dist/esm/src/cli/service.d.ts.map +1 -0
- package/dist/esm/src/cli/service.js +15 -0
- package/dist/esm/src/cli/service.js.map +1 -0
- package/dist/esm/src/cli/token.d.ts +39 -0
- package/dist/esm/src/cli/token.d.ts.map +1 -0
- package/dist/esm/src/cli/token.js +12 -0
- package/dist/esm/src/cli/token.js.map +1 -0
- package/dist/esm/src/config.d.ts +61 -0
- package/dist/esm/src/config.d.ts.map +1 -0
- package/dist/esm/src/config.js +100 -0
- package/dist/esm/src/config.js.map +1 -0
- package/dist/esm/src/config.spec.d.ts +22 -0
- package/dist/esm/src/config.spec.d.ts.map +1 -0
- package/dist/esm/src/config.spec.js +82 -0
- package/dist/esm/src/config.spec.js.map +1 -0
- package/dist/esm/src/doctor.d.ts +9 -0
- package/dist/esm/src/doctor.d.ts.map +1 -0
- package/dist/esm/src/doctor.js +78 -0
- package/dist/esm/src/doctor.js.map +1 -0
- package/dist/esm/src/helper-functions/open-graph.d.ts +22 -0
- package/dist/esm/src/helper-functions/open-graph.d.ts.map +1 -0
- package/dist/esm/src/helper-functions/open-graph.js +36 -0
- package/dist/esm/src/helper-functions/open-graph.js.map +1 -0
- package/dist/esm/src/helper-functions/stringify-filter.d.ts +3 -0
- package/dist/esm/src/helper-functions/stringify-filter.d.ts.map +1 -0
- package/dist/esm/src/helper-functions/stringify-filter.js +9 -0
- package/dist/esm/src/helper-functions/stringify-filter.js.map +1 -0
- package/dist/esm/src/io-client.d.ts +28 -0
- package/dist/esm/src/io-client.d.ts.map +1 -0
- package/dist/esm/src/io-client.js +213 -0
- package/dist/esm/src/io-client.js.map +1 -0
- package/dist/esm/src/io-peer/io-peer.d.ts +12 -0
- package/dist/esm/src/io-peer/io-peer.d.ts.map +1 -0
- package/dist/esm/src/io-peer/io-peer.js +61 -0
- package/dist/esm/src/io-peer/io-peer.js.map +1 -0
- package/dist/esm/src/io-peer/io-peer.spec.d.ts +3 -0
- package/dist/esm/src/io-peer/io-peer.spec.d.ts.map +1 -0
- package/dist/esm/src/io-peer/io-peer.spec.js +56 -0
- package/dist/esm/src/io-peer/io-peer.spec.js.map +1 -0
- package/dist/esm/src/io.d.ts +98 -0
- package/dist/esm/src/io.d.ts.map +1 -0
- package/dist/esm/src/io.js +438 -0
- package/dist/esm/src/io.js.map +1 -0
- package/dist/esm/src/io.spec.d.ts +3 -0
- package/dist/esm/src/io.spec.d.ts.map +1 -0
- package/dist/esm/src/io.spec.js +43 -0
- package/dist/esm/src/io.spec.js.map +1 -0
- package/dist/esm/src/mods/helpers.d.ts +2 -0
- package/dist/esm/src/mods/helpers.d.ts.map +1 -0
- package/dist/esm/src/mods/helpers.js +2 -0
- package/dist/esm/src/mods/helpers.js.map +1 -0
- package/dist/esm/src/mods/impls.d.ts +36 -0
- package/dist/esm/src/mods/impls.d.ts.map +1 -0
- package/dist/esm/src/mods/impls.js +33 -0
- package/dist/esm/src/mods/impls.js.map +1 -0
- package/dist/esm/src/mods/impls.spec.d.ts +3 -0
- package/dist/esm/src/mods/impls.spec.d.ts.map +1 -0
- package/dist/esm/src/mods/impls.spec.js +11 -0
- package/dist/esm/src/mods/impls.spec.js.map +1 -0
- package/dist/esm/src/mods/mod.d.ts +40 -0
- package/dist/esm/src/mods/mod.d.ts.map +1 -0
- package/dist/esm/src/mods/mod.js +31 -0
- package/dist/esm/src/mods/mod.js.map +1 -0
- package/dist/esm/src/mods/mod.spec.d.ts +3 -0
- package/dist/esm/src/mods/mod.spec.d.ts.map +1 -0
- package/dist/esm/src/mods/mod.spec.js +14 -0
- package/dist/esm/src/mods/mod.spec.js.map +1 -0
- package/dist/esm/src/mods/users.d.ts +26 -0
- package/dist/esm/src/mods/users.d.ts.map +1 -0
- package/dist/esm/src/mods/users.js +21 -0
- package/dist/esm/src/mods/users.js.map +1 -0
- package/dist/esm/src/package-json.d.ts +7 -0
- package/dist/esm/src/package-json.d.ts.map +1 -0
- package/dist/esm/src/package-json.js +175 -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 +15 -0
- package/dist/esm/src/package-json.spec.js.map +1 -0
- package/dist/esm/src/plugin.d.ts +9 -0
- package/dist/esm/src/plugin.d.ts.map +1 -0
- package/dist/esm/src/plugin.js +5 -0
- package/dist/esm/src/plugin.js.map +1 -0
- package/dist/esm/src/plugin.spec.d.ts +3 -0
- package/dist/esm/src/plugin.spec.d.ts.map +1 -0
- package/dist/esm/src/plugin.spec.js +68 -0
- package/dist/esm/src/plugin.spec.js.map +1 -0
- package/dist/esm/src/puppet-config.d.ts +78 -0
- package/dist/esm/src/puppet-config.d.ts.map +1 -0
- package/dist/esm/src/puppet-config.js +80 -0
- package/dist/esm/src/puppet-config.js.map +1 -0
- package/dist/esm/src/pure-functions/escape-regexp.d.ts +21 -0
- package/dist/esm/src/pure-functions/escape-regexp.d.ts.map +1 -0
- package/dist/esm/src/pure-functions/escape-regexp.js +23 -0
- package/dist/esm/src/pure-functions/escape-regexp.js.map +1 -0
- package/dist/esm/src/pure-functions/guard-qr-code-value.d.ts +2 -0
- package/dist/esm/src/pure-functions/guard-qr-code-value.d.ts.map +1 -0
- package/dist/esm/src/pure-functions/guard-qr-code-value.js +27 -0
- package/dist/esm/src/pure-functions/guard-qr-code-value.js.map +1 -0
- package/dist/esm/src/pure-functions/is-template-string-array.d.ts +3 -0
- package/dist/esm/src/pure-functions/is-template-string-array.d.ts.map +1 -0
- package/dist/esm/src/pure-functions/is-template-string-array.js +5 -0
- package/dist/esm/src/pure-functions/is-template-string-array.js.map +1 -0
- package/dist/esm/src/pure-functions/is-template-string-array.spec.d.ts +3 -0
- package/dist/esm/src/pure-functions/is-template-string-array.spec.d.ts.map +1 -0
- package/dist/esm/src/pure-functions/is-template-string-array.spec.js +38 -0
- package/dist/esm/src/pure-functions/is-template-string-array.spec.js.map +1 -0
- package/dist/esm/src/pure-functions/mod.d.ts +22 -0
- package/dist/esm/src/pure-functions/mod.d.ts.map +1 -0
- package/dist/esm/src/pure-functions/mod.js +22 -0
- package/dist/esm/src/pure-functions/mod.js.map +1 -0
- package/dist/esm/src/pure-functions/retry-policy.d.ts +10 -0
- package/dist/esm/src/pure-functions/retry-policy.d.ts.map +1 -0
- package/dist/esm/src/pure-functions/retry-policy.js +29 -0
- package/dist/esm/src/pure-functions/retry-policy.js.map +1 -0
- package/dist/esm/src/pure-functions/timestamp-to-date.d.ts +21 -0
- package/dist/esm/src/pure-functions/timestamp-to-date.d.ts.map +1 -0
- package/dist/esm/src/pure-functions/timestamp-to-date.js +31 -0
- package/dist/esm/src/pure-functions/timestamp-to-date.js.map +1 -0
- package/dist/esm/src/pure-functions/timestamp-to-date.spec.d.ts +3 -0
- package/dist/esm/src/pure-functions/timestamp-to-date.spec.d.ts.map +1 -0
- package/dist/esm/src/pure-functions/timestamp-to-date.spec.js +40 -0
- package/dist/esm/src/pure-functions/timestamp-to-date.spec.js.map +1 -0
- package/dist/esm/src/pure-functions/xml.d.ts +33 -0
- package/dist/esm/src/pure-functions/xml.d.ts.map +1 -0
- package/dist/esm/src/pure-functions/xml.js +74 -0
- package/dist/esm/src/pure-functions/xml.js.map +1 -0
- package/dist/esm/src/pure-functions/xml.spec.d.ts +3 -0
- package/dist/esm/src/pure-functions/xml.spec.d.ts.map +1 -0
- package/dist/esm/src/pure-functions/xml.spec.js +95 -0
- package/dist/esm/src/pure-functions/xml.spec.js.map +1 -0
- package/dist/esm/src/raven.d.ts +4 -0
- package/dist/esm/src/raven.d.ts.map +1 -0
- package/dist/esm/src/raven.js +54 -0
- package/dist/esm/src/raven.js.map +1 -0
- package/dist/esm/src/sayable/deliver-sayable.d.ts +8 -0
- package/dist/esm/src/sayable/deliver-sayable.d.ts.map +1 -0
- package/dist/esm/src/sayable/deliver-sayable.js +72 -0
- package/dist/esm/src/sayable/deliver-sayable.js.map +1 -0
- package/dist/esm/src/sayable/message-to-sayable.d.ts +5 -0
- package/dist/esm/src/sayable/message-to-sayable.d.ts.map +1 -0
- package/dist/esm/src/sayable/message-to-sayable.js +31 -0
- package/dist/esm/src/sayable/message-to-sayable.js.map +1 -0
- package/dist/esm/src/sayable/mod.d.ts +8 -0
- package/dist/esm/src/sayable/mod.d.ts.map +1 -0
- package/dist/esm/src/sayable/mod.js +6 -0
- package/dist/esm/src/sayable/mod.js.map +1 -0
- package/dist/esm/src/sayable/payload-to-sayable.d.ts +6 -0
- package/dist/esm/src/sayable/payload-to-sayable.d.ts.map +1 -0
- package/dist/esm/src/sayable/payload-to-sayable.js +29 -0
- package/dist/esm/src/sayable/payload-to-sayable.js.map +1 -0
- package/dist/esm/src/sayable/sayable-to-payload.d.ts +5 -0
- package/dist/esm/src/sayable/sayable-to-payload.d.ts.map +1 -0
- package/dist/esm/src/sayable/sayable-to-payload.js +47 -0
- package/dist/esm/src/sayable/sayable-to-payload.js.map +1 -0
- package/dist/esm/src/sayable/types.d.ts +30 -0
- package/dist/esm/src/sayable/types.d.ts.map +1 -0
- package/dist/esm/src/sayable/types.js +2 -0
- package/dist/esm/src/sayable/types.js.map +1 -0
- package/dist/esm/src/schemas/acceptable.d.ts +27 -0
- package/dist/esm/src/schemas/acceptable.d.ts.map +1 -0
- package/dist/esm/src/schemas/acceptable.js +2 -0
- package/dist/esm/src/schemas/acceptable.js.map +1 -0
- package/dist/esm/src/schemas/contact-events.d.ts +12 -0
- package/dist/esm/src/schemas/contact-events.d.ts.map +1 -0
- package/dist/esm/src/schemas/contact-events.js +4 -0
- package/dist/esm/src/schemas/contact-events.js.map +1 -0
- package/dist/esm/src/schemas/mod.d.ts +7 -0
- package/dist/esm/src/schemas/mod.d.ts.map +1 -0
- package/dist/esm/src/schemas/mod.js +5 -0
- package/dist/esm/src/schemas/mod.js.map +1 -0
- package/dist/esm/src/schemas/room-events.d.ts +103 -0
- package/dist/esm/src/schemas/room-events.d.ts.map +1 -0
- package/dist/esm/src/schemas/room-events.js +11 -0
- package/dist/esm/src/schemas/room-events.js.map +1 -0
- package/dist/esm/src/schemas/wechaty-events.d.ts +218 -0
- package/dist/esm/src/schemas/wechaty-events.d.ts.map +1 -0
- package/dist/esm/src/schemas/wechaty-events.js +15 -0
- package/dist/esm/src/schemas/wechaty-events.js.map +1 -0
- package/dist/esm/src/schemas/wechaty-options.d.ts +20 -0
- package/dist/esm/src/schemas/wechaty-options.d.ts.map +1 -0
- package/dist/esm/src/schemas/wechaty-options.js +2 -0
- package/dist/esm/src/schemas/wechaty-options.js.map +1 -0
- package/dist/esm/src/user-mixins/mod.d.ts +7 -0
- package/dist/esm/src/user-mixins/mod.d.ts.map +1 -0
- package/dist/esm/src/user-mixins/mod.js +5 -0
- package/dist/esm/src/user-mixins/mod.js.map +1 -0
- package/dist/esm/src/user-mixins/poolify.d.ts +32 -0
- package/dist/esm/src/user-mixins/poolify.d.ts.map +1 -0
- package/dist/esm/src/user-mixins/poolify.js +44 -0
- package/dist/esm/src/user-mixins/poolify.js.map +1 -0
- package/dist/esm/src/user-mixins/poolify.spec.d.ts +3 -0
- package/dist/esm/src/user-mixins/poolify.spec.d.ts.map +1 -0
- package/dist/esm/src/user-mixins/poolify.spec.js +51 -0
- package/dist/esm/src/user-mixins/poolify.spec.js.map +1 -0
- package/dist/esm/src/user-mixins/validation.d.ts +9 -0
- package/dist/esm/src/user-mixins/validation.d.ts.map +1 -0
- package/dist/esm/src/user-mixins/validation.js +26 -0
- package/dist/esm/src/user-mixins/validation.js.map +1 -0
- package/dist/esm/src/user-mixins/validation.spec.d.ts +3 -0
- package/dist/esm/src/user-mixins/validation.spec.d.ts.map +1 -0
- package/dist/esm/src/user-mixins/validation.spec.js +54 -0
- package/dist/esm/src/user-mixins/validation.spec.js.map +1 -0
- package/dist/esm/src/user-mixins/wechatify.d.ts +24 -0
- package/dist/esm/src/user-mixins/wechatify.d.ts.map +1 -0
- package/dist/esm/src/user-mixins/wechatify.js +41 -0
- package/dist/esm/src/user-mixins/wechatify.js.map +1 -0
- package/dist/esm/src/user-mixins/wechatify.spec.d.ts +3 -0
- package/dist/esm/src/user-mixins/wechatify.spec.d.ts.map +1 -0
- package/dist/esm/src/user-mixins/wechatify.spec.js +18 -0
- package/dist/esm/src/user-mixins/wechatify.spec.js.map +1 -0
- package/dist/esm/src/user-modules/contact-self.d.ts +110 -0
- package/dist/esm/src/user-modules/contact-self.d.ts.map +1 -0
- package/dist/esm/src/user-modules/contact-self.js +130 -0
- package/dist/esm/src/user-modules/contact-self.js.map +1 -0
- package/dist/esm/src/user-modules/contact.d.ts +388 -0
- package/dist/esm/src/user-modules/contact.d.ts.map +1 -0
- package/dist/esm/src/user-modules/contact.js +641 -0
- package/dist/esm/src/user-modules/contact.js.map +1 -0
- package/dist/esm/src/user-modules/contact.spec.d.ts +3 -0
- package/dist/esm/src/user-modules/contact.spec.d.ts.map +1 -0
- package/dist/esm/src/user-modules/contact.spec.js +69 -0
- package/dist/esm/src/user-modules/contact.spec.js.map +1 -0
- package/dist/esm/src/user-modules/delay.d.ts +47 -0
- package/dist/esm/src/user-modules/delay.d.ts.map +1 -0
- package/dist/esm/src/user-modules/delay.js +21 -0
- package/dist/esm/src/user-modules/delay.js.map +1 -0
- package/dist/esm/src/user-modules/favorite.d.ts +38 -0
- package/dist/esm/src/user-modules/favorite.d.ts.map +1 -0
- package/dist/esm/src/user-modules/favorite.js +65 -0
- package/dist/esm/src/user-modules/favorite.js.map +1 -0
- package/dist/esm/src/user-modules/friendship.d.ts +244 -0
- package/dist/esm/src/user-modules/friendship.d.ts.map +1 -0
- package/dist/esm/src/user-modules/friendship.js +343 -0
- package/dist/esm/src/user-modules/friendship.js.map +1 -0
- package/dist/esm/src/user-modules/image.d.ts +31 -0
- package/dist/esm/src/user-modules/image.d.ts.map +1 -0
- package/dist/esm/src/user-modules/image.js +55 -0
- package/dist/esm/src/user-modules/image.js.map +1 -0
- package/dist/esm/src/user-modules/location.d.ts +59 -0
- package/dist/esm/src/user-modules/location.d.ts.map +1 -0
- package/dist/esm/src/user-modules/location.js +55 -0
- package/dist/esm/src/user-modules/location.js.map +1 -0
- package/dist/esm/src/user-modules/message.d.ts +459 -0
- package/dist/esm/src/user-modules/message.d.ts.map +1 -0
- package/dist/esm/src/user-modules/message.js +906 -0
- package/dist/esm/src/user-modules/message.js.map +1 -0
- package/dist/esm/src/user-modules/message.spec.d.ts +22 -0
- package/dist/esm/src/user-modules/message.spec.d.ts.map +1 -0
- package/dist/esm/src/user-modules/message.spec.js +100 -0
- package/dist/esm/src/user-modules/message.spec.js.map +1 -0
- package/dist/esm/src/user-modules/mini-program.d.ts +59 -0
- package/dist/esm/src/user-modules/mini-program.d.ts.map +1 -0
- package/dist/esm/src/user-modules/mini-program.js +60 -0
- package/dist/esm/src/user-modules/mini-program.js.map +1 -0
- package/dist/esm/src/user-modules/mod.d.ts +40 -0
- package/dist/esm/src/user-modules/mod.d.ts.map +1 -0
- package/dist/esm/src/user-modules/mod.js +38 -0
- package/dist/esm/src/user-modules/mod.js.map +1 -0
- package/dist/esm/src/user-modules/moment.d.ts +28 -0
- package/dist/esm/src/user-modules/moment.d.ts.map +1 -0
- package/dist/esm/src/user-modules/moment.js +43 -0
- package/dist/esm/src/user-modules/moment.js.map +1 -0
- package/dist/esm/src/user-modules/money.d.ts +44 -0
- package/dist/esm/src/user-modules/money.d.ts.map +1 -0
- package/dist/esm/src/user-modules/money.js +11 -0
- package/dist/esm/src/user-modules/money.js.map +1 -0
- package/dist/esm/src/user-modules/post.d.ts +114 -0
- package/dist/esm/src/user-modules/post.d.ts.map +1 -0
- package/dist/esm/src/user-modules/post.js +345 -0
- package/dist/esm/src/user-modules/post.js.map +1 -0
- package/dist/esm/src/user-modules/post.spec.d.ts +3 -0
- package/dist/esm/src/user-modules/post.spec.d.ts.map +1 -0
- package/dist/esm/src/user-modules/post.spec.js +61 -0
- package/dist/esm/src/user-modules/post.spec.js.map +1 -0
- package/dist/esm/src/user-modules/room-invitation.d.ts +154 -0
- package/dist/esm/src/user-modules/room-invitation.d.ts.map +1 -0
- package/dist/esm/src/user-modules/room-invitation.js +198 -0
- package/dist/esm/src/user-modules/room-invitation.js.map +1 -0
- package/dist/esm/src/user-modules/room.d.ts +404 -0
- package/dist/esm/src/user-modules/room.d.ts.map +1 -0
- package/dist/esm/src/user-modules/room.js +929 -0
- package/dist/esm/src/user-modules/room.js.map +1 -0
- package/dist/esm/src/user-modules/room.spec.d.ts +3 -0
- package/dist/esm/src/user-modules/room.spec.d.ts.map +1 -0
- package/dist/esm/src/user-modules/room.spec.js +133 -0
- package/dist/esm/src/user-modules/room.spec.js.map +1 -0
- package/dist/esm/src/user-modules/tag.d.ts +92 -0
- package/dist/esm/src/user-modules/tag.d.ts.map +1 -0
- package/dist/esm/src/user-modules/tag.js +160 -0
- package/dist/esm/src/user-modules/tag.js.map +1 -0
- package/dist/esm/src/user-modules/url-link.d.ts +38 -0
- package/dist/esm/src/user-modules/url-link.d.ts.map +1 -0
- package/dist/esm/src/user-modules/url-link.js +110 -0
- package/dist/esm/src/user-modules/url-link.js.map +1 -0
- package/dist/esm/src/user-modules/url-link.spec.d.ts +3 -0
- package/dist/esm/src/user-modules/url-link.spec.d.ts.map +1 -0
- package/dist/esm/src/user-modules/url-link.spec.js +29 -0
- package/dist/esm/src/user-modules/url-link.spec.js.map +1 -0
- package/dist/esm/src/wechaty/mod.d.ts +6 -0
- package/dist/esm/src/wechaty/mod.d.ts.map +1 -0
- package/dist/esm/src/wechaty/mod.js +4 -0
- package/dist/esm/src/wechaty/mod.js.map +1 -0
- package/dist/esm/src/wechaty/wechaty-base.d.ts +545 -0
- package/dist/esm/src/wechaty/wechaty-base.d.ts.map +1 -0
- package/dist/esm/src/wechaty/wechaty-base.js +218 -0
- package/dist/esm/src/wechaty/wechaty-base.js.map +1 -0
- package/dist/esm/src/wechaty/wechaty-base.spec.d.ts +14 -0
- package/dist/esm/src/wechaty/wechaty-base.spec.d.ts.map +1 -0
- package/dist/esm/src/wechaty/wechaty-base.spec.js +286 -0
- package/dist/esm/src/wechaty/wechaty-base.spec.js.map +1 -0
- package/dist/esm/src/wechaty/wechaty-impl.d.ts +56 -0
- package/dist/esm/src/wechaty/wechaty-impl.d.ts.map +1 -0
- package/dist/esm/src/wechaty/wechaty-impl.js +14 -0
- package/dist/esm/src/wechaty/wechaty-impl.js.map +1 -0
- package/dist/esm/src/wechaty/wechaty-impl.spec.d.ts +3 -0
- package/dist/esm/src/wechaty/wechaty-impl.spec.d.ts.map +1 -0
- package/dist/esm/src/wechaty/wechaty-impl.spec.js +61 -0
- package/dist/esm/src/wechaty/wechaty-impl.spec.js.map +1 -0
- package/dist/esm/src/wechaty/wechaty-skeleton.d.ts +51 -0
- package/dist/esm/src/wechaty/wechaty-skeleton.d.ts.map +1 -0
- package/dist/esm/src/wechaty/wechaty-skeleton.js +93 -0
- package/dist/esm/src/wechaty/wechaty-skeleton.js.map +1 -0
- package/dist/esm/src/wechaty/wechaty-skelton.spec.d.ts +3 -0
- package/dist/esm/src/wechaty/wechaty-skelton.spec.d.ts.map +1 -0
- package/dist/esm/src/wechaty/wechaty-skelton.spec.js +7 -0
- package/dist/esm/src/wechaty/wechaty-skelton.spec.js.map +1 -0
- package/dist/esm/src/wechaty-builder.d.ts +38 -0
- package/dist/esm/src/wechaty-builder.d.ts.map +1 -0
- package/dist/esm/src/wechaty-builder.js +95 -0
- package/dist/esm/src/wechaty-builder.js.map +1 -0
- package/dist/esm/src/wechaty-builder.spec.d.ts +22 -0
- package/dist/esm/src/wechaty-builder.spec.d.ts.map +1 -0
- package/dist/esm/src/wechaty-builder.spec.js +64 -0
- package/dist/esm/src/wechaty-builder.spec.js.map +1 -0
- package/dist/esm/src/wechaty-mixins/gerror-mixin.d.ts +52 -0
- package/dist/esm/src/wechaty-mixins/gerror-mixin.d.ts.map +1 -0
- package/dist/esm/src/wechaty-mixins/gerror-mixin.js +51 -0
- package/dist/esm/src/wechaty-mixins/gerror-mixin.js.map +1 -0
- package/dist/esm/src/wechaty-mixins/gerror-mixin.spec.d.ts +3 -0
- package/dist/esm/src/wechaty-mixins/gerror-mixin.spec.d.ts.map +1 -0
- package/dist/esm/src/wechaty-mixins/gerror-mixin.spec.js +7 -0
- package/dist/esm/src/wechaty-mixins/gerror-mixin.spec.js.map +1 -0
- package/dist/esm/src/wechaty-mixins/io-mixin.d.ts +75 -0
- package/dist/esm/src/wechaty-mixins/io-mixin.d.ts.map +1 -0
- package/dist/esm/src/wechaty-mixins/io-mixin.js +83 -0
- package/dist/esm/src/wechaty-mixins/io-mixin.js.map +1 -0
- package/dist/esm/src/wechaty-mixins/login-mixin.d.ts +290 -0
- package/dist/esm/src/wechaty-mixins/login-mixin.d.ts.map +1 -0
- package/dist/esm/src/wechaty-mixins/login-mixin.js +86 -0
- package/dist/esm/src/wechaty-mixins/login-mixin.js.map +1 -0
- package/dist/esm/src/wechaty-mixins/login-mixin.spec.d.ts +3 -0
- package/dist/esm/src/wechaty-mixins/login-mixin.spec.d.ts.map +1 -0
- package/dist/esm/src/wechaty-mixins/login-mixin.spec.js +7 -0
- package/dist/esm/src/wechaty-mixins/login-mixin.spec.js.map +1 -0
- package/dist/esm/src/wechaty-mixins/misc-mixin.d.ts +295 -0
- package/dist/esm/src/wechaty-mixins/misc-mixin.d.ts.map +1 -0
- package/dist/esm/src/wechaty-mixins/misc-mixin.js +64 -0
- package/dist/esm/src/wechaty-mixins/misc-mixin.js.map +1 -0
- package/dist/esm/src/wechaty-mixins/mod.d.ts +18 -0
- package/dist/esm/src/wechaty-mixins/mod.d.ts.map +1 -0
- package/dist/esm/src/wechaty-mixins/mod.js +9 -0
- package/dist/esm/src/wechaty-mixins/mod.js.map +1 -0
- package/dist/esm/src/wechaty-mixins/plugin-mixin.d.ts +384 -0
- package/dist/esm/src/wechaty-mixins/plugin-mixin.d.ts.map +1 -0
- package/dist/esm/src/wechaty-mixins/plugin-mixin.js +53 -0
- package/dist/esm/src/wechaty-mixins/plugin-mixin.js.map +1 -0
- package/dist/esm/src/wechaty-mixins/plugin-mixin.spec.d.ts +13 -0
- package/dist/esm/src/wechaty-mixins/plugin-mixin.spec.d.ts.map +1 -0
- package/dist/esm/src/wechaty-mixins/plugin-mixin.spec.js +58 -0
- package/dist/esm/src/wechaty-mixins/plugin-mixin.spec.js.map +1 -0
- package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts +194 -0
- package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -0
- package/dist/esm/src/wechaty-mixins/puppet-mixin.js +399 -0
- package/dist/esm/src/wechaty-mixins/puppet-mixin.js.map +1 -0
- package/dist/esm/src/wechaty-mixins/puppet-mixin.spec.d.ts +3 -0
- package/dist/esm/src/wechaty-mixins/puppet-mixin.spec.d.ts.map +1 -0
- package/dist/esm/src/wechaty-mixins/puppet-mixin.spec.js +7 -0
- package/dist/esm/src/wechaty-mixins/puppet-mixin.spec.js.map +1 -0
- package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.d.ts +61 -0
- package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.d.ts.map +1 -0
- package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.js +81 -0
- package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.js.map +1 -0
- package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.spec.d.ts +3 -0
- package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.spec.d.ts.map +1 -0
- package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.spec.js +7 -0
- package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.spec.js.map +1 -0
- package/dist/esm/tests/electron.spec.d.ts +3 -0
- package/dist/esm/tests/electron.spec.d.ts.map +1 -0
- package/dist/esm/tests/electron.spec.js +28 -0
- package/dist/esm/tests/electron.spec.js.map +1 -0
- package/dist/esm/tests/node.spec.d.ts +3 -0
- package/dist/esm/tests/node.spec.d.ts.map +1 -0
- package/dist/esm/tests/node.spec.js +41 -0
- package/dist/esm/tests/node.spec.js.map +1 -0
- package/package.json +173 -0
- package/src/cli/friday.ts +20 -0
- package/src/cli/gateway.ts +190 -0
- package/src/cli/mod.ts +5 -0
- package/src/cli/provider.ts +20 -0
- package/src/cli/service.ts +20 -0
- package/src/cli/token.ts +19 -0
- package/src/config.spec.ts +97 -0
- package/src/config.ts +165 -0
- package/src/doctor.ts +92 -0
- package/src/helper-functions/open-graph.ts +34 -0
- package/src/helper-functions/stringify-filter.ts +13 -0
- package/src/io-client.ts +276 -0
- package/src/io-peer/io-peer.spec.ts +64 -0
- package/src/io-peer/io-peer.ts +79 -0
- package/src/io-peer/json-rpc-peer.d.ts +68 -0
- package/src/io.spec.ts +44 -0
- package/src/io.ts +585 -0
- package/src/mods/helpers.ts +5 -0
- package/src/mods/impls.spec.ts +13 -0
- package/src/mods/impls.ts +115 -0
- package/src/mods/mod.spec.ts +17 -0
- package/src/mods/mod.ts +74 -0
- package/src/mods/users.ts +44 -0
- package/src/package-json.spec.ts +18 -0
- package/src/package-json.ts +180 -0
- package/src/plugin.spec.ts +87 -0
- package/src/plugin.ts +19 -0
- package/src/puppet-config.ts +104 -0
- package/src/pure-functions/escape-regexp.ts +22 -0
- package/src/pure-functions/guard-qr-code-value.ts +27 -0
- package/src/pure-functions/is-template-string-array.spec.ts +44 -0
- package/src/pure-functions/is-template-string-array.ts +5 -0
- package/src/pure-functions/mod.ts +28 -0
- package/src/pure-functions/retry-policy.ts +45 -0
- package/src/pure-functions/timestamp-to-date.spec.ts +43 -0
- package/src/pure-functions/timestamp-to-date.ts +31 -0
- package/src/pure-functions/xml.spec.ts +116 -0
- package/src/pure-functions/xml.ts +98 -0
- package/src/raven.ts +75 -0
- package/src/sayable/deliver-sayable.ts +107 -0
- package/src/sayable/message-to-sayable.ts +57 -0
- package/src/sayable/mod.ts +27 -0
- package/src/sayable/payload-to-sayable.ts +51 -0
- package/src/sayable/sayable-to-payload.ts +54 -0
- package/src/sayable/types.ts +62 -0
- package/src/schemas/acceptable.ts +30 -0
- package/src/schemas/contact-events.ts +29 -0
- package/src/schemas/mod.ts +29 -0
- package/src/schemas/room-events.ts +128 -0
- package/src/schemas/wechaty-events.ts +251 -0
- package/src/schemas/wechaty-options.ts +40 -0
- package/src/user-mixins/mod.ts +23 -0
- package/src/user-mixins/poolify.spec.ts +110 -0
- package/src/user-mixins/poolify.ts +72 -0
- package/src/user-mixins/validation.spec.ts +87 -0
- package/src/user-mixins/validation.ts +39 -0
- package/src/user-mixins/wechatify.spec.ts +27 -0
- package/src/user-mixins/wechatify.ts +72 -0
- package/src/user-modules/contact-self.ts +217 -0
- package/src/user-modules/contact.spec.ts +91 -0
- package/src/user-modules/contact.ts +806 -0
- package/src/user-modules/delay.ts +61 -0
- package/src/user-modules/favorite.ts +89 -0
- package/src/user-modules/friendship.ts +441 -0
- package/src/user-modules/image.ts +91 -0
- package/src/user-modules/location.ts +103 -0
- package/src/user-modules/message.spec.ts +124 -0
- package/src/user-modules/message.ts +1109 -0
- package/src/user-modules/mini-program.ts +111 -0
- package/src/user-modules/mod.ts +160 -0
- package/src/user-modules/moment.ts +64 -0
- package/src/user-modules/money.ts +49 -0
- package/src/user-modules/post.spec.ts +77 -0
- package/src/user-modules/post.ts +549 -0
- package/src/user-modules/room-invitation.ts +291 -0
- package/src/user-modules/room.spec.ts +170 -0
- package/src/user-modules/room.ts +1158 -0
- package/src/user-modules/tag.ts +202 -0
- package/src/user-modules/url-link.spec.ts +35 -0
- package/src/user-modules/url-link.ts +145 -0
- package/src/wechaty/mod.ts +18 -0
- package/src/wechaty/wechaty-base.spec.ts +392 -0
- package/src/wechaty/wechaty-base.ts +307 -0
- package/src/wechaty/wechaty-impl.spec.ts +118 -0
- package/src/wechaty/wechaty-impl.ts +65 -0
- package/src/wechaty/wechaty-skeleton.ts +129 -0
- package/src/wechaty/wechaty-skelton.spec.ts +18 -0
- package/src/wechaty-builder.spec.ts +79 -0
- package/src/wechaty-builder.ts +123 -0
- package/src/wechaty-mixins/gerror-mixin.spec.ts +15 -0
- package/src/wechaty-mixins/gerror-mixin.ts +78 -0
- package/src/wechaty-mixins/io-mixin.ts +117 -0
- package/src/wechaty-mixins/login-mixin.spec.ts +15 -0
- package/src/wechaty-mixins/login-mixin.ts +124 -0
- package/src/wechaty-mixins/misc-mixin.ts +93 -0
- package/src/wechaty-mixins/mod.ts +84 -0
- package/src/wechaty-mixins/plugin-mixin.spec.ts +98 -0
- package/src/wechaty-mixins/plugin-mixin.ts +99 -0
- package/src/wechaty-mixins/puppet-mixin.spec.ts +15 -0
- package/src/wechaty-mixins/puppet-mixin.ts +501 -0
- package/src/wechaty-mixins/wechatify-user-module-mixin.spec.ts +18 -0
- package/src/wechaty-mixins/wechatify-user-module-mixin.ts +151 -0
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
#!/usr/bin/env -S node --no-warnings --loader ts-node/esm
|
|
2
|
+
/**
|
|
3
|
+
* Wechaty Chatbot SDK - https://github.com/wechaty/wechaty
|
|
4
|
+
*
|
|
5
|
+
* @copyright 2016 Huan LI (李卓桓) <https://github.com/huan>, and
|
|
6
|
+
* Wechaty Contributors <https://github.com/wechaty>.
|
|
7
|
+
*
|
|
8
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
* you may not use this file except in compliance with the License.
|
|
10
|
+
* You may obtain a copy of the License at
|
|
11
|
+
*
|
|
12
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
13
|
+
*
|
|
14
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
15
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
16
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
17
|
+
* See the License for the specific language governing permissions and
|
|
18
|
+
* limitations under the License.
|
|
19
|
+
*
|
|
20
|
+
*/
|
|
21
|
+
import {
|
|
22
|
+
test,
|
|
23
|
+
sinon,
|
|
24
|
+
} from 'tstest'
|
|
25
|
+
|
|
26
|
+
import { MemoryCard } from 'memory-card'
|
|
27
|
+
import { PuppetMock } from 'wechaty-puppet-mock'
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Huan(202111): must import `./wechaty-impl.js`
|
|
31
|
+
* before import `./wechaty-base.js`
|
|
32
|
+
*
|
|
33
|
+
* Or will throw error:
|
|
34
|
+
*
|
|
35
|
+
* ReferenceError: Cannot access 'WechatyBase' before initialization
|
|
36
|
+
* at file:///home/huan/git/wechaty/wechaty/src/wechaty/wechaty-impl.ts:25:47
|
|
37
|
+
*
|
|
38
|
+
* TODO: find out why
|
|
39
|
+
*/
|
|
40
|
+
import './wechaty-impl.js'
|
|
41
|
+
|
|
42
|
+
import type {
|
|
43
|
+
WechatyBaseProtectedProperty,
|
|
44
|
+
} from './wechaty-base.js'
|
|
45
|
+
import {
|
|
46
|
+
WechatyBase,
|
|
47
|
+
} from './wechaty-base.js'
|
|
48
|
+
|
|
49
|
+
import type {
|
|
50
|
+
WechatyInterface,
|
|
51
|
+
} from '../wechaty/wechaty-impl.js'
|
|
52
|
+
import { WechatySkeleton } from './wechaty-skeleton.js'
|
|
53
|
+
|
|
54
|
+
class WechatyTest extends WechatyBase {
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
test('static VERSION', async t => {
|
|
58
|
+
t.ok('VERSION' in WechatyBase, 'Wechaty should has a static VERSION property')
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
test('event:start/stop', async t => {
|
|
62
|
+
const wechaty = new WechatyBase({ puppet: 'wechaty-puppet-mock' })
|
|
63
|
+
|
|
64
|
+
const startSpy = sinon.spy()
|
|
65
|
+
const stopSpy = sinon.spy()
|
|
66
|
+
|
|
67
|
+
wechaty.on('start', startSpy)
|
|
68
|
+
wechaty.on('stop', stopSpy)
|
|
69
|
+
|
|
70
|
+
await wechaty.start()
|
|
71
|
+
await wechaty.stop()
|
|
72
|
+
|
|
73
|
+
// console.log(startSpy.callCount)
|
|
74
|
+
t.ok(startSpy.calledOnce, 'should get event:start once')
|
|
75
|
+
t.ok(stopSpy.calledOnce, 'should get event:stop once')
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
//
|
|
79
|
+
// FIXME: restore this unit test !!!
|
|
80
|
+
//
|
|
81
|
+
// test.only('event:scan', async t => {
|
|
82
|
+
// const m = {} as any
|
|
83
|
+
|
|
84
|
+
// const asyncHook = asyncHooks.createHook({
|
|
85
|
+
// init(asyncId: number, type: string, triggerAsyncId: number, resource: Object) {
|
|
86
|
+
// m[asyncId] = type
|
|
87
|
+
// },
|
|
88
|
+
// before(asyncId) {
|
|
89
|
+
// // delete m[asyncId]
|
|
90
|
+
// },
|
|
91
|
+
// after(asyncId) {
|
|
92
|
+
// // delete m[asyncId]
|
|
93
|
+
// },
|
|
94
|
+
// destroy(asyncId) {
|
|
95
|
+
// delete m[asyncId]
|
|
96
|
+
// },
|
|
97
|
+
// })
|
|
98
|
+
// asyncHook.enable()
|
|
99
|
+
|
|
100
|
+
// const wechaty = Wechaty.instance()
|
|
101
|
+
|
|
102
|
+
// const spy = sinon.spy()
|
|
103
|
+
|
|
104
|
+
// wechaty.on('scan', spy)
|
|
105
|
+
|
|
106
|
+
// const scanFuture = new Promise(resolve => wechaty.once('scan', resolve))
|
|
107
|
+
// // wechaty.once('scan', () => console.log('FAINT'))
|
|
108
|
+
|
|
109
|
+
// await wechaty.start()
|
|
110
|
+
// await scanFuture
|
|
111
|
+
// // await new Promise(r => setTimeout(r, 1000))
|
|
112
|
+
// await wechaty.stop()
|
|
113
|
+
|
|
114
|
+
// t.ok(spy.calledOnce, 'should get event:scan')
|
|
115
|
+
// asyncHook.disable()
|
|
116
|
+
|
|
117
|
+
// console.log(m)
|
|
118
|
+
// })
|
|
119
|
+
|
|
120
|
+
test.skip('SKIP DEALING WITH THE LISTENER EXCEPTIONS. on(event, Function)', async t => {
|
|
121
|
+
const spy = sinon.spy()
|
|
122
|
+
const wechaty = new WechatyBase()
|
|
123
|
+
|
|
124
|
+
const EXPECTED_ERROR = new Error('testing123')
|
|
125
|
+
wechaty.on('message', () => { throw EXPECTED_ERROR })
|
|
126
|
+
// wechaty.on('scan', () => 42)
|
|
127
|
+
wechaty.on('error', spy)
|
|
128
|
+
|
|
129
|
+
const messageFuture = new Promise(resolve => wechaty.once('message', resolve))
|
|
130
|
+
wechaty.emit('message', {} as any)
|
|
131
|
+
|
|
132
|
+
await messageFuture
|
|
133
|
+
await wechaty.stop()
|
|
134
|
+
|
|
135
|
+
t.ok(spy.calledOnce, 'should get event:error once')
|
|
136
|
+
t.equal(spy.firstCall.args[0], EXPECTED_ERROR, 'should get error from message listener')
|
|
137
|
+
|
|
138
|
+
})
|
|
139
|
+
|
|
140
|
+
test.skip('SKIP DEALING WITH THE LISTENER EXCEPTIONS. test async error', async t => {
|
|
141
|
+
|
|
142
|
+
// Do not modify the global Wechaty instance
|
|
143
|
+
class MyWechatyTest extends WechatyBase {}
|
|
144
|
+
|
|
145
|
+
const EXPECTED_ERROR = new Error('test')
|
|
146
|
+
|
|
147
|
+
const bot = new MyWechatyTest({
|
|
148
|
+
puppet: new PuppetMock(),
|
|
149
|
+
})
|
|
150
|
+
|
|
151
|
+
const asyncErrorFunction = function () {
|
|
152
|
+
return new Promise<void>((resolve, reject) => {
|
|
153
|
+
setTimeout(function () {
|
|
154
|
+
reject(EXPECTED_ERROR)
|
|
155
|
+
}, 100)
|
|
156
|
+
// tslint ask resolve must be called,
|
|
157
|
+
// so write a falsy value, so that it never called
|
|
158
|
+
if (+new Date() < 0) {
|
|
159
|
+
resolve()
|
|
160
|
+
}
|
|
161
|
+
})
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
bot.on('message', async () => {
|
|
165
|
+
await asyncErrorFunction()
|
|
166
|
+
})
|
|
167
|
+
bot.on('error', (e) => {
|
|
168
|
+
t.ok(e.message === EXPECTED_ERROR.message)
|
|
169
|
+
})
|
|
170
|
+
|
|
171
|
+
bot.emit('message', {} as any)
|
|
172
|
+
|
|
173
|
+
await bot.stop()
|
|
174
|
+
})
|
|
175
|
+
|
|
176
|
+
test('use plugin', async t => {
|
|
177
|
+
|
|
178
|
+
// Do not modify the gloabl Wechaty instance
|
|
179
|
+
class MyWechatyTest extends WechatyBase {}
|
|
180
|
+
|
|
181
|
+
let result = ''
|
|
182
|
+
|
|
183
|
+
// const myGlobalPlugin = function () {
|
|
184
|
+
// return function (bot: WechatyInterface) {
|
|
185
|
+
// bot.on('message', () => { result += 'FROM_GLOBAL_PLUGIN:' })
|
|
186
|
+
// }
|
|
187
|
+
// }
|
|
188
|
+
|
|
189
|
+
const myPlugin = function () {
|
|
190
|
+
return function (bot: WechatyInterface) {
|
|
191
|
+
bot.on('message', () => { result += 'FROM_MY_PLUGIN:' })
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// MyWechatyTest.use(myGlobalPlugin())
|
|
196
|
+
|
|
197
|
+
const bot = new MyWechatyTest({
|
|
198
|
+
puppet: new PuppetMock(),
|
|
199
|
+
})
|
|
200
|
+
|
|
201
|
+
bot.use(myPlugin())
|
|
202
|
+
|
|
203
|
+
await bot.start()
|
|
204
|
+
|
|
205
|
+
bot.on('message', () => (result += 'FROM_BOT'))
|
|
206
|
+
|
|
207
|
+
bot.emit('message', {} as any)
|
|
208
|
+
|
|
209
|
+
await bot.stop()
|
|
210
|
+
|
|
211
|
+
t.equal(result, 'FROM_MY_PLUGIN:FROM_BOT', 'should get plugin works')
|
|
212
|
+
|
|
213
|
+
})
|
|
214
|
+
|
|
215
|
+
test('wechatifyUserModules init()', async t => {
|
|
216
|
+
const wechatyTest = new WechatyTest()
|
|
217
|
+
|
|
218
|
+
t.doesNotThrow(() => wechatyTest.init(), 'should not throw for the 1st time init')
|
|
219
|
+
t.doesNotThrow(() => wechatyTest.init(), 'should not throw for the 2nd time init (silence skip)')
|
|
220
|
+
})
|
|
221
|
+
|
|
222
|
+
// TODO: add test for event args
|
|
223
|
+
|
|
224
|
+
test('Perfect restart', async t => {
|
|
225
|
+
const wechaty = new WechatyBase({
|
|
226
|
+
puppet: new PuppetMock(),
|
|
227
|
+
})
|
|
228
|
+
|
|
229
|
+
try {
|
|
230
|
+
for (let i = 0; i < 3; i++) {
|
|
231
|
+
await wechaty.start()
|
|
232
|
+
await wechaty.stop()
|
|
233
|
+
t.pass('start/stop-ed at #' + i)
|
|
234
|
+
}
|
|
235
|
+
t.pass('Wechaty start/restart successed.')
|
|
236
|
+
} catch (e) {
|
|
237
|
+
t.fail(e as any)
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
})
|
|
241
|
+
|
|
242
|
+
test('@event ready', async t => {
|
|
243
|
+
const puppet = new PuppetMock()
|
|
244
|
+
const wechaty = new WechatyBase({ puppet })
|
|
245
|
+
|
|
246
|
+
const sandbox = sinon.createSandbox()
|
|
247
|
+
const spy = sandbox.spy()
|
|
248
|
+
|
|
249
|
+
wechaty.on('ready', spy)
|
|
250
|
+
t.ok(spy.notCalled, 'should no ready event with new wechaty instance')
|
|
251
|
+
|
|
252
|
+
await wechaty.start()
|
|
253
|
+
t.ok(spy.notCalled, 'should no ready event right start wechaty started')
|
|
254
|
+
|
|
255
|
+
puppet.emit('ready', { data: 'test' })
|
|
256
|
+
t.equal(spy.callCount, 1, 'should fire ready event after puppet ready')
|
|
257
|
+
|
|
258
|
+
await wechaty.stop()
|
|
259
|
+
await wechaty.start()
|
|
260
|
+
t.equal(spy.callCount, 1, 'should fire ready event second time after stop/start wechaty')
|
|
261
|
+
|
|
262
|
+
puppet.emit('ready', { data: 'test' })
|
|
263
|
+
|
|
264
|
+
t.equal(spy.callCount, 2, 'should fire ready event third time after stop/start wechaty')
|
|
265
|
+
|
|
266
|
+
await wechaty.stop()
|
|
267
|
+
})
|
|
268
|
+
|
|
269
|
+
test('ready()', async t => {
|
|
270
|
+
const puppet = new PuppetMock()
|
|
271
|
+
const wechaty = new WechatyBase({ puppet })
|
|
272
|
+
|
|
273
|
+
const sandbox = sinon.createSandbox()
|
|
274
|
+
|
|
275
|
+
const spy = sandbox.spy()
|
|
276
|
+
|
|
277
|
+
wechaty.ready()
|
|
278
|
+
.then(spy)
|
|
279
|
+
.catch(e => t.fail('rejection: ' + e))
|
|
280
|
+
|
|
281
|
+
t.ok(spy.notCalled, 'should not ready with new wechaty instance')
|
|
282
|
+
|
|
283
|
+
await wechaty.start()
|
|
284
|
+
|
|
285
|
+
t.ok(spy.notCalled, 'should not ready after right start wechaty')
|
|
286
|
+
|
|
287
|
+
puppet.emit('ready', { data: 'test' })
|
|
288
|
+
await new Promise(resolve => setImmediate(resolve))
|
|
289
|
+
t.ok(spy.calledOnce, 'should ready after puppet ready')
|
|
290
|
+
|
|
291
|
+
await wechaty.stop()
|
|
292
|
+
await wechaty.start()
|
|
293
|
+
wechaty.ready()
|
|
294
|
+
.then(spy)
|
|
295
|
+
.catch(e => t.fail('rejection: ' + e))
|
|
296
|
+
|
|
297
|
+
puppet.emit('ready', { data: 'test' })
|
|
298
|
+
await new Promise(resolve => setImmediate(resolve))
|
|
299
|
+
t.ok(spy.calledTwice, 'should ready again after stop/start wechaty')
|
|
300
|
+
|
|
301
|
+
await wechaty.stop()
|
|
302
|
+
})
|
|
303
|
+
|
|
304
|
+
test('on/off event listener management', async t => {
|
|
305
|
+
const puppet = new PuppetMock()
|
|
306
|
+
const wechaty = new WechatyBase({ puppet })
|
|
307
|
+
|
|
308
|
+
const onMessage = (_: any) => {}
|
|
309
|
+
t.equal(wechaty.listenerCount('message'), 0, 'should no listener after initializing')
|
|
310
|
+
|
|
311
|
+
wechaty.on('message', onMessage)
|
|
312
|
+
t.equal(wechaty.listenerCount('message'), 1, 'should +1 listener after on(message)')
|
|
313
|
+
|
|
314
|
+
wechaty.off('message', onMessage)
|
|
315
|
+
t.equal(wechaty.listenerCount('message'), 0, 'should -1 listener after off(message)')
|
|
316
|
+
})
|
|
317
|
+
|
|
318
|
+
test('wrapAsync() async function', async t => {
|
|
319
|
+
const puppet = new PuppetMock()
|
|
320
|
+
const wechaty = new WechatyBase({ puppet })
|
|
321
|
+
|
|
322
|
+
const spy = sinon.spy()
|
|
323
|
+
wechaty.on('error', spy)
|
|
324
|
+
|
|
325
|
+
const DATA = 'test'
|
|
326
|
+
const asyncFunc = async () => DATA
|
|
327
|
+
const syncFunc = wechaty.wrapAsync(asyncFunc)
|
|
328
|
+
|
|
329
|
+
t.notOk(syncFunc(), 'should get sync function return void')
|
|
330
|
+
t.ok(spy.notCalled, 'should not emit error when sync function return value')
|
|
331
|
+
|
|
332
|
+
const asyncFunc2 = async () => { throw new Error('test') }
|
|
333
|
+
const syncFunc2 = wechaty.wrapAsync(asyncFunc2)
|
|
334
|
+
t.doesNotThrow(() => syncFunc2(), 'should not throw when async function throw error')
|
|
335
|
+
await wechaty.sleep(0) // wait async event loop task to be executed
|
|
336
|
+
t.ok(spy.calledOnce, 'should emit error when async function throw error')
|
|
337
|
+
})
|
|
338
|
+
|
|
339
|
+
test('wrapAsync() promise', async t => {
|
|
340
|
+
const puppet = new PuppetMock()
|
|
341
|
+
const wechaty = new WechatyBase({ puppet })
|
|
342
|
+
|
|
343
|
+
const spy = sinon.spy()
|
|
344
|
+
wechaty.on('error', spy)
|
|
345
|
+
|
|
346
|
+
const DATA = 'test'
|
|
347
|
+
const promise = Promise.resolve(DATA)
|
|
348
|
+
const wrappedPromise = wechaty.wrapAsync(promise)
|
|
349
|
+
t.equal(await wrappedPromise, undefined, 'should resolve Promise<any> to void')
|
|
350
|
+
|
|
351
|
+
const rejection = Promise.reject(new Error('test'))
|
|
352
|
+
const wrappedRejection = wechaty.wrapAsync(rejection)
|
|
353
|
+
t.equal(wrappedRejection, undefined, 'should be void and not to reject')
|
|
354
|
+
|
|
355
|
+
t.equal(spy.callCount, 0, 'should have no error before sleep')
|
|
356
|
+
await wechaty.sleep(0) // wait async event loop task to be executed
|
|
357
|
+
t.equal(spy.callCount, 1, 'should emit error when promise reject with error')
|
|
358
|
+
})
|
|
359
|
+
|
|
360
|
+
test('WechatyBaseProtectedProperty', async t => {
|
|
361
|
+
type NotExistInMixin = Exclude<WechatyBaseProtectedProperty, keyof WechatyBase | `_${string}`>
|
|
362
|
+
type NotExistTest = NotExistInMixin extends never ? true : false
|
|
363
|
+
|
|
364
|
+
const noOneLeft: NotExistTest = true
|
|
365
|
+
t.ok(noOneLeft, 'should match Wechaty properties for every protected property')
|
|
366
|
+
})
|
|
367
|
+
|
|
368
|
+
test('WechatySkeleton: super.{start,stop}()', async t => {
|
|
369
|
+
const sandbox = sinon.createSandbox()
|
|
370
|
+
|
|
371
|
+
const puppet = new PuppetMock()
|
|
372
|
+
const memory = new MemoryCard()
|
|
373
|
+
|
|
374
|
+
const wechaty = new WechatyTest({
|
|
375
|
+
memory,
|
|
376
|
+
puppet,
|
|
377
|
+
})
|
|
378
|
+
|
|
379
|
+
const startStub = sandbox.stub(WechatySkeleton.prototype, 'start').resolves()
|
|
380
|
+
const stopStub = sandbox.stub(WechatySkeleton.prototype, 'stop').resolves()
|
|
381
|
+
|
|
382
|
+
t.ok(startStub.notCalled, 'should not called before start')
|
|
383
|
+
t.ok(stopStub.notCalled, 'should not called before stop')
|
|
384
|
+
|
|
385
|
+
await wechaty.start()
|
|
386
|
+
t.ok(startStub.calledOnce, 'should call the skeleton start(), which means all mixin start()s are chained correctly')
|
|
387
|
+
t.ok(stopStub.notCalled, 'should not call stop yet')
|
|
388
|
+
|
|
389
|
+
await wechaty.stop()
|
|
390
|
+
t.ok(startStub.calledOnce, 'should only call start once')
|
|
391
|
+
t.ok(stopStub.calledOnce, 'should call the skeleton stop(), which means all mixin stops()s are chained correctly')
|
|
392
|
+
})
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wechaty Chatbot SDK - https://github.com/wechaty/wechaty
|
|
3
|
+
*
|
|
4
|
+
* @copyright 2016 Huan LI (李卓桓) <https://github.com/huan>, and
|
|
5
|
+
* Wechaty Contributors <https://github.com/wechaty>.
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*
|
|
19
|
+
*/
|
|
20
|
+
import {
|
|
21
|
+
serviceCtlMixin,
|
|
22
|
+
} from 'state-switch'
|
|
23
|
+
import { function as FP } from 'fp-ts'
|
|
24
|
+
import type * as PUPPET from 'wechaty-puppet'
|
|
25
|
+
|
|
26
|
+
import {
|
|
27
|
+
config,
|
|
28
|
+
log,
|
|
29
|
+
VERSION,
|
|
30
|
+
} from '../config.js'
|
|
31
|
+
|
|
32
|
+
import type {
|
|
33
|
+
SayableSayer,
|
|
34
|
+
Sayable,
|
|
35
|
+
} from '../sayable/mod.js'
|
|
36
|
+
import {
|
|
37
|
+
gErrorMixin,
|
|
38
|
+
ioMixin,
|
|
39
|
+
loginMixin,
|
|
40
|
+
miscMixin,
|
|
41
|
+
pluginMixin,
|
|
42
|
+
puppetMixin,
|
|
43
|
+
wechatifyUserModuleMixin,
|
|
44
|
+
} from '../wechaty-mixins/mod.js'
|
|
45
|
+
|
|
46
|
+
import {
|
|
47
|
+
WechatySkeleton,
|
|
48
|
+
} from './wechaty-skeleton.js'
|
|
49
|
+
import type {
|
|
50
|
+
WechatyInterface,
|
|
51
|
+
} from './wechaty-impl.js'
|
|
52
|
+
import type {
|
|
53
|
+
WechatyOptions,
|
|
54
|
+
} from '../schemas/wechaty-options.js'
|
|
55
|
+
import type { PostInterface } from '../user-modules/post.js'
|
|
56
|
+
|
|
57
|
+
const mixinBase = FP.pipe(
|
|
58
|
+
WechatySkeleton,
|
|
59
|
+
gErrorMixin,
|
|
60
|
+
wechatifyUserModuleMixin,
|
|
61
|
+
ioMixin,
|
|
62
|
+
puppetMixin,
|
|
63
|
+
loginMixin,
|
|
64
|
+
miscMixin,
|
|
65
|
+
pluginMixin,
|
|
66
|
+
/**
|
|
67
|
+
* Huan(202002):
|
|
68
|
+
*
|
|
69
|
+
* The `serviceCtlMixin` must be the most outer mixin
|
|
70
|
+
* because the `wechaty.start/stop()` should first entry `serviceCtlMixin.start/stop()`
|
|
71
|
+
* which can be managed correctly by the `serviceCtlMixin`
|
|
72
|
+
*/
|
|
73
|
+
serviceCtlMixin('Wechaty', { log }),
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Huan(2021211): Keep the below call back hell
|
|
78
|
+
* because it's easy for testing
|
|
79
|
+
* especially when there's some typing mismatch and we need to figure it out.
|
|
80
|
+
*/
|
|
81
|
+
// const mixinTest = serviceCtlMixin('Wechaty', { log })(
|
|
82
|
+
// pluginMixin(
|
|
83
|
+
// puppetMixin(
|
|
84
|
+
// wechatifyUserModuleMixin(
|
|
85
|
+
// gErrorMixin(
|
|
86
|
+
// WechatySkeleton,
|
|
87
|
+
// ),
|
|
88
|
+
// ),
|
|
89
|
+
// ),
|
|
90
|
+
// ),
|
|
91
|
+
// )
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Main bot class.
|
|
95
|
+
*
|
|
96
|
+
* A `Bot` is a WeChat client depends on which puppet you use.
|
|
97
|
+
* It may equals
|
|
98
|
+
* - web-WeChat, when you use: [puppet-puppeteer](https://github.com/wechaty/wechaty-puppet-puppeteer)/[puppet-wechat4u](https://github.com/wechaty/wechaty-puppet-wechat4u)
|
|
99
|
+
* - ipad-WeChat, when you use: [puppet-padchat](https://github.com/wechaty/wechaty-puppet-padchat)
|
|
100
|
+
* - ios-WeChat, when you use: puppet-ioscat
|
|
101
|
+
*
|
|
102
|
+
* See more:
|
|
103
|
+
* - [What is a Puppet in Wechaty](https://github.com/wechaty/getting-started/wiki/FAQ#31-what-is-a-puppet-in-wechaty)
|
|
104
|
+
*
|
|
105
|
+
* > If you want to know how to send message, see [Message](#Message) <br>
|
|
106
|
+
* > If you want to know how to get contact, see [Contact](#Contact)
|
|
107
|
+
*
|
|
108
|
+
* @example <caption>The World's Shortest ChatBot Code: 6 lines of JavaScript</caption>
|
|
109
|
+
* import { WechatyBuilder } from 'wechaty'
|
|
110
|
+
* const bot = WechatyBuilder.build()
|
|
111
|
+
* bot.on('scan', (qrCode, status) => console.log('https://wechaty.js.org/qrcode/' + encodeURIComponent(qrcode)))
|
|
112
|
+
* bot.on('login', user => console.log(`User ${user} logged in`))
|
|
113
|
+
* bot.on('message', message => console.log(`Message: ${message}`))
|
|
114
|
+
* bot.start()
|
|
115
|
+
*/
|
|
116
|
+
class WechatyBase extends mixinBase implements SayableSayer {
|
|
117
|
+
|
|
118
|
+
static override readonly VERSION = VERSION
|
|
119
|
+
readonly wechaty : WechatyInterface
|
|
120
|
+
|
|
121
|
+
readonly _stopCallbackList: (() => void)[] = []
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* The term [Puppet](https://wechaty.js.org/docs/specs/puppet) in Wechaty is an Abstract Class for implementing protocol plugins.
|
|
125
|
+
* The plugins are the component that helps Wechaty to control the WeChat(that's the reason we call it puppet).
|
|
126
|
+
* The plugins are named XXXPuppet, for example:
|
|
127
|
+
* - [PuppetWeChat](https://github.com/wechaty/puppet-wechat):
|
|
128
|
+
* - [PuppetWeChat](https://github.com/wechaty/puppet-service):
|
|
129
|
+
* - [PuppetXP](https://github.com/wechaty/puppet-xp)
|
|
130
|
+
*
|
|
131
|
+
* @typedef PuppetModuleName
|
|
132
|
+
* @property {string} PUPPET_DEFAULT
|
|
133
|
+
* The default puppet.
|
|
134
|
+
* @property {string} wechaty-puppet-wechat4u
|
|
135
|
+
* The default puppet, using the [wechat4u](https://github.com/nodeWechat/wechat4u) to control the [WeChat Web API](https://wx.qq.com/) via a chrome browser.
|
|
136
|
+
* @property {string} wechaty-puppet-service
|
|
137
|
+
* - Using the gRPC protocol to connect with a Protocol Server for controlling the any protocol of any IM program.
|
|
138
|
+
* @property {string} wechaty-puppet-wechat
|
|
139
|
+
* - Using the [google puppeteer](https://github.com/GoogleChrome/puppeteer) to control the [WeChat Web API](https://wx.qq.com/) via a chrome browser.
|
|
140
|
+
* @property {string} wechaty-puppet-mock
|
|
141
|
+
* - Using the mock data to mock wechat operation, just for test.
|
|
142
|
+
*/
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* The option parameter to create a wechaty instance
|
|
146
|
+
*
|
|
147
|
+
* @typedef WechatyOptions
|
|
148
|
+
* @property {string} name -Wechaty Name. </br>
|
|
149
|
+
* When you set this: </br>
|
|
150
|
+
* `new Wechaty({name: 'wechaty-name'}) ` </br>
|
|
151
|
+
* it will generate a file called `wechaty-name.memory-card.json`. </br>
|
|
152
|
+
* This file stores the login information for bot. </br>
|
|
153
|
+
* If the file is valid, the bot can auto login so you don't need to scan the qrCode to login again. </br>
|
|
154
|
+
* Also, you can set the environment variable for `WECHATY_NAME` to set this value when you start. </br>
|
|
155
|
+
* eg: `WECHATY_NAME="your-cute-bot-name" node bot.js`
|
|
156
|
+
* @property {PuppetModuleName | Puppet} puppet -Puppet name or instance
|
|
157
|
+
* @property {Partial<PuppetOptions>} puppetOptions -Puppet TOKEN
|
|
158
|
+
* @property {string} ioToken -Io TOKEN
|
|
159
|
+
*/
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Creates an instance of Wechaty.
|
|
163
|
+
* @param {WechatyOptions} [options={}]
|
|
164
|
+
*
|
|
165
|
+
*/
|
|
166
|
+
constructor (
|
|
167
|
+
override __options: WechatyOptions = {},
|
|
168
|
+
) {
|
|
169
|
+
super(__options)
|
|
170
|
+
log.verbose('Wechaty', 'constructor()')
|
|
171
|
+
|
|
172
|
+
this.__memory = this.__options.memory
|
|
173
|
+
this.wechaty = this
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
override async start (): Promise<void> {
|
|
177
|
+
log.verbose('Wechaty', 'start()')
|
|
178
|
+
await this.init()
|
|
179
|
+
return super.start()
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
override async onStart (): Promise<void> {
|
|
183
|
+
log.verbose('Wechaty', 'onStart()')
|
|
184
|
+
|
|
185
|
+
log.verbose('Wechaty', '<%s>(%s) onStart() v%s is starting...',
|
|
186
|
+
this.__options.puppet || config.systemPuppetName(),
|
|
187
|
+
this.__options.name || '',
|
|
188
|
+
this.version(),
|
|
189
|
+
)
|
|
190
|
+
log.verbose('Wechaty', 'id: %s', this.id)
|
|
191
|
+
|
|
192
|
+
const lifeTimer = setInterval(() => {
|
|
193
|
+
log.silly('Wechaty', 'onStart() setInterval() this timer is to keep Wechaty running...')
|
|
194
|
+
}, 1000 * 60 * 60)
|
|
195
|
+
this._stopCallbackList.push(() => clearInterval(lifeTimer))
|
|
196
|
+
|
|
197
|
+
this.emit('start')
|
|
198
|
+
log.verbose('Wechaty', 'onStart() ... done')
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
override async onStop (): Promise<void> {
|
|
202
|
+
log.verbose('Wechaty', 'onStop()')
|
|
203
|
+
|
|
204
|
+
log.verbose('Wechaty', '<%s> onStop() v%s is stopping ...',
|
|
205
|
+
this.__options.puppet || config.systemPuppetName(),
|
|
206
|
+
this.version(),
|
|
207
|
+
)
|
|
208
|
+
|
|
209
|
+
// put to the end of the event loop in case of it need to be executed while stopping
|
|
210
|
+
this._stopCallbackList.map(setImmediate)
|
|
211
|
+
this._stopCallbackList.length = 0
|
|
212
|
+
|
|
213
|
+
this.emit('stop')
|
|
214
|
+
log.verbose('Wechaty', 'onStop() ... done')
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Send message to currentUser, in other words, bot send message to itself.
|
|
219
|
+
* > Tips:
|
|
220
|
+
* This function is depending on the Puppet Implementation, see [puppet-compatible-table](https://github.com/wechaty/wechaty/wiki/Puppet#3-puppet-compatible-table)
|
|
221
|
+
*
|
|
222
|
+
* @param {(string | Contact | FileBox | UrlLink | MiniProgram | Location)} sayable
|
|
223
|
+
* send text, Contact, or file to bot. </br>
|
|
224
|
+
* You can use {@link https://www.npmjs.com/package/file-box|FileBox} to send file
|
|
225
|
+
*
|
|
226
|
+
* @returns {Promise<void>}
|
|
227
|
+
*
|
|
228
|
+
* @example
|
|
229
|
+
* const bot = new Wechaty()
|
|
230
|
+
* await bot.start()
|
|
231
|
+
* // after logged in
|
|
232
|
+
*
|
|
233
|
+
* // 1. send text to bot itself
|
|
234
|
+
* await bot.say('hello!')
|
|
235
|
+
*
|
|
236
|
+
* // 2. send Contact to bot itself
|
|
237
|
+
* const contact = await bot.Contact.find()
|
|
238
|
+
* await bot.say(contact)
|
|
239
|
+
*
|
|
240
|
+
* // 3. send Image to bot itself from remote url
|
|
241
|
+
* import { FileBox } from 'wechaty'
|
|
242
|
+
* const fileBox = FileBox.fromUrl('https://wechaty.github.io/wechaty/images/bot-qr-code.png')
|
|
243
|
+
* await bot.say(fileBox)
|
|
244
|
+
*
|
|
245
|
+
* // 4. send Image to bot itself from local file
|
|
246
|
+
* import { FileBox } from 'wechaty'
|
|
247
|
+
* const fileBox = FileBox.fromFile('/tmp/text.jpg')
|
|
248
|
+
* await bot.say(fileBox)
|
|
249
|
+
*
|
|
250
|
+
* // 5. send Link to bot itself
|
|
251
|
+
* const linkPayload = new UrlLink ({
|
|
252
|
+
* description : 'WeChat Bot SDK for Individual Account, Powered by TypeScript, Docker, and Love',
|
|
253
|
+
* thumbnailUrl: 'https://avatars0.githubusercontent.com/u/25162437?s=200&v=4',
|
|
254
|
+
* title : 'Welcome to Wechaty',
|
|
255
|
+
* url : 'https://github.com/wechaty/wechaty',
|
|
256
|
+
* })
|
|
257
|
+
* await bot.say(linkPayload)
|
|
258
|
+
*
|
|
259
|
+
* // 6. send MiniProgram to bot itself
|
|
260
|
+
* const miniPayload = new MiniProgram ({
|
|
261
|
+
* username : 'gh_xxxxxxx', //get from mp.weixin.qq.com
|
|
262
|
+
* appid : '', //optional, get from mp.weixin.qq.com
|
|
263
|
+
* title : '', //optional
|
|
264
|
+
* pagepath : '', //optional
|
|
265
|
+
* description : '', //optional
|
|
266
|
+
* thumbnailurl : '', //optional
|
|
267
|
+
* })
|
|
268
|
+
* await bot.say(miniPayload)
|
|
269
|
+
*/
|
|
270
|
+
|
|
271
|
+
async say (
|
|
272
|
+
sayable: Sayable,
|
|
273
|
+
): Promise<void> {
|
|
274
|
+
log.verbose('Wechaty', 'say(%s)', sayable)
|
|
275
|
+
await this.currentUser.say(sayable)
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
async publish (
|
|
279
|
+
post: PostInterface,
|
|
280
|
+
): Promise<void | PostInterface> {
|
|
281
|
+
log.verbose('Wechaty', 'publish(%s)',
|
|
282
|
+
(post.payload.sayableList as PUPPET.payloads.Sayable[])
|
|
283
|
+
.map(s => s.type).join(','),
|
|
284
|
+
)
|
|
285
|
+
const postId = await this.puppet.postPublish(post.payload)
|
|
286
|
+
|
|
287
|
+
if (postId) {
|
|
288
|
+
return this.Post.find({ id: postId })
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
type WechatyBaseProtectedProperty =
|
|
295
|
+
// | '_serviceCtlFsmInterpreter' // from ServiceCtlFsm
|
|
296
|
+
| '__serviceCtlLogger' // from ServiceCtl(&Fsm)
|
|
297
|
+
| '__serviceCtlResettingIndicator' // from ServiceCtl
|
|
298
|
+
| 'wechaty'
|
|
299
|
+
| 'onStart'
|
|
300
|
+
| 'onStop'
|
|
301
|
+
|
|
302
|
+
export type {
|
|
303
|
+
WechatyBaseProtectedProperty,
|
|
304
|
+
}
|
|
305
|
+
export {
|
|
306
|
+
WechatyBase,
|
|
307
|
+
}
|