@juzi/wechaty 1.0.21 → 1.0.22

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 (72) hide show
  1. package/dist/cjs/src/package-json.js +3 -3
  2. package/dist/cjs/src/package-json.js.map +1 -1
  3. package/dist/cjs/src/pure-functions/update.d.ts +1 -1
  4. package/dist/cjs/src/pure-functions/update.d.ts.map +1 -1
  5. package/dist/cjs/src/pure-functions/update.js +6 -5
  6. package/dist/cjs/src/pure-functions/update.js.map +1 -1
  7. package/dist/cjs/src/schemas/contact-events.d.ts +14 -2
  8. package/dist/cjs/src/schemas/contact-events.d.ts.map +1 -1
  9. package/dist/cjs/src/schemas/contact-events.js.map +1 -1
  10. package/dist/cjs/src/schemas/room-events.d.ts +4 -1
  11. package/dist/cjs/src/schemas/room-events.d.ts.map +1 -1
  12. package/dist/cjs/src/schemas/room-events.js +1 -0
  13. package/dist/cjs/src/schemas/room-events.js.map +1 -1
  14. package/dist/cjs/src/schemas/update.d.ts +30 -11
  15. package/dist/cjs/src/schemas/update.d.ts.map +1 -1
  16. package/dist/cjs/src/schemas/update.js +32 -0
  17. package/dist/cjs/src/schemas/update.js.map +1 -1
  18. package/dist/cjs/src/schemas/wechaty-events.d.ts +23 -2
  19. package/dist/cjs/src/schemas/wechaty-events.d.ts.map +1 -1
  20. package/dist/cjs/src/schemas/wechaty-events.js +7 -0
  21. package/dist/cjs/src/schemas/wechaty-events.js.map +1 -1
  22. package/dist/cjs/src/wechaty/wechaty-base.d.ts +7 -7
  23. package/dist/cjs/src/wechaty-mixins/gerror-mixin.d.ts +1 -1
  24. package/dist/cjs/src/wechaty-mixins/io-mixin.d.ts +2 -2
  25. package/dist/cjs/src/wechaty-mixins/login-mixin.d.ts +5 -5
  26. package/dist/cjs/src/wechaty-mixins/misc-mixin.d.ts +5 -5
  27. package/dist/cjs/src/wechaty-mixins/plugin-mixin.d.ts +6 -6
  28. package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts +4 -4
  29. package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -1
  30. package/dist/cjs/src/wechaty-mixins/puppet-mixin.js +73 -14
  31. package/dist/cjs/src/wechaty-mixins/puppet-mixin.js.map +1 -1
  32. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.d.ts +1 -1
  33. package/dist/esm/src/package-json.js +3 -3
  34. package/dist/esm/src/package-json.js.map +1 -1
  35. package/dist/esm/src/pure-functions/update.d.ts +1 -1
  36. package/dist/esm/src/pure-functions/update.d.ts.map +1 -1
  37. package/dist/esm/src/pure-functions/update.js +6 -5
  38. package/dist/esm/src/pure-functions/update.js.map +1 -1
  39. package/dist/esm/src/schemas/contact-events.d.ts +14 -2
  40. package/dist/esm/src/schemas/contact-events.d.ts.map +1 -1
  41. package/dist/esm/src/schemas/contact-events.js.map +1 -1
  42. package/dist/esm/src/schemas/room-events.d.ts +4 -1
  43. package/dist/esm/src/schemas/room-events.d.ts.map +1 -1
  44. package/dist/esm/src/schemas/room-events.js +1 -0
  45. package/dist/esm/src/schemas/room-events.js.map +1 -1
  46. package/dist/esm/src/schemas/update.d.ts +30 -11
  47. package/dist/esm/src/schemas/update.d.ts.map +1 -1
  48. package/dist/esm/src/schemas/update.js +8 -1
  49. package/dist/esm/src/schemas/update.js.map +1 -1
  50. package/dist/esm/src/schemas/wechaty-events.d.ts +23 -2
  51. package/dist/esm/src/schemas/wechaty-events.d.ts.map +1 -1
  52. package/dist/esm/src/schemas/wechaty-events.js +7 -0
  53. package/dist/esm/src/schemas/wechaty-events.js.map +1 -1
  54. package/dist/esm/src/wechaty/wechaty-base.d.ts +7 -7
  55. package/dist/esm/src/wechaty-mixins/gerror-mixin.d.ts +1 -1
  56. package/dist/esm/src/wechaty-mixins/io-mixin.d.ts +2 -2
  57. package/dist/esm/src/wechaty-mixins/login-mixin.d.ts +5 -5
  58. package/dist/esm/src/wechaty-mixins/misc-mixin.d.ts +5 -5
  59. package/dist/esm/src/wechaty-mixins/plugin-mixin.d.ts +6 -6
  60. package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts +4 -4
  61. package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -1
  62. package/dist/esm/src/wechaty-mixins/puppet-mixin.js +73 -14
  63. package/dist/esm/src/wechaty-mixins/puppet-mixin.js.map +1 -1
  64. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.d.ts +1 -1
  65. package/package.json +2 -2
  66. package/src/package-json.ts +3 -3
  67. package/src/pure-functions/update.ts +9 -8
  68. package/src/schemas/contact-events.ts +22 -3
  69. package/src/schemas/room-events.ts +4 -0
  70. package/src/schemas/update.ts +42 -13
  71. package/src/schemas/wechaty-events.ts +73 -43
  72. package/src/wechaty-mixins/puppet-mixin.ts +75 -15
@@ -2,8 +2,9 @@ import * as PUPPET from '@juzi/wechaty-puppet';
2
2
  import { log } from '@juzi/wechaty-puppet';
3
3
  import { GError, timeoutPromise, TimeoutPromiseGError, } from 'gerror';
4
4
  import { StateSwitch } from 'state-switch';
5
- import { config } from '../config.js';
5
+ import { config, FOUR_PER_EM_SPACE } from '../config.js';
6
6
  import { timestampToDate } from '../pure-functions/timestamp-to-date.js';
7
+ import { ContactImportantFields, RoomImportantFields } from '../schemas/update.js';
7
8
  import { diffPayload } from '../pure-functions/update.js';
8
9
  const PUPPET_MEMORY_NAME = 'puppet';
9
10
  /**
@@ -217,7 +218,7 @@ const puppetMixin = (mixinBase) => {
217
218
  this.emit('error', GError.from('message not found for id: ' + payload.messageId));
218
219
  return;
219
220
  }
220
- this.emit('message', msg);
221
+ this.emit('message', 'msg');
221
222
  const room = msg.room();
222
223
  const listener = msg.listener();
223
224
  if (room) {
@@ -359,15 +360,57 @@ const puppetMixin = (mixinBase) => {
359
360
  const oldPayload = JSON.parse(JSON.stringify(contact?.payload || {}));
360
361
  await contact?.ready(true);
361
362
  const newPayload = JSON.parse(JSON.stringify(contact?.payload || {}));
362
- const updateEvent = {
363
- type: payloadType,
364
- id: payloadId,
365
- updates: diffPayload(oldPayload, newPayload),
366
- };
367
- if (updateEvent.updates.length > 0) {
363
+ const differences = diffPayload(oldPayload, newPayload);
364
+ const importangDifferences = differences.filter(ele => ele && ContactImportantFields.some(key => key === ele.key));
365
+ const regularDifferences = differences.filter(ele => ele && !ContactImportantFields.some(key => key === ele.key));
366
+ if (regularDifferences.length > 0) {
367
+ const updateEvent = {
368
+ type: payloadType,
369
+ id: payloadId,
370
+ updates: regularDifferences,
371
+ };
368
372
  this.emit('update', updateEvent);
369
373
  contact?.emit('update', updateEvent);
370
374
  }
375
+ for (const difference of importangDifferences) {
376
+ switch (difference?.key) {
377
+ case 'tags': {
378
+ const oldTagsSet = new Set(difference.oldValue?.map(ele => ele.groupId + FOUR_PER_EM_SPACE + ele.id));
379
+ const newTagsSet = new Set(difference.newValue?.map(ele => ele.groupId + FOUR_PER_EM_SPACE + ele.id));
380
+ const addedTags = difference.newValue?.filter(ele => !oldTagsSet.has(ele.groupId + FOUR_PER_EM_SPACE + ele.id)).map(ele => this.Tag.load(ele)) || [];
381
+ const removedTags = difference.oldValue?.filter(ele => !newTagsSet.has(ele.groupId + FOUR_PER_EM_SPACE + ele.id)).map(ele => this.Tag.load(ele)) || [];
382
+ if (addedTags.length > 0) {
383
+ this.emit('contact-tag-add', contact, addedTags);
384
+ }
385
+ if (removedTags.length > 0) {
386
+ this.emit('contact-tag-removed', contact, removedTags);
387
+ }
388
+ break;
389
+ }
390
+ case 'name': {
391
+ this.emit('contact-name', contact, difference.newValue || '', difference.oldValue || '');
392
+ contact?.emit('name', difference.newValue || '', difference.oldValue || '');
393
+ break;
394
+ }
395
+ case 'alias': {
396
+ this.emit('contact-alias', contact, difference.newValue || '', difference.oldValue || '');
397
+ contact?.emit('alias', difference.newValue || '', difference.oldValue || '');
398
+ break;
399
+ }
400
+ case 'phone': {
401
+ this.emit('contact-phone', contact, difference.newValue || [], difference.oldValue || []);
402
+ contact?.emit('phone', difference.newValue || [], difference.oldValue || []);
403
+ break;
404
+ }
405
+ case 'description': {
406
+ this.emit('contact-description', contact, difference.newValue || '', difference.oldValue || '');
407
+ contact?.emit('description', difference.newValue || '', difference.oldValue || '');
408
+ break;
409
+ }
410
+ default:
411
+ log.warn('WechatyPuppetMixin', 'puppet dirty unsupported difference type: %s', JSON.stringify(difference));
412
+ }
413
+ }
371
414
  break;
372
415
  }
373
416
  case PUPPET.types.Payload.Room: {
@@ -375,15 +418,31 @@ const puppetMixin = (mixinBase) => {
375
418
  const oldPayload = JSON.parse(JSON.stringify(room?.payload || {}));
376
419
  await room?.ready(true);
377
420
  const newPayload = JSON.parse(JSON.stringify(room?.payload || {}));
378
- const updateEvent = {
379
- type: payloadType,
380
- id: payloadId,
381
- updates: diffPayload(oldPayload, newPayload),
382
- };
383
- if (updateEvent.updates.length > 0) {
421
+ const differences = diffPayload(oldPayload, newPayload);
422
+ const importangDifferences = differences.filter(ele => ele && RoomImportantFields.some(key => key === ele.key));
423
+ const regularDifferences = differences.filter(ele => ele && !RoomImportantFields.some(key => key === ele.key));
424
+ if (regularDifferences.length > 0) {
425
+ const updateEvent = {
426
+ type: payloadType,
427
+ id: payloadId,
428
+ updates: regularDifferences,
429
+ };
384
430
  this.emit('update', updateEvent);
385
431
  room?.emit('update', updateEvent);
386
432
  }
433
+ for (const difference of importangDifferences) {
434
+ switch (difference?.key) {
435
+ case 'ownerId': {
436
+ const oldOwner = (await this.Contact.find({ id: difference.oldValue }));
437
+ const newOwner = (await this.Contact.find({ id: difference.newValue }));
438
+ this.emit('room-owner', room, newOwner, oldOwner);
439
+ room?.emit('owner', newOwner, oldOwner);
440
+ break;
441
+ }
442
+ default:
443
+ log.warn('WechatyPuppetMixin', 'puppet dirty unsupported difference type: %s', JSON.stringify(difference));
444
+ }
445
+ }
387
446
  break;
388
447
  }
389
448
  case PUPPET.types.Payload.RoomMember: {
@@ -1 +1 @@
1
- {"version":3,"file":"puppet-mixin.js","sourceRoot":"","sources":["../../../../src/wechaty-mixins/puppet-mixin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"puppet-mixin.js","sourceRoot":"","sources":["../../../../src/wechaty-mixins/puppet-mixin.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ declare const wechatifyUserModuleMixin: <MixinBase extends typeof WechatySkeleto
39
39
  __options: import("../schemas/wechaty-options.js").WechatyOptions;
40
40
  start(): Promise<void>;
41
41
  stop(): Promise<void>;
42
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan" | "update", listener: (...args: any[]) => any): any;
42
+ on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan" | "update" | "contact-tag-add" | "contact-tag-remove" | "contact-name" | "contact-alias" | "contact-phone" | "contact-description" | "room-owner", listener: (...args: any[]) => any): any;
43
43
  addListener<E extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E]): any;
44
44
  once<E_1 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_1, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_1]): any;
45
45
  prependListener<E_2 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_2, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_2]): any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@juzi/wechaty",
3
- "version": "1.0.21",
3
+ "version": "1.0.22",
4
4
  "description": "Wechaty is a RPA SDK for Chatbot Makers.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -109,7 +109,6 @@
109
109
  },
110
110
  "homepage": "https://github.com/wechaty/",
111
111
  "dependencies": {
112
- "@juzi/wechaty-puppet": "^1.0.15",
113
112
  "@juzi/wechaty-puppet-service": "^1.0.18",
114
113
  "clone-class": "^1.1.1",
115
114
  "cmd-ts": "^0.10.0",
@@ -133,6 +132,7 @@
133
132
  "@chatie/eslint-config": "^1.0.4",
134
133
  "@chatie/semver": "^0.4.7",
135
134
  "@chatie/tsconfig": "^4.6.3",
135
+ "@juzi/wechaty-puppet": "^1.0.17",
136
136
  "@juzi/wechaty-puppet-mock": "^1.0.1",
137
137
  "@swc/core": "^1.2.155",
138
138
  "@swc/helpers": "^0.3.6",
@@ -4,10 +4,10 @@
4
4
  */
5
5
  import type { PackageJsonWechaty } from './config'
6
6
 
7
- export const GIT_COMMIT_HASH: string = 'fc0b844832f84f684254ef8a0b1c7431675fdc2f'
7
+ export const GIT_COMMIT_HASH: string = 'a1644b7c403cdb626fa59bb6b77af7bb1e074d7d'
8
8
  export const packageJson: PackageJsonWechaty = {
9
9
  "name": "@juzi/wechaty",
10
- "version": "1.0.21",
10
+ "version": "1.0.22",
11
11
  "description": "Wechaty is a RPA SDK for Chatbot Makers.",
12
12
  "type": "module",
13
13
  "exports": {
@@ -116,7 +116,6 @@ export const packageJson: PackageJsonWechaty = {
116
116
  },
117
117
  "homepage": "https://github.com/wechaty/",
118
118
  "dependencies": {
119
- "@juzi/wechaty-puppet": "^1.0.15",
120
119
  "@juzi/wechaty-puppet-service": "^1.0.18",
121
120
  "clone-class": "^1.1.1",
122
121
  "cmd-ts": "^0.10.0",
@@ -140,6 +139,7 @@ export const packageJson: PackageJsonWechaty = {
140
139
  "@chatie/eslint-config": "^1.0.4",
141
140
  "@chatie/semver": "^0.4.7",
142
141
  "@chatie/tsconfig": "^4.6.3",
142
+ "@juzi/wechaty-puppet": "^1.0.17",
143
143
  "@juzi/wechaty-puppet-mock": "^1.0.1",
144
144
  "@swc/core": "^1.2.155",
145
145
  "@swc/helpers": "^0.3.6",
@@ -6,18 +6,19 @@ import type { InfoUpdateValuePair } from '../schemas/update'
6
6
  * 1. most fields of payloads are primitive values
7
7
  * 2. users does not want to compare array items, they just need to know this field has changed. And we don't offer methods to get a subObject value
8
8
  */
9
- export const diffPayload = (objectOld: any, objectNew: any): InfoUpdateValuePair[] => {
9
+ export const diffPayload = <T>(objectOld: any, objectNew: any): InfoUpdateValuePair<T>[] => {
10
10
  const keys = new Set([...Object.keys(objectOld || {}), ...Object.keys(objectNew || {})])
11
11
  const result = []
12
- for (const key of keys) {
13
- const subObjectOld = objectOld[key]
14
- const subObjectNew = objectNew[key]
12
+ for (const item of keys) {
13
+ const key = item as keyof T
14
+ const subObjectOld = objectOld[key] as T[typeof key]
15
+ const subObjectNew = objectNew[key] as T[typeof key]
15
16
 
16
17
  if (typeof subObjectOld !== typeof subObjectNew) {
17
18
  result.push({
18
19
  key,
19
- oldValue: typeof subObjectOld !== 'object' ? subObjectOld : JSON.stringify(subObjectOld),
20
- newValue: typeof subObjectNew !== 'object' ? subObjectNew : JSON.stringify(subObjectNew),
20
+ oldValue: subObjectOld,
21
+ newValue: subObjectNew,
21
22
  })
22
23
  } else {
23
24
  if (typeof subObjectOld !== 'object') {
@@ -37,8 +38,8 @@ export const diffPayload = (objectOld: any, objectNew: any): InfoUpdateValuePair
37
38
  } else {
38
39
  result.push({
39
40
  key,
40
- oldValue: JSON.stringify(subObjectOld),
41
- newValue: JSON.stringify(subObjectNew),
41
+ oldValue: subObjectOld,
42
+ newValue: subObjectNew,
42
43
  })
43
44
  }
44
45
  }
@@ -5,17 +5,30 @@ import type {
5
5
  ContactInterface,
6
6
  FriendshipInterface,
7
7
  MessageInterface,
8
+ TagInterface,
8
9
  } from '../user-modules/mod.js'
9
10
  import type { InfoUpdateInterface } from './update.js'
10
11
 
11
12
  type ContactEventListenerMessage = (this: ContactInterface, message: MessageInterface, date?: Date) => void | Promise<void>
12
13
  type ContactEventListenerFriendship = (friendship: FriendshipInterface) => void | Promise<void>
13
14
  type ContactEventListenerUpdate = (info: InfoUpdateInterface) => void | Promise<void>
15
+ type ContactEventListenerTagAdd = (tagList: TagInterface[]) => void | Promise<void>
16
+ type ContactEventListenerTagRemove = (tagList: TagInterface[]) => void | Promise<void>
17
+ type ContactEventListenerName = (newName: string, oldName: string) => void | Promise<void>
18
+ type ContactEventListenerDescription = (newDescription: string, oldDescription: string) => void | Promise<void>
19
+ type ContactEventListenerPhone = (newPhoneList: string[], oldPhoneList: string[]) => void | Promise<void>
20
+ type ContactEventListenerAlias = (newAlias: string, oldAlias: string) => void | Promise<void>
14
21
 
15
22
  interface ContactEventListeners {
16
- friendship : ContactEventListenerFriendship,
17
- message : ContactEventListenerMessage,
18
- update : ContactEventListenerUpdate,
23
+ friendship : ContactEventListenerFriendship,
24
+ message : ContactEventListenerMessage,
25
+ update : ContactEventListenerUpdate,
26
+ 'tag-add' : ContactEventListenerTagAdd,
27
+ 'tag-remove': ContactEventListenerTagRemove,
28
+ name : ContactEventListenerName,
29
+ description : ContactEventListenerDescription,
30
+ phone : ContactEventListenerPhone,
31
+ alias : ContactEventListenerAlias,
19
32
  }
20
33
 
21
34
  const ContactEventEmitter = EventEmitter as any as new () => TypedEventEmitter<
@@ -27,6 +40,12 @@ export type {
27
40
  ContactEventListenerMessage,
28
41
  ContactEventListenerFriendship,
29
42
  ContactEventListenerUpdate,
43
+ ContactEventListenerTagAdd,
44
+ ContactEventListenerTagRemove,
45
+ ContactEventListenerName,
46
+ ContactEventListenerDescription,
47
+ ContactEventListenerPhone,
48
+ ContactEventListenerAlias,
30
49
  }
31
50
  export {
32
51
  ContactEventEmitter,
@@ -16,6 +16,7 @@ export const ROOM_EVENT_DICT = {
16
16
  message : 'message that received in this room',
17
17
  update : 'room info update',
18
18
  topic : 'tbw',
19
+ owner : 'room ownership transfer',
19
20
  }
20
21
  export type RoomEventName = keyof typeof ROOM_EVENT_DICT
21
22
 
@@ -105,6 +106,7 @@ type RoomEventListenerLeave = (this: RoomInterface, leaverList: ContactInterfa
105
106
  type RoomEventListenerMessage = (this: RoomInterface, message: MessageInterface, date?: Date) => void | Promise<void>
106
107
  type RoomEventListenerTopic = (this: RoomInterface, topic: string, oldTopic: string, changer: ContactInterface, date?: Date) => void | Promise<void>
107
108
  type RoomEventListenerUpdate = (info: InfoUpdateInterface) => void | Promise<void>
109
+ type RoomEventListenerOwner = (this: RoomInterface, newOwner: ContactInterface, oldOwner: ContactInterface) => void | Promise<void>
108
110
 
109
111
  interface RoomEventListeners {
110
112
  invite : RoomEventListenerInvite
@@ -113,6 +115,7 @@ interface RoomEventListeners {
113
115
  message : RoomEventListenerMessage
114
116
  topic : RoomEventListenerTopic
115
117
  update : RoomEventListenerUpdate
118
+ owner : RoomEventListenerOwner
116
119
  }
117
120
 
118
121
  const RoomEventEmitter = EventEmitter as any as new () => TypedEventEmitter<
@@ -127,6 +130,7 @@ export type {
127
130
  RoomEventListenerMessage,
128
131
  RoomEventListenerTopic,
129
132
  RoomEventListenerUpdate,
133
+ RoomEventListenerOwner,
130
134
  }
131
135
  export {
132
136
  RoomEventEmitter,
@@ -1,14 +1,43 @@
1
1
  /* eslint-disable valid-typeof */
2
- import type * as PUPPET from '@juzi/wechaty-puppet'
3
-
4
- export interface InfoUpdateInterface {
5
- type: PUPPET.types.Payload,
6
- id: string,
7
- updates: InfoUpdateValuePair[],
8
- }
9
-
10
- export interface InfoUpdateValuePair {
11
- key: string,
12
- oldValue: string,
13
- newValue: string
14
- }
2
+ import * as PUPPET from '@juzi/wechaty-puppet'
3
+
4
+ export const ContactImportantFields = [
5
+ 'name', 'tags', 'alias', 'phone', 'description',
6
+ ] as const
7
+
8
+ export const RoomImportantFields = [
9
+ 'topic', 'memberIdList', 'ownerId',
10
+ ] as const
11
+
12
+ type ContactImportantKeys = typeof ContactImportantFields[number]
13
+ type RoomImportantKeys = typeof RoomImportantFields[number]
14
+
15
+ type ContactUpdatableKeys = Omit<PUPPET.payloads.Contact, ContactImportantKeys>
16
+ type RoomUpdateableKeys = Omit<PUPPET.payloads.Room, RoomImportantKeys>
17
+
18
+ type PayloadTypeToUpdateInterface<U> = {
19
+ [SubType in keyof U]: {
20
+ type: SubType,
21
+ id: string,
22
+ updates: InfoUpdateValuePair<U[SubType]>[],
23
+ }
24
+ }[keyof U]
25
+
26
+ export type InfoUpdateValuePair<U> = {
27
+ [SubType in keyof U]: {
28
+ key: SubType,
29
+ oldValue?: U[SubType],
30
+ newValue?: U[SubType],
31
+ }
32
+ }[keyof U]
33
+
34
+ export type InfoUpdateInterface = PayloadTypeToUpdateInterface<{
35
+ [PUPPET.types.Payload.Contact]: ContactUpdatableKeys,
36
+ [PUPPET.types.Payload.Room]: RoomUpdateableKeys,
37
+ }>
38
+
39
+ export type ContactUpdatableValuePair = InfoUpdateValuePair<ContactUpdatableKeys>
40
+ export type RoomUpdatableValuePair = InfoUpdateValuePair<RoomUpdateableKeys>
41
+
42
+ export type ContactValuePair = InfoUpdateValuePair<PUPPET.payloads.Contact>
43
+ export type RoomValuePair = InfoUpdateValuePair<PUPPET.payloads.Room>
@@ -12,19 +12,27 @@ import type {
12
12
  ContactInterface,
13
13
  MessageInterface,
14
14
  PostInterface,
15
+ TagInterface,
15
16
  } from '../user-modules/mod.js'
16
17
  import type { InfoUpdateInterface } from './update.js'
17
18
 
18
19
  const WECHATY_EVENT_DICT = {
19
20
  ...PUPPET.types.CHAT_EVENT_DICT,
20
- dong : 'Should be emitted after we call `Wechaty.ding()`',
21
- error : "Will be emitted when there's an Error occurred.",
22
- heartbeat : 'Will be emitted periodically after the Wechaty started. If not, means that the Wechaty had died.',
23
- puppet : 'Will be emitted when the puppet has been set.',
24
- ready : 'All underlined data source are ready for use.',
25
- start : 'Will be emitted after the Wechaty had been started.',
26
- stop : 'Will be emitted after the Wechaty had been stopped.',
27
- update : 'Will be emitted when some info has been changed.',
21
+ dong : 'Should be emitted after we call `Wechaty.ding()`',
22
+ error : "Will be emitted when there's an Error occurred.",
23
+ heartbeat : 'Will be emitted periodically after the Wechaty started. If not, means that the Wechaty had died.',
24
+ puppet : 'Will be emitted when the puppet has been set.',
25
+ ready : 'All underlined data source are ready for use.',
26
+ start : 'Will be emitted after the Wechaty had been started.',
27
+ stop : 'Will be emitted after the Wechaty had been stopped.',
28
+ update : 'Will be emitted when some info has been changed.',
29
+ 'contact-tag-add' : 'Will be emitted when contact has new tags.',
30
+ 'contact-tag-remove' : 'Will be emitted when contact has some tags removed.',
31
+ 'contact-name' : 'Will be emitted when contact name has been changed.',
32
+ 'contact-alias' : 'Will be emitted when contact alias has been changed.',
33
+ 'contact-phone' : 'Will be emitted when contact phone has been changed.',
34
+ 'contact-description': 'Will be emitted when contact description has been changed.',
35
+ 'room-owner' : 'Will be emitted when room owner has been changed.',
28
36
  } as const
29
37
 
30
38
  type WechatyEventName = keyof typeof WECHATY_EVENT_DICT
@@ -32,23 +40,31 @@ type WechatyEventName = keyof typeof WECHATY_EVENT_DICT
32
40
  /**
33
41
  * Wechaty Event Listener Interfaces
34
42
  */
35
- type WechatyEventListenerDong = (data?: string) => void | Promise<void>
36
- type WechatyEventListenerError = (error: GError) => void | Promise<void>
37
- type WechatyEventListenerFriendship = (friendship: FriendshipInterface) => void | Promise<void>
38
- type WechatyEventListenerHeartbeat = (data: any) => void | Promise<void>
39
- type WechatyEventListenerLogin = (user: ContactSelfInterface) => void | Promise<void>
40
- type WechatyEventListenerLogout = (user: ContactSelfInterface, reason?: string) => void | Promise<void>
41
- type WechatyEventListenerMessage = (message: MessageInterface) => void | Promise<void>
42
- type WechatyEventListenerPost = (post: PostInterface) => void | Promise<void>
43
- type WechatyEventListenerPuppet = (puppet: PUPPET.impls.PuppetInterface) => void | Promise<void>
44
- type WechatyEventListenerReady = () => void | Promise<void>
45
- type WechatyEventListenerRoomInvite = (roomInvitation: RoomInvitationInterface) => void | Promise<void>
46
- type WechatyEventListenerRoomJoin = (room: RoomInterface, inviteeList: ContactInterface[], inviter: ContactInterface, date?: Date) => void | Promise<void>
47
- type WechatyEventListenerRoomLeave = (room: RoomInterface, leaverList: ContactInterface[], remover?: ContactInterface, date?: Date) => void | Promise<void>
48
- type WechatyEventListenerRoomTopic = (room: RoomInterface, newTopic: string, oldTopic: string, changer: ContactInterface, date?: Date) => void | Promise<void>
49
- type WechatyEventListenerScan = (qrcode: string, status: PUPPET.types.ScanStatus, data?: string) => void | Promise<void>
50
- type WechatyEventListenerStartStop = () => void | Promise<void>
51
- type WechatyEventListenerUpdate = (info: InfoUpdateInterface) => void | Promise<void>
43
+ type WechatyEventListenerDong = (data?: string) => void | Promise<void>
44
+ type WechatyEventListenerError = (error: GError) => void | Promise<void>
45
+ type WechatyEventListenerFriendship = (friendship: FriendshipInterface) => void | Promise<void>
46
+ type WechatyEventListenerHeartbeat = (data: any) => void | Promise<void>
47
+ type WechatyEventListenerLogin = (user: ContactSelfInterface) => void | Promise<void>
48
+ type WechatyEventListenerLogout = (user: ContactSelfInterface, reason?: string) => void | Promise<void>
49
+ type WechatyEventListenerMessage = (message: MessageInterface) => void | Promise<void>
50
+ type WechatyEventListenerPost = (post: PostInterface) => void | Promise<void>
51
+ type WechatyEventListenerPuppet = (puppet: PUPPET.impls.PuppetInterface) => void | Promise<void>
52
+ type WechatyEventListenerReady = () => void | Promise<void>
53
+ type WechatyEventListenerRoomInvite = (roomInvitation: RoomInvitationInterface) => void | Promise<void>
54
+ type WechatyEventListenerRoomJoin = (room: RoomInterface, inviteeList: ContactInterface[], inviter: ContactInterface, date?: Date) => void | Promise<void>
55
+ type WechatyEventListenerRoomLeave = (room: RoomInterface, leaverList: ContactInterface[], remover?: ContactInterface, date?: Date) => void | Promise<void>
56
+ type WechatyEventListenerRoomTopic = (room: RoomInterface, newTopic: string, oldTopic: string, changer: ContactInterface, date?: Date) => void | Promise<void>
57
+ type WechatyEventListenerRoomOwner = (room: RoomInterface, newOwner: ContactInterface, oldOwner: ContactInterface) => void | Promise<void>
58
+ type WechatyEventListenerScan = (qrcode: string, status: PUPPET.types.ScanStatus, data?: string) => void | Promise<void>
59
+ type WechatyEventListenerStartStop = () => void | Promise<void>
60
+ type WechatyEventListenerUpdate = (info: InfoUpdateInterface) => void | Promise<void>
61
+ type WechatyEventListenerContactTagAdd = (contact: ContactInterface, tagList: TagInterface[]) => void | Promise<void>
62
+ type WechatyEventListenerContactTagRemove = (contact: ContactInterface, tagList: TagInterface[]) => void | Promise<void>
63
+ type WechatyEventListenerContactName = (contact: ContactInterface, newName: string, oldName: string) => void | Promise<void>
64
+ type WechatyEventListenerContactPhone = (contact: ContactInterface, newPhoneList: string[], oldPhoneList: []) => void | Promise<void>
65
+ type WechatyEventListenerContactAlias = (contact: ContactInterface, newAlias: string, oldAlias: string) => void | Promise<void>
66
+ type WechatyEventListenerContactDescription = (contact: ContactInterface, newDescription: string, oldDescription: string) => void | Promise<void>
67
+
52
68
  /**
53
69
  * @desc Wechaty Class Event Type
54
70
  * @typedef WechatyEventName
@@ -204,24 +220,31 @@ type WechatyEventListenerUpdate = (info: InfoUpdateInterface) => void | Prom
204
220
  * })
205
221
  */
206
222
  interface WechatyEventListeners {
207
- 'room-invite' : WechatyEventListenerRoomInvite
208
- 'room-join' : WechatyEventListenerRoomJoin
209
- 'room-leave' : WechatyEventListenerRoomLeave
210
- 'room-topic' : WechatyEventListenerRoomTopic
211
- dong : WechatyEventListenerDong
212
- error : WechatyEventListenerError
213
- friendship : WechatyEventListenerFriendship
214
- heartbeat : WechatyEventListenerHeartbeat
215
- login : WechatyEventListenerLogin
216
- logout : WechatyEventListenerLogout
217
- message : WechatyEventListenerMessage
218
- post : WechatyEventListenerPost
219
- puppet : WechatyEventListenerPuppet
220
- ready : WechatyEventListenerReady
221
- scan : WechatyEventListenerScan
222
- start : WechatyEventListenerStartStop
223
- stop : WechatyEventListenerStartStop
224
- update : WechatyEventListenerUpdate
223
+ 'room-invite' : WechatyEventListenerRoomInvite
224
+ 'room-join' : WechatyEventListenerRoomJoin
225
+ 'room-leave' : WechatyEventListenerRoomLeave
226
+ 'room-topic' : WechatyEventListenerRoomTopic
227
+ dong : WechatyEventListenerDong
228
+ error : WechatyEventListenerError
229
+ friendship : WechatyEventListenerFriendship
230
+ heartbeat : WechatyEventListenerHeartbeat
231
+ login : WechatyEventListenerLogin
232
+ logout : WechatyEventListenerLogout
233
+ message : WechatyEventListenerMessage
234
+ post : WechatyEventListenerPost
235
+ puppet : WechatyEventListenerPuppet
236
+ ready : WechatyEventListenerReady
237
+ scan : WechatyEventListenerScan
238
+ start : WechatyEventListenerStartStop
239
+ stop : WechatyEventListenerStartStop
240
+ update : WechatyEventListenerUpdate
241
+ 'contact-tag-add' : WechatyEventListenerContactTagAdd
242
+ 'contact-tag-remove' : WechatyEventListenerContactTagRemove
243
+ 'contact-name' : WechatyEventListenerContactName
244
+ 'contact-alias' : WechatyEventListenerContactAlias
245
+ 'contact-phone' : WechatyEventListenerContactPhone
246
+ 'contact-description': WechatyEventListenerContactDescription
247
+ 'room-owner' : WechatyEventListenerRoomOwner
225
248
  }
226
249
 
227
250
  const WechatyEventEmitter = EventEmitter as any as new () => TypedEventEmitter<
@@ -246,9 +269,16 @@ export type {
246
269
  WechatyEventListenerRoomJoin,
247
270
  WechatyEventListenerRoomLeave,
248
271
  WechatyEventListenerRoomTopic,
272
+ WechatyEventListenerRoomOwner,
249
273
  WechatyEventListenerScan,
250
274
  WechatyEventListenerStartStop,
251
275
  WechatyEventListenerUpdate,
276
+ WechatyEventListenerContactTagAdd,
277
+ WechatyEventListenerContactTagRemove,
278
+ WechatyEventListenerContactName,
279
+ WechatyEventListenerContactAlias,
280
+ WechatyEventListenerContactPhone,
281
+ WechatyEventListenerContactDescription,
252
282
  }
253
283
  export {
254
284
  WechatyEventEmitter,