@juzi/wechaty 1.0.63 → 1.0.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/cjs/src/package-json.js +4 -4
  2. package/dist/cjs/src/schemas/wechaty-events.d.ts +4 -1
  3. package/dist/cjs/src/schemas/wechaty-events.d.ts.map +1 -1
  4. package/dist/cjs/src/schemas/wechaty-events.js.map +1 -1
  5. package/dist/cjs/src/wechaty/wechaty-base.d.ts +10 -34
  6. package/dist/cjs/src/wechaty/wechaty-base.d.ts.map +1 -1
  7. package/dist/cjs/src/wechaty/wechaty-base.js +15 -0
  8. package/dist/cjs/src/wechaty/wechaty-base.js.map +1 -1
  9. package/dist/cjs/src/wechaty/wechaty-base.spec.js +28 -0
  10. package/dist/cjs/src/wechaty/wechaty-base.spec.js.map +1 -1
  11. package/dist/cjs/src/wechaty/wechaty-impl.spec.js.map +1 -1
  12. package/dist/cjs/src/wechaty-mixins/gerror-mixin.d.ts +1 -1
  13. package/dist/cjs/src/wechaty-mixins/io-mixin.d.ts +2 -2
  14. package/dist/cjs/src/wechaty-mixins/login-mixin.d.ts +5 -7
  15. package/dist/cjs/src/wechaty-mixins/login-mixin.d.ts.map +1 -1
  16. package/dist/cjs/src/wechaty-mixins/misc-mixin.d.ts +5 -7
  17. package/dist/cjs/src/wechaty-mixins/misc-mixin.d.ts.map +1 -1
  18. package/dist/cjs/src/wechaty-mixins/plugin-mixin.d.ts +6 -9
  19. package/dist/cjs/src/wechaty-mixins/plugin-mixin.d.ts.map +1 -1
  20. package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts +7 -14
  21. package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -1
  22. package/dist/cjs/src/wechaty-mixins/puppet-mixin.js +17 -18
  23. package/dist/cjs/src/wechaty-mixins/puppet-mixin.js.map +1 -1
  24. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.d.ts +1 -1
  25. package/dist/esm/src/package-json.js +4 -4
  26. package/dist/esm/src/schemas/wechaty-events.d.ts +4 -1
  27. package/dist/esm/src/schemas/wechaty-events.d.ts.map +1 -1
  28. package/dist/esm/src/schemas/wechaty-events.js.map +1 -1
  29. package/dist/esm/src/wechaty/wechaty-base.d.ts +10 -34
  30. package/dist/esm/src/wechaty/wechaty-base.d.ts.map +1 -1
  31. package/dist/esm/src/wechaty/wechaty-base.js +15 -0
  32. package/dist/esm/src/wechaty/wechaty-base.js.map +1 -1
  33. package/dist/esm/src/wechaty/wechaty-base.spec.js +28 -0
  34. package/dist/esm/src/wechaty/wechaty-base.spec.js.map +1 -1
  35. package/dist/esm/src/wechaty/wechaty-impl.spec.js.map +1 -1
  36. package/dist/esm/src/wechaty-mixins/gerror-mixin.d.ts +1 -1
  37. package/dist/esm/src/wechaty-mixins/io-mixin.d.ts +2 -2
  38. package/dist/esm/src/wechaty-mixins/login-mixin.d.ts +5 -7
  39. package/dist/esm/src/wechaty-mixins/login-mixin.d.ts.map +1 -1
  40. package/dist/esm/src/wechaty-mixins/misc-mixin.d.ts +5 -7
  41. package/dist/esm/src/wechaty-mixins/misc-mixin.d.ts.map +1 -1
  42. package/dist/esm/src/wechaty-mixins/plugin-mixin.d.ts +6 -9
  43. package/dist/esm/src/wechaty-mixins/plugin-mixin.d.ts.map +1 -1
  44. package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts +7 -14
  45. package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -1
  46. package/dist/esm/src/wechaty-mixins/puppet-mixin.js +17 -18
  47. package/dist/esm/src/wechaty-mixins/puppet-mixin.js.map +1 -1
  48. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.d.ts +1 -1
  49. package/package.json +3 -3
  50. package/src/package-json.ts +4 -4
  51. package/src/schemas/wechaty-events.ts +3 -0
  52. package/src/wechaty/wechaty-base.spec.ts +35 -0
  53. package/src/wechaty/wechaty-base.ts +28 -0
  54. package/src/wechaty/wechaty-impl.spec.ts +26 -23
  55. package/src/wechaty-mixins/puppet-mixin.ts +19 -23
@@ -74,29 +74,32 @@ test('Wechaty interface', async t => {
74
74
  = {} as any
75
75
  }
76
76
 
77
- abstract authQrCode : WechatyInterface['authQrCode']
78
- abstract currentUser : WechatyInterface['currentUser']
79
- abstract ding : WechatyInterface['ding']
80
- abstract emitError : WechatyInterface['emitError']
81
- abstract id : WechatyInterface['id']
82
- abstract init : WechatyInterface['init']
83
- abstract isLoggedIn : WechatyInterface['isLoggedIn']
84
- abstract log : WechatyInterface['log']
85
- abstract logout : WechatyInterface['logout']
86
- abstract name : WechatyInterface['name']
87
- abstract publish : WechatyInterface['publish']
88
- abstract unpublish : WechatyInterface['unpublish']
89
- abstract puppet : WechatyInterface['puppet']
90
- abstract ready : WechatyInterface['ready']
91
- abstract reset : WechatyInterface['reset']
92
- abstract say : WechatyInterface['say']
93
- abstract sleep : WechatyInterface['sleep']
94
- abstract start : WechatyInterface['start']
95
- abstract state : WechatyInterface['state']
96
- abstract stop : WechatyInterface['stop']
97
- abstract use : WechatyInterface['use']
98
- abstract version : WechatyInterface['version']
99
- abstract wrapAsync : WechatyInterface['wrapAsync']
77
+ abstract authQrCode : WechatyInterface['authQrCode']
78
+ abstract currentUser : WechatyInterface['currentUser']
79
+ abstract ding : WechatyInterface['ding']
80
+ abstract emitError : WechatyInterface['emitError']
81
+ abstract id : WechatyInterface['id']
82
+ abstract init : WechatyInterface['init']
83
+ abstract isLoggedIn : WechatyInterface['isLoggedIn']
84
+ abstract log : WechatyInterface['log']
85
+ abstract logout : WechatyInterface['logout']
86
+ abstract name : WechatyInterface['name']
87
+ abstract publish : WechatyInterface['publish']
88
+ abstract unpublish : WechatyInterface['unpublish']
89
+ abstract puppet : WechatyInterface['puppet']
90
+ abstract ready : WechatyInterface['ready']
91
+ abstract reset : WechatyInterface['reset']
92
+ abstract say : WechatyInterface['say']
93
+ abstract sleep : WechatyInterface['sleep']
94
+ abstract start : WechatyInterface['start']
95
+ abstract state : WechatyInterface['state']
96
+ abstract stop : WechatyInterface['stop']
97
+ abstract use : WechatyInterface['use']
98
+ abstract version : WechatyInterface['version']
99
+ abstract wrapAsync : WechatyInterface['wrapAsync']
100
+ abstract enterVerifyCode : WechatyInterface['enterVerifyCode']
101
+ abstract cancelVerifyCode: WechatyInterface['cancelVerifyCode']
102
+ abstract refreshQrCode : WechatyInterface['refreshQrCode']
100
103
 
101
104
  }
102
105
 
@@ -62,14 +62,19 @@ const puppetMixin = <MixinBase extends WechatifyUserModuleMixin & GErrorMixin &
62
62
 
63
63
  __puppetMixinInited = false
64
64
 
65
- __offCallbackList: (() => void)[] = []
66
-
67
65
  constructor (...args: any[]) {
68
66
  log.verbose('WechatyPuppetMixin', 'construct()')
69
67
  super(...args)
70
68
 
71
69
  this.__readyState = new StateSwitch('WechatyReady', { log })
72
70
  this.__loginIndicator = new BooleanIndicator()
71
+
72
+ this.on('login', () => {
73
+ this.__loginIndicator.value(true)
74
+ })
75
+ this.on('logout', () => {
76
+ this.__loginIndicator.value(false)
77
+ })
73
78
  }
74
79
 
75
80
  override async start (): Promise<void> {
@@ -117,20 +122,6 @@ const puppetMixin = <MixinBase extends WechatifyUserModuleMixin & GErrorMixin &
117
122
  } catch (e) {
118
123
  this.emitError(e)
119
124
  }
120
-
121
- const loginListener = () => {
122
- this.__loginIndicator.value(true)
123
- }
124
- this.on('login', loginListener)
125
- const offLoginListener = () => this.off('login', loginListener)
126
- this.__offCallbackList.push(offLoginListener)
127
-
128
- const logoutListener = () => {
129
- this.__loginIndicator.value(false)
130
- }
131
- this.on('logout', logoutListener)
132
- const offLogoutListener = () => this.off('logout', logoutListener)
133
- this.__offCallbackList.push(offLogoutListener)
134
125
  }
135
126
 
136
127
  override async stop (): Promise<void> {
@@ -154,11 +145,6 @@ const puppetMixin = <MixinBase extends WechatifyUserModuleMixin & GErrorMixin &
154
145
  log.verbose('WechatyPuppetMixin', 'stop() super.stop() ...')
155
146
  await super.stop()
156
147
  log.verbose('WechatyPuppetMixin', 'stop() super.stop() ... done')
157
-
158
- while (this.__offCallbackList.length > 0) {
159
- const func = this.__offCallbackList.pop()
160
- func && func()
161
- }
162
148
  }
163
149
 
164
150
  async ready (): Promise<void> {
@@ -414,7 +400,12 @@ const puppetMixin = <MixinBase extends WechatifyUserModuleMixin & GErrorMixin &
414
400
  this.__readyState.active(true)
415
401
  }
416
402
  } catch (e) {
417
- log.error(`ready ignored: ${(e as Error).message}`)
403
+ log.error(`ready error: ${(e as Error).message}, will emit event anyway if it's logged in now`)
404
+ if (this.puppet.isLoggedIn) {
405
+ this.emit('ready')
406
+ this.__loginIndicator.value(true)
407
+ this.__readyState.active(true)
408
+ }
418
409
  }
419
410
  })
420
411
  break
@@ -632,6 +623,12 @@ const puppetMixin = <MixinBase extends WechatifyUserModuleMixin & GErrorMixin &
632
623
  })
633
624
  break
634
625
 
626
+ case 'verify-code':
627
+ puppet.on('verify-code', (payload) => {
628
+ this.emit('verify-code', payload.id, payload.message || '', payload.scene || PUPPET.types.VerifyCodeScene.UNKNOWN, payload.status || PUPPET.types.VerifyCodeStatus.UNKNOWN)
629
+ })
630
+ break
631
+
635
632
  case 'reset':
636
633
  // Do not propagation `reset` event from puppet
637
634
  break
@@ -800,7 +797,6 @@ type ProtectedPropertyPuppetMixin =
800
797
  | '__readyState'
801
798
  | '__setupPuppetEvents'
802
799
  | '__loginIndicator'
803
- | '__offCallbackList'
804
800
 
805
801
  export type {
806
802
  PuppetMixin,