@juzi/wechaty 1.0.18 → 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 (108) hide show
  1. package/dist/cjs/src/package-json.js +4 -4
  2. package/dist/cjs/src/package-json.js.map +1 -1
  3. package/dist/cjs/src/pure-functions/update.d.ts +9 -0
  4. package/dist/cjs/src/pure-functions/update.d.ts.map +1 -0
  5. package/dist/cjs/src/pure-functions/update.js +74 -0
  6. package/dist/cjs/src/pure-functions/update.js.map +1 -0
  7. package/dist/cjs/src/schemas/contact-events.d.ts +17 -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 +8 -1
  11. package/dist/cjs/src/schemas/room-events.d.ts.map +1 -1
  12. package/dist/cjs/src/schemas/room-events.js +2 -0
  13. package/dist/cjs/src/schemas/room-events.js.map +1 -1
  14. package/dist/cjs/src/schemas/update.d.ts +31 -0
  15. package/dist/cjs/src/schemas/update.d.ts.map +1 -0
  16. package/dist/cjs/src/schemas/update.js +35 -0
  17. package/dist/cjs/src/schemas/update.js.map +1 -0
  18. package/dist/cjs/src/schemas/wechaty-events.d.ts +27 -2
  19. package/dist/cjs/src/schemas/wechaty-events.d.ts.map +1 -1
  20. package/dist/cjs/src/schemas/wechaty-events.js +8 -0
  21. package/dist/cjs/src/schemas/wechaty-events.js.map +1 -1
  22. package/dist/cjs/src/user-modules/contact.d.ts +2 -11
  23. package/dist/cjs/src/user-modules/contact.d.ts.map +1 -1
  24. package/dist/cjs/src/user-modules/contact.js +30 -29
  25. package/dist/cjs/src/user-modules/contact.js.map +1 -1
  26. package/dist/cjs/src/user-modules/room.d.ts +2 -2
  27. package/dist/cjs/src/user-modules/room.d.ts.map +1 -1
  28. package/dist/cjs/src/user-modules/room.js +10 -3
  29. package/dist/cjs/src/user-modules/room.js.map +1 -1
  30. package/dist/cjs/src/user-modules/tag-group.d.ts +7 -1
  31. package/dist/cjs/src/user-modules/tag-group.d.ts.map +1 -1
  32. package/dist/cjs/src/user-modules/tag-group.js +40 -13
  33. package/dist/cjs/src/user-modules/tag-group.js.map +1 -1
  34. package/dist/cjs/src/user-modules/tag.d.ts +11 -4
  35. package/dist/cjs/src/user-modules/tag.d.ts.map +1 -1
  36. package/dist/cjs/src/user-modules/tag.js +53 -17
  37. package/dist/cjs/src/user-modules/tag.js.map +1 -1
  38. package/dist/cjs/src/wechaty/wechaty-base.d.ts +7 -7
  39. package/dist/cjs/src/wechaty-mixins/gerror-mixin.d.ts +1 -1
  40. package/dist/cjs/src/wechaty-mixins/io-mixin.d.ts +2 -2
  41. package/dist/cjs/src/wechaty-mixins/login-mixin.d.ts +5 -5
  42. package/dist/cjs/src/wechaty-mixins/misc-mixin.d.ts +5 -5
  43. package/dist/cjs/src/wechaty-mixins/plugin-mixin.d.ts +6 -6
  44. package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts +4 -12
  45. package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -1
  46. package/dist/cjs/src/wechaty-mixins/puppet-mixin.js +83 -1
  47. package/dist/cjs/src/wechaty-mixins/puppet-mixin.js.map +1 -1
  48. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.d.ts +1 -1
  49. package/dist/esm/src/package-json.js +4 -4
  50. package/dist/esm/src/package-json.js.map +1 -1
  51. package/dist/esm/src/pure-functions/update.d.ts +9 -0
  52. package/dist/esm/src/pure-functions/update.d.ts.map +1 -0
  53. package/dist/esm/src/pure-functions/update.js +70 -0
  54. package/dist/esm/src/pure-functions/update.js.map +1 -0
  55. package/dist/esm/src/schemas/contact-events.d.ts +17 -2
  56. package/dist/esm/src/schemas/contact-events.d.ts.map +1 -1
  57. package/dist/esm/src/schemas/contact-events.js.map +1 -1
  58. package/dist/esm/src/schemas/room-events.d.ts +8 -1
  59. package/dist/esm/src/schemas/room-events.d.ts.map +1 -1
  60. package/dist/esm/src/schemas/room-events.js +2 -0
  61. package/dist/esm/src/schemas/room-events.js.map +1 -1
  62. package/dist/esm/src/schemas/update.d.ts +31 -0
  63. package/dist/esm/src/schemas/update.d.ts.map +1 -0
  64. package/dist/esm/src/schemas/update.js +9 -0
  65. package/dist/esm/src/schemas/update.js.map +1 -0
  66. package/dist/esm/src/schemas/wechaty-events.d.ts +27 -2
  67. package/dist/esm/src/schemas/wechaty-events.d.ts.map +1 -1
  68. package/dist/esm/src/schemas/wechaty-events.js +8 -0
  69. package/dist/esm/src/schemas/wechaty-events.js.map +1 -1
  70. package/dist/esm/src/user-modules/contact.d.ts +2 -11
  71. package/dist/esm/src/user-modules/contact.d.ts.map +1 -1
  72. package/dist/esm/src/user-modules/contact.js +30 -29
  73. package/dist/esm/src/user-modules/contact.js.map +1 -1
  74. package/dist/esm/src/user-modules/room.d.ts +2 -2
  75. package/dist/esm/src/user-modules/room.d.ts.map +1 -1
  76. package/dist/esm/src/user-modules/room.js +10 -3
  77. package/dist/esm/src/user-modules/room.js.map +1 -1
  78. package/dist/esm/src/user-modules/tag-group.d.ts +7 -1
  79. package/dist/esm/src/user-modules/tag-group.d.ts.map +1 -1
  80. package/dist/esm/src/user-modules/tag-group.js +40 -13
  81. package/dist/esm/src/user-modules/tag-group.js.map +1 -1
  82. package/dist/esm/src/user-modules/tag.d.ts +11 -4
  83. package/dist/esm/src/user-modules/tag.d.ts.map +1 -1
  84. package/dist/esm/src/user-modules/tag.js +53 -17
  85. package/dist/esm/src/user-modules/tag.js.map +1 -1
  86. package/dist/esm/src/wechaty/wechaty-base.d.ts +7 -7
  87. package/dist/esm/src/wechaty-mixins/gerror-mixin.d.ts +1 -1
  88. package/dist/esm/src/wechaty-mixins/io-mixin.d.ts +2 -2
  89. package/dist/esm/src/wechaty-mixins/login-mixin.d.ts +5 -5
  90. package/dist/esm/src/wechaty-mixins/misc-mixin.d.ts +5 -5
  91. package/dist/esm/src/wechaty-mixins/plugin-mixin.d.ts +6 -6
  92. package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts +4 -12
  93. package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -1
  94. package/dist/esm/src/wechaty-mixins/puppet-mixin.js +84 -2
  95. package/dist/esm/src/wechaty-mixins/puppet-mixin.js.map +1 -1
  96. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.d.ts +1 -1
  97. package/package.json +3 -3
  98. package/src/package-json.ts +4 -4
  99. package/src/pure-functions/update.ts +69 -0
  100. package/src/schemas/contact-events.ts +25 -2
  101. package/src/schemas/room-events.ts +9 -0
  102. package/src/schemas/update.ts +43 -0
  103. package/src/schemas/wechaty-events.ts +74 -40
  104. package/src/user-modules/contact.ts +34 -30
  105. package/src/user-modules/room.ts +11 -4
  106. package/src/user-modules/tag-group.ts +48 -12
  107. package/src/user-modules/tag.ts +63 -17
  108. package/src/wechaty-mixins/puppet-mixin.ts +86 -2
@@ -45,7 +45,7 @@ declare const loginMixin: <MixinBase extends typeof WechatySkeleton & ((abstract
45
45
  __memory?: import("memory-card").MemoryCard | undefined;
46
46
  readonly memory: import("memory-card").MemoryCard;
47
47
  __options: import("../schemas/wechaty-options.js").WechatyOptions;
48
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan", listener: (...args: any[]) => any): any;
48
+ 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;
49
49
  addListener<E extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E]): any;
50
50
  once<E_1 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_1, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_1]): any;
51
51
  prependListener<E_2 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_2, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_2]): any;
@@ -107,7 +107,7 @@ declare const loginMixin: <MixinBase extends typeof WechatySkeleton & ((abstract
107
107
  __options: import("../schemas/wechaty-options.js").WechatyOptions;
108
108
  start(): Promise<void>;
109
109
  stop(): Promise<void>;
110
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan", listener: (...args: any[]) => any): any;
110
+ 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;
111
111
  addListener<E_11 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_11, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_11]): any;
112
112
  once<E_12 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_12, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_12]): any;
113
113
  prependListener<E_13 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_13, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_13]): any;
@@ -137,7 +137,7 @@ declare const loginMixin: <MixinBase extends typeof WechatySkeleton & ((abstract
137
137
  init(): Promise<void>;
138
138
  start(): Promise<void>;
139
139
  stop(): Promise<void>;
140
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan", listener: (...args: any[]) => any): any;
140
+ 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;
141
141
  addListener<E_18 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_18, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_18]): any;
142
142
  once<E_19 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_19, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_19]): any;
143
143
  prependListener<E_20 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_20, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_20]): any;
@@ -166,7 +166,7 @@ declare const loginMixin: <MixinBase extends typeof WechatySkeleton & ((abstract
166
166
  readonly memory: import("memory-card").MemoryCard;
167
167
  __options: import("../schemas/wechaty-options.js").WechatyOptions;
168
168
  init(): Promise<void>;
169
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan", listener: (...args: any[]) => any): any;
169
+ 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;
170
170
  addListener<E_25 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_25, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_25]): any;
171
171
  once<E_26 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_26, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_26]): any;
172
172
  prependListener<E_27 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_27, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_27]): any;
@@ -235,7 +235,7 @@ declare const loginMixin: <MixinBase extends typeof WechatySkeleton & ((abstract
235
235
  __options: import("../schemas/wechaty-options.js").WechatyOptions;
236
236
  start: (() => Promise<void>) & (() => Promise<void>) & (() => Promise<void>);
237
237
  stop: (() => Promise<void>) & (() => Promise<void>) & (() => Promise<void>);
238
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan", listener: (...args: any[]) => any): any;
238
+ 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;
239
239
  addListener<E_32 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_32, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_32]): any;
240
240
  once<E_33 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_33, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_33]): any;
241
241
  prependListener<E_34 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_34, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_34]): any;
@@ -44,7 +44,7 @@ declare const miscMixin: <MixinBase extends typeof WechatySkeleton & ((abstract
44
44
  __memory?: import("memory-card").MemoryCard | undefined;
45
45
  readonly memory: import("memory-card").MemoryCard;
46
46
  __options: import("../schemas/wechaty-options.js").WechatyOptions;
47
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan", listener: (...args: any[]) => any): any;
47
+ 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;
48
48
  addListener<E extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E]): any;
49
49
  once<E_1 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_1, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_1]): any;
50
50
  prependListener<E_2 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_2, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_2]): any;
@@ -108,7 +108,7 @@ declare const miscMixin: <MixinBase extends typeof WechatySkeleton & ((abstract
108
108
  __options: import("../schemas/wechaty-options.js").WechatyOptions;
109
109
  start(): Promise<void>;
110
110
  stop(): Promise<void>;
111
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan", listener: (...args: any[]) => any): any;
111
+ 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;
112
112
  addListener<E_11 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_11, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_11]): any;
113
113
  once<E_12 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_12, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_12]): any;
114
114
  prependListener<E_13 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_13, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_13]): any;
@@ -140,7 +140,7 @@ declare const miscMixin: <MixinBase extends typeof WechatySkeleton & ((abstract
140
140
  init(): Promise<void>;
141
141
  start(): Promise<void>;
142
142
  stop(): Promise<void>;
143
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan", listener: (...args: any[]) => any): any;
143
+ 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;
144
144
  addListener<E_18 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_18, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_18]): any;
145
145
  once<E_19 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_19, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_19]): any;
146
146
  prependListener<E_20 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_20, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_20]): any;
@@ -171,7 +171,7 @@ declare const miscMixin: <MixinBase extends typeof WechatySkeleton & ((abstract
171
171
  readonly memory: import("memory-card").MemoryCard;
172
172
  __options: import("../schemas/wechaty-options.js").WechatyOptions;
173
173
  init(): Promise<void>;
174
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan", listener: (...args: any[]) => any): any;
174
+ 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;
175
175
  addListener<E_25 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_25, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_25]): any;
176
176
  once<E_26 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_26, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_26]): any;
177
177
  prependListener<E_27 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_27, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_27]): any;
@@ -229,7 +229,7 @@ declare const miscMixin: <MixinBase extends typeof WechatySkeleton & ((abstract
229
229
  init: (() => Promise<void>) & (() => Promise<void>) & (() => Promise<void>);
230
230
  start: (() => Promise<void>) & (() => Promise<void>) & (() => Promise<void>);
231
231
  stop: (() => Promise<void>) & (() => Promise<void>) & (() => Promise<void>);
232
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan", listener: (...args: any[]) => any): any;
232
+ 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;
233
233
  addListener<E_32 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_32, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_32]): any;
234
234
  once<E_33 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_33, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_33]): any;
235
235
  prependListener<E_34 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_34, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_34]): any;
@@ -15,7 +15,7 @@ declare const pluginMixin: <MixinBase extends typeof WechatySkeleton & ((abstrac
15
15
  init(): Promise<void>;
16
16
  start(): Promise<void>;
17
17
  stop(): Promise<void>;
18
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan", listener: (...args: any[]) => any): any;
18
+ 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;
19
19
  addListener<E extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E]): any;
20
20
  once<E_1 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_1, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_1]): any;
21
21
  prependListener<E_2 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_2, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_2]): any;
@@ -65,7 +65,7 @@ declare const pluginMixin: <MixinBase extends typeof WechatySkeleton & ((abstrac
65
65
  init: (() => Promise<void>) & (() => Promise<void>) & (() => Promise<void>);
66
66
  start: (() => Promise<void>) & (() => Promise<void>) & (() => Promise<void>);
67
67
  stop: (() => Promise<void>) & (() => Promise<void>) & (() => Promise<void>);
68
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan", listener: (...args: any[]) => any): any;
68
+ 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;
69
69
  addListener<E_10 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_10, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_10]): any;
70
70
  once<E_11 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_11, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_11]): any;
71
71
  prependListener<E_12 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_12, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_12]): any;
@@ -169,7 +169,7 @@ declare const pluginMixin: <MixinBase extends typeof WechatySkeleton & ((abstrac
169
169
  __memory?: import("memory-card").MemoryCard | undefined;
170
170
  readonly memory: import("memory-card").MemoryCard;
171
171
  __options: import("../schemas/wechaty-options.js").WechatyOptions;
172
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan", listener: (...args: any[]) => any): any;
172
+ 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;
173
173
  addListener<E_18 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_18, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_18]): any;
174
174
  once<E_19 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_19, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_19]): any;
175
175
  prependListener<E_20 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_20, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_20]): any;
@@ -231,7 +231,7 @@ declare const pluginMixin: <MixinBase extends typeof WechatySkeleton & ((abstrac
231
231
  __options: import("../schemas/wechaty-options.js").WechatyOptions;
232
232
  start(): Promise<void>;
233
233
  stop(): Promise<void>;
234
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan", listener: (...args: any[]) => any): any;
234
+ 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;
235
235
  addListener<E_25 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_25, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_25]): any;
236
236
  once<E_26 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_26, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_26]): any;
237
237
  prependListener<E_27 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_27, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_27]): any;
@@ -261,7 +261,7 @@ declare const pluginMixin: <MixinBase extends typeof WechatySkeleton & ((abstrac
261
261
  readonly memory: import("memory-card").MemoryCard;
262
262
  __options: import("../schemas/wechaty-options.js").WechatyOptions;
263
263
  init(): Promise<void>;
264
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan", listener: (...args: any[]) => any): any;
264
+ 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;
265
265
  addListener<E_32 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_32, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_32]): any;
266
266
  once<E_33 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_33, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_33]): any;
267
267
  prependListener<E_34 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_34, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_34]): any;
@@ -310,7 +310,7 @@ declare const pluginMixin: <MixinBase extends typeof WechatySkeleton & ((abstrac
310
310
  init: (() => Promise<void>) & (() => Promise<void>) & (() => Promise<void>);
311
311
  start: (() => Promise<void>) & (() => Promise<void>) & (() => Promise<void>);
312
312
  stop: (() => Promise<void>) & (() => Promise<void>) & (() => Promise<void>);
313
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan", listener: (...args: any[]) => any): any;
313
+ 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;
314
314
  addListener<E_39 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_39, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_39]): any;
315
315
  once<E_40 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_40, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_40]): any;
316
316
  prependListener<E_41 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_41, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_41]): any;
@@ -25,10 +25,6 @@ declare const puppetMixin: <MixinBase extends ((abstract new (...args: any[]) =>
25
25
  __wechatifiedUrlLink?: import("../user-modules/url-link.js").UrlLinkConstructor | undefined;
26
26
  __wechatifiedChannel?: import("../user-modules/channel.js").ChannelConstructor | undefined;
27
27
  readonly Contact: import("../user-modules/contact.js").ContactConstructor;
28
- /**
29
- * reset the `wechaty.ready()` state
30
- * if it was previous set to `active`
31
- */
32
28
  readonly ContactSelf: import("../user-modules/contact-self.js").ContactSelfConstructor;
33
29
  readonly Delay: import("../user-modules/delay.js").DelayConstructor;
34
30
  readonly Friendship: import("../user-modules/friendship.js").FriendshipConstructor;
@@ -51,7 +47,7 @@ declare const puppetMixin: <MixinBase extends ((abstract new (...args: any[]) =>
51
47
  __options: import("../schemas/wechaty-options.js").WechatyOptions;
52
48
  start(): Promise<void>;
53
49
  stop(): Promise<void>;
54
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan", listener: (...args: any[]) => any): any;
50
+ 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;
55
51
  addListener<E extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E]): any;
56
52
  once<E_1 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_1, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_1]): any;
57
53
  prependListener<E_2 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_2, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_2]): any;
@@ -81,7 +77,7 @@ declare const puppetMixin: <MixinBase extends ((abstract new (...args: any[]) =>
81
77
  init(): Promise<void>;
82
78
  start(): Promise<void>;
83
79
  stop(): Promise<void>;
84
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan", listener: (...args: any[]) => any): any;
80
+ 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;
85
81
  addListener<E_11 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_11, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_11]): any;
86
82
  once<E_12 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_12, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_12]): any;
87
83
  prependListener<E_13 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_13, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_13]): any;
@@ -110,7 +106,7 @@ declare const puppetMixin: <MixinBase extends ((abstract new (...args: any[]) =>
110
106
  readonly memory: import("memory-card").MemoryCard;
111
107
  __options: import("../schemas/wechaty-options.js").WechatyOptions;
112
108
  init(): Promise<void>;
113
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan", listener: (...args: any[]) => any): any;
109
+ 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;
114
110
  addListener<E_18 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_18, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_18]): any;
115
111
  once<E_19 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_19, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_19]): any;
116
112
  prependListener<E_20 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_20, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_20]): any;
@@ -156,10 +152,6 @@ declare const puppetMixin: <MixinBase extends ((abstract new (...args: any[]) =>
156
152
  __wechatifiedUrlLink?: import("../user-modules/url-link.js").UrlLinkConstructor | undefined;
157
153
  __wechatifiedChannel?: import("../user-modules/channel.js").ChannelConstructor | undefined;
158
154
  readonly Contact: import("../user-modules/contact.js").ContactConstructor;
159
- /**
160
- * reset the `wechaty.ready()` state
161
- * if it was previous set to `active`
162
- */
163
155
  readonly ContactSelf: import("../user-modules/contact-self.js").ContactSelfConstructor;
164
156
  readonly Delay: import("../user-modules/delay.js").DelayConstructor;
165
157
  readonly Friendship: import("../user-modules/friendship.js").FriendshipConstructor;
@@ -179,7 +171,7 @@ declare const puppetMixin: <MixinBase extends ((abstract new (...args: any[]) =>
179
171
  __memory?: import("memory-card").MemoryCard | undefined;
180
172
  readonly memory: import("memory-card").MemoryCard;
181
173
  __options: import("../schemas/wechaty-options.js").WechatyOptions;
182
- on(event: "error" | "ready" | "login" | "start" | "stop" | "logout" | "room-invite" | "room-join" | "room-leave" | "room-topic" | "dong" | "friendship" | "heartbeat" | "message" | "post" | "puppet" | "scan", listener: (...args: any[]) => any): any;
174
+ 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;
183
175
  addListener<E_25 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_25, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_25]): any;
184
176
  once<E_26 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_26, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_26]): any;
185
177
  prependListener<E_27 extends keyof import("../schemas/wechaty-events.js").WechatyEventListeners>(event: E_27, listener: import("../schemas/wechaty-events.js").WechatyEventListeners[E_27]): any;
@@ -1 +1 @@
1
- {"version":3,"file":"puppet-mixin.d.ts","sourceRoot":"","sources":["../../../../src/wechaty-mixins/puppet-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAW,sBAAsB,CAAA;AASnD,OAAO,KAAK,EACV,oBAAoB,EACrB,MAA4B,cAAc,CAAA;AAmB3C;;;;;;;GAOG;AACH,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;IAkCT;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAlBe,GAAG,EAAE;;;2BAJH,oBAAoB;;aAWnB,QAAQ,IAAI,CAAC;YA+Cd,QAAQ,IAAI,CAAC;aAuBrB,QAAQ,IAAI,CAAC;YAML,QAAQ,IAAI,CAAC;gCA8CR,OAAO,KAAK,CAAC,eAAe,GAAG,IAAI;;;;;;;;;;;;;;;;;IAlH5D;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA8ZV,CAAA;AAED,aAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAA;AAEjD,aAAK,4BAA4B,GAC7B,UAAU,GACV,cAAc,GACd,qBAAqB,CAAA;AAEzB,YAAY,EACV,WAAW,EACX,4BAA4B,GAC7B,CAAA;AACD,OAAO,EACL,WAAW,GACZ,CAAA"}
1
+ {"version":3,"file":"puppet-mixin.d.ts","sourceRoot":"","sources":["../../../../src/wechaty-mixins/puppet-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAW,sBAAsB,CAAA;AASnD,OAAO,KAAK,EACV,oBAAoB,EACrB,MAA4B,cAAc,CAAA;AAqB3C;;;;;;;GAOG;AACH,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAmBS,GAAG,EAAE;;;2BAJH,oBAAoB;;aAWnB,QAAQ,IAAI,CAAC;YA+Cd,QAAQ,IAAI,CAAC;aAuBrB,QAAQ,IAAI,CAAC;YAML,QAAQ,IAAI,CAAC;gCA8CR,OAAO,KAAK,CAAC,eAAe,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAiYnE,CAAA;AAED,aAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAA;AAEjD,aAAK,4BAA4B,GAC7B,UAAU,GACV,cAAc,GACd,qBAAqB,CAAA;AAEzB,YAAY,EACV,WAAW,EACX,4BAA4B,GAC7B,CAAA;AACD,OAAO,EACL,WAAW,GACZ,CAAA"}
@@ -30,6 +30,8 @@ const gerror_1 = require("gerror");
30
30
  const state_switch_1 = require("state-switch");
31
31
  const config_js_1 = require("../config.js");
32
32
  const timestamp_to_date_js_1 = require("../pure-functions/timestamp-to-date.js");
33
+ const update_js_1 = require("../schemas/update.js");
34
+ const update_js_2 = require("../pure-functions/update.js");
33
35
  const PUPPET_MEMORY_NAME = 'puppet';
34
36
  /**
35
37
  * Huan(202111): `puppetMixin` must extend `pluginMixin`
@@ -242,7 +244,7 @@ const puppetMixin = (mixinBase) => {
242
244
  this.emit('error', gerror_1.GError.from('message not found for id: ' + payload.messageId));
243
245
  return;
244
246
  }
245
- this.emit('message', msg);
247
+ this.emit('message', 'msg');
246
248
  const room = msg.room();
247
249
  const listener = msg.listener();
248
250
  if (room) {
@@ -381,12 +383,92 @@ const puppetMixin = (mixinBase) => {
381
383
  switch (payloadType) {
382
384
  case PUPPET.types.Payload.Contact: {
383
385
  const contact = await this.Contact.find({ id: payloadId });
386
+ const oldPayload = JSON.parse(JSON.stringify(contact?.payload || {}));
384
387
  await contact?.ready(true);
388
+ const newPayload = JSON.parse(JSON.stringify(contact?.payload || {}));
389
+ const differences = (0, update_js_2.diffPayload)(oldPayload, newPayload);
390
+ const importangDifferences = differences.filter(ele => ele && update_js_1.ContactImportantFields.some(key => key === ele.key));
391
+ const regularDifferences = differences.filter(ele => ele && !update_js_1.ContactImportantFields.some(key => key === ele.key));
392
+ if (regularDifferences.length > 0) {
393
+ const updateEvent = {
394
+ type: payloadType,
395
+ id: payloadId,
396
+ updates: regularDifferences,
397
+ };
398
+ this.emit('update', updateEvent);
399
+ contact?.emit('update', updateEvent);
400
+ }
401
+ for (const difference of importangDifferences) {
402
+ switch (difference?.key) {
403
+ case 'tags': {
404
+ const oldTagsSet = new Set(difference.oldValue?.map(ele => ele.groupId + config_js_1.FOUR_PER_EM_SPACE + ele.id));
405
+ const newTagsSet = new Set(difference.newValue?.map(ele => ele.groupId + config_js_1.FOUR_PER_EM_SPACE + ele.id));
406
+ const addedTags = difference.newValue?.filter(ele => !oldTagsSet.has(ele.groupId + config_js_1.FOUR_PER_EM_SPACE + ele.id)).map(ele => this.Tag.load(ele)) || [];
407
+ const removedTags = difference.oldValue?.filter(ele => !newTagsSet.has(ele.groupId + config_js_1.FOUR_PER_EM_SPACE + ele.id)).map(ele => this.Tag.load(ele)) || [];
408
+ if (addedTags.length > 0) {
409
+ this.emit('contact-tag-add', contact, addedTags);
410
+ }
411
+ if (removedTags.length > 0) {
412
+ this.emit('contact-tag-removed', contact, removedTags);
413
+ }
414
+ break;
415
+ }
416
+ case 'name': {
417
+ this.emit('contact-name', contact, difference.newValue || '', difference.oldValue || '');
418
+ contact?.emit('name', difference.newValue || '', difference.oldValue || '');
419
+ break;
420
+ }
421
+ case 'alias': {
422
+ this.emit('contact-alias', contact, difference.newValue || '', difference.oldValue || '');
423
+ contact?.emit('alias', difference.newValue || '', difference.oldValue || '');
424
+ break;
425
+ }
426
+ case 'phone': {
427
+ this.emit('contact-phone', contact, difference.newValue || [], difference.oldValue || []);
428
+ contact?.emit('phone', difference.newValue || [], difference.oldValue || []);
429
+ break;
430
+ }
431
+ case 'description': {
432
+ this.emit('contact-description', contact, difference.newValue || '', difference.oldValue || '');
433
+ contact?.emit('description', difference.newValue || '', difference.oldValue || '');
434
+ break;
435
+ }
436
+ default:
437
+ wechaty_puppet_1.log.warn('WechatyPuppetMixin', 'puppet dirty unsupported difference type: %s', JSON.stringify(difference));
438
+ }
439
+ }
385
440
  break;
386
441
  }
387
442
  case PUPPET.types.Payload.Room: {
388
443
  const room = await this.Room.find({ id: payloadId });
444
+ const oldPayload = JSON.parse(JSON.stringify(room?.payload || {}));
389
445
  await room?.ready(true);
446
+ const newPayload = JSON.parse(JSON.stringify(room?.payload || {}));
447
+ const differences = (0, update_js_2.diffPayload)(oldPayload, newPayload);
448
+ const importangDifferences = differences.filter(ele => ele && update_js_1.RoomImportantFields.some(key => key === ele.key));
449
+ const regularDifferences = differences.filter(ele => ele && !update_js_1.RoomImportantFields.some(key => key === ele.key));
450
+ if (regularDifferences.length > 0) {
451
+ const updateEvent = {
452
+ type: payloadType,
453
+ id: payloadId,
454
+ updates: regularDifferences,
455
+ };
456
+ this.emit('update', updateEvent);
457
+ room?.emit('update', updateEvent);
458
+ }
459
+ for (const difference of importangDifferences) {
460
+ switch (difference?.key) {
461
+ case 'ownerId': {
462
+ const oldOwner = (await this.Contact.find({ id: difference.oldValue }));
463
+ const newOwner = (await this.Contact.find({ id: difference.newValue }));
464
+ this.emit('room-owner', room, newOwner, oldOwner);
465
+ room?.emit('owner', newOwner, oldOwner);
466
+ break;
467
+ }
468
+ default:
469
+ wechaty_puppet_1.log.warn('WechatyPuppetMixin', 'puppet dirty unsupported difference type: %s', JSON.stringify(difference));
470
+ }
471
+ }
390
472
  break;
391
473
  }
392
474
  case PUPPET.types.Payload.RoomMember: {
@@ -1 +1 @@
1
- {"version":3,"file":"puppet-mixin.js","sourceRoot":"","sources":["../../../../src/wechaty-mixins/puppet-mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAAmD;AACnD,yDAAmD;AACnD,mCAIqC;AAErC,+CAA2C;AAK3C,4CAAmD;AACnD,iFAA6E;AAc7E,MAAM,kBAAkB,GAAG,QAAQ,CAAA;AAEnC;;;;;;;GAOG;AACH,MAAM,WAAW,GAAG,CAAsE,SAAoB,EAAE,EAAE;IAChH,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;IAEpE,MAAe,WAAY,SAAQ,SAAS;QAE1C,QAAQ,CAA+B;QAEvC,IAAI,MAAM;YACR,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAElB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;aAC5B;YACD,OAAO,IAAI,CAAC,QAAQ,CAAA;QACtB,CAAC;QAEQ,YAAY,CAAuB;QAE5C,mBAAmB,GAAG,KAAK,CAAA;QAE3B,YAAa,GAAG,IAAW;YACzB,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAA;YAChD,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;YAEd,IAAI,CAAC,YAAY,GAAG,IAAI,0BAAW,CAAC,cAAc,EAAE,EAAE,GAAG,EAAH,oBAAG,EAAE,CAAC,CAAA;QAC9D,CAAC;QAEQ,KAAK,CAAC,KAAK;YAClB,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAA;YAE5C,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,2BAA2B,CAAC,CAAA;YAC9D,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;YACnB,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,gCAAgC,CAAC,CAAA;YAEnE,IAAI;gBACF;;;mBAGG;gBACH,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE;oBAC9B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;iBACjC;gBAED,IAAI;oBACF,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,6BAA6B,CAAC,CAAA;oBAChE,MAAM,IAAA,uBAAc,EAClB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EACnB,EAAE,GAAG,IAAI,CACV,CAAA;oBACD,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,kCAAkC,CAAC,CAAA;iBACtE;gBAAC,OAAO,CAAC,EAAE;oBACV,IAAI,CAAC,YAAY,6BAAoB,EAAE;wBACrC;;;;;;;;;2BASG;wBACH,oBAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,qCAAqC,CAAC,CAAA;wBACrE,oBAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,yBAAyB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;qBACvE;yBAAM;wBACL,MAAM,CAAC,CAAA;qBACR;iBACF;aAEF;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;aAClB;QACH,CAAC;QAEQ,KAAK,CAAC,IAAI;YACjB,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAA;YAE3C,IAAI;gBACF,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,4BAA4B,CAAC,CAAA;gBAC/D,MAAM,IAAA,uBAAc,EAClB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAClB,EAAE,GAAG,IAAI,CACV,CAAA;gBACD,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,iCAAiC,CAAC,CAAA;aACrE;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,YAAY,6BAAoB,EAAE;oBACrC,oBAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,oCAAoC,CAAC,CAAA;oBACpE,oBAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,wBAAwB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;iBACtE;gBACD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;aAClB;YAED,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAA;YAC5D,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;YAClB,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,8BAA8B,CAAC,CAAA;QACnE,CAAC;QAED,KAAK,CAAC,KAAK;YACT,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAA;YAC5C,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YACxC,oBAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,6CAA6C,CAAC,CAAA;QAChF,CAAC;QAEQ,KAAK,CAAC,IAAI;YACjB,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAA;YAC3C,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;YAElB,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC5B,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,oEAAoE,CAAC,CAAA;gBACvG,OAAM;aACP;YACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;YAE/B,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,0CAA0C,CAAC,CAAA;YAC7E,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;gBACxD,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,kBAAM,CAAC,gBAAgB,EAAE;gBAC1D,aAAa,EAAE,eAAe,IAAI,IAAI,CAAC,SAAS;oBAC9C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa;oBAC9B,CAAC,CAAC,SAAS;aACd,CAAC,CAAA;YACF,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,+CAA+C,CAAC,CAAA;YAElF;;eAEG;YACH,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,2BAA2B,CAAC,CAAA;YAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;YAC9D,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;YACtC,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,gCAAgC,CAAC,CAAA;YAEnE;;eAEG;YACH,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,8BAA8B,CAAC,CAAA;YACjE,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAA;YACxC,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,mCAAmC,CAAC,CAAA;YAEtE;;;;gBAII;YACJ,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,oCAAoC,CAAC,CACtE;YAAC,IAAI,CAAC,IAAY,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;YAC7C,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,yCAAyC,CAAC,CAAA;YAE5E,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAA;QAChC,CAAC;QAED,mBAAmB,CAAE,MAAoC;YACvD,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,CAAC,CAAA;YAEpE,MAAM,aAAa,GAAmC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAmC,CAAA;YACnI,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE;gBACrC,oBAAG,CAAC,OAAO,CAAC,aAAa,EACvB,uEAAuE,EACvE,SAAS,EACT,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAChC,CAAA;gBAED,QAAQ,SAAS,EAAE;oBACjB,KAAK,MAAM;wBACT,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;4BAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;wBACjC,CAAC,CAAC,CAAA;wBACF,MAAK;oBAEP,KAAK,OAAO;wBACV,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;4BAC3B;;;;+BAIG;4BACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAA;wBAC5E,CAAC,CAAC,CAAA;wBACF,MAAK;oBAEP,KAAK,WAAW;wBACd,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE;4BAC/B;;+BAEG;4BACH,uDAAuD;4BACvD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;wBACtC,CAAC,CAAC,CAAA;wBACF,MAAK;oBAEP,KAAK,YAAY;wBACf,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAC,OAAO,EAAC,EAAE;4BACtC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;4BAC7D,IAAI;gCACF,MAAM,UAAU,CAAC,KAAK,EAAE,CAAA;gCACxB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;gCACnC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;6BACpD;4BAAC,OAAO,CAAC,EAAE;gCACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;6BACnC;wBACH,CAAC,CAAC,CAAA;wBACF,MAAK;oBAEP,KAAK,OAAO;wBACV,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAC,OAAO,EAAC,EAAE;4BACjC,IAAI;gCACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;gCACtE,IAAI,CAAC,OAAO,EAAE;oCACZ,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;iCACjE;gCACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;6BAC5B;4BAAC,OAAO,CAAC,EAAE;gCACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;6BACnC;wBACH,CAAC,CAAC,CAAA;wBACF,MAAK;oBAEP,KAAK,QAAQ;wBACX,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAC,OAAO,EAAC,EAAE;4BAClC,IAAI;gCACF,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;gCAChC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;gCACtE,IAAI,OAAO,EAAE;oCACX,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;iCAC3C;qCAAM;oCACL,oBAAG,CAAC,OAAO,CAAC,aAAa,EACvB,sEAAsE,EACtE,OAAO,CAAC,SAAS,CAClB,CAAA;iCACF;6BACF;4BAAC,OAAO,CAAC,EAAE;gCACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;6BACnC;wBACH,CAAC,CAAC,CAAA;wBACF,MAAK;oBAEP,KAAK,SAAS;wBACZ,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAC,OAAO,EAAC,EAAE;4BACnC,IAAI;gCACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;gCAC9D,IAAI,CAAC,GAAG,EAAE;oCACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAM,CAAC,IAAI,CAAC,4BAA4B,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;oCACjF,OAAM;iCACP;gCAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;gCAEzB,MAAM,IAAI,GAAO,GAAG,CAAC,IAAI,EAAE,CAAA;gCAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;gCAE/B,IAAI,IAAI,EAAE;oCACR,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;iCAC1B;qCAAM,IAAI,QAAQ,EAAE;oCACnB,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;iCAC9B;qCAAM;oCACL,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAA;iCACrE;6BACF;4BAAC,OAAO,CAAC,EAAE;gCACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;6BACnC;wBACH,CAAC,CAAC,CAAA;wBACF,MAAK;oBAEP,KAAK,MAAM;wBACT,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAC,OAAO,EAAC,EAAE;4BAChC,IAAI;gCACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;gCACzD,IAAI,CAAC,IAAI,EAAE;oCACT,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAM,CAAC,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;oCAC3E,OAAM;iCACP;gCAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;6BACxB;4BAAC,OAAO,CAAC,EAAE;gCACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;6BACnC;wBACH,CAAC,CAAC,CAAA;wBACF,MAAK;oBAEP,KAAK,OAAO;wBACV,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;4BACtB,oBAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,wCAAwC,CAAC,CAAA;4BAEzE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;4BAClB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;wBAChC,CAAC,CAAC,CAAA;wBACF,MAAK;oBAEP,KAAK,aAAa;wBAChB,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,EAAC,OAAO,EAAC,EAAE;4BACvC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;4BACzE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;wBAC1C,CAAC,CAAC,CAAA;wBACF,MAAK;oBAEP,KAAK,WAAW;wBACd,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,EAAC,OAAO,EAAC,EAAE;4BACrC,IAAI;gCACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;gCACzD,IAAI,CAAC,IAAI,EAAE;oCACT,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;iCAC3D;gCACD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;gCAEjB,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACtC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAC3D,CAAA;gCACD,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAuB,CAAA;gCAEzE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;gCAClE,IAAI,CAAC,OAAO,EAAE;oCACZ,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;iCACjE;gCAED,MAAM,IAAI,GAAG,IAAA,sCAAe,EAAC,OAAO,CAAC,SAAS,CAAC,CAAA;gCAE/C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;gCACxD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;6BAC9C;4BAAC,OAAO,CAAC,EAAE;gCACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;6BACnC;wBACH,CAAC,CAAC,CAAA;wBACF,MAAK;oBAEP,KAAK,YAAY;wBACf,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAC,OAAO,EAAC,EAAE;4BACtC,IAAI;gCACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;gCACzD,IAAI,CAAC,IAAI,EAAE;oCACT,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;iCAC3D;gCAED;;mCAEG;gCACH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;gCAEjB,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAC3D,CAAA;gCACD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAuB,CAAA;gCAEvE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;gCAClE,IAAI,CAAC,OAAO,EAAE;oCACZ,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;iCACjE;gCACD,MAAM,IAAI,GAAG,IAAA,sCAAe,EAAC,OAAO,CAAC,SAAS,CAAC,CAAA;gCAE/C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;gCACxD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;gCAE7C,aAAa;gCACb,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;oCACxD,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;oCAC7C,MAAM,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;iCACpD;6BACF;4BAAC,OAAO,CAAC,EAAE;gCACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;6BACnC;wBACH,CAAC,CAAC,CAAA;wBACF,MAAK;oBAEP,KAAK,YAAY;wBACf,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAC,OAAO,EAAC,EAAE;4BACtC,IAAI;gCACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;gCACzD,IAAI,CAAC,IAAI,EAAE;oCACT,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;iCAC3D;gCACD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;gCAEjB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;gCAClE,IAAI,CAAC,OAAO,EAAE;oCACZ,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;iCACjE;gCACD,MAAM,IAAI,GAAG,IAAA,sCAAe,EAAC,OAAO,CAAC,SAAS,CAAC,CAAA;gCAE/C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;gCAChF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;6BACtE;4BAAC,OAAO,CAAC,EAAE;gCACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;6BACnC;wBACH,CAAC,CAAC,CAAA;wBACF,MAAK;oBAEP,KAAK,MAAM;wBACT,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAC,OAAO,EAAC,EAAE;4BAChC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;4BAChC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;wBACvE,CAAC,CAAC,CAAA;wBACF,MAAK;oBAEP,KAAK,OAAO;wBACV,+CAA+C;wBAC/C,MAAK;oBAEP,KAAK,OAAO;wBACV;;2BAEG;wBACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE;4BACtD,IAAI;gCACF,QAAQ,WAAW,EAAE;oCACnB,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wCACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAuC,CAAA;wCAChG,MAAM,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;wCAC1B,MAAK;qCACN;oCACD,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wCAC9B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAqC,CAAA;wCACxF,MAAM,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;wCACvB,MAAK;qCACN;oCACD,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;wCACpC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAoC,CAAA;wCACvF,MAAM,IAAI,EAAE,KAAK,EAAE,CAAA;wCACnB,MAAK;qCACN;oCAED;;uCAEG;oCACH,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU;wCAClC,4BAA4B;wCAC5B,MAAK;oCACP,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO;wCAC/B,qCAAqC;wCACrC,MAAK;oCAEP,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;oCACtC;wCACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,WAAW,CAAC,CAAA;iCAC1D;6BACF;4BAAC,OAAO,CAAC,EAAE;gCACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;6BACnC;wBACH,CAAC,CAAC,CAAA;wBACF,MAAK;oBAEP;wBACE;;2BAEG;wBACH,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,SAAS,GAAG,eAAe,CAAC,CAAA;iBAE9D;aACF;YAED,oBAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,gCAAgC,CAAC,CAAA;QACrE,CAAC;KAEF;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAcC,kCAAW"}
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", 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;
@@ -1,7 +1,7 @@
1
- export const GIT_COMMIT_HASH = '895c078a64de163acae5b4697c4229d918448492';
1
+ export const GIT_COMMIT_HASH = 'a1644b7c403cdb626fa59bb6b77af7bb1e074d7d';
2
2
  export const packageJson = {
3
3
  "name": "@juzi/wechaty",
4
- "version": "1.0.18",
4
+ "version": "1.0.22",
5
5
  "description": "Wechaty is a RPA SDK for Chatbot Makers.",
6
6
  "type": "module",
7
7
  "exports": {
@@ -110,8 +110,7 @@ export const packageJson = {
110
110
  },
111
111
  "homepage": "https://github.com/wechaty/",
112
112
  "dependencies": {
113
- "@juzi/wechaty-puppet": "^1.0.12",
114
- "@juzi/wechaty-puppet-service": "^1.0.17",
113
+ "@juzi/wechaty-puppet-service": "^1.0.18",
115
114
  "clone-class": "^1.1.1",
116
115
  "cmd-ts": "^0.10.0",
117
116
  "cockatiel": "^2.0.2",
@@ -134,6 +133,7 @@ export const packageJson = {
134
133
  "@chatie/eslint-config": "^1.0.4",
135
134
  "@chatie/semver": "^0.4.7",
136
135
  "@chatie/tsconfig": "^4.6.3",
136
+ "@juzi/wechaty-puppet": "^1.0.17",
137
137
  "@juzi/wechaty-puppet-mock": "^1.0.1",
138
138
  "@swc/core": "^1.2.155",
139
139
  "@swc/helpers": "^0.3.6",
@@ -1 +1 @@
1
- {"version":3,"file":"package-json.js","sourceRoot":"","sources":["../../../src/package-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package-json.js","sourceRoot":"","sources":["../../../src/package-json.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { InfoUpdateValuePair } from '../schemas/update';
2
+ /**
3
+ *
4
+ * No need to go recursive on payload diff becasue
5
+ * 1. most fields of payloads are primitive values
6
+ * 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
7
+ */
8
+ export declare const diffPayload: <T>(objectOld: any, objectNew: any) => InfoUpdateValuePair<T>[];
9
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/pure-functions/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,WAAW,iBAAkB,GAAG,aAAa,GAAG,6BAyC5D,CAAA"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ *
3
+ * No need to go recursive on payload diff becasue
4
+ * 1. most fields of payloads are primitive values
5
+ * 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
6
+ */
7
+ export const diffPayload = (objectOld, objectNew) => {
8
+ const keys = new Set([...Object.keys(objectOld || {}), ...Object.keys(objectNew || {})]);
9
+ const result = [];
10
+ for (const item of keys) {
11
+ const key = item;
12
+ const subObjectOld = objectOld[key];
13
+ const subObjectNew = objectNew[key];
14
+ if (typeof subObjectOld !== typeof subObjectNew) {
15
+ result.push({
16
+ key,
17
+ oldValue: subObjectOld,
18
+ newValue: subObjectNew,
19
+ });
20
+ }
21
+ else {
22
+ if (typeof subObjectOld !== 'object') {
23
+ if (subObjectOld === subObjectNew) {
24
+ continue;
25
+ }
26
+ else {
27
+ result.push({
28
+ key,
29
+ oldValue: subObjectOld,
30
+ newValue: subObjectNew,
31
+ });
32
+ }
33
+ }
34
+ else {
35
+ // for objects, we just judge if they were same or not, but do not record every different value
36
+ if (objectDeepDiff(subObjectOld, subObjectNew)) {
37
+ continue;
38
+ }
39
+ else {
40
+ result.push({
41
+ key,
42
+ oldValue: subObjectOld,
43
+ newValue: subObjectNew,
44
+ });
45
+ }
46
+ }
47
+ }
48
+ }
49
+ return result;
50
+ };
51
+ const objectDeepDiff = (objectA, objectB) => {
52
+ const keys = new Set([...Object.keys(objectA), ...Object.keys(objectB)]);
53
+ for (const key of keys) {
54
+ if (typeof objectA[key] !== typeof objectB[key]) {
55
+ return false;
56
+ }
57
+ if (typeof objectA[key] !== 'object') {
58
+ if (objectA[key] !== objectB[key]) {
59
+ return false;
60
+ }
61
+ }
62
+ else {
63
+ if (!objectDeepDiff(objectA[key], objectB[key])) {
64
+ return false;
65
+ }
66
+ }
67
+ }
68
+ return true;
69
+ };
70
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/pure-functions/update.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAI,SAAc,EAAE,SAAc,EAA4B,EAAE;IACzF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACxF,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;QACvB,MAAM,GAAG,GAAG,IAAe,CAAA;QAC3B,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAkB,CAAA;QACpD,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAkB,CAAA;QAEpD,IAAI,OAAO,YAAY,KAAK,OAAO,YAAY,EAAE;YAC/C,MAAM,CAAC,IAAI,CAAC;gBACV,GAAG;gBACH,QAAQ,EAAE,YAAY;gBACtB,QAAQ,EAAE,YAAY;aACvB,CAAC,CAAA;SACH;aAAM;YACL,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;gBACpC,IAAI,YAAY,KAAK,YAAY,EAAE;oBACjC,SAAQ;iBACT;qBAAM;oBACL,MAAM,CAAC,IAAI,CAAC;wBACV,GAAG;wBACH,QAAQ,EAAE,YAAY;wBACtB,QAAQ,EAAE,YAAY;qBACvB,CAAC,CAAA;iBACH;aACF;iBAAM;gBACL,+FAA+F;gBAC/F,IAAI,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE;oBAC9C,SAAQ;iBACT;qBAAM;oBACL,MAAM,CAAC,IAAI,CAAC;wBACV,GAAG;wBACH,QAAQ,EAAE,YAAY;wBACtB,QAAQ,EAAE,YAAY;qBACvB,CAAC,CAAA;iBACH;aACF;SACF;KACF;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,OAAY,EAAE,OAAY,EAAE,EAAE;IACpD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACxE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE;YAC/C,OAAO,KAAK,CAAA;SACb;QACD,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;YACpC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,EAAE;gBACjC,OAAO,KAAK,CAAA;aACb;SACF;aAAM;YACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC/C,OAAO,KAAK,CAAA;aACb;SACF;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}