@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
package/src/io.ts
ADDED
|
@@ -0,0 +1,585 @@
|
|
|
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 WebSocket from 'ws'
|
|
21
|
+
|
|
22
|
+
import type * as PUPPET from 'wechaty-puppet'
|
|
23
|
+
import { StateSwitch } from 'state-switch'
|
|
24
|
+
|
|
25
|
+
import * as jsonRpcPeer from 'json-rpc-peer'
|
|
26
|
+
|
|
27
|
+
import type {
|
|
28
|
+
MessageInterface,
|
|
29
|
+
} from './user-modules/mod.js'
|
|
30
|
+
import type { WechatyInterface } from './wechaty/mod.js'
|
|
31
|
+
|
|
32
|
+
import {
|
|
33
|
+
log,
|
|
34
|
+
config,
|
|
35
|
+
} from './config.js'
|
|
36
|
+
|
|
37
|
+
import {
|
|
38
|
+
getPeer,
|
|
39
|
+
isJsonRpcRequest,
|
|
40
|
+
} from './io-peer/io-peer.js'
|
|
41
|
+
|
|
42
|
+
export interface IoOptions {
|
|
43
|
+
wechaty : WechatyInterface,
|
|
44
|
+
token : string,
|
|
45
|
+
apihost? : string,
|
|
46
|
+
protocol? : string,
|
|
47
|
+
servicePort? : number,
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export const IO_EVENT_DICT = {
|
|
51
|
+
botie : 'tbw',
|
|
52
|
+
error : 'tbw',
|
|
53
|
+
heartbeat : 'tbw',
|
|
54
|
+
jsonrpc : 'JSON RPC',
|
|
55
|
+
login : 'tbw',
|
|
56
|
+
logout : 'tbw',
|
|
57
|
+
message : 'tbw',
|
|
58
|
+
raw : 'tbw',
|
|
59
|
+
reset : 'tbw',
|
|
60
|
+
scan : 'tbw',
|
|
61
|
+
shutdown : 'tbw',
|
|
62
|
+
sys : 'tbw',
|
|
63
|
+
update : 'tbw',
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
type IoEventName = keyof typeof IO_EVENT_DICT
|
|
67
|
+
|
|
68
|
+
interface IoEventScan {
|
|
69
|
+
name : 'scan',
|
|
70
|
+
payload : PUPPET.payloads.EventScan,
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
interface IoEventJsonRpc {
|
|
74
|
+
name : 'jsonrpc',
|
|
75
|
+
payload : jsonRpcPeer.JsonRpcPayload,
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
interface IoEventAny {
|
|
79
|
+
name: IoEventName,
|
|
80
|
+
payload: any,
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
type IoEvent = IoEventScan | IoEventJsonRpc | IoEventAny
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* https://github.com/Chatie/botie/issues/2
|
|
87
|
+
* https://github.com/actions/github-script/blob/f035cea4677903b153fa754aa8c2bba66f8dc3eb/src/async-function.ts#L6
|
|
88
|
+
*/
|
|
89
|
+
const AsyncFunction = Object.getPrototypeOf(async () => null).constructor
|
|
90
|
+
|
|
91
|
+
// function callAsyncFunction<U extends {} = {}, V = unknown> (
|
|
92
|
+
// args: U,
|
|
93
|
+
// source: string
|
|
94
|
+
// ): Promise<V> {
|
|
95
|
+
// const fn = new AsyncFunction(...Object.keys(args), source)
|
|
96
|
+
// return fn(...Object.values(args))
|
|
97
|
+
// }
|
|
98
|
+
|
|
99
|
+
export class Io {
|
|
100
|
+
|
|
101
|
+
protected readonly id : string
|
|
102
|
+
protected readonly protocol : string
|
|
103
|
+
protected eventBuffer : IoEvent[] = []
|
|
104
|
+
protected ws : undefined | WebSocket
|
|
105
|
+
|
|
106
|
+
protected readonly state = new StateSwitch('Io', { log })
|
|
107
|
+
|
|
108
|
+
protected reconnectTimer? : ReturnType<typeof setTimeout>
|
|
109
|
+
protected reconnectTimeout? : number
|
|
110
|
+
|
|
111
|
+
protected lifeTimer? : ReturnType<typeof setTimeout>
|
|
112
|
+
|
|
113
|
+
protected onMessage: undefined | Function
|
|
114
|
+
|
|
115
|
+
protected scanPayload?: PUPPET.payloads.EventScan
|
|
116
|
+
|
|
117
|
+
protected jsonRpc?: jsonRpcPeer.Peer
|
|
118
|
+
|
|
119
|
+
constructor (
|
|
120
|
+
protected options: IoOptions,
|
|
121
|
+
) {
|
|
122
|
+
options.apihost = options.apihost || config.apihost
|
|
123
|
+
options.protocol = options.protocol || config.default.DEFAULT_PROTOCOL
|
|
124
|
+
|
|
125
|
+
this.id = options.wechaty.id
|
|
126
|
+
|
|
127
|
+
this.protocol = options.protocol + '|' + options.wechaty.id + '|' + config.serviceIp + '|' + options.servicePort
|
|
128
|
+
log.verbose('Io', 'instantiated with apihost[%s], token[%s], protocol[%s], cuid[%s]',
|
|
129
|
+
options.apihost,
|
|
130
|
+
options.token,
|
|
131
|
+
options.protocol,
|
|
132
|
+
this.id,
|
|
133
|
+
)
|
|
134
|
+
|
|
135
|
+
if (options.servicePort) {
|
|
136
|
+
this.jsonRpc = getPeer({
|
|
137
|
+
serviceGrpcPort: this.options.servicePort!,
|
|
138
|
+
})
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
public toString () {
|
|
144
|
+
return `Io<${this.options.token}>`
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
private connected () {
|
|
148
|
+
return this.ws && this.ws.readyState === WebSocket.OPEN
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
public async start (): Promise<void> {
|
|
152
|
+
log.verbose('Io', 'start()')
|
|
153
|
+
|
|
154
|
+
if (this.lifeTimer) {
|
|
155
|
+
throw new Error('lifeTimer exist')
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
this.state.active('pending')
|
|
159
|
+
|
|
160
|
+
try {
|
|
161
|
+
this.initEventHook()
|
|
162
|
+
|
|
163
|
+
this.ws = await this.initWebSocket()
|
|
164
|
+
|
|
165
|
+
this.options.wechaty.on('login', () => { this.scanPayload = undefined })
|
|
166
|
+
this.options.wechaty.on('scan', (qrcode, status) => {
|
|
167
|
+
this.scanPayload = {
|
|
168
|
+
...this.scanPayload,
|
|
169
|
+
qrcode,
|
|
170
|
+
status,
|
|
171
|
+
}
|
|
172
|
+
})
|
|
173
|
+
|
|
174
|
+
this.lifeTimer = setInterval(() => {
|
|
175
|
+
if (this.ws && this.connected()) {
|
|
176
|
+
log.silly('Io', 'start() setInterval() ws.ping()')
|
|
177
|
+
// TODO: check 'pong' event on ws
|
|
178
|
+
this.ws.ping()
|
|
179
|
+
}
|
|
180
|
+
}, 1000 * 10)
|
|
181
|
+
|
|
182
|
+
this.state.active(true)
|
|
183
|
+
|
|
184
|
+
} catch (e) {
|
|
185
|
+
log.warn('Io', 'start() exception: %s', (e as Error).message)
|
|
186
|
+
this.state.inactive(true)
|
|
187
|
+
throw e
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
private initEventHook () {
|
|
192
|
+
log.verbose('Io', 'initEventHook()')
|
|
193
|
+
const wechaty = this.options.wechaty
|
|
194
|
+
|
|
195
|
+
wechaty.on('error', error => this.send({ name: 'error', payload: error }))
|
|
196
|
+
wechaty.on('heartbeat', data => this.send({ name: 'heartbeat', payload: { cuid: this.id, data } }))
|
|
197
|
+
wechaty.on('login', user => this.send({ name: 'login', payload: wechaty.puppet.contactPayload(user.id) }))
|
|
198
|
+
wechaty.on('logout', user => this.send({ name: 'logout', payload: wechaty.puppet.contactPayload(user.id) }))
|
|
199
|
+
wechaty.on('message', message => this.ioMessage(message))
|
|
200
|
+
|
|
201
|
+
// FIXME: payload schema need to be defined universal
|
|
202
|
+
// wechaty.on('scan', (url, code) => this.send({ name: 'scan', payload: { url, code } }))
|
|
203
|
+
wechaty.on('scan', (qrcode, status) => this.send({ name: 'scan', payload: { qrcode, status } } as IoEventScan))
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
private async initWebSocket (): Promise<WebSocket> {
|
|
207
|
+
log.verbose('Io', 'initWebSocket()')
|
|
208
|
+
// this.state.current('on', false)
|
|
209
|
+
|
|
210
|
+
// const auth = 'Basic ' + new Buffer(this.setting.token + ':X').toString('base64')
|
|
211
|
+
const auth = 'Token ' + this.options.token
|
|
212
|
+
const headers = { Authorization: auth }
|
|
213
|
+
|
|
214
|
+
if (!this.options.apihost) {
|
|
215
|
+
throw new Error('no apihost')
|
|
216
|
+
}
|
|
217
|
+
let endpoint = 'wss://' + this.options.apihost + '/v0/websocket'
|
|
218
|
+
|
|
219
|
+
// XXX quick and dirty: use no ssl for API_HOST other than official
|
|
220
|
+
// FIXME: use a configurable VARIABLE for the domain name at here:
|
|
221
|
+
if (!/api\.chatie\.io/.test(this.options.apihost)) {
|
|
222
|
+
endpoint = 'ws://' + this.options.apihost + '/v0/websocket'
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
const ws = this.ws = new WebSocket(endpoint, this.protocol, { headers })
|
|
226
|
+
|
|
227
|
+
ws.on('open', () => this.wsOnOpen(ws))
|
|
228
|
+
ws.on('message', data => this.wsOnMessage(data))
|
|
229
|
+
ws.on('error', e => this.wsOnError(e))
|
|
230
|
+
ws.on('close', (code, reason) => this.wsOnClose(ws, code, reason.toString()))
|
|
231
|
+
|
|
232
|
+
await new Promise((resolve, reject) => {
|
|
233
|
+
ws.once('open', resolve)
|
|
234
|
+
ws.once('error', reject)
|
|
235
|
+
ws.once('close', reject)
|
|
236
|
+
})
|
|
237
|
+
|
|
238
|
+
return ws
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
private wsOnOpen (ws: WebSocket): void {
|
|
242
|
+
if (this.protocol !== ws.protocol) {
|
|
243
|
+
log.error('Io', 'wsOnOpen() require protocol[%s] failed', this.protocol)
|
|
244
|
+
// XXX deal with error?
|
|
245
|
+
}
|
|
246
|
+
log.verbose('Io', 'wsOnOpen() connected with protocol [%s]', ws.protocol)
|
|
247
|
+
// this.currentState('connected')
|
|
248
|
+
// this.state.current('on')
|
|
249
|
+
|
|
250
|
+
// FIXME: how to keep alive???
|
|
251
|
+
// ws._socket.setKeepAlive(true, 100)
|
|
252
|
+
|
|
253
|
+
this.reconnectTimeout = undefined
|
|
254
|
+
|
|
255
|
+
const name = 'sys'
|
|
256
|
+
const payload = 'Wechaty version ' + this.options.wechaty.version() + ` with CUID: ${this.id}`
|
|
257
|
+
|
|
258
|
+
const initEvent: IoEvent = {
|
|
259
|
+
name,
|
|
260
|
+
payload,
|
|
261
|
+
}
|
|
262
|
+
this.send(initEvent).catch(console.error)
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
private wsOnMessage (data: WebSocket.Data): void {
|
|
266
|
+
log.silly('Io', 'wsOnMessage() ws.on(message): %s', data)
|
|
267
|
+
this.wsOnMessageAsync(data).catch(console.error)
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
private async wsOnMessageAsync (data: WebSocket.Data): Promise<void> {
|
|
271
|
+
log.silly('Io', 'wsOnMessageAsync() ws.on(message): %s', data)
|
|
272
|
+
|
|
273
|
+
// flags.binary will be set if a binary data is received.
|
|
274
|
+
// flags.masked will be set if the data was masked.
|
|
275
|
+
let payload: string
|
|
276
|
+
|
|
277
|
+
if (Array.isArray(data)) {
|
|
278
|
+
payload = data[0]?.toString() ?? 'NODATA'
|
|
279
|
+
} else {
|
|
280
|
+
payload = data.toString()
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
const ioEvent: IoEvent = {
|
|
284
|
+
name : 'raw',
|
|
285
|
+
payload : data,
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
try {
|
|
289
|
+
const obj = JSON.parse(payload)
|
|
290
|
+
ioEvent.name = obj.name
|
|
291
|
+
ioEvent.payload = obj.payload
|
|
292
|
+
} catch (e) {
|
|
293
|
+
log.verbose('Io', 'on(message) recv a non IoEvent data[%s]', data)
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
switch (ioEvent.name) {
|
|
297
|
+
case 'botie':
|
|
298
|
+
{
|
|
299
|
+
const payload = ioEvent.payload
|
|
300
|
+
|
|
301
|
+
const args = payload.args
|
|
302
|
+
const source = payload.source
|
|
303
|
+
|
|
304
|
+
try {
|
|
305
|
+
if (args[0] === 'message' && args.length === 1) {
|
|
306
|
+
const fn = new AsyncFunction(...args, source)
|
|
307
|
+
this.onMessage = fn
|
|
308
|
+
} else {
|
|
309
|
+
log.warn('Io', 'server pushed function is invalid. args: %s', JSON.stringify(args))
|
|
310
|
+
}
|
|
311
|
+
} catch (e) {
|
|
312
|
+
log.warn('Io', 'server pushed function exception: %s', e)
|
|
313
|
+
this.options.wechaty.emitError(e)
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
break
|
|
317
|
+
|
|
318
|
+
case 'reset':
|
|
319
|
+
log.verbose('Io', 'on(reset): %s', ioEvent.payload)
|
|
320
|
+
this.options.wechaty.emitError(
|
|
321
|
+
new Error(
|
|
322
|
+
'reset by server: '
|
|
323
|
+
+ JSON.stringify(ioEvent.payload),
|
|
324
|
+
),
|
|
325
|
+
)
|
|
326
|
+
await this.options.wechaty.reset()
|
|
327
|
+
break
|
|
328
|
+
|
|
329
|
+
case 'shutdown':
|
|
330
|
+
log.info('Io', 'on(shutdown): %s', ioEvent.payload)
|
|
331
|
+
process.exit(0)
|
|
332
|
+
// eslint-disable-next-line
|
|
333
|
+
break
|
|
334
|
+
|
|
335
|
+
case 'update':
|
|
336
|
+
log.verbose('Io', 'on(update): %s', ioEvent.payload)
|
|
337
|
+
{
|
|
338
|
+
const wechaty = this.options.wechaty
|
|
339
|
+
if (wechaty.isLoggedIn) {
|
|
340
|
+
const loginEvent: IoEvent = {
|
|
341
|
+
name : 'login',
|
|
342
|
+
payload : await wechaty.puppet.contactPayload(
|
|
343
|
+
wechaty.puppet.currentUserId,
|
|
344
|
+
),
|
|
345
|
+
}
|
|
346
|
+
await this.send(loginEvent)
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
if (this.scanPayload) {
|
|
350
|
+
const scanEvent: IoEventScan = {
|
|
351
|
+
name: 'scan',
|
|
352
|
+
payload: this.scanPayload,
|
|
353
|
+
}
|
|
354
|
+
await this.send(scanEvent)
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
break
|
|
359
|
+
|
|
360
|
+
case 'sys':
|
|
361
|
+
// do nothing
|
|
362
|
+
break
|
|
363
|
+
|
|
364
|
+
case 'logout':
|
|
365
|
+
log.info('Io', 'on(logout): %s', ioEvent.payload)
|
|
366
|
+
await this.options.wechaty.logout()
|
|
367
|
+
break
|
|
368
|
+
|
|
369
|
+
case 'jsonrpc':
|
|
370
|
+
log.info('Io', 'on(jsonrpc): %s', ioEvent.payload)
|
|
371
|
+
|
|
372
|
+
try {
|
|
373
|
+
const request = (ioEvent as IoEventJsonRpc).payload
|
|
374
|
+
if (!isJsonRpcRequest(request)) {
|
|
375
|
+
log.warn('Io', 'on(jsonrpc) payload is not a jsonrpc request: %s', JSON.stringify(request))
|
|
376
|
+
return
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
if (!this.jsonRpc) {
|
|
380
|
+
throw new Error('jsonRpc not initialized!')
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
const response = await this.jsonRpc.exec(request)
|
|
384
|
+
if (!response) {
|
|
385
|
+
log.warn('Io', 'on(jsonrpc) response is undefined.')
|
|
386
|
+
return
|
|
387
|
+
}
|
|
388
|
+
const payload = jsonRpcPeer.parse(response) as jsonRpcPeer.JsonRpcPayloadResponse
|
|
389
|
+
|
|
390
|
+
const jsonrpcEvent: IoEventJsonRpc = {
|
|
391
|
+
name: 'jsonrpc',
|
|
392
|
+
payload,
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
log.verbose('Io', 'on(jsonrpc) send(%s)', response)
|
|
396
|
+
await this.send(jsonrpcEvent)
|
|
397
|
+
|
|
398
|
+
} catch (e) {
|
|
399
|
+
log.error('Io', 'on(jsonrpc): %s', e)
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
break
|
|
403
|
+
|
|
404
|
+
default:
|
|
405
|
+
log.warn('Io', 'UNKNOWN on(%s): %s', ioEvent.name, ioEvent.payload)
|
|
406
|
+
break
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
// FIXME: it seems the parameter `e` might be `undefined`.
|
|
411
|
+
// @types/ws might has bug for `ws.on('error', e => this.wsOnError(e))`
|
|
412
|
+
private wsOnError (e?: Error) {
|
|
413
|
+
log.warn('Io', 'wsOnError() error event[%s]', e && e.message)
|
|
414
|
+
if (!e) {
|
|
415
|
+
return
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
if (!this.ws) {
|
|
419
|
+
log.error('Io', 'wsOnError() ws.on(error) this.ws is `undefined`', e.message)
|
|
420
|
+
return
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
if (this.ws.readyState === WebSocket.CONNECTING) {
|
|
424
|
+
log.error('Io', 'wsOnError() ws.on(error) ws.readyState is CONNECTING: %s', e.message)
|
|
425
|
+
return
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
if (this.ws.readyState === WebSocket.CLOSING) {
|
|
429
|
+
log.error('Io', 'wsOnError() ws.on(error) ws.readyState is CLOSING: %s', e.message)
|
|
430
|
+
return
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
this.options.wechaty.emitError(e)
|
|
434
|
+
|
|
435
|
+
// when `error`, there must have already a `close` event
|
|
436
|
+
// we should not call this.reconnect() again
|
|
437
|
+
//
|
|
438
|
+
// this.close()
|
|
439
|
+
// this.reconnect()
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
private wsOnClose (
|
|
443
|
+
ws : WebSocket,
|
|
444
|
+
code : number,
|
|
445
|
+
message : string,
|
|
446
|
+
): void {
|
|
447
|
+
if (this.state.active()) {
|
|
448
|
+
log.warn('Io', 'wsOnClose() close event[%d: %s]', code, message)
|
|
449
|
+
ws.close()
|
|
450
|
+
this.reconnect()
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
private reconnect () {
|
|
455
|
+
log.verbose('Io', 'reconnect()')
|
|
456
|
+
|
|
457
|
+
if (this.state.inactive()) {
|
|
458
|
+
log.warn('Io', 'reconnect() canceled because state.target() === offline')
|
|
459
|
+
return
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
if (this.connected()) {
|
|
463
|
+
log.warn('Io', 'reconnect() on a already connected io')
|
|
464
|
+
return
|
|
465
|
+
}
|
|
466
|
+
if (this.reconnectTimer) {
|
|
467
|
+
log.warn('Io', 'reconnect() on a already re-connecting io')
|
|
468
|
+
return
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
if (!this.reconnectTimeout) {
|
|
472
|
+
this.reconnectTimeout = 1
|
|
473
|
+
} else if (this.reconnectTimeout < 10 * 1000) {
|
|
474
|
+
this.reconnectTimeout *= 3
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
log.warn('Io', 'reconnect() will reconnect after %d s', Math.floor(this.reconnectTimeout / 1000))
|
|
478
|
+
this.reconnectTimer = setTimeout(() => {
|
|
479
|
+
this.reconnectTimer = undefined
|
|
480
|
+
this.initWebSocket().catch(console.error)
|
|
481
|
+
}, this.reconnectTimeout)// as any as NodeJS.Timer
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
private async send (ioEvent?: IoEvent): Promise<void> {
|
|
485
|
+
if (!this.ws) {
|
|
486
|
+
throw new Error('no ws')
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
const ws = this.ws
|
|
490
|
+
|
|
491
|
+
if (ioEvent) {
|
|
492
|
+
log.silly('Io', 'send(%s)', JSON.stringify(ioEvent))
|
|
493
|
+
this.eventBuffer.push(ioEvent)
|
|
494
|
+
} else { log.silly('Io', 'send()') }
|
|
495
|
+
|
|
496
|
+
if (!this.connected()) {
|
|
497
|
+
log.verbose('Io', 'send() without a connected websocket, eventBuffer.length = %d', this.eventBuffer.length)
|
|
498
|
+
return
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
const list: Array<Promise<any>> = []
|
|
502
|
+
while (this.eventBuffer.length) {
|
|
503
|
+
const data = JSON.stringify(
|
|
504
|
+
this.eventBuffer.shift(),
|
|
505
|
+
)
|
|
506
|
+
const p = new Promise<void>((resolve, reject) => ws.send(
|
|
507
|
+
data,
|
|
508
|
+
(err: undefined | Error) => {
|
|
509
|
+
if (err) {
|
|
510
|
+
reject(err)
|
|
511
|
+
} else {
|
|
512
|
+
resolve()
|
|
513
|
+
}
|
|
514
|
+
},
|
|
515
|
+
))
|
|
516
|
+
list.push(p)
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
try {
|
|
520
|
+
await Promise.all(list)
|
|
521
|
+
} catch (e) {
|
|
522
|
+
log.error('Io', 'send() exception: %s', (e as Error).stack)
|
|
523
|
+
throw e
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
public async stop (): Promise<void> {
|
|
528
|
+
log.verbose('Io', 'stop()')
|
|
529
|
+
|
|
530
|
+
if (!this.ws) {
|
|
531
|
+
throw new Error('no ws')
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
this.state.inactive('pending')
|
|
535
|
+
|
|
536
|
+
// try to send IoEvents in buffer
|
|
537
|
+
await this.send()
|
|
538
|
+
this.eventBuffer = []
|
|
539
|
+
|
|
540
|
+
if (this.reconnectTimer) {
|
|
541
|
+
clearTimeout(this.reconnectTimer)
|
|
542
|
+
this.reconnectTimer = undefined
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
if (this.lifeTimer) {
|
|
546
|
+
clearInterval(this.lifeTimer)
|
|
547
|
+
this.lifeTimer = undefined
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
this.ws.close()
|
|
551
|
+
await new Promise<void>(resolve => {
|
|
552
|
+
if (this.ws) {
|
|
553
|
+
this.ws.once('close', resolve)
|
|
554
|
+
} else {
|
|
555
|
+
resolve()
|
|
556
|
+
}
|
|
557
|
+
})
|
|
558
|
+
this.ws = undefined
|
|
559
|
+
|
|
560
|
+
this.state.inactive(true)
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
/**
|
|
564
|
+
*
|
|
565
|
+
* Prepare to be overwritten by server setting
|
|
566
|
+
*
|
|
567
|
+
*/
|
|
568
|
+
private async ioMessage (m: MessageInterface): Promise<void> {
|
|
569
|
+
log.silly('Io', 'ioMessage() is a nop function before be overwritten from cloud')
|
|
570
|
+
if (typeof this.onMessage === 'function') {
|
|
571
|
+
await this.onMessage(m)
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
protected async syncMessage (m: MessageInterface): Promise<void> {
|
|
576
|
+
log.silly('Io', 'syncMessage(%s)', m)
|
|
577
|
+
|
|
578
|
+
const messageEvent: IoEvent = {
|
|
579
|
+
name : 'message',
|
|
580
|
+
payload : await m.wechaty.puppet.messagePayload(m.id),
|
|
581
|
+
}
|
|
582
|
+
await this.send(messageEvent)
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env -S node --no-warnings --loader ts-node/esm
|
|
2
|
+
|
|
3
|
+
import { test } from 'tstest'
|
|
4
|
+
|
|
5
|
+
import * as impls from './impls.js'
|
|
6
|
+
|
|
7
|
+
test('Export of the Framework', async t => {
|
|
8
|
+
t.ok(impls.ContactImpl, 'should export Contact')
|
|
9
|
+
t.ok(impls.FriendshipImpl, 'should export Friendship')
|
|
10
|
+
t.ok(impls.MessageImpl, 'should export Message')
|
|
11
|
+
t.ok(impls.RoomImpl, 'should export Room')
|
|
12
|
+
t.ok(impls.WechatyImpl, 'should export Wechaty')
|
|
13
|
+
})
|