@juzi/wechaty 1.0.16 → 1.0.19

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 (142) hide show
  1. package/dist/cjs/src/mods/impls.d.ts +3 -3
  2. package/dist/cjs/src/mods/impls.d.ts.map +1 -1
  3. package/dist/cjs/src/mods/impls.js +2 -1
  4. package/dist/cjs/src/mods/impls.js.map +1 -1
  5. package/dist/cjs/src/mods/users.d.ts +1 -1
  6. package/dist/cjs/src/mods/users.d.ts.map +1 -1
  7. package/dist/cjs/src/package-json.js +4 -4
  8. package/dist/cjs/src/package-json.js.map +1 -1
  9. package/dist/cjs/src/pure-functions/update.d.ts +9 -0
  10. package/dist/cjs/src/pure-functions/update.d.ts.map +1 -0
  11. package/dist/cjs/src/pure-functions/update.js +73 -0
  12. package/dist/cjs/src/pure-functions/update.js.map +1 -0
  13. package/dist/cjs/src/schemas/contact-events.d.ts +4 -1
  14. package/dist/cjs/src/schemas/contact-events.d.ts.map +1 -1
  15. package/dist/cjs/src/schemas/contact-events.js.map +1 -1
  16. package/dist/cjs/src/schemas/room-events.d.ts +5 -1
  17. package/dist/cjs/src/schemas/room-events.d.ts.map +1 -1
  18. package/dist/cjs/src/schemas/room-events.js +1 -0
  19. package/dist/cjs/src/schemas/room-events.js.map +1 -1
  20. package/dist/cjs/src/schemas/update.d.ts +12 -0
  21. package/dist/cjs/src/schemas/update.d.ts.map +1 -0
  22. package/dist/cjs/src/schemas/update.js +3 -0
  23. package/dist/cjs/src/schemas/update.js.map +1 -0
  24. package/dist/cjs/src/schemas/wechaty-events.d.ts +5 -1
  25. package/dist/cjs/src/schemas/wechaty-events.d.ts.map +1 -1
  26. package/dist/cjs/src/schemas/wechaty-events.js +1 -0
  27. package/dist/cjs/src/schemas/wechaty-events.js.map +1 -1
  28. package/dist/cjs/src/user-modules/contact.d.ts +8 -0
  29. package/dist/cjs/src/user-modules/contact.d.ts.map +1 -1
  30. package/dist/cjs/src/user-modules/contact.js +18 -4
  31. package/dist/cjs/src/user-modules/contact.js.map +1 -1
  32. package/dist/cjs/src/user-modules/mod.d.ts +4 -3
  33. package/dist/cjs/src/user-modules/mod.d.ts.map +1 -1
  34. package/dist/cjs/src/user-modules/mod.js +3 -1
  35. package/dist/cjs/src/user-modules/mod.js.map +1 -1
  36. package/dist/cjs/src/user-modules/tag-group.d.ts +60 -0
  37. package/dist/cjs/src/user-modules/tag-group.d.ts.map +1 -0
  38. package/dist/cjs/src/user-modules/tag-group.js +71 -0
  39. package/dist/cjs/src/user-modules/tag-group.js.map +1 -0
  40. package/dist/cjs/src/user-modules/tag.d.ts +37 -64
  41. package/dist/cjs/src/user-modules/tag.d.ts.map +1 -1
  42. package/dist/cjs/src/user-modules/tag.js +52 -127
  43. package/dist/cjs/src/user-modules/tag.js.map +1 -1
  44. package/dist/cjs/src/wechaty/wechaty-base.d.ts +22 -12
  45. package/dist/cjs/src/wechaty/wechaty-base.d.ts.map +1 -1
  46. package/dist/cjs/src/wechaty/wechaty-impl.spec.js +5 -3
  47. package/dist/cjs/src/wechaty/wechaty-impl.spec.js.map +1 -1
  48. package/dist/cjs/src/wechaty-mixins/gerror-mixin.d.ts +1 -1
  49. package/dist/cjs/src/wechaty-mixins/io-mixin.d.ts +2 -2
  50. package/dist/cjs/src/wechaty-mixins/login-mixin.d.ts +11 -5
  51. package/dist/cjs/src/wechaty-mixins/login-mixin.d.ts.map +1 -1
  52. package/dist/cjs/src/wechaty-mixins/misc-mixin.d.ts +14 -14
  53. package/dist/cjs/src/wechaty-mixins/misc-mixin.d.ts.map +1 -1
  54. package/dist/cjs/src/wechaty-mixins/plugin-mixin.d.ts +14 -6
  55. package/dist/cjs/src/wechaty-mixins/plugin-mixin.d.ts.map +1 -1
  56. package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts +10 -24
  57. package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -1
  58. package/dist/cjs/src/wechaty-mixins/puppet-mixin.js +23 -0
  59. package/dist/cjs/src/wechaty-mixins/puppet-mixin.js.map +1 -1
  60. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.d.ts +5 -3
  61. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.d.ts.map +1 -1
  62. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.js +3 -0
  63. package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.js.map +1 -1
  64. package/dist/esm/src/mods/impls.d.ts +3 -3
  65. package/dist/esm/src/mods/impls.d.ts.map +1 -1
  66. package/dist/esm/src/mods/impls.js +1 -1
  67. package/dist/esm/src/mods/impls.js.map +1 -1
  68. package/dist/esm/src/mods/users.d.ts +1 -1
  69. package/dist/esm/src/mods/users.d.ts.map +1 -1
  70. package/dist/esm/src/package-json.js +4 -4
  71. package/dist/esm/src/package-json.js.map +1 -1
  72. package/dist/esm/src/pure-functions/update.d.ts +9 -0
  73. package/dist/esm/src/pure-functions/update.d.ts.map +1 -0
  74. package/dist/esm/src/pure-functions/update.js +69 -0
  75. package/dist/esm/src/pure-functions/update.js.map +1 -0
  76. package/dist/esm/src/schemas/contact-events.d.ts +4 -1
  77. package/dist/esm/src/schemas/contact-events.d.ts.map +1 -1
  78. package/dist/esm/src/schemas/contact-events.js.map +1 -1
  79. package/dist/esm/src/schemas/room-events.d.ts +5 -1
  80. package/dist/esm/src/schemas/room-events.d.ts.map +1 -1
  81. package/dist/esm/src/schemas/room-events.js +1 -0
  82. package/dist/esm/src/schemas/room-events.js.map +1 -1
  83. package/dist/esm/src/schemas/update.d.ts +12 -0
  84. package/dist/esm/src/schemas/update.d.ts.map +1 -0
  85. package/dist/esm/src/schemas/update.js +2 -0
  86. package/dist/esm/src/schemas/update.js.map +1 -0
  87. package/dist/esm/src/schemas/wechaty-events.d.ts +5 -1
  88. package/dist/esm/src/schemas/wechaty-events.d.ts.map +1 -1
  89. package/dist/esm/src/schemas/wechaty-events.js +1 -0
  90. package/dist/esm/src/schemas/wechaty-events.js.map +1 -1
  91. package/dist/esm/src/user-modules/contact.d.ts +8 -0
  92. package/dist/esm/src/user-modules/contact.d.ts.map +1 -1
  93. package/dist/esm/src/user-modules/contact.js +18 -4
  94. package/dist/esm/src/user-modules/contact.js.map +1 -1
  95. package/dist/esm/src/user-modules/mod.d.ts +4 -3
  96. package/dist/esm/src/user-modules/mod.d.ts.map +1 -1
  97. package/dist/esm/src/user-modules/mod.js +2 -1
  98. package/dist/esm/src/user-modules/mod.js.map +1 -1
  99. package/dist/esm/src/user-modules/tag-group.d.ts +60 -0
  100. package/dist/esm/src/user-modules/tag-group.d.ts.map +1 -0
  101. package/dist/esm/src/user-modules/tag-group.js +68 -0
  102. package/dist/esm/src/user-modules/tag-group.js.map +1 -0
  103. package/dist/esm/src/user-modules/tag.d.ts +37 -64
  104. package/dist/esm/src/user-modules/tag.d.ts.map +1 -1
  105. package/dist/esm/src/user-modules/tag.js +52 -127
  106. package/dist/esm/src/user-modules/tag.js.map +1 -1
  107. package/dist/esm/src/wechaty/wechaty-base.d.ts +22 -12
  108. package/dist/esm/src/wechaty/wechaty-base.d.ts.map +1 -1
  109. package/dist/esm/src/wechaty/wechaty-impl.spec.js +5 -3
  110. package/dist/esm/src/wechaty/wechaty-impl.spec.js.map +1 -1
  111. package/dist/esm/src/wechaty-mixins/gerror-mixin.d.ts +1 -1
  112. package/dist/esm/src/wechaty-mixins/io-mixin.d.ts +2 -2
  113. package/dist/esm/src/wechaty-mixins/login-mixin.d.ts +11 -5
  114. package/dist/esm/src/wechaty-mixins/login-mixin.d.ts.map +1 -1
  115. package/dist/esm/src/wechaty-mixins/misc-mixin.d.ts +14 -14
  116. package/dist/esm/src/wechaty-mixins/misc-mixin.d.ts.map +1 -1
  117. package/dist/esm/src/wechaty-mixins/plugin-mixin.d.ts +14 -6
  118. package/dist/esm/src/wechaty-mixins/plugin-mixin.d.ts.map +1 -1
  119. package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts +10 -24
  120. package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -1
  121. package/dist/esm/src/wechaty-mixins/puppet-mixin.js +23 -0
  122. package/dist/esm/src/wechaty-mixins/puppet-mixin.js.map +1 -1
  123. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.d.ts +5 -3
  124. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.d.ts.map +1 -1
  125. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.js +4 -1
  126. package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.js.map +1 -1
  127. package/package.json +3 -3
  128. package/src/mods/impls.ts +3 -0
  129. package/src/mods/users.ts +1 -0
  130. package/src/package-json.ts +4 -4
  131. package/src/pure-functions/update.ts +68 -0
  132. package/src/schemas/contact-events.ts +4 -0
  133. package/src/schemas/room-events.ts +5 -0
  134. package/src/schemas/update.ts +14 -0
  135. package/src/schemas/wechaty-events.ts +5 -1
  136. package/src/user-modules/contact.ts +26 -4
  137. package/src/user-modules/mod.ts +8 -0
  138. package/src/user-modules/tag-group.ts +115 -0
  139. package/src/user-modules/tag.ts +61 -124
  140. package/src/wechaty/wechaty-impl.spec.ts +3 -0
  141. package/src/wechaty-mixins/puppet-mixin.ts +24 -0
  142. package/src/wechaty-mixins/wechatify-user-module-mixin.ts +6 -0
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Wechaty Chatbot SDK - https://github.com/wechaty/wechaty
3
+ *
4
+ * @copyright 2016 Huan LI (李卓桓) <https://github.com/huan>, and
5
+ * Wechaty Contributors <https://github.com/wechaty>.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agGroupreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific languagGroupe governing permissions and
17
+ * limitations under the License.
18
+ *
19
+ */
20
+ import type * as PUPPET from '@juzi/wechaty-puppet';
21
+ import type { Constructor } from 'clone-class';
22
+ declare const TagGroupMixin_base: ((abstract new (...args: any[]) => {
23
+ readonly wechaty: import("../wechaty/wechaty-impl.js").WechatyInterface;
24
+ }) & {
25
+ readonly wechaty: import("../wechaty/wechaty-impl.js").WechatyInterface;
26
+ }) & {
27
+ new (): {};
28
+ };
29
+ declare class TagGroupMixin extends TagGroupMixin_base {
30
+ readonly payload: PUPPET.payloads.TagGroup;
31
+ /**
32
+ *
33
+ * Create
34
+ *
35
+ */
36
+ static create(payload: PUPPET.payloads.TagGroup): TagGroupInterface;
37
+ /**
38
+ * @hideconstructor
39
+ */
40
+ constructor(payload: PUPPET.payloads.TagGroup);
41
+ id(): string;
42
+ name(): string;
43
+ static createTagGroup(name: string): Promise<TagGroupInterface | void>;
44
+ static deleteTagGroup(tagGroup: TagGroupInterface): Promise<TagGroupInterface | void>;
45
+ static list(): Promise<TagGroupInterface[]>;
46
+ }
47
+ declare const TagGroupImpl_base: {
48
+ new (...args: any[]): {};
49
+ valid: (o: any) => o is TagGroupInterface;
50
+ validInstance: (target: any) => target is TagGroupMixin;
51
+ validInterface: (target: any) => target is TagGroupInterface;
52
+ } & typeof TagGroupMixin;
53
+ declare class TagGroupImpl extends TagGroupImpl_base {
54
+ }
55
+ interface TagGroupInterface extends TagGroupImpl {
56
+ }
57
+ declare type TagGroupConstructor = Constructor<TagGroupInterface, typeof TagGroupImpl>;
58
+ export type { TagGroupConstructor, TagGroupInterface, };
59
+ export { TagGroupImpl, };
60
+ //# sourceMappingURL=tag-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag-group.d.ts","sourceRoot":"","sources":["../../../../src/user-modules/tag-group.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;;;;;;;;AAQ9C,cAAM,aAAc,SAAQ,kBAAoB;aAiB5B,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;IAfnD;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,iBAAiB;IAMpE;;OAEG;gBAEe,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;IAMnD,EAAE,IAAK,MAAM;IAIb,IAAI,IAAK,MAAM;WAIF,cAAc,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;WAchE,cAAc,CAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;WAW/E,IAAI,IAAK,OAAO,CAAC,iBAAiB,EAAE,CAAC;CAanD;;;;;;;AAED,cAAM,YAAa,SAAQ,iBAAmD;CAAI;AAClF,UAAU,iBAAkB,SAAQ,YAAY;CAAI;AAEpD,aAAK,mBAAmB,GAAG,WAAW,CACpC,iBAAiB,EACjB,OAAO,YAAY,CACpB,CAAA;AAED,YAAY,EACV,mBAAmB,EACnB,iBAAiB,GAClB,CAAA;AACD,OAAO,EACL,YAAY,GACb,CAAA"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TagGroupImpl = void 0;
4
+ const config_js_1 = require("../config.js");
5
+ const validation_js_1 = require("../user-mixins/validation.js");
6
+ const wechatify_js_1 = require("../user-mixins/wechatify.js");
7
+ class TagGroupMixin extends (0, wechatify_js_1.wechatifyMixinBase)() {
8
+ payload;
9
+ /**
10
+ *
11
+ * Create
12
+ *
13
+ */
14
+ static create(payload) {
15
+ config_js_1.log.verbose('TagGroup', 'create()');
16
+ return new this(payload);
17
+ }
18
+ /**
19
+ * @hideconstructor
20
+ */
21
+ constructor(payload) {
22
+ super();
23
+ this.payload = payload;
24
+ config_js_1.log.silly('TagGroup', 'constructor()');
25
+ }
26
+ id() {
27
+ return this.payload.id;
28
+ }
29
+ name() {
30
+ return this.payload.name;
31
+ }
32
+ static async createTagGroup(name) {
33
+ config_js_1.log.verbose('TagGroup', 'createTagGroup(%s, %s)', name);
34
+ try {
35
+ const payload = await this.wechaty.puppet.tagGroupAdd(name);
36
+ if (payload) {
37
+ return new this(payload);
38
+ }
39
+ }
40
+ catch (e) {
41
+ this.wechaty.emitError(e);
42
+ config_js_1.log.error('Contact', 'createTag() exception: %s', e.message);
43
+ }
44
+ }
45
+ static async deleteTagGroup(tagGroup) {
46
+ config_js_1.log.verbose('TagGroup', 'deleteTagGroup(%s)', tagGroup);
47
+ try {
48
+ await this.wechaty.puppet.tagGroupDelete(tagGroup.id());
49
+ }
50
+ catch (e) {
51
+ this.wechaty.emitError(e);
52
+ config_js_1.log.error('Contact', 'createTag() exception: %s', e.message);
53
+ }
54
+ }
55
+ static async list() {
56
+ config_js_1.log.verbose('TagGroup', 'list()');
57
+ try {
58
+ const payloads = await this.wechaty.puppet.tagGroupList();
59
+ return payloads.map(payload => new this(payload));
60
+ }
61
+ catch (e) {
62
+ this.wechaty.emitError(e);
63
+ config_js_1.log.error('TagGroup', 'list() exception: %s', e.message);
64
+ return [];
65
+ }
66
+ }
67
+ }
68
+ class TagGroupImpl extends (0, validation_js_1.validationMixin)(TagGroupMixin)() {
69
+ }
70
+ exports.TagGroupImpl = TagGroupImpl;
71
+ //# sourceMappingURL=tag-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag-group.js","sourceRoot":"","sources":["../../../../src/user-modules/tag-group.ts"],"names":[],"mappings":";;;AAsBA,4CAAkC;AAElC,gEAA8D;AAC9D,8DAEoC;AAEpC,MAAM,aAAc,SAAQ,IAAA,iCAAkB,GAAE;IAiB5B;IAflB;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAE,OAAiC;QAC9C,eAAG,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QAEnC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,YACkB,OAAiC;QAEjD,KAAK,EAAE,CAAA;QAFS,YAAO,GAAP,OAAO,CAA0B;QAGjD,eAAG,CAAC,KAAK,CAAC,UAAU,EAAE,eAAe,CAAC,CAAA;IACxC,CAAC;IAED,EAAE;QACA,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAA;IACxB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,CAAE,IAAY;QACvC,eAAG,CAAC,OAAO,CAAC,UAAU,EAAE,wBAAwB,EAAE,IAAI,CAAC,CAAA;QAEvD,IAAI;YACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;YAC3D,IAAI,OAAO,EAAE;gBACX,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA;aACzB;SACF;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;YACzB,eAAG,CAAC,KAAK,CAAC,SAAS,EAAE,2BAA2B,EAAG,CAAW,CAAC,OAAO,CAAC,CAAA;SACxE;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,CAAE,QAA2B;QACtD,eAAG,CAAC,OAAO,CAAC,UAAU,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAA;QAEvD,IAAI;YACF,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAA;SACxD;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;YACzB,eAAG,CAAC,KAAK,CAAC,SAAS,EAAE,2BAA2B,EAAG,CAAW,CAAC,OAAO,CAAC,CAAA;SACxE;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI;QACf,eAAG,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAEjC,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAA;YACzD,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;SAClD;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;YACzB,eAAG,CAAC,KAAK,CAAC,UAAU,EAAE,sBAAsB,EAAG,CAAW,CAAC,OAAO,CAAC,CAAA;YACnE,OAAO,EAAE,CAAA;SACV;IACH,CAAC;CAEF;AAED,MAAM,YAAa,SAAQ,IAAA,+BAAe,EAAC,aAAa,CAAC,EAAqB;CAAI;AAahF,oCAAY"}
@@ -1,80 +1,53 @@
1
+ /**
2
+ * Wechaty Chatbot SDK - https://github.com/wechaty/wechaty
3
+ *
4
+ * @copyright 2016 Huan LI (李卓桓) <https://github.com/huan>, and
5
+ * Wechaty Contributors <https://github.com/wechaty>.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ *
19
+ */
20
+ import type * as PUPPET from '@juzi/wechaty-puppet';
1
21
  import type { Constructor } from 'clone-class';
2
- import { ContactInterface, ContactImpl } from './contact.js';
3
- import { FavoriteInterface, FavoriteImpl } from './favorite.js';
4
- declare const MixinBase: ((abstract new (...args: any[]) => {}) & {
5
- _pool?: Map<string, TagInterface> | undefined;
6
- readonly pool: Map<string, TagInterface>;
7
- load<L extends import("clone-class/dist/esm/src/constructor.js").ClassInterface<{}> & {
8
- new (...args: any[]): TagInterface;
9
- prototype: TagInterface;
10
- } & import("../user-mixins/poolify.js").PoolifyMixin<TagInterface>>(this: L, id: string): TagInterface;
11
- }) & ((abstract new (...args: any[]) => {
22
+ import type { ContactInterface } from './contact.js';
23
+ declare const TagMixin_base: ((abstract new (...args: any[]) => {
12
24
  readonly wechaty: import("../wechaty/wechaty-impl.js").WechatyInterface;
13
25
  }) & {
14
26
  readonly wechaty: import("../wechaty/wechaty-impl.js").WechatyInterface;
15
27
  }) & {
16
28
  new (): {};
17
29
  };
18
- declare class TagMixin extends MixinBase {
19
- readonly id: string;
30
+ declare class TagMixin extends TagMixin_base {
31
+ readonly payload: PUPPET.payloads.Tag;
20
32
  /**
21
- * @hideconstructor
22
- */
23
- constructor(id: string);
24
- /**
25
- * Get a Tag instance for "tag"
26
- *
27
- * > Tips:
28
- * This function is depending on the Puppet Implementation, see [puppet-compatible-table](https://github.com/Chatie/wechaty/wiki/Puppet#3-puppet-compatible-table)
29
- *
30
- * @static
31
- * @param {string} [tag] the tag name which want to create
32
- * @returns {Promise<TagImpl>}
33
- * @example
34
- * const bot = new Wechaty()
35
- * await bot.Tag.get('TagName')
36
- */
37
- static get(tag: string): Promise<TagInterface>;
38
- /**
39
- * Delete a tag from Wechat
40
- *
41
- * If you want to delete a tag, please make sure there's no more Contact/Favorite(s) are using this tag.
42
- * If this tag is be used by any Contact/Favorite, then it can not be deleted.
43
- * (This is for protecting the tag being deleted by mistake)
44
33
  *
45
- * @static
46
- * @returns {Promise<TagInterface[]>}
47
- * @example
48
- * const tag = wechaty.Tag.get('tag')
49
- * await wechaty.Tag.delete(tag)
50
- */
51
- /**
52
- * TODO: refactoring the target: do not use ContactIml or FavoriteImpl
53
- */
54
- static delete(tag: TagInterface, target?: typeof ContactImpl | typeof FavoriteImpl): Promise<void>;
55
- /**
56
- * Add tag for contact
34
+ * Create
57
35
  *
58
- * > Tips:
59
- * This function is depending on the Puppet Implementation, see [puppet-compatible-table](https://github.com/Chatie/wechaty/wiki/Puppet#3-puppet-compatible-table)
60
- *
61
- * @param {ContactInterface} [to] the contact which need to add tag
62
- * @returns {Promise<void>}
63
- * @example
64
- * await tag.add(contact)
65
36
  */
66
- add(to: ContactInterface | FavoriteInterface): Promise<void>;
37
+ static create(payload: PUPPET.payloads.Tag): TagInterface;
67
38
  /**
68
- * Remove this tag from Contact/Favorite
69
- *
70
- * > Tips:
71
- * This function is depending on the Puppet Implementation, see [puppet-compatible-table](https://github.com/Chatie/wechaty/wiki/Puppet#3-puppet-compatible-table)
72
- *
73
- * @returns {Promise<void>}
74
- * @example
75
- * await tag.remove(contact)
39
+ * @hideconstructor
76
40
  */
77
- remove(from: ContactInterface | FavoriteInterface): Promise<void>;
41
+ constructor(payload: PUPPET.payloads.Tag);
42
+ id(): string;
43
+ type(): PUPPET.types.Tag;
44
+ groupId(): string;
45
+ name(): string;
46
+ static list(): Promise<TagInterface[]>;
47
+ contactList(): Promise<ContactInterface[]>;
48
+ tag(contact: ContactInterface): Promise<void>;
49
+ static createTag(tagGroupId: string | undefined, name: string): Promise<TagInterface | void>;
50
+ static deleteTag(tag: TagInterface): Promise<void>;
78
51
  }
79
52
  declare const TagImpl_base: {
80
53
  new (...args: any[]): {};
@@ -1 +1 @@
1
- {"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../../../src/user-modules/tag.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAO,aAAa,CAAA;AAE/C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAO,cAAc,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAU/D,QAAA,MAAM,SAAS;;;;;;;;;;;;;CAEE,CAAA;AAEjB,cAAM,QAAS,SAAQ,SAAS;aAMZ,EAAE,EAAE,MAAM;IAJ5B;;OAEG;gBAEe,EAAE,EAAE,MAAM;IAM5B;;;;;;;;;;;;OAYG;WACU,GAAG,CACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,YAAY,CAAC;IAKxB;;;;;;;;;;;;OAYG;IAEH;;OAEG;WACU,MAAM,CACjB,GAAG,EAAE,YAAY,EACjB,MAAM,CAAC,EAAE,OAAO,WAAW,GAAG,OAAO,YAAY,GAChD,OAAO,CAAC,IAAI,CAAC;IA2BhB;;;;;;;;;;OAUG;IACG,GAAG,CACP,EAAE,EAAE,gBAAgB,GAAG,iBAAiB,GACvC,OAAO,CAAC,IAAI,CAAC;IAqBhB;;;;;;;;;OASG;IACG,MAAM,CAAE,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAsBzE;;;;;;;AAED,cAAM,OAAQ,SAAQ,YAAyC;CAAG;AAClE,UAAU,YAAa,SAAQ,OAAO;CAAG;AAEzC,aAAK,cAAc,GAAG,WAAW,CAC/B,YAAY,EACZ,OAAO,OAAO,CACf,CAAA;AAED,YAAY,EACV,cAAc,EACd,YAAY,GACb,CAAA;AACD,OAAO,EACL,OAAO,GACR,CAAA"}
1
+ {"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../../../src/user-modules/tag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAO9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;;;;;;;;AAEpD,cAAM,QAAS,SAAQ,aAAoB;aAiBvB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG;IAf9C;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,YAAY;IAM1D;;OAEG;gBAEe,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG;IAM9C,EAAE,IAAK,MAAM;IAIb,IAAI,IAAK,MAAM,CAAC,KAAK,CAAC,GAAG;IAIzB,OAAO,IAAK,MAAM;IAIlB,IAAI,IAAK,MAAM;WAIF,IAAI,IAAK,OAAO,CAAC,YAAY,EAAE,CAAC;IAavC,WAAW,IAAK,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAQ3C,GAAG,CAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;WAOvC,SAAS,CAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;WActF,SAAS,CAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAW1D;;;;;;;AAED,cAAM,OAAQ,SAAQ,YAAyC;CAAG;AAClE,UAAU,YAAa,SAAQ,OAAO;CAAG;AAEzC,aAAK,cAAc,GAAG,WAAW,CAC/B,YAAY,EACZ,OAAO,OAAO,CACf,CAAA;AAED,YAAY,EACV,cAAc,EACd,YAAY,GACb,CAAA;AACD,OAAO,EACL,OAAO,GACR,CAAA"}
@@ -1,159 +1,84 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TagImpl = void 0;
4
- /**
5
- * Wechaty Chatbot SDK - https://github.com/wechaty/wechaty
6
- *
7
- * @copyright 2016 Huan LI (李卓桓) <https://github.com/huan>, and
8
- * Wechaty Contributors <https://github.com/wechaty>.
9
- *
10
- * Licensed under the Apache License, Version 2.0 (the "License");
11
- * you may not use this file except in compliance with the License.
12
- * You may obtain a copy of the License at
13
- *
14
- * http://www.apache.org/licenses/LICENSE-2.0
15
- *
16
- * Unless required by applicable law or agreed to in writing, software
17
- * distributed under the License is distributed on an "AS IS" BASIS,
18
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
- * See the License for the specific language governing permissions and
20
- * limitations under the License.
21
- *
22
- */
23
- const wechaty_puppet_1 = require("@juzi/wechaty-puppet");
24
- const contact_js_1 = require("./contact.js");
25
- const favorite_js_1 = require("./favorite.js");
26
- const poolify_js_1 = require("../user-mixins/poolify.js");
4
+ const config_js_1 = require("../config.js");
27
5
  const validation_js_1 = require("../user-mixins/validation.js");
28
6
  const wechatify_js_1 = require("../user-mixins/wechatify.js");
29
- const MixinBase = (0, poolify_js_1.poolifyMixin)((0, wechatify_js_1.wechatifyMixinBase)())();
30
- class TagMixin extends MixinBase {
31
- id;
7
+ class TagMixin extends (0, wechatify_js_1.wechatifyMixinBase)() {
8
+ payload;
32
9
  /**
33
- * @hideconstructor
34
- */
35
- constructor(id) {
36
- super();
37
- this.id = id;
38
- wechaty_puppet_1.log.silly('Tag', `constructor(${id})`);
39
- }
40
- /**
41
- * Get a Tag instance for "tag"
42
10
  *
43
- * > Tips:
44
- * This function is depending on the Puppet Implementation, see [puppet-compatible-table](https://github.com/Chatie/wechaty/wiki/Puppet#3-puppet-compatible-table)
11
+ * Create
45
12
  *
46
- * @static
47
- * @param {string} [tag] the tag name which want to create
48
- * @returns {Promise<TagImpl>}
49
- * @example
50
- * const bot = new Wechaty()
51
- * await bot.Tag.get('TagName')
52
13
  */
53
- static async get(tag) {
54
- wechaty_puppet_1.log.verbose('Tag', 'get(%s)', tag);
55
- return this.load(tag);
14
+ static create(payload) {
15
+ config_js_1.log.verbose('Tag', 'create()');
16
+ return new this(payload);
56
17
  }
57
18
  /**
58
- * Delete a tag from Wechat
59
- *
60
- * If you want to delete a tag, please make sure there's no more Contact/Favorite(s) are using this tag.
61
- * If this tag is be used by any Contact/Favorite, then it can not be deleted.
62
- * (This is for protecting the tag being deleted by mistake)
63
- *
64
- * @static
65
- * @returns {Promise<TagInterface[]>}
66
- * @example
67
- * const tag = wechaty.Tag.get('tag')
68
- * await wechaty.Tag.delete(tag)
69
- */
70
- /**
71
- * TODO: refactoring the target: do not use ContactIml or FavoriteImpl
19
+ * @hideconstructor
72
20
  */
73
- static async delete(tag, target) {
74
- wechaty_puppet_1.log.verbose('Tag', 'static delete(%s)', tag);
75
- /**
76
- * Huan(202110) TODO: refactory this design:
77
- * 1. we should not pass `typeof ContactImpl` as argument
78
- * 2. find a better way to manage tag.
79
- */
21
+ constructor(payload) {
22
+ super();
23
+ this.payload = payload;
24
+ config_js_1.log.silly('Tag', 'constructor()');
25
+ }
26
+ id() {
27
+ return this.payload.id;
28
+ }
29
+ type() {
30
+ return this.payload.type;
31
+ }
32
+ groupId() {
33
+ return this.payload.groupId || '';
34
+ }
35
+ name() {
36
+ return this.payload.name;
37
+ }
38
+ static async list() {
39
+ config_js_1.log.verbose('Tag', 'list()');
80
40
  try {
81
- /**
82
- * TODO(huan): add tag check code here for checking if this tag is still being used.
83
- */
84
- if (!target || target === contact_js_1.ContactImpl || target === this.wechaty.Contact) {
85
- await this.wechaty.puppet.tagContactDelete(tag.id);
86
- // TODO:
87
- // } else if (!target || target === Favorite || target === this.wechaty.Favorite) {
88
- // await this.wechaty.puppet.tagFavoriteDelete(tag.id)
89
- }
41
+ const payloads = await this.wechaty.puppet.tagTagList();
42
+ return payloads.map(payload => new this(payload));
90
43
  }
91
44
  catch (e) {
92
45
  this.wechaty.emitError(e);
93
- wechaty_puppet_1.log.error('Tag', 'static delete() exception: %s', e.message);
46
+ config_js_1.log.error('Tag', 'list() exception: %s', e.message);
47
+ return [];
94
48
  }
95
49
  }
96
- /**
97
- * Add tag for contact
98
- *
99
- * > Tips:
100
- * This function is depending on the Puppet Implementation, see [puppet-compatible-table](https://github.com/Chatie/wechaty/wiki/Puppet#3-puppet-compatible-table)
101
- *
102
- * @param {ContactInterface} [to] the contact which need to add tag
103
- * @returns {Promise<void>}
104
- * @example
105
- * await tag.add(contact)
106
- */
107
- async add(to) {
108
- wechaty_puppet_1.log.verbose('Tag', 'add(%s) for %s', to, this.id);
109
- /**
110
- * Huan(202110): TODO: refactory this design:
111
- * 1. we should not pass `typeof ContactImpl` as argument
112
- * 2. use instanceof to check the type of `to`
113
- */
50
+ async contactList() {
51
+ config_js_1.log.verbose('Tag', 'contactList() for tag id: %s', this.id());
52
+ const contactIds = await this.wechaty.puppet.tagTagContactList(this.groupId(), this.id());
53
+ const contactPromises = contactIds.map(id => this.wechaty.Contact.find({ id }));
54
+ return Promise.all(contactPromises);
55
+ }
56
+ async tag(contact) {
57
+ config_js_1.log.verbose('Tag', 'tag(%s) for tag id: %s', contact, this.id());
58
+ const contactId = contact.id;
59
+ await this.wechaty.puppet.tagContactTagAdd(this.groupId(), this.id(), contactId);
60
+ }
61
+ static async createTag(tagGroupId, name) {
62
+ config_js_1.log.verbose('Tag', 'createTag(%s, %s)', tagGroupId, name);
114
63
  try {
115
- if (contact_js_1.ContactImpl.valid(to)) {
116
- await this.wechaty.puppet.tagContactAdd(this.id, to.id);
117
- }
118
- else if (favorite_js_1.FavoriteImpl.valid(to)) {
119
- // TODO: await this.wechaty.puppet.tagAddFavorite(this.tag, to.id)
64
+ const payload = await this.wechaty.puppet.tagTagAdd(tagGroupId, name);
65
+ if (payload) {
66
+ return new this(payload);
120
67
  }
121
68
  }
122
69
  catch (e) {
123
70
  this.wechaty.emitError(e);
124
- wechaty_puppet_1.log.error('Tag', 'add() exception: %s', e.message);
125
- throw new Error(`add error : ${e}`);
71
+ config_js_1.log.error('Contact', 'createTag() exception: %s', e.message);
126
72
  }
127
73
  }
128
- /**
129
- * Remove this tag from Contact/Favorite
130
- *
131
- * > Tips:
132
- * This function is depending on the Puppet Implementation, see [puppet-compatible-table](https://github.com/Chatie/wechaty/wiki/Puppet#3-puppet-compatible-table)
133
- *
134
- * @returns {Promise<void>}
135
- * @example
136
- * await tag.remove(contact)
137
- */
138
- async remove(from) {
139
- wechaty_puppet_1.log.verbose('Tag', 'remove(%s) for %s', from, this.id);
140
- /**
141
- * Huan(202110): TODO: refactory this design:
142
- * 1. we should not pass `typeof ContactImpl` as argument
143
- * 2. use instanceof to check the type of `to`
144
- */
74
+ static async deleteTag(tag) {
75
+ config_js_1.log.verbose('Tag', 'deleteTag(%s, %s)', tag);
145
76
  try {
146
- if (from instanceof contact_js_1.ContactImpl) {
147
- await this.wechaty.puppet.tagContactRemove(this.id, from.id);
148
- }
149
- else if (from instanceof favorite_js_1.FavoriteImpl) {
150
- // TODO await this.wechaty.puppet.tagRemoveFavorite(this.tag, from.id)
151
- }
77
+ await this.wechaty.puppet.tagTagDelete(tag.groupId(), tag.id());
152
78
  }
153
79
  catch (e) {
154
80
  this.wechaty.emitError(e);
155
- wechaty_puppet_1.log.error('Tag', 'remove() exception: %s', e.message);
156
- throw new Error(`remove error : ${e}`);
81
+ config_js_1.log.error('Contact', 'deleteTag() exception: %s', e.message);
157
82
  }
158
83
  }
159
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tag.js","sourceRoot":"","sources":["../../../../src/user-modules/tag.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tag.js","sourceRoot":"","sources":["../../../../src/user-modules/tag.ts"],"names":[],"mappings":"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"}