@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.
- package/dist/cjs/src/mods/impls.d.ts +3 -3
- package/dist/cjs/src/mods/impls.d.ts.map +1 -1
- package/dist/cjs/src/mods/impls.js +2 -1
- package/dist/cjs/src/mods/impls.js.map +1 -1
- package/dist/cjs/src/mods/users.d.ts +1 -1
- package/dist/cjs/src/mods/users.d.ts.map +1 -1
- package/dist/cjs/src/package-json.js +4 -4
- package/dist/cjs/src/package-json.js.map +1 -1
- package/dist/cjs/src/pure-functions/update.d.ts +9 -0
- package/dist/cjs/src/pure-functions/update.d.ts.map +1 -0
- package/dist/cjs/src/pure-functions/update.js +73 -0
- package/dist/cjs/src/pure-functions/update.js.map +1 -0
- package/dist/cjs/src/schemas/contact-events.d.ts +4 -1
- package/dist/cjs/src/schemas/contact-events.d.ts.map +1 -1
- package/dist/cjs/src/schemas/contact-events.js.map +1 -1
- package/dist/cjs/src/schemas/room-events.d.ts +5 -1
- package/dist/cjs/src/schemas/room-events.d.ts.map +1 -1
- package/dist/cjs/src/schemas/room-events.js +1 -0
- package/dist/cjs/src/schemas/room-events.js.map +1 -1
- package/dist/cjs/src/schemas/update.d.ts +12 -0
- package/dist/cjs/src/schemas/update.d.ts.map +1 -0
- package/dist/cjs/src/schemas/update.js +3 -0
- package/dist/cjs/src/schemas/update.js.map +1 -0
- package/dist/cjs/src/schemas/wechaty-events.d.ts +5 -1
- package/dist/cjs/src/schemas/wechaty-events.d.ts.map +1 -1
- package/dist/cjs/src/schemas/wechaty-events.js +1 -0
- package/dist/cjs/src/schemas/wechaty-events.js.map +1 -1
- package/dist/cjs/src/user-modules/contact.d.ts +8 -0
- package/dist/cjs/src/user-modules/contact.d.ts.map +1 -1
- package/dist/cjs/src/user-modules/contact.js +18 -4
- package/dist/cjs/src/user-modules/contact.js.map +1 -1
- package/dist/cjs/src/user-modules/mod.d.ts +4 -3
- package/dist/cjs/src/user-modules/mod.d.ts.map +1 -1
- package/dist/cjs/src/user-modules/mod.js +3 -1
- package/dist/cjs/src/user-modules/mod.js.map +1 -1
- package/dist/cjs/src/user-modules/tag-group.d.ts +60 -0
- package/dist/cjs/src/user-modules/tag-group.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/tag-group.js +71 -0
- package/dist/cjs/src/user-modules/tag-group.js.map +1 -0
- package/dist/cjs/src/user-modules/tag.d.ts +37 -64
- package/dist/cjs/src/user-modules/tag.d.ts.map +1 -1
- package/dist/cjs/src/user-modules/tag.js +52 -127
- package/dist/cjs/src/user-modules/tag.js.map +1 -1
- package/dist/cjs/src/wechaty/wechaty-base.d.ts +22 -12
- package/dist/cjs/src/wechaty/wechaty-base.d.ts.map +1 -1
- package/dist/cjs/src/wechaty/wechaty-impl.spec.js +5 -3
- package/dist/cjs/src/wechaty/wechaty-impl.spec.js.map +1 -1
- package/dist/cjs/src/wechaty-mixins/gerror-mixin.d.ts +1 -1
- package/dist/cjs/src/wechaty-mixins/io-mixin.d.ts +2 -2
- package/dist/cjs/src/wechaty-mixins/login-mixin.d.ts +11 -5
- package/dist/cjs/src/wechaty-mixins/login-mixin.d.ts.map +1 -1
- package/dist/cjs/src/wechaty-mixins/misc-mixin.d.ts +14 -14
- package/dist/cjs/src/wechaty-mixins/misc-mixin.d.ts.map +1 -1
- package/dist/cjs/src/wechaty-mixins/plugin-mixin.d.ts +14 -6
- package/dist/cjs/src/wechaty-mixins/plugin-mixin.d.ts.map +1 -1
- package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts +10 -24
- package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -1
- package/dist/cjs/src/wechaty-mixins/puppet-mixin.js +23 -0
- package/dist/cjs/src/wechaty-mixins/puppet-mixin.js.map +1 -1
- package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.d.ts +5 -3
- package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.d.ts.map +1 -1
- package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.js +3 -0
- package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.js.map +1 -1
- package/dist/esm/src/mods/impls.d.ts +3 -3
- package/dist/esm/src/mods/impls.d.ts.map +1 -1
- package/dist/esm/src/mods/impls.js +1 -1
- package/dist/esm/src/mods/impls.js.map +1 -1
- package/dist/esm/src/mods/users.d.ts +1 -1
- package/dist/esm/src/mods/users.d.ts.map +1 -1
- package/dist/esm/src/package-json.js +4 -4
- package/dist/esm/src/package-json.js.map +1 -1
- package/dist/esm/src/pure-functions/update.d.ts +9 -0
- package/dist/esm/src/pure-functions/update.d.ts.map +1 -0
- package/dist/esm/src/pure-functions/update.js +69 -0
- package/dist/esm/src/pure-functions/update.js.map +1 -0
- package/dist/esm/src/schemas/contact-events.d.ts +4 -1
- package/dist/esm/src/schemas/contact-events.d.ts.map +1 -1
- package/dist/esm/src/schemas/contact-events.js.map +1 -1
- package/dist/esm/src/schemas/room-events.d.ts +5 -1
- package/dist/esm/src/schemas/room-events.d.ts.map +1 -1
- package/dist/esm/src/schemas/room-events.js +1 -0
- package/dist/esm/src/schemas/room-events.js.map +1 -1
- package/dist/esm/src/schemas/update.d.ts +12 -0
- package/dist/esm/src/schemas/update.d.ts.map +1 -0
- package/dist/esm/src/schemas/update.js +2 -0
- package/dist/esm/src/schemas/update.js.map +1 -0
- package/dist/esm/src/schemas/wechaty-events.d.ts +5 -1
- package/dist/esm/src/schemas/wechaty-events.d.ts.map +1 -1
- package/dist/esm/src/schemas/wechaty-events.js +1 -0
- package/dist/esm/src/schemas/wechaty-events.js.map +1 -1
- package/dist/esm/src/user-modules/contact.d.ts +8 -0
- package/dist/esm/src/user-modules/contact.d.ts.map +1 -1
- package/dist/esm/src/user-modules/contact.js +18 -4
- package/dist/esm/src/user-modules/contact.js.map +1 -1
- package/dist/esm/src/user-modules/mod.d.ts +4 -3
- package/dist/esm/src/user-modules/mod.d.ts.map +1 -1
- package/dist/esm/src/user-modules/mod.js +2 -1
- package/dist/esm/src/user-modules/mod.js.map +1 -1
- package/dist/esm/src/user-modules/tag-group.d.ts +60 -0
- package/dist/esm/src/user-modules/tag-group.d.ts.map +1 -0
- package/dist/esm/src/user-modules/tag-group.js +68 -0
- package/dist/esm/src/user-modules/tag-group.js.map +1 -0
- package/dist/esm/src/user-modules/tag.d.ts +37 -64
- package/dist/esm/src/user-modules/tag.d.ts.map +1 -1
- package/dist/esm/src/user-modules/tag.js +52 -127
- package/dist/esm/src/user-modules/tag.js.map +1 -1
- package/dist/esm/src/wechaty/wechaty-base.d.ts +22 -12
- package/dist/esm/src/wechaty/wechaty-base.d.ts.map +1 -1
- package/dist/esm/src/wechaty/wechaty-impl.spec.js +5 -3
- package/dist/esm/src/wechaty/wechaty-impl.spec.js.map +1 -1
- package/dist/esm/src/wechaty-mixins/gerror-mixin.d.ts +1 -1
- package/dist/esm/src/wechaty-mixins/io-mixin.d.ts +2 -2
- package/dist/esm/src/wechaty-mixins/login-mixin.d.ts +11 -5
- package/dist/esm/src/wechaty-mixins/login-mixin.d.ts.map +1 -1
- package/dist/esm/src/wechaty-mixins/misc-mixin.d.ts +14 -14
- package/dist/esm/src/wechaty-mixins/misc-mixin.d.ts.map +1 -1
- package/dist/esm/src/wechaty-mixins/plugin-mixin.d.ts +14 -6
- package/dist/esm/src/wechaty-mixins/plugin-mixin.d.ts.map +1 -1
- package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts +10 -24
- package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -1
- package/dist/esm/src/wechaty-mixins/puppet-mixin.js +23 -0
- package/dist/esm/src/wechaty-mixins/puppet-mixin.js.map +1 -1
- package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.d.ts +5 -3
- package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.d.ts.map +1 -1
- package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.js +4 -1
- package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.js.map +1 -1
- package/package.json +3 -3
- package/src/mods/impls.ts +3 -0
- package/src/mods/users.ts +1 -0
- package/src/package-json.ts +4 -4
- package/src/pure-functions/update.ts +68 -0
- package/src/schemas/contact-events.ts +4 -0
- package/src/schemas/room-events.ts +5 -0
- package/src/schemas/update.ts +14 -0
- package/src/schemas/wechaty-events.ts +5 -1
- package/src/user-modules/contact.ts +26 -4
- package/src/user-modules/mod.ts +8 -0
- package/src/user-modules/tag-group.ts +115 -0
- package/src/user-modules/tag.ts +61 -124
- package/src/wechaty/wechaty-impl.spec.ts +3 -0
- package/src/wechaty-mixins/puppet-mixin.ts +24 -0
- 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
|
|
3
|
-
|
|
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
|
|
19
|
-
readonly
|
|
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
|
-
*
|
|
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
|
-
|
|
37
|
+
static create(payload: PUPPET.payloads.Tag): TagInterface;
|
|
67
38
|
/**
|
|
68
|
-
*
|
|
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
|
-
|
|
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":"
|
|
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
|
-
|
|
30
|
-
|
|
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
|
-
*
|
|
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
|
|
54
|
-
|
|
55
|
-
return this
|
|
14
|
+
static create(payload) {
|
|
15
|
+
config_js_1.log.verbose('Tag', 'create()');
|
|
16
|
+
return new this(payload);
|
|
56
17
|
}
|
|
57
18
|
/**
|
|
58
|
-
*
|
|
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
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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
|
-
|
|
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
|
-
|
|
46
|
+
config_js_1.log.error('Tag', 'list() exception: %s', e.message);
|
|
47
|
+
return [];
|
|
94
48
|
}
|
|
95
49
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
async
|
|
108
|
-
|
|
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
|
-
|
|
116
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":";;;
|
|
1
|
+
{"version":3,"file":"tag.js","sourceRoot":"","sources":["../../../../src/user-modules/tag.ts"],"names":[],"mappings":"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"}
|